diff options
Diffstat (limited to 'src')
53 files changed, 68382 insertions, 0 deletions
diff --git a/src/COPYING b/src/COPYING new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/src/COPYING @@ -0,0 +1,674 @@ + 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/src/COPYING.txt b/src/COPYING.txt new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/src/COPYING.txt @@ -0,0 +1,674 @@ + 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/src/Makefile.am b/src/Makefile.am new file mode 100644 index 0000000..05f518e --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1,37 @@ +AUTOMAKE_OPTIONS = foreign no-dependencies + +SVN_DEF = -D'SVN_REV="$(shell svnversion -n .)"' +AM_CFLAGS = -g -O3 -std=gnu99 -ffast-math -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" $(SVN_DEF) + +ACLOCAL_AMFLAGS = -I m4 + +man1_MANS = flam3-animate.man flam3-genome.man flam3-render.man flam3-convert.man +bin_PROGRAMS = flam3-animate flam3-genome flam3-render flam3-convert +lib_LTLIBRARIES = libflam3.la +include_HEADERS = flam3.h isaac.h isaacs.h + +libflam3_la_SOURCES = flam3.c filters.c parser.c variations.c interpolation.c palettes.c jpeg.c png.c isaac.c +libflam3_la_LDFLAGS = -no-undefined -ljpeg -lpng -lz -lpthread + +flam3_genome_SOURCES = flam3-genome.c docstring.c +flam3_genome_LDADD = libflam3.la -lm + +flam3_animate_SOURCES = flam3-animate.c docstring.c +flam3_animate_LDADD = libflam3.la -lm + +flam3_render_SOURCES = flam3-render.c docstring.c +flam3_render_LDADD = libflam3.la -lm + +flam3_convert_SOURCES = flam3-convert.c docstring.c +flam3_convert_LDADD = libflam3.la -lm + +pkgdata_DATA = flam3-palettes.xml + +EXTRA_DIST = rect.c flam3.h palettes.h variations.h interpolation.h parser.h \ + private.h isaac.h isaacs.h img.h test.flam3 vidres.flam3 \ + flam3.dsw render.dsp animate.dsp genome.dsp convert.dsp \ + mkinstalldirs README.txt COPYING.txt flam3-palettes.xml \ + flam3-animate.man flam3-render.man flam3-genome.man flam3-convert.man + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = flam3.pc diff --git a/src/Makefile.in b/src/Makefile.in new file mode 100644 index 0000000..6626e7a --- /dev/null +++ b/src/Makefile.in @@ -0,0 +1,816 @@ +# Makefile.in generated by automake 1.10.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +bin_PROGRAMS = flam3-animate$(EXEEXT) flam3-genome$(EXEEXT) \ + flam3-render$(EXEEXT) flam3-convert$(EXEEXT) +subdir = . +DIST_COMMON = $(am__configure_deps) $(include_HEADERS) \ + $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/config.h.in $(srcdir)/flam3.pc.in \ + $(top_srcdir)/configure COPYING config.guess config.sub \ + install-sh ltmain.sh missing mkinstalldirs +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = flam3.pc +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ + "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(pkgconfigdir)" \ + "$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(includedir)" +libLTLIBRARIES_INSTALL = $(INSTALL) +LTLIBRARIES = $(lib_LTLIBRARIES) +libflam3_la_LIBADD = +am_libflam3_la_OBJECTS = flam3.lo filters.lo parser.lo variations.lo \ + interpolation.lo palettes.lo jpeg.lo png.lo isaac.lo +libflam3_la_OBJECTS = $(am_libflam3_la_OBJECTS) +libflam3_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libflam3_la_LDFLAGS) $(LDFLAGS) -o $@ +binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) +PROGRAMS = $(bin_PROGRAMS) +am_flam3_animate_OBJECTS = flam3-animate.$(OBJEXT) docstring.$(OBJEXT) +flam3_animate_OBJECTS = $(am_flam3_animate_OBJECTS) +flam3_animate_DEPENDENCIES = libflam3.la +am_flam3_convert_OBJECTS = flam3-convert.$(OBJEXT) docstring.$(OBJEXT) +flam3_convert_OBJECTS = $(am_flam3_convert_OBJECTS) +flam3_convert_DEPENDENCIES = libflam3.la +am_flam3_genome_OBJECTS = flam3-genome.$(OBJEXT) docstring.$(OBJEXT) +flam3_genome_OBJECTS = $(am_flam3_genome_OBJECTS) +flam3_genome_DEPENDENCIES = libflam3.la +am_flam3_render_OBJECTS = flam3-render.$(OBJEXT) docstring.$(OBJEXT) +flam3_render_OBJECTS = $(am_flam3_render_OBJECTS) +flam3_render_DEPENDENCIES = libflam3.la +DEFAULT_INCLUDES = -I.@am__isrc@ +depcomp = +am__depfiles_maybe = +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(libflam3_la_SOURCES) $(flam3_animate_SOURCES) \ + $(flam3_convert_SOURCES) $(flam3_genome_SOURCES) \ + $(flam3_render_SOURCES) +DIST_SOURCES = $(libflam3_la_SOURCES) $(flam3_animate_SOURCES) \ + $(flam3_convert_SOURCES) $(flam3_genome_SOURCES) \ + $(flam3_render_SOURCES) +man1dir = $(mandir)/man1 +NROFF = nroff +MANS = $(man1_MANS) +pkgconfigDATA_INSTALL = $(INSTALL_DATA) +pkgdataDATA_INSTALL = $(INSTALL_DATA) +DATA = $(pkgconfig_DATA) $(pkgdata_DATA) +includeHEADERS_INSTALL = $(INSTALL_HEADER) +HEADERS = $(include_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d $(distdir) \ + || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr $(distdir); }; } +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +XML2_CONFIG = @XML2_CONFIG@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = foreign no-dependencies +SVN_DEF = -D'SVN_REV="$(shell svnversion -n .)"' +AM_CFLAGS = -g -O3 -std=gnu99 -ffast-math -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" $(SVN_DEF) +ACLOCAL_AMFLAGS = -I m4 +man1_MANS = flam3-animate.man flam3-genome.man flam3-render.man flam3-convert.man +lib_LTLIBRARIES = libflam3.la +include_HEADERS = flam3.h isaac.h isaacs.h +libflam3_la_SOURCES = flam3.c filters.c parser.c variations.c interpolation.c palettes.c jpeg.c png.c isaac.c +libflam3_la_LDFLAGS = -no-undefined -ljpeg -lpng -lz -lpthread +flam3_genome_SOURCES = flam3-genome.c docstring.c +flam3_genome_LDADD = libflam3.la -lm +flam3_animate_SOURCES = flam3-animate.c docstring.c +flam3_animate_LDADD = libflam3.la -lm +flam3_render_SOURCES = flam3-render.c docstring.c +flam3_render_LDADD = libflam3.la -lm +flam3_convert_SOURCES = flam3-convert.c docstring.c +flam3_convert_LDADD = libflam3.la -lm +pkgdata_DATA = flam3-palettes.xml +EXTRA_DIST = rect.c flam3.h palettes.h variations.h interpolation.h parser.h \ + private.h isaac.h isaacs.h img.h test.flam3 vidres.flam3 \ + flam3.dsw render.dsp animate.dsp genome.dsp convert.dsp \ + mkinstalldirs README.txt COPYING.txt flam3-palettes.xml \ + flam3-animate.man flam3-render.man flam3-genome.man flam3-convert.man + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = flam3.pc +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +am--refresh: + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ + cd $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.h: stamp-h1 + @if test ! -f $@; then \ + rm -f stamp-h1; \ + $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ + else :; fi + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: $(am__configure_deps) + cd $(top_srcdir) && $(AUTOHEADER) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 +flam3.pc: $(top_builddir)/config.status $(srcdir)/flam3.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + f=$(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ + else :; fi; \ + done + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + p=$(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libflam3.la: $(libflam3_la_OBJECTS) $(libflam3_la_DEPENDENCIES) + $(libflam3_la_LINK) -rpath $(libdir) $(libflam3_la_OBJECTS) $(libflam3_la_LIBADD) $(LIBS) +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + if test -f $$p \ + || test -f $$p1 \ + ; then \ + f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ + else :; fi; \ + done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ + rm -f "$(DESTDIR)$(bindir)/$$f"; \ + done + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done +flam3-animate$(EXEEXT): $(flam3_animate_OBJECTS) $(flam3_animate_DEPENDENCIES) + @rm -f flam3-animate$(EXEEXT) + $(LINK) $(flam3_animate_OBJECTS) $(flam3_animate_LDADD) $(LIBS) +flam3-convert$(EXEEXT): $(flam3_convert_OBJECTS) $(flam3_convert_DEPENDENCIES) + @rm -f flam3-convert$(EXEEXT) + $(LINK) $(flam3_convert_OBJECTS) $(flam3_convert_LDADD) $(LIBS) +flam3-genome$(EXEEXT): $(flam3_genome_OBJECTS) $(flam3_genome_DEPENDENCIES) + @rm -f flam3-genome$(EXEEXT) + $(LINK) $(flam3_genome_OBJECTS) $(flam3_genome_LDADD) $(LIBS) +flam3-render$(EXEEXT): $(flam3_render_OBJECTS) $(flam3_render_DEPENDENCIES) + @rm -f flam3-render$(EXEEXT) + $(LINK) $(flam3_render_OBJECTS) $(flam3_render_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +.c.o: + $(COMPILE) -c $< + +.c.obj: + $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: + $(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt +install-man1: $(man1_MANS) $(man_MANS) + @$(NORMAL_INSTALL) + test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" + @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ + case "$$i" in \ + *.1*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + if test -f $$i; then file=$$i; \ + else file=$(srcdir)/$$i; fi; \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 1*) ;; \ + *) ext='1' ;; \ + esac; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \ + done +uninstall-man1: + @$(NORMAL_UNINSTALL) + @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ + case "$$i" in \ + *.1*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 1*) ;; \ + *) ext='1' ;; \ + esac; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \ + rm -f "$(DESTDIR)$(man1dir)/$$inst"; \ + done +install-pkgconfigDATA: $(pkgconfig_DATA) + @$(NORMAL_INSTALL) + test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" + @list='$(pkgconfig_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ + $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \ + done + +uninstall-pkgconfigDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ + rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \ + done +install-pkgdataDATA: $(pkgdata_DATA) + @$(NORMAL_INSTALL) + test -z "$(pkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" + @list='$(pkgdata_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(pkgdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgdatadir)/$$f'"; \ + $(pkgdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgdatadir)/$$f"; \ + done + +uninstall-pkgdataDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgdata_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(pkgdatadir)/$$f'"; \ + rm -f "$(DESTDIR)$(pkgdatadir)/$$f"; \ + done +install-includeHEADERS: $(include_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)" + @list='$(include_HEADERS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ + $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ + done + +uninstall-includeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(include_HEADERS)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ + rm -f "$(DESTDIR)$(includedir)/$$f"; \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d $(distdir) || mkdir $(distdir) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r $(distdir) +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ + unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && cd $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @cd $(distuninstallcheck_dir) \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(MANS) $(DATA) $(HEADERS) \ + config.h +install-binPROGRAMS: install-libLTLIBRARIES + +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(includedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ + clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-includeHEADERS install-man \ + install-pkgconfigDATA install-pkgdataDATA + +install-dvi: install-dvi-am + +install-exec-am: install-binPROGRAMS install-libLTLIBRARIES + +install-html: install-html-am + +install-info: install-info-am + +install-man: install-man1 + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-binPROGRAMS uninstall-includeHEADERS \ + uninstall-libLTLIBRARIES uninstall-man uninstall-pkgconfigDATA \ + uninstall-pkgdataDATA + +uninstall-man: uninstall-man1 + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ + clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ + clean-libtool ctags dist dist-all dist-bzip2 dist-gzip \ + dist-lzma dist-shar dist-tarZ dist-zip distcheck distclean \ + distclean-compile distclean-generic distclean-hdr \ + distclean-libtool distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-binPROGRAMS install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am \ + install-includeHEADERS install-info install-info-am \ + install-libLTLIBRARIES install-man install-man1 install-pdf \ + install-pdf-am install-pkgconfigDATA install-pkgdataDATA \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-binPROGRAMS \ + uninstall-includeHEADERS uninstall-libLTLIBRARIES \ + uninstall-man uninstall-man1 uninstall-pkgconfigDATA \ + uninstall-pkgdataDATA + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/README.txt b/src/README.txt new file mode 100644 index 0000000..2e02bdd --- /dev/null +++ b/src/README.txt @@ -0,0 +1,820 @@ +FLAM3 - cosmic recursive fractal flames +see the file COPYING for the license covering this software. + +This is free software to render fractal flames as described on +http://flam3.com. Flam3-animate makes animations, and flam3-render +makes still images. Flam3-genome creates and manipulates genomes +(parameter sets). A C library is also installed. + +Note: the following instructions are written for Linux users. Windows +users may install the cygwin package to get the "env" command or set +the envars in your windows command prompt manually. That means +instead of a command like + + env dtime=5 prefix=foo. in=test.flame flam3-animate + +say + + set dtime=5 + set prefix=foo. + set in=test.flame + flam3-animate + +As usual, to configure, build, and install: + + ./configure + make + sudo make install + +This package depends on development packages for libz, libpng, +libjpeg, and libxml2. + +To test it, run + + flam3-render < test.flam3 + +and it should produce 00000.jpg and 00001.jpg, one image for each +<flame> element in the parameter file. To make an animation run + + flam3-animate < test.flam3 + +and it should produce 100 files named 00000.jpg through 00099.jpg that +interpolate between the two <flame> elements. + + +envar default meaning +===== ======= ======= +prefix (empty) prefix names of output files with this string. +begin j time of first frame to render (j=first time in input file) (animate only) +end n-1 time of last frame to render (n=last time specified in the input file) (animate only) +time NA time of first and last frame (ie do one frame) (animate only) +frame NA synonym for "time" (animate only) +in stdin name of input file +out NA name of output file (bad idea if rending more than one, use prefix instead) +template NA apply defaults based on this genome (genome only) +dtime 1 time between frames (animate only) +fields 0 if 1 then render fields, ie odd scanlines at time+0.5 +nstrips 1 number of strips, ie render fractions of a frame at once (render only) +qs 1 quality scale, multiply quality of all frames by this +ss 1 size scale, multiply size (in pixels) of all frames by this +jpeg NA jpeg quality for compression, default is native jpeg default +format png "jpg" or "ppm" or "png" +pixel_aspect 1.0 aspect ratio of pixels (width over height), eg 0.90909 for NTSC +isaac_seed random string to be used in generating random seed. defaults to time(0) +seed random integer seed for random numbers, defaults to time+pid. deprecated. +nthreads auto number of threads to use (render and animate) +verbose 0 if non-zero then print progress meter on stderr +bits 33 also 32 or 64: sets bit-width of internal buffers (33 means 32-bit floating-point) +bpc 8 bits per channel of color: only png supports 16 (render/animate) +image filename replace palette with png, jpg, or ppm image +use_vars -1 comma sep list of variation #'s to use when generating a random flame (genome only) +dont_use_vars unset comma sep list of variation #'s to NOT use when generating a random flame. (genome only) +cross0 NA randomly select one genome from this file to genetically cross (genome only) +cross1 NA with one genome from this file (genome only) +method NA method for genetic cross: alternate, interpolate, or union. (genome only) +mutate NA randomly mutate a random genome from this file (genome only) +symmetry NA set symmetry of result. (genome only) +clone NA clone random flame in input (genome only) +clone_all NA clones all flames in file. useful for applying template to all flames (genome only) +animate NA interpolates between all flames in a file, using times specified in file (genome only) +sequence NA 360 degree rotation 'loops' times of each control point plus rotating transitions (genome only) +loops NA number of times to rotate each control point in sequence (genome only) +tries 50 number of tries to make to find a good genome. (genome only) +strip NA strip input, frame and nframes control which one. (genome only) +transparency 0 make bknd transparent, if format supports it (render/animate) +name_enable 0 use 'name' attr in <flame> to name image output if present (render only) +nick "" nickname to use in <edit> tags / img comments +url "" url to use in <edit> tags / img comments +id "" ID to use in <edit> tags / img comments +comment "" comment string for <edit> tags (genome only) +use_mem auto floating point number of bytes of memory to use (render only) +noedits unset omit edit tags from output (genome only) +write_genome 0 write out genome associated with center of motion blur window (animate only) +print_edit_depth 0 depth to truncate <edit> tag structure. 0 prints all <edit> tags (genome only) +intpalette unset round palette entries for importing into older Apophysis versions (genome only) +insert_palette unset insert the palette into the image. +enable_jpeg_comments 1 enables comments in the jpeg header (render and animate) +enable_png_comments 1 enables comments in the png header (render and animate) + +New in 2.8: + +earlyclip 0 enables the early clipping of rgb values for better antialiasing and resizing + defaults to 0 for backwards compatibility +flam27 0 flam3 2.7 compatibility mode; ensures generated genomes can be used by flam3 2.7.18 +stagger 0 affects simultaneity of xform interpolation during genome interpolation. + represents how 'separate' the xforms are interpolated. set to 1 for each + xform to be interpolated individually, fractions control interp overlap. + +for example: + + env dtime=5 prefix=foo. in=test.flam3 flam3-animate + +means to render every 5th frame of parameter file foo.flam3, and store +the results in files named foo.XXXX.jpg. + +the flam3-convert program reads from stdin the old format created by +the GIMP and writes to stdout the new xml format. + +the flam3-genome program creates random parameter files. it also mutates, +rotates, and interpolates existing parameter files. for example to +create 10 wholly new control points and render them at normal quality: + + env template=vidres.flam3 repeat=10 flam3-genome > new.flam3 + flam3-render < new.flam3 + +if you left out the "template=vidres.flam3" part then the size, +quality, etc parameters would be their default (small) values. you +can set the symmetry group: + + env template=vidres.flam3 symmetry=3 flam3-genome > new3.flam3 + env template=vidres.flam3 symmetry=-2 flam3-genome > new-2.flam3 + flam3-render < new3.flam3 + flam3-render < new-2.flam3 + +Mutation is done by giving an input flame file to alter: + + env template=vidres.flam3 flam3-genome > parent.flam3 + env prefix=parent. flam3-render < parent.flam3 + env template=vidres.flam3 mutate=parent.flam3 repeat=10 flam3-genome > mutation.flam3 + flam3-render < mutation.flam3 + +Normally one wouldn't use the same file for the template and the file +to mutate. Crossover is handled similarly: + + env template=vidres.flam3 flam3-genome > parent0.flam3 + env prefix=parent0. flam3-render < parent0.flam3 + env template=vidres.flam3 flam3-genome > parent1.flam3 + env prefix=parent1. flam3-render < parent1.flam3 + env template=vidres.flam3 cross0=parent0.flam3 cross1=parent1.flam3 flam3-genome > crossover.flam3 + flam3-render < crossover.flam3 + +flam3-genome has 3 ways to produce parameter files for animation in +the style of electric sheep. the highest level and most useful from +the command line is the sequence method. it takes a collection of +control points and makes an animation that has each flame do fractal +rotation for 360 degrees, then make a smooth transition to the next. +for example: + + env sequence=test.flam3 nframes=20 flam3-genome > seq.flam3 + flam3-animate < seq.flam3 + +creates and renders a 60 frame animation. there are two flames in +test.flam3, so the animation consists three stages: the first one +rotating, then a transition, then the second one rotating. each stage +has 20 frames as specified on the command line. if you want to +render only some fraction of a whole animation file, specify the begin +and end times: + + env begin=20 end=40 flam3-animate < seq.flam3 + +the other two methods are harder to use because they produce files that +are only good for one frame of animation. the output consists of 3 +control points, one for the time requested, one before and one after. +that allows proper motion blur. for example: + + env template=vidres.flam3 flam3-genome > rotme.flam3 + env rotate=rotme.flam3 frame=10 nframes=20 flam3-genome > rot10.flam3 + env frame=10 flam3-animate < rot10.flam3 + +the file rot10.flam3 specifies the animation for just one frame, in +this case 10 out of 20 frames in the complete animation. C1 +continuous electric sheep genetic crossfades are created like this: + + env inter=test.flam3 frame=10 nframes=20 flam3-genome > inter10.flam3 + env frame=10 flam3-animate < inter10.flam3 + +see http://flam3.com/flame.pdf for descriptions & formulas, and +see http://electricsheep.wikispaces.com/Variations for updates. + +The complete list of variations: + + 0. linear + 1. sinusoidal + 2. spherical + 3. swirl + 4. horseshoe + 5. polar + 6. handkerchief + 7. heart + 8. disc + 9. spiral + 10. hyperbolic + 11. diamond + 12. ex + 13. julia + 14. bent + 15. waves + 16. fisheye + 17. popcorn + 18. exponential + 19. power + 20. cosine + 21. rings + 22. fan + 23. blob + 24. pdj + 25. fan2 + 26. rings2 + 27. eyefish + 28. bubble + 29. cylinder + 30. perspective + 31. noise + 32. julian + 33. juliascope + 34. blur + 35. gaussian_blur + 36. radial_blur + 37. pie + 38. ngon + 39. curl + 40. rectangles + 41. arch + 42. tangent + 43. square + 44. rays + 45. blade + 46. secant2 + 47. twintrian + 48. cross + 49. disc2 + 50. super_shape + 51. flower + 52. conic + 53. parabola + 54. bent2 + 55. bipolar + 56. boarders + 57. butterfly + 58. cell + 59. cpow + 60. curve + 61. edisc + 62. elliptic + 63. escher + 64. foci + 65. lazysusan + 66. loonie + 67. pre_blur + 68. modulus + 69. oscilloscope + 70. polar2 + 71. popcorn2 + 72. scry + 73. separation + 74. split + 75. splits + 76. stripes + 77. wedge + 78. wedge_julia + 79. wedge_sph + 80. whorl + 81. waves2 + 82. exp + 83. log + 84. sin + 85. cos + 86. tan + 87. sec + 88. csc + 89. cot + 90. sinh + 91. cosh + 92. tanh + 93. sech + 94. csch + 95. coth + 96. auger + +see http://flam3.com/flame.pdf for descriptions & formulas for each of +these. note that, by default, if a random flame is requested and neither +'use_vars' or 'dont_use_vars' are specified, the following variations are +not used: noise, blur, gaussian_blur, radial_blur, ngon, square, rays, +and cross. + +note: these variations do not use the variation weight to scale their +contributions, and so will not be implemented in flam3: +circlize + + +====================================== + +todo: eliminate all static storage. + +====================================== + +changelog: + +12/20/09 Highlight power now interpolates smoothly from old behavior + (-1) to new behavior. flam3-genome 'split' mode was broken, fixed + (thanks Exper.) Die gracefully instead of segfault when very small + estimator_curve values are specified. Version attribute added to + flame tag. Number of iterations used to fuse attractor increased to + 100. Release as 2.8beta7. + +11/24/09 Potential speedup of 5% over prior versions. Many threading + issues identified and resolved when using flam3 shared library as + back end for user interfaces. 14 complex plane variations added. + auger variation added. new flam3_make_strip library function to + generate stripped genomes for external ui strip renders. bug fix: + when rendering strips, use the same random context for each strip + to prevent edge effects where strips butt against each other. flam3 + will now linearly interpolate missing colors in the colormap. + Release as 2.8beta6. + +10/16/09 Non-threadsafe progress tracking code in main iteration thread + replaced with per-render progress storage. Fixed bug where pausing + render during density estimation stage terminated render. Waves2 + variation fixed (thx Joel F). Release as 2.8beta5. + +10/07/09 Fixed bug affecting 'animate' mode with flam3-genome. Changed + estimate_bounding_box to increase discarded iterations if numerous + badvals were encountered during iterations. Exported a few more + functions for Windows DLL. Release as 2.8beta4. + +10/03/09 Changed color_speed range from 0 (no color change) to 1 + (use new xform color). Animate attribute is now 0 for no motion, + 1 for motion. Removed final xform from stagger algorithm. 'oscope' + parameters are now called 'oscilloscope' to match the rest of the + parametric variations (backwards compatible, so old genomes can be + read.) Stagger now affects morphing as well as sheep rotation, but + only using flam3-genome (not flam3-animate). Release as 2.8beta3. + +03/18/09 Major upgrade : + - 28 variations added, mostly from the sourceforge plugins pack + - significant speed optimization of variations + - setting earlyclip env var on commandline will enable an alternate + calculation of color values, resulting in better antialiasing + - 'highlight_power' flame element controls the white highlights in + dense areas, eliminating the hue shift bug + - Apophysis chaos and solo xform/plotmode features have been + implemented. solo/plotmode are promoted to floating point + 'opacity'. opacity and chaos are both interpolatable. + - <motion> tag now available for xforms...allows cyclic variation + of any regular xform parameter/coef/post. + - env var 'stagger' affects the simultaneity of xform interpolation + when morphing from one flame to another. set to 0 for existing + behaviour, set to 1 to make each xform interpolate individually + - symmetry has been broken out into color_speed and animate tags + with the same sense (which is confusing and will be fixed in a + future release). + - set the flam27 parameter to output backwards compatible genomes. + - passes the consistency test where rendering an image at double + size and filtering it down produces the same results as the + original (modulo quality). + +03/17/09 Added fuzz testing with zzuf to the regression tests. 'Strip' + mode and genomes with the zoom parameter used now break into pieces + properly. insert_palette fixed (broken a few versions ago.) fixed + twintrian variation when small weights are used. various rare + segfaults and memory leaks fixed. 'palette_mode' attribute added to + flame element for smoother palette interpolation in slow animations; + possible values are 'step' and 'linear' ('step' mode is default and + matches previous behaviour.) Release as 2.7.18. + +11/11/08 Add error checking on the numbers in the input genome. Do + not exit on read errors, fail gracefully. Changed sin/cos = tan in + the tangent variation. Added polar to list of variations that use + the inverted linear identity. Bugfix: temporal_filter_exp was not + set properly in template. Apply interpolation attribute in + templates. Add/publish datarootdir with pkg-config so the palette + file is easy to find (for qosmic). Copyright by Spotworks LLC + instead of Spot and Erik. Add fuzz checks to the regression + suite. include LNX/OSX/WIN in the version string. In + flam3-genome animate command, added one to last flame time, so the + end time is inclusive. Release as 2.7.17. + +09/06/08 Added 'clone_all' to flam3_genome to allow application of + template to all flames in a file at once, and 'animate' to write + a full sequence of interpolations out. 'animate' is similar to + 'sequence' except that no control point rotation is performed. + Fixed non-functional 'write_genome' env var for flam3_animate. + Two bugs associated with interpolating from a log interpolation_type + to a non-log interpolation_type fixed (rotate angle reduction and + special inverted identity). when using flam3_rotate in 'spin_inter' + the interp type of the first genome is now used rather than the + current genome's interp type. Enforced upper and lower bounds for + xform color and upper bound for interpolated colormap values + as "smooth" interpolation led to values out of range. If "smooth" + interpolation is specified for all flames in a file, the first and + second-to-last genome is switched to "linear" with a warning. + spatial filters with non-box-filter window functions fixed. + Release as 2.7.16. + + +08/25/08 Added new interpolation types 'old' and 'older', for use in + recreating old animations. 'linear' mode now does not rotate padded + xforms (results in prettier symmetric singularities). switched to + using a 'padding' flag instead of a 'just initialized' flag; padding + flag used for implementation of 'old' and 'older' types. + interpolation_space now deprecated, instead use interpolation_type. + flam3_align is now idempotent (multiple applications do not change + the control points.) Default number of temporal samples bumped to + 1000. Removed CVS headers from source code (now using SVN). + Default interpolation mode now log. Removed 'move' and 'split' vars. + changes to flam3-genome: sequence mode now returns linear + interpolation mode for all control points except first/last of edges + - these cps will use the original interpolation mode; inter and + rotate modes will now return padded genomes for all control points, + all with linear interpolation specified. instead of centering + sometimes reframe by golden mean plus noise. Release as 2.7.15. + +07/21/08 Add configuration option for atomic-ops. bug fix: do not + truncate floating point palettes. new motion blur features: add + temporal_filter_type, can be "box" (default) or "gaussian" or + "exp". Temporal_filter_width and temporal_filter_exp are parms to + it. 'blur' env var no longer used. Small bug fix: iteration + count depends only on the size of the output image, not the padded + image (the gutter). When interpolating, only do -pi/pi adjustment + for non-asymmetric cases. Julian/juliascope variations use the + alternate inverted identity for interpolation (reduces wedge + effect). Add python script for regression and consistency + checking. Add svn revision number to version string (in the + software not of the package). Release as 2.7.14. + +05/28/08 Restored upper limit on particle coordinates. Release as + 2.7.13. + +05/16/08 Added man pages. Removed upper limit on particle + coordinates. fixed FSF address in comments. update to automake + 1.10.1. added eps to denom of perspective fraction to avoid + infinities (thanks fred). Put contents of 'id' env var in png/jpg + comment block. Release as 2.7.12. + +04/05/08 Added 16 bit per channel support to PNG via bpc envar. + isaac.h is now installed with the flam3 headers. Strip indexing + now done with size_t's to fix bug in large images (thanks Paul). + Progress callback now returns ETA, and per-thread verbose flag + functionality fixed. Enumerated spatial filter types now used in + flam3.h, taking the place of function pointers (simplifies the + API). Fix bug by moving precalculation of variation variables to + flam3_iterate (thanks david). Release as 2.7.11. + +03/15/08 fixed interpolation bug when magnitude of rotation/scaling + component of affine transform is 0. replaced secant variation + with more flame-friendly secant2 (eliminates gap in y direction, + scales y-coordinate by weight). warning message now printed when + unrecognized variation is present in an xform. fixed bad + inequality when checking for -pi/pi discontinuity during complex + interpolation. release as 2.7.10. + +02/08/08 non-zero weights for final xforms no longer allowed, and now + have no effect. recompiled windows exes with mingw gcc 4.1 to + take advantage of scalability improvements in flam3 2.7.8 (was + compiling with mingw gcc 3.4 until now). for fedora package + compliance, flam3.pc.in patched by ian weller and moved use of + config.h to c files only. release as 2.7.9. + +01/26/08 better scalability across multiple CPUs by using compare and + swap (from Tim Hockin). fix bug in large images (>2GB). add + flam3_srandom and flam3_malloc/free to better support wrapping + with python on windows, which links with a different C + runtime. add --enable-shared option to configure script (from + Bobby R Ward). release as 2.7.8. + +12/16/07 fixed bug (rare random crash) identified by david burnett. + initialize new xforms with better defaults for parametric + variations (based on interpolated-against xforms). add id envar, + like nick/url. add clone_action envar. return to xform + interpolation based on complex logs, but make consistent decisions + about counter/clockwise rotation across the sheep edges. + interpolation_space attribute to flame element can be set to + "linear" to go back to the simpler method, or "log" to use this + new (default) method. release as 2.7.7 + +10/20/07 fixed action string overflow when many xforms are present. + added 'print_edit_depth' env var to control how many levels of + <edit> tags are saved when using flam3-genome. Fixed wrong + placement of random improve_colors code in flam3-genome. go to + five digit filenames. fixed bug in supershape variation. API + cleanup, thanks to david bitseff. release 2.7.6. + +08/14/07 various code updates to assist with compiling under msvc++. + now can specify --disable-pthread or --enable-pthread to configure + to better control compilation. fixed bug preventing renders of + flames with more than 128 xforms. release 2.7.5. + +07/12/07 fixed bug in split variation, now compatible with both + versions of Apo. added insert_palette option. switched density + estimation kernel from Epanichnikov to Gaussian. genetic cross + now crosses palettes rather than selecting one of the parent + palettes. remove noisy variations from random generation if + use_vars or dont_use_vars not specified. fixed metrics calculated + on small test render for genetic operations. reduced memory + requirements for density estimation filters. 64-bit linux distros + now supported. release 2.7.4. + + +06/21/07 flam3 version, rendered genome, some render statistics and + optionally nick/url stored in jpeg/png headers. fixed two bugs + in isaac rng code (strongly affected temporal blur). prevent + final xform rotation for sheep animation. fixed interpolation + when only one flame has final xform. added Supershape, Flower, + Conic, Parabola, Move and Split variations. Shape combined with + Supershape via 'rnd' parameter. flam3-genome now writes 'name' + attribute for rotate and sequence modes. oversample attribute + deprecated; supersample now preferred. new build process for + windows exes using MinGW/MSYS. added 'intpalette' env var to + round floating point palettes to allow older versions of Apophysis + to read them. default image type is now PNG, transparency off. + density estimation code revised to be more consistent between + different supersample levels, which required change to default + de params. limit number of de filters to conserve memory. fixed + julia variation dependency on non-thread-safe random bit function. + removed random number storage for radial blur variation. + release 2.7.3. + 07/26/08: Note, incompat. change made to direction of cp->rotate + (as of 2.7.3, rotates shortest distance instead of clockwise) + +02/09/07 use isaac random number generator to avoid differences + between mac/pc/linux. use multiple threads to take advantage + of multiple CPUs or cores. new variations: disc2, Arch, + Tangent, Square, Rays, Blade, Secant, Twintrian, Cross. + fixed bug reading hex color format - must remove \n prior to + start of colors if present. use EPS in spiral, hyperbolic + and spherical to eliminate black spots. fix numbering of + disc2, change parameter to estimate_bounding_box. made blur + kernel type templatable. removed extraneous 'enabled="1"' in + writing out final xform information (no longer needed). + release 2.7.2. + +12/31/06 fixed bug in waves precalculation code. curl and rectangles + variations from joel faber. remove visibility of + rotation_center attribute, fix strips operator to handle + rotation without it. added motion exponent and gamma lin + thresh to flam3_print. list of variations in the docstring + automatically generated. flam3-genome: envar noedits + suppresses output of edit history. release 2.7.1. + +09/27/06 print out palette as floating point with up to 6 digits + rather than integers (for very slow smooth transitions). + Added optimization to only recalculate the xform distrib + array when necessary (Thanks Joel Faber). Added settable + kernel for downrez. Added XML reading code for new <palette> + format for gradients. Functionalized hex gradient read. + Removed color shift experimental feature. New + 'motion_exponent' attribute controls fade of temporal steps. + added gaussian_blur and radial_blur vars from apo. added pie + and ngon variations from joel faber. add rotation_center + attribute. added but disabled image variation from joel. + release as 2.7. + +06/26/06 use new libpng api, handle libpng errors properly (from nix + at esperi.org.uk). print out palette as floating point with + 6 digits rather than integers (for very slow smooth + transitions). + +06/11/06 disable density estimation for 16 and 32 bit buffers because + it doesn't work. Apo team removed "enabled" from final xform + specification, so now it defaults to on. make default + temporal samples be 60 so that motion blur is the default, + but explicitly ignore temporal samples when rendering still + frames. add strip genetic operator to flam3-genome for + breaking a flame into strips for parallel rendering. add + subpixel offsets for antialiasing by averaging multiple + images. release as 2.7b8. + +05/25/06 change attribute name "batches" to "passes" because many old + genomes have it set, and with density estimation it is + harmful. + +04/28/06 remove debugging code, release as 2.7b7. + +04/28/06 add attribute interpolation="smooth" for catmull-rom + interpolation. known bug: some frames come out dark. + release as 2.7b6. + +04/15/06 rename XML attribute "estimator" to "estimator_radius". fix + the progress callback. add use_mem envar. move palette + database to external file. cleanup namespace. add new + variations blur, julian, and juliascope. fix flam3-convert. + add experimental color shifting via "shift" envar. supports + finalxform. can read hex palette format. avoids the "square" + that appears from NaNs. release as 2.7b5. + +01/11/06 unlimited number of xforms per flame. new variations + cylinder and perspective. rename rename de_max_filter to + estimator, de_min_filter to estimator_minimum, de_alpha + to estimator_curve, and jitters to temporal_samples. + release as 2.7b4. + +11/28/05 performance optimization, fix symmetry singularities, added + bubble variation, fixed handkerchief variation, templates + apply to sequence and rotate flam3-genome commands, added + envar "name_enable" to render filenames specified in the + "name" attribute of the flame element, small bugfixes, + release as 2.7b3. + +11/04/05 verbose on by default. Added 'transparency' envar for png + renders without transparency channel. Fixed non-black + background jpeg renders. add improve_colors mutation, + rewrite most of estimate_bounding_box. added new variations + blob pdjd fan2 rings2 eyefish. added '33bit' method for + 32-bit floats. <edit> tags track history. alter the gamma + curve to be linear near 0 to avoid singularity and reduce + noise, set with gamma_threshold. release as v2.7b2. + +09/24/05 new density estimator and temporal jitter code from Erik + Reckase (note removal of todo items above :). allow gamma, + vibrancy, contrast, pixels_per_unit, and brightness to vary + as part of the genome rather than as part of the rendering + parameters. flam3-genome does not retry when cloning. ditch + 2nd color coordinates. release as v2.7b1. + +06/27/05 in flam3_dimension, give up and return NaN if 90% or more of + the samples are being clipped. release v2.6. + +06/22/05 add envar to control the number of tries. + +06/06/05 add new form of mutation that introduces post xforms. + +05/20/05 fix memory trashing bug resulting from xform overflow. put + regular xforms before symmetry in printed genomes. enforce + weights non-negative & at least one xform. remove + nan-protection from popcorn variation. truncate xforms with + very small weight. + +05/13/05 fix bug reported by erik reckase where fan variation could + blow up to NaN because the domain of atan2 was not protected. + remove protection from all atan2 calls and instead detect NaN + results and replace them with noise. count really large + values as bad too to prevent blowing up to infinity. enforce + 0<=hue<1, release v2.6b1. + +05/05/05 report choices made during genome generation in notes + attribute. flam3_dimension no longer hangs when most of the + attractor is outside the camera. limit number of variations + produced by genetic operators to 5. reduce rate of + interpolation method of crossover. + +03/17/05 put cloning back in (found by James Rantanen). + +03/08/05 change sawtooth variation (incompatible!). add fan + variation. rename sawtooth to rings. release as v2.5. + +03/01/05 fix rotation when nstrips > 1. add flam3_dimension(). minor + bugfixes. release as v2.4. + +01/25/05 release as v2.3. + +01/18/05 support post xforms (idea from eric nguyen). support camera + rotation. + +12/28/04 release as v2.2. + +12/27/04 preview implementation of image fractalization by adding a + color coordinate. changed how random/default color + coordinates are selected (they alternate 0 and 1 instead of + being distributed between 0 and 1). WARNING: incompatible + format change to samples argument of flam3_iterate. + +12/20/04 allow mutation and crossover from files with multiple + genomes. a random genome is selected for each repetition. + +12/11/04 fix bug printing out interpolated non-built-in palettes. + warn if any images sizes in animation do not match. + +12/01/04 remove debugging code left in flam3-convert, thanks to Paul + Fishwick for reporting this. add cosine variation. add + sawtooth variation. handle nstrips that do not divide the + height. write partial results as strips are computed. fix + old bug where in 32 bit mode one of the terms appeared to be + calculated at 16 bits. release as v2.1. + +10/28/04 fix docstring bug. release as v2.0.1. + +10/28/04 renaming, cleanup, and modularization. now exports + libflam3.a and flam3.h, all names prefixed with flam3_. + binaries named with flam3- prefix, genome files use flam3 + suffix. create and install a flam3.pc pkg-config file. + release as v2.0. + +09/21/04 fix bug where code for integer rounding was left in 64-bit + floating point version. round remaining time up so we do not + say ETA in 0 seconds. do not use static allocation to hold + onto memory, just malloc and free what we need every frame. + enforce positive oversampling. fix bug in hqi on sequences + of images of different sizes. release as v1.15. + +09/17/04 change name of envar to control jpeg compression quality from + "quality" to "jpeg". check for bad nbatches values. release + as v1.14. + +08/23/04 add about 600 cmaps from Jackie, Pat Phillips, Classylady, + and BTomchek. use 64-bit (double) sized buffers. remove + white_level. add new variations: exponential & power. fix + bug where hue_rotation was left uninitialized. add clone + option to pick-flame which just applies template to the input + without modifying genome. random_control_point can now put + multiple variations in one xform. remove altivec code because + it is incompatible with 64-bit buffers. verbose (progress bar + on stderr) from Jon Morton. control random number seeds via + seed envar. support buffer sizes 16, 32, or 64 bits with + three versions of rect.c included into libifs.c. + +03/28/04 fix bug interpolating between flames with different numbers + of xforms introduced by the new de/parsing. add modified + version of the popcorn variation from apophysis. fix small + bug in waves variation. make distribution of variations + even. add altivec code from R.J. Berry of warwick.ac.uk. + release as v1.13. + +03/26/04 add wave variation. allow negative variational coefs. do + not truncate filter width to an integer. add fisheye + variation. make variations print by name instead of using a + vector, that is say spherical="1" instead of var="0 0 1" or + var1="2". it should still read the old format. + +03/07/04 fix bug printing out result of interpolating between + symmetries. release as v1.11. + +03/03/04 add new means of crossover: a random point between the + parents as defined by linear interpolation. in all kinds of + crossover, reset the color coordinates to make sure they are + spread out well. somehow lost part of the extra_attributes + patch, so put it in again. add pixel_aspect_ratio envar. + decrease filter cutoff threshold. the edges of the filter + were almost zeros, so making the filter smaller saves time + with almost no effect on the results. do not print out the + attributes of control points that have default values. + release as v1.10. + +02/26/04 remove prefix argument to print_control_point, and add + extra_attributes. allow any value for vibrancy parameter. + allow variation blending coefs to have any values. do not + normalize them. on windows nstrips is computated + automatically to fit within memory (leaves at least 20% + unused). support png image format and if output is png then + compute & output alpha channel. release as v1.9. + +02/01/04 add julia variation, and put bent variation back in. change + how colors are computed in presense of symmetry: xforms that + come from a symmetry do not change the color index. this + prevents the colors from washing out. since an xform may be + interpolated between a symmetry and not, this this is a + blending factor. add more documentation. add function to + compute lyapunov coefs. allow control over symmetries + produced by pick-flame. release as v1.8. + +07/20/03 cleanup, update documentation, release as v1.7. + +07/15/03 fix bug in interpolation where in last frame when going from + non-symmetric to symmetric it left out some xforms. drop + support for "cmap_inter". add var1 as a abbreviation to var + in xml output, and do not print trailing 0s in var string. + +07/09/03 change matrix interpolation to be linear rather than complex + log to avoid the discontinuity at 180 degrees. this was + causing jumpiness in the C1 continuous algorithm. this means + that rotation has to be handled with pick-flame. put direct + support for symmetries in the de/parser to make control + points smaller and easier to understand. support + combinations of bilateral & rotational symmetry. + +06/22/03 bug in colormap interpolation. release as v1.6. + +06/20/03 fix some bugs, in particular remove sorting of the xforms + when control points are read. they are only sorted when they + are generated. updated dates on copyright notices. added + time parameter to anim, shorthand for begin & end being the + same. added a fairly terrible hack to allow palettes to be + specified as blending of two basic palettes. this requires + much less bandwidth than sending 256 rgb triples. in + pick-flame change default to be enclosed xml output. + +06/09/03 add C1 continuous interpolation to pick-flame (suggested by + Cassidy Curtis). added new variations from Ultra Fractal + version by Mark Townsend. added symmetry xforms. + +06/02/03 add convert-flame which reads the old file format and writes + the new one. release as v1.5. + +03/22/03 fix bug in hqi & anim. somewhere along the way (prolly jpeg) + nstrips was broken. add qs and ss params to hqi. + discontinue strips for anim because the implementation is a + bit problematic (animating zoom??). bump version to 1.4. + +03/05/03 add pick-flame.c to the project, and extend it with mutation + and crossover capability. add parse_control_points_from_file + (and use it). rename non-xml variants of de/parsers to *_old + and rename xml variants to remove _xml. add + rotate_control_point. bump version to 1.3. + +02/10/03 increase CHOOSE_XFORM_GRAIN by 10x and use chars instead of + ints. remove extra -ljpeg from Makefile. lose hack that + ignored density xforms after interpolation. what was that + for?? it makes a difference, and just makes interpolation + less smooth as far as i can tell. bump version to 1.2. + +01/17/03 release as v1.1. + +01/16/03 support output in jpeg format; this is the default. support + win32. + +01/08/03 by default don't render the last frame so that animations + dove-tail and loop + +01/06/03 fix how too many xforms are detected so that one more xform + is allowed. + +12/22/02 first release as independent package. release as v1.0. diff --git a/src/aclocal.m4 b/src/aclocal.m4 new file mode 100644 index 0000000..066dfa3 --- /dev/null +++ b/src/aclocal.m4 @@ -0,0 +1,896 @@ +# generated automatically by aclocal 1.10.2 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],, +[m4_warning([this file was generated for autoconf 2.63. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically `autoreconf'.])]) + +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.10' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.10.2], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.10.2])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 9 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +#serial 5 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 + +# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. +AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 13 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.60])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_PROG_INSTALL_SH +AM_PROG_INSTALL_STRIP +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar <conftest.tar]) + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([m4/libtool.m4]) +m4_include([m4/ltoptions.m4]) +m4_include([m4/ltsugar.m4]) +m4_include([m4/ltversion.m4]) +m4_include([m4/lt~obsolete.m4]) diff --git a/src/animate.dsp b/src/animate.dsp new file mode 100644 index 0000000..59291ea --- /dev/null +++ b/src/animate.dsp @@ -0,0 +1,138 @@ +# Microsoft Developer Studio Project File - Name="anim" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=anim - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "animate.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "animate.mak" CFG="anim - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "anim - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "anim - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "anim - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "c:\src\libpng" /I "c:\src\zlib" /I "c:\src\libxml2\include" /I "c:\src\jpeg" /I "c:\src\iconv\include" /I "c:\src\pthreads" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /Zm1000 /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib c:\src\jpeg\libjpeg.lib c:\src\libpng\libpng.lib c:\src\libxml2\lib\libxml2.lib c:\src\zlib\zlib.lib c:\src\pthreads\pthreadVC2.lib /nologo /subsystem:console /machine:I386 /out:"Release/flam3-animate.exe" + +!ELSEIF "$(CFG)" == "anim - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "c:\src\jpeg" /I "c:\src\libpng" /I "c:\src\zlib" /I "c:\src\libxml2\include" /I "c:\src\iconv\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /Zm1000 /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib c:\src\jpeg\libjpeg.lib c:\src\libpng\libpng.lib c:\src\libxml2\lib\libxml2.lib c:\src\zlib\zlib.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "anim - Win32 Release" +# Name "anim - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\docstring.c +# End Source File +# Begin Source File + +SOURCE=".\flam3-animate.c" +# End Source File +# Begin Source File + +SOURCE=".\flam3-palettes.c" +# End Source File +# Begin Source File + +SOURCE=.\flam3.c +# End Source File +# Begin Source File + +SOURCE=.\isaac.c +# End Source File +# Begin Source File + +SOURCE=.\jpeg.c +# End Source File +# Begin Source File + +SOURCE=.\png.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=config.h +# End Source File +# Begin Source File + +SOURCE=.\jpeg.h +# End Source File +# Begin Source File + +SOURCE=rect.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/src/config.guess b/src/config.guess new file mode 100755 index 0000000..278f9e9 --- /dev/null +++ b/src/config.guess @@ -0,0 +1,1516 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, +# Inc. + +timestamp='2007-07-22' + +# 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 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. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Originally written by Per Bothner <per@bothner.com>. +# Please send patches to <config-patches@gnu.org>. Submit a context +# diff and a properly formatted ChangeLog entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to <config-patches@gnu.org>." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep __ELF__ >/dev/null + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include <stdio.h> /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include <sys/systemcfg.h> + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[45]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include <stdlib.h> + #include <unistd.h> + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep __LP64__ >/dev/null + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include <unistd.h> + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:[3456]*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + EM64T | authenticamd) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + arm*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + mips:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips + #undef mipsel + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mipsel + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips64 + #undef mips64el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mips64el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips64 + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit ;; + xtensa:Linux:*:*) + echo xtensa-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. + # Set LC_ALL=C to ensure ld outputs messages in English. + ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ + | sed -ne '/supported targets:/!d + s/[ ][ ]*/ /g + s/.*supported targets: *// + s/ .*// + p'` + case "$ld_supported_targets" in + elf32-i386) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + a.out-i386-linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" + exit ;; + coff-i386) + echo "${UNAME_MACHINE}-pc-linux-gnucoff" + exit ;; + "") + # Either a pre-BFD a.out linker (linux-gnuoldld) or + # one that does not give us useful --help. + echo "${UNAME_MACHINE}-pc-linux-gnuoldld" + exit ;; + esac + # Determine whether the default compiler is a.out or elf + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include <features.h> + #ifdef __ELF__ + # ifdef __GLIBC__ + # if __GLIBC__ >= 2 + LIBC=gnu + # else + LIBC=gnulibc1 + # endif + # else + LIBC=gnulibc1 + # endif + #else + #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) + LIBC=gnu + #else + LIBC=gnuaout + #endif + #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^LIBC/{ + s: ::g + p + }'`" + test x"${LIBC}" != x && { + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit + } + test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` + echo ${UNAME_MACHINE}-pc-isc$UNAME_REL + elif /bin/uname -X 2>/dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i386. + echo i386-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says <Richard.M.Bartel@ccMail.Census.GOV> + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes <hewes@openmarket.com>. + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c <<EOF +#ifdef _SEQUENT_ +# include <sys/types.h> +# include <sys/utsname.h> +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include <sys/param.h> + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix\n"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include <sys/param.h> +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + c34*) + echo c34-convex-bsd + exit ;; + c38*) + echo c38-convex-bsd + exit ;; + c4*) + echo c4-convex-bsd + exit ;; + esac +fi + +cat >&2 <<EOF +$0: unable to guess system type + +This script, last modified $timestamp, has failed to recognize +the operating system you are using. It is advised that you +download the most up to date version of the config scripts from + + http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess +and + http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub + +If the version you run ($0) is already up to date, please +send the following data and any information you think might be +pertinent to <config-patches@gnu.org> in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/src/config.h.in b/src/config.h.in new file mode 100644 index 0000000..28af21a --- /dev/null +++ b/src/config.h.in @@ -0,0 +1,89 @@ +/* config.h.in. Generated from configure.in by autoheader. */ + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#undef HAVE_DLFCN_H + +/* Have 64-bit __sync_bool_compare_and_swap() and friends. */ +#undef HAVE_GCC_64BIT_ATOMIC_OPS + +/* Have 32-bit __sync_bool_compare_and_swap() and friends. */ +#undef HAVE_GCC_ATOMIC_OPS + +/* Define to 1 if you have the <inttypes.h> header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the `jpeg' library (-ljpeg). */ +#undef HAVE_LIBJPEG + +/* Define to 1 if you have the `png' library (-lpng). */ +#undef HAVE_LIBPNG + +/* Define to 1 if you have the `pthread' library (-lpthread). */ +#undef HAVE_LIBPTHREAD + +/* Define to 1 if you have the `xml2' library (-lxml2). */ +#undef HAVE_LIBXML2 + +/* Define to 1 if you have the `z' library (-lz). */ +#undef HAVE_LIBZ + +/* Define to 1 if you have the <memory.h> header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the <stdint.h> header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the <stdlib.h> header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the <strings.h> header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the <string.h> header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the <sys/types.h> header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ +#undef TIME_WITH_SYS_TIME + +/* Version number of package */ +#undef VERSION + +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const + +/* Define to `unsigned int' if <sys/types.h> does not define. */ +#undef size_t diff --git a/src/config.sub b/src/config.sub new file mode 100755 index 0000000..1761d8b --- /dev/null +++ b/src/config.sub @@ -0,0 +1,1626 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, +# Inc. + +timestamp='2007-06-28' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# 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 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. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Please send patches to <config-patches@gnu.org>. Submit a context +# diff and a properly formatted ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to <config-patches@gnu.org>." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray) + os= + basic_machine=$1 + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore | mep \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64vr | mips64vrel \ + | mips64orion | mips64orionel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | mt \ + | msp430 \ + | nios | nios2 \ + | ns16k | ns32k \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | score \ + | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ + | we32k \ + | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ + | z8k) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa-* \ + | ymp-* \ + | z8k-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/src/configure b/src/configure new file mode 100755 index 0000000..9b8d595 --- /dev/null +++ b/src/configure @@ -0,0 +1,14453 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.63. +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + +if test "x$CONFIG_SHELL" = x; then + if (eval ":") 2>/dev/null; then + as_have_required=yes +else + as_have_required=no +fi + + if test $as_have_required = yes && (eval ": +(as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=\$LINENO + as_lineno_2=\$LINENO + test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && + test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } +") 2> /dev/null; then + : +else + as_candidate_shells= + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + case $as_dir in + /*) + for as_base in sh bash ksh sh5; do + as_candidate_shells="$as_candidate_shells $as_dir/$as_base" + done;; + esac +done +IFS=$as_save_IFS + + + for as_shell in $as_candidate_shells $SHELL; do + # Try only shells that exist, to save several forks. + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { ("$as_shell") 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +_ASEOF +}; then + CONFIG_SHELL=$as_shell + as_have_required=yes + if { "$as_shell" 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +(as_func_return () { + (exit $1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = "$1" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test $exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } + +_ASEOF +}; then + break +fi + +fi + + done + + if test "x$CONFIG_SHELL" != x; then + for as_var in BASH_ENV ENV + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + + if test $as_have_required = no; then + echo This script requires a shell more modern than all the + echo shells that I found on your system. Please install a + echo modern shell, or manually run the script under such a + echo shell if you do have one. + { (exit 1); exit 1; } +fi + + +fi + +fi + + + +(eval "as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0") || { + echo No shell found that supports shell functions. + echo Please tell bug-autoconf@gnu.org about your system, + echo including any error possibly output before this message. + echo This can help us improve future autoconf versions. + echo Configuration will now proceed without shell functions. +} + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + + +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$lt_ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` + ;; +esac + +ECHO=${lt_ECHO-echo} +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then + # Yippee, $ECHO works! + : +else + # Restart under the correct shell. + exec $SHELL "$0" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat <<_LT_EOF +$* +_LT_EOF + exit 0 +fi + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test -z "$lt_ECHO"; then + if test "X${echo_test_string+set}" != Xset; then + # find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if { echo_test_string=`eval $cmd`; } 2>/dev/null && + { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null + then + break + fi + done + fi + + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : + else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$ECHO" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + ECHO='print -r' + elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} + else + # Try using printf. + ECHO='printf %s\n' + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + ECHO="$CONFIG_SHELL $0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$CONFIG_SHELL $0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do + if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "$0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} + else + # Oops. We lost completely, so just stick with echo. + ECHO=echo + fi + fi + fi + fi + fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +lt_ECHO=$ECHO +if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then + lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" +fi + + + + +exec 7<&0 </dev/null 6>&1 + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Identity of this package. +PACKAGE_NAME= +PACKAGE_TARNAME= +PACKAGE_VERSION= +PACKAGE_STRING= +PACKAGE_BUGREPORT= + +ac_unique_file="flam3-animate.c" +# Factoring default headers for most tests. +ac_includes_default="\ +#include <stdio.h> +#ifdef HAVE_SYS_TYPES_H +# include <sys/types.h> +#endif +#ifdef HAVE_SYS_STAT_H +# include <sys/stat.h> +#endif +#ifdef STDC_HEADERS +# include <stdlib.h> +# include <stddef.h> +#else +# ifdef HAVE_STDLIB_H +# include <stdlib.h> +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include <memory.h> +# endif +# include <string.h> +#endif +#ifdef HAVE_STRINGS_H +# include <strings.h> +#endif +#ifdef HAVE_INTTYPES_H +# include <inttypes.h> +#endif +#ifdef HAVE_STDINT_H +# include <stdint.h> +#endif +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif" + +ac_subst_vars='LTLIBOBJS +LIBOBJS +XML2_CONFIG +CPP +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +lt_ECHO +RANLIB +AR +OBJDUMP +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +EGREP +GREP +SED +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_pthread +enable_atomic_ops +enable_dependency_tracking +enable_shared +enable_static +with_pic +enable_fast_install +with_gnu_ld +enable_libtool_lock +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 + { (exit 1); exit 1; }; } + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 + { (exit 1); exit 1; }; } + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 + { (exit 1); exit 1; }; } + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 + { (exit 1); exit 1; }; } + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { $as_echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { $as_echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 + { (exit 1); exit 1; }; } ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; } +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + { $as_echo "$as_me: error: working directory cannot be determined" >&2 + { (exit 1); exit 1; }; } +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 + { (exit 1); exit 1; }; } + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 + { (exit 1); exit 1; }; } + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures this package to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-pthread compile FLAM3 with threads enabled (default=yes) + --enable-atomic-ops compile FLAM3 with atom ops enabled (default=yes, independently checks for 32 and 64 bit sizes) + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --enable-shared[=PKGS] build shared libraries [default=no] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a + nonstandard directory <lib dir> + LIBS libraries to pass to the linker, e.g. -l<library> + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if + you have headers in a nonstandard directory <include dir> + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +configure +generated by GNU Autoconf 2.63 + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by $as_me, which was +generated by GNU Autoconf 2.63. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" +done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 2) + ac_configure_args1="$ac_configure_args1 '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + ac_configure_args="$ac_configure_args '$ac_arg'" + ;; + esac + done +done +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------------- ## +## File substitutions. ## +## ------------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + ac_site_file1=$CONFIG_SITE +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test -r "$ac_site_file"; then + { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +fi + + + + + + + + + + + + + + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_config_headers="$ac_config_headers config.h" + +# Check whether --enable-pthread was given. +if test "${enable_pthread+set}" = set; then + enableval=$enable_pthread; +fi + +# Check whether --enable-atomic_ops was given. +if test "${enable_atomic_ops+set}" = set; then + enableval=$enable_atomic_ops; +fi + +am__api_version='1.10' + +ac_aux_dir= +for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 +$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} + { (exit 1); exit 1; }; } +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + +done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&5 +$as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&2;} + { (exit 1); exit 1; }; } + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files! +Check your system clock" >&5 +$as_echo "$as_me: error: newly created file is older than distributed files! +Check your system clock" >&2;} + { (exit 1); exit 1; }; } +fi +{ $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if test "${ac_cv_path_mkdir+set}" = set; then + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done +done +IFS=$as_save_IFS + +fi + + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + test -d ./--version && rmdir ./--version + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AWK+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:$LINENO: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 +$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} + { (exit 1); exit 1; }; } + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE=flam3 + VERSION="2.8b7" + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. + +AMTAR=${AMTAR-"${am_missing_run}tar"} + +am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' + + + + + + + + +# Save CFLAGS from the environment +save_CFLAGS=$CFLAGS + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } + +# Provide some information about the compiler. +$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { (ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi + +{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +if test -z "$ac_file"; then + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: C compiler cannot create executables +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; }; } +fi + +ac_exeext=$ac_cv_exeext + +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } + fi + fi +fi +{ $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } +fi + +rm -f conftest$ac_cv_exeext +{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if test "${ac_cv_objext+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } +fi + +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_compiler_gnu=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <stdarg.h> +#include <stdio.h> +#include <sys/types.h> +#include <sys/stat.h> +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_c89=$ac_arg +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:$LINENO: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:$LINENO: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi + + +{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +CFLAGS=$save_CFLAGS + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + +done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +# Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=no +fi + + + + + + + + + +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:$LINENO: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.2.6' +macro_revision='1.3012' + + + + + + + + + + + + + +ltmain="$ac_aux_dir/ltmain.sh" + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 +$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} + { (exit 1); exit 1; }; } + +{ $as_echo "$as_me:$LINENO: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if test "${ac_cv_build+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { (exit 1); exit 1; }; } +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 +$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 +$as_echo "$as_me: error: invalid value of canonical build" >&2;} + { (exit 1); exit 1; }; };; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:$LINENO: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if test "${ac_cv_host+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 +$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 +$as_echo "$as_me: error: invalid value of canonical host" >&2;} + { (exit 1); exit 1; }; };; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if test "${ac_cv_path_SED+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + $as_unset ac_script || ac_script= + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done +done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable sed could be found in \$PATH" >&5 +$as_echo "$as_me: error: no acceptable sed could be found in \$PATH" >&2;} + { (exit 1); exit 1; }; } + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if test "${ac_cv_path_GREP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done +done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:$LINENO: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done +done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:$LINENO: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if test "${ac_cv_path_FGREP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done +done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if test "${lt_cv_path_LD+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break + ;; + *) + test "$with_gnu_ld" != yes && break + ;; + esac + fi + done + IFS="$lt_save_ifs" +else + lt_cv_path_LD="$LD" # Let the user override the test with a path. +fi +fi + +LD="$lt_cv_path_LD" +if test -n "$LD"; then + { $as_echo "$as_me:$LINENO: result: $LD" >&5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if test "${lt_cv_prog_gnu_ld+set}" = set; then + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 </dev/null` in +*GNU* | *'with BFD'*) + lt_cv_prog_gnu_ld=yes + ;; +*) + lt_cv_prog_gnu_ld=no + ;; +esac +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if test "${lt_cv_path_NM+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$ac_tool_prefix"; then + for ac_prog in "dumpbin -symbols" "link -dump -symbols" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_DUMPBIN+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:$LINENO: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in "dumpbin -symbols" "link -dump -symbols" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if test "${lt_cv_nm_interface+set}" = set; then + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:4481: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:4484: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:4487: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if test "${lt_cv_sys_max_cmd_len+set}" = set; then + $as_echo_n "(cached) " >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ + = "XX$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { $as_echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:$LINENO: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +{ $as_echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ $as_echo "$as_me:$LINENO: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } + + +{ $as_echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ $as_echo "$as_me:$LINENO: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if test "${lt_cv_ld_reload_flag+set}" = set; then + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OBJDUMP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + + +{ $as_echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if test "${lt_cv_deplibs_check_method+set}" = set; then + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AR+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:$LINENO: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_AR+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_RANLIB+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 + (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:$LINENO: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:$LINENO: result: ok" >&5 +$as_echo "ok" >&6; } +fi + + + + + + + + + + + + + + + + + + + + + + + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line 5693 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if test "${lt_cv_cc_needs_belf+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + lt_cv_cc_needs_belf=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + lt_cv_cc_needs_belf=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_DSYMUTIL+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:$LINENO: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_NMEDIT+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:$LINENO: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_LIPO+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:$LINENO: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OTOOL+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:$LINENO: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OTOOL64+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:$LINENO: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:$LINENO: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if test "${lt_cv_apple_cc_single_mod+set}" = set; then + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + { $as_echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if test "${lt_cv_ld_exported_symbols_list+set}" = set; then + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + lt_cv_ld_exported_symbols_list=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + lt_cv_ld_exported_symbols_list=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + # <limits.h> exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <ac_nonexistent.h> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + # <limits.h> exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <ac_nonexistent.h> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if test "${ac_cv_header_stdc+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <stdlib.h> +#include <stdarg.h> +#include <string.h> +#include <float.h> + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_stdc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <string.h> + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <stdlib.h> + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <ctype.h> +#include <stdlib.h> +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. + + + + + + + + + +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_ac_Header=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + +for ac_header in dlfcn.h +do +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_ac_Header=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + +# Set options + + + + enable_dlopen=no + + + enable_win32_dll=no + + + + # Check whether --enable-static was given. +if test "${enable_static+set}" = set; then + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then + withval=$with_pic; pic_mode="$withval" +else + pic_mode=default +fi + + +test -z "$pic_mode" && pic_mode=default + + + + + + + + # Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:$LINENO: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if test "${lt_cv_objdir+set}" = set; then + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +#define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + + + + + + + + + + + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:$LINENO: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + lt_prog_compiler_no_builtin_flag=' -fno-builtin' + + { $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:7520: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:7524: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + +{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl*) + # IBM XL C 8.0/Fortran 10.1 on PPC + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Sun\ F*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac +{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 +$as_echo "$lt_prog_compiler_pic" >&6; } + + + + + + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if test "${lt_cv_prog_compiler_pic_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:7859: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:7863: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if test "${lt_cv_prog_compiler_static_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:7964: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:7968: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:8019: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:8023: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + ld_shlibs=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach <jrb3@best.com> says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag= + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld='-rpath $libdir' + archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + link_all_deplibs=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes=yes + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + whole_archive_flag_spec='' + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=echo + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + freebsd1*) + ld_shlibs=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_flag_spec_ld='+b $libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat >conftest.$ac_ext <<_ACEOF +int foo(void) {} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='${wl}-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:$LINENO: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc=no + else + archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 +$as_echo "$archive_cmds_need_lc" >&6; } + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` + else + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib<name>.so + # instead of lib<name>.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix[3-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then + shlibpath_overrides_runpath=yes +fi + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_dl_dlopen=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + { $as_echo "$as_me:$LINENO: checking for shl_load" >&5 +$as_echo_n "checking for shl_load... " >&6; } +if test "${ac_cv_func_shl_load+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load. + For example, HP-UX 11i <limits.h> declares gettimeofday. */ +#define shl_load innocuous_shl_load + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char shl_load (); below. + Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + <limits.h> exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + +#undef shl_load + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_shl_load || defined __stub___shl_load +choke me +#endif + +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_func_shl_load=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_shl_load=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 +$as_echo "$ac_cv_func_shl_load" >&6; } +if test "x$ac_cv_func_shl_load" = x""yes; then + lt_cv_dlopen="shl_load" +else + { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if test "${ac_cv_lib_dld_shl_load+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_dld_shl_load=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dld_shl_load=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = x""yes; then + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + { $as_echo "$as_me:$LINENO: checking for dlopen" >&5 +$as_echo_n "checking for dlopen... " >&6; } +if test "${ac_cv_func_dlopen+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen. + For example, HP-UX 11i <limits.h> declares gettimeofday. */ +#define dlopen innocuous_dlopen + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char dlopen (); below. + Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + <limits.h> exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + +#undef dlopen + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_dlopen || defined __stub___dlopen +choke me +#endif + +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_func_dlopen=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_dlopen=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 +$as_echo "$ac_cv_func_dlopen" >&6; } +if test "x$ac_cv_func_dlopen" = x""yes; then + lt_cv_dlopen="dlopen" +else + { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_dl_dlopen=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { $as_echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if test "${ac_cv_lib_svld_dlopen+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_svld_dlopen=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_svld_dlopen=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = x""yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { $as_echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if test "${ac_cv_lib_dld_dld_link+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_dld_dld_link=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dld_dld_link=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = x""yes; then + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if test "${lt_cv_dlopen_self+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line 10832 "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include <dlfcn.h> +#endif + +#include <stdio.h> + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if test "${lt_cv_dlopen_self_static+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line 10928 "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include <dlfcn.h> +#endif + +#include <stdio.h> + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { $as_echo "$as_me:$LINENO: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { $as_echo "$as_me:$LINENO: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + +{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if test "${ac_cv_header_stdc+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <stdlib.h> +#include <stdarg.h> +#include <string.h> +#include <float.h> + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_stdc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <string.h> + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <stdlib.h> + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <ctype.h> +#include <stdlib.h> +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +{ $as_echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 +$as_echo_n "checking for an ANSI C-conforming const... " >&6; } +if test "${ac_cv_c_const+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +/* FIXME: Include the comments suggested by Paul. */ +#ifndef __cplusplus + /* Ultrix mips cc rejects this. */ + typedef int charset[2]; + const charset cs; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + pcpcc = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; + { /* SCO 3.2v4 cc rejects this. */ + char *t; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + if (s) return 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* AIX XL C 1.02.0.0 rejects this saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; }; + struct s *b; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + if (!foo) return 0; + } + return !cs[0] && !zero.x; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_c_const=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_c_const=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 +$as_echo "$ac_cv_c_const" >&6; } +if test $ac_cv_c_const = no; then + +cat >>confdefs.h <<\_ACEOF +#define const /**/ +_ACEOF + +fi + +{ $as_echo "$as_me:$LINENO: checking for size_t" >&5 +$as_echo_n "checking for size_t... " >&6; } +if test "${ac_cv_type_size_t+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_type_size_t=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof (size_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((size_t))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_size_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 +$as_echo "$ac_cv_type_size_t" >&6; } +if test "x$ac_cv_type_size_t" = x""yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define size_t unsigned int +_ACEOF + +fi + +{ $as_echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 +$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } +if test "${ac_cv_header_time+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <sys/types.h> +#include <sys/time.h> +#include <time.h> + +int +main () +{ +if ((struct tm *) 0) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_time=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_time=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 +$as_echo "$ac_cv_header_time" >&6; } +if test $ac_cv_header_time = yes; then + +cat >>confdefs.h <<\_ACEOF +#define TIME_WITH_SYS_TIME 1 +_ACEOF + +fi + + +{ $as_echo "$as_me:$LINENO: checking for deflateInit_ in -lz" >&5 +$as_echo_n "checking for deflateInit_ in -lz... " >&6; } +if test "${ac_cv_lib_z_deflateInit_+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char deflateInit_ (); +int +main () +{ +return deflateInit_ (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_z_deflateInit_=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_z_deflateInit_=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_z_deflateInit_" >&5 +$as_echo "$ac_cv_lib_z_deflateInit_" >&6; } +if test "x$ac_cv_lib_z_deflateInit_" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBZ 1 +_ACEOF + + LIBS="-lz $LIBS" + +else + { { $as_echo "$as_me:$LINENO: error: zlib is required." >&5 +$as_echo "$as_me: error: zlib is required." >&2;} + { (exit 1); exit 1; }; } +fi + + +{ $as_echo "$as_me:$LINENO: checking for png_write_image in -lpng" >&5 +$as_echo_n "checking for png_write_image in -lpng... " >&6; } +if test "${ac_cv_lib_png_png_write_image+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpng $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char png_write_image (); +int +main () +{ +return png_write_image (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_png_png_write_image=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_png_png_write_image=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_png_png_write_image" >&5 +$as_echo "$ac_cv_lib_png_png_write_image" >&6; } +if test "x$ac_cv_lib_png_png_write_image" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBPNG 1 +_ACEOF + + LIBS="-lpng $LIBS" + +else + { { $as_echo "$as_me:$LINENO: error: The png library is required." >&5 +$as_echo "$as_me: error: The png library is required." >&2;} + { (exit 1); exit 1; }; } +fi + + +{ $as_echo "$as_me:$LINENO: checking for xmlParseFile in -lxml2" >&5 +$as_echo_n "checking for xmlParseFile in -lxml2... " >&6; } +if test "${ac_cv_lib_xml2_xmlParseFile+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lxml2 $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char xmlParseFile (); +int +main () +{ +return xmlParseFile (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_xml2_xmlParseFile=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_xml2_xmlParseFile=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_xml2_xmlParseFile" >&5 +$as_echo "$ac_cv_lib_xml2_xmlParseFile" >&6; } +if test "x$ac_cv_lib_xml2_xmlParseFile" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBXML2 1 +_ACEOF + + LIBS="-lxml2 $LIBS" + +else + { { $as_echo "$as_me:$LINENO: error: The xml2 library is required." >&5 +$as_echo "$as_me: error: The xml2 library is required." >&2;} + { (exit 1); exit 1; }; } +fi + + + +if test "${enable_atomic_ops}" = "" ; then + enable_atomic_ops=yes +fi + +if test "${enable_atomic_ops}" = "yes" ; then + + { $as_echo "$as_me:$LINENO: checking whether $CC knows 32-bit __sync_bool_compare_and_swap()" >&5 +$as_echo_n "checking whether $CC knows 32-bit __sync_bool_compare_and_swap()... " >&6; } + cat >conftest.$ac_ext <<_ACEOF +#include <stdint.h> + int main() { uint32_t a = 4; + __sync_bool_compare_and_swap(&a, 4, 5); } +_ACEOF + $CC conftest.c $CFLAGS -o conftest > /dev/null 2> /dev/null + ret=$? + rm -f conftest.o conftest + if test $ret -eq 0 ; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_GCC_ATOMIC_OPS 1 +_ACEOF + + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:$LINENO: result: no - try specifying CFLAGS=-march={your_arch}" >&5 +$as_echo "no - try specifying CFLAGS=-march={your_arch}" >&6; } + fi + + { $as_echo "$as_me:$LINENO: checking whether $CC knows 64-bit __sync_bool_compare_and_swap()" >&5 +$as_echo_n "checking whether $CC knows 64-bit __sync_bool_compare_and_swap()... " >&6; } + cat >conftest.$ac_ext <<_ACEOF +#include <stdint.h> + int main() { uint64_t a = 4; __sync_bool_compare_and_swap(&a, 4, 5); } +_ACEOF + $CC conftest.c $CFLAGS -o conftest > /dev/null 2> /dev/null + ret=$? + rm -f conftest.o conftest + if test $ret -eq 0 ; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_GCC_64BIT_ATOMIC_OPS 1 +_ACEOF + + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:$LINENO: result: no - try specifying CFLAGS=-march={your_arch}" >&5 +$as_echo "no - try specifying CFLAGS=-march={your_arch}" >&6; } + fi +fi + +if test "${enable_pthread}" = "" ; then + enable_pthread=yes +fi + +if test "${enable_pthread}" = "yes" ; then + +{ $as_echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5 +$as_echo_n "checking for pthread_create in -lpthread... " >&6; } +if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_create (); +int +main () +{ +return pthread_create (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_pthread_pthread_create=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_pthread_pthread_create=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5 +$as_echo "$ac_cv_lib_pthread_pthread_create" >&6; } +if test "x$ac_cv_lib_pthread_pthread_create" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBPTHREAD 1 +_ACEOF + + LIBS="-lpthread $LIBS" + +else + { $as_echo "$as_me:$LINENO: WARNING: Pthread library not found - threads disabled." >&5 +$as_echo "$as_me: WARNING: Pthread library not found - threads disabled." >&2;} +fi + +fi + +{ $as_echo "$as_me:$LINENO: checking for jpeg_start_compress in -ljpeg" >&5 +$as_echo_n "checking for jpeg_start_compress in -ljpeg... " >&6; } +if test "${ac_cv_lib_jpeg_jpeg_start_compress+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ljpeg $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char jpeg_start_compress (); +int +main () +{ +return jpeg_start_compress (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_jpeg_jpeg_start_compress=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_jpeg_jpeg_start_compress=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_jpeg_jpeg_start_compress" >&5 +$as_echo "$ac_cv_lib_jpeg_jpeg_start_compress" >&6; } +if test "x$ac_cv_lib_jpeg_jpeg_start_compress" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBJPEG 1 +_ACEOF + + LIBS="-ljpeg $LIBS" + +else + { { $as_echo "$as_me:$LINENO: error: The jpeg library is required." >&5 +$as_echo "$as_me: error: The jpeg library is required." >&2;} + { (exit 1); exit 1; }; } +fi + +# Extract the first word of "xml2-config", so it can be a program name with args. +set dummy xml2-config; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_XML2_CONFIG+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $XML2_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_XML2_CONFIG="$XML2_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_dummy="$PATH:/bin:/usr/bin:/usr/local/bin" +for as_dir in $as_dummy +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_XML2_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + test -z "$ac_cv_path_XML2_CONFIG" && ac_cv_path_XML2_CONFIG="no" + ;; +esac +fi +XML2_CONFIG=$ac_cv_path_XML2_CONFIG +if test -n "$XML2_CONFIG"; then + { $as_echo "$as_me:$LINENO: result: $XML2_CONFIG" >&5 +$as_echo "$XML2_CONFIG" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + +if test "$XML2_CONFIG" != "no" +then + CPPFLAGS="`$XML2_CONFIG --cflags` $CPPFLAGS" +fi + +ac_config_files="$ac_config_files Makefile flam3.pc" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + test "x$cache_file" != "x/dev/null" && + { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + cat confcache >$cache_file + else + { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi + +: ${CONFIG_STATUS=./config.status} +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 + +# Save the log message, to keep $[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by $as_me, which was +generated by GNU Autoconf 2.63. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTION]... [FILE]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to <bug-autoconf@gnu.org>." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_version="\\ +config.status +configured by $0, generated by GNU Autoconf 2.63, + with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" + +Copyright (C) 2008 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + { $as_echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { $as_echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' +macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' +macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' +enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' +pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' +host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' +host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' +host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' +build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' +build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' +build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' +SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' +Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' +GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' +EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' +FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' +LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' +NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' +LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' +ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' +exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' +lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' +reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' +AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' +STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' +RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' +CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' +compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' +GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' +objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' +SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' +ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' +need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' +LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' +OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' +libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' +module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' +fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' +need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' +version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' +runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' +libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' +soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' +finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' +old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' +striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# Quote evaled strings. +for var in SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +OBJDUMP \ +deplibs_check_method \ +file_magic_cmd \ +AR \ +AR_FLAGS \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +SHELL \ +ECHO \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_wl \ +lt_prog_compiler_pic \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_flag_spec_ld \ +hardcode_libdir_separator \ +fix_srcfile_path \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +sys_lib_dlsearch_path_spec; do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Fix-up fallback echo if it was mangled by the above quoting rules. +case \$lt_ECHO in +*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` + ;; +esac + +ac_aux_dir='$ac_aux_dir' +xsi_shell='$xsi_shell' +lt_shell_append='$lt_shell_append' + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile' + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "flam3.pc") CONFIG_FILES="$CONFIG_FILES flam3.pc" ;; + + *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= + trap 'exit_status=$? + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || +{ + $as_echo "$as_me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr='
' +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } +ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\).*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\).*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' <conf$$subs.awk | sed ' +/^[^""]/{ + N + s/\n// +} +' >>$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ + || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 +$as_echo "$as_me: error: could not setup config files machinery" >&2;} + { (exit 1); exit 1; }; } +_ACEOF + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/ +s/:*\${srcdir}:*/:/ +s/:*@srcdir@:*/:/ +s/^\([^=]*=[ ]*\):*/\1/ +s/:*$// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_t=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_t"; then + break + elif $ac_last_try; then + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' <confdefs.h | sed ' +s/'"$ac_delim"'/"\\\ +"/g' >>$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 +$as_echo "$as_me: error: could not setup config headers machinery" >&2;} + { (exit 1); exit 1; }; } +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 +$as_echo "$as_me: error: invalid tag $ac_tag" >&2;} + { (exit 1); exit 1; }; };; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { (exit 1); exit 1; }; };; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + ac_file_inputs="$ac_file_inputs '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir="$ac_dir" + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= + +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p +' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&2;} + + rm -f "$tmp/stdin" + case $ac_file in + -) cat "$tmp/out" && rm -f "$tmp/out";; + *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + esac \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" + } >"$tmp/config.h" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } + if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$tmp/config.h" "$ac_file" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 +$as_echo "$as_me: error: could not create -" >&2;} + { (exit 1); exit 1; }; } + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir=$dirpart/$fdir + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool 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. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# The names of the tagged configurations supported by this script. +available_tags="" + +# ### BEGIN LIBTOOL CONFIG + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that does not interpret backslashes. +ECHO=$lt_ECHO + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# If ld is used when linking, flag to hardcode \$libdir into a binary +# during linking. This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path=$lt_fix_srcfile_path + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain="$ac_aux_dir/ltmain.sh" + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + case $xsi_shell in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac +} + +# func_basename file +func_basename () +{ + func_basename_result="${1##*/}" +} + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}" +} + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +func_stripname () +{ + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"} +} + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=${1%%=*} + func_opt_split_arg=${1#*=} +} + +# func_lo2o object +func_lo2o () +{ + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=${1%.*}.lo +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=$(( $* )) +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=${#1} +} + +_LT_EOF + ;; + *) # Bourne compatible functions. + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` +} + + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; + esac +} + +# sed scripts: +my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +my_sed_long_arg='1s/^-[^=]*=//' + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` + func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` +} + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "$@"` +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +} + +_LT_EOF +esac + +case $lt_shell_append in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$1+=\$2" +} +_LT_EOF + ;; + *) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$1=\$$1\$2" +} + +_LT_EOF + ;; + esac + + + sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; + + esac +done # for ac_tag + + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + diff --git a/src/configure.in b/src/configure.in new file mode 100644 index 0000000..f519a8c --- /dev/null +++ b/src/configure.in @@ -0,0 +1,84 @@ +dnl $Id: configure.in,v 1.42 2008-07-21 18:51:56 spotspot Exp $ +dnl Process this file with autoconf to produce a configure script. + +AC_INIT(flam3-animate.c) +AM_CONFIG_HEADER(config.h) +AC_ARG_ENABLE(pthread, [ --enable-pthread compile FLAM3 with threads enabled (default=yes)]) +AC_ARG_ENABLE(atomic_ops, [ --enable-atomic-ops compile FLAM3 with atom ops enabled (default=yes, independently checks for 32 and 64 bit sizes)]) +AM_INIT_AUTOMAKE(flam3,"2.8b7") + +AC_CONFIG_MACRO_DIR([m4]) + +# Save CFLAGS from the environment +save_CFLAGS=$CFLAGS + +AC_PROG_CC + +CFLAGS=$save_CFLAGS + +AC_PROG_INSTALL +AC_PROG_MAKE_SET +AM_DISABLE_SHARED +AC_PROG_LIBTOOL +AC_HEADER_STDC +AC_C_CONST +AC_TYPE_SIZE_T +AC_HEADER_TIME +AC_CHECK_LIB([z],[deflateInit_],,[AC_MSG_ERROR([zlib is required.])]) +AC_CHECK_LIB([png],[png_write_image],,[AC_MSG_ERROR([The png library is required.])]) +AC_CHECK_LIB([xml2],[xmlParseFile],,[AC_MSG_ERROR([The xml2 library is required.])]) + + +if test "${enable_atomic_ops}" = "" ; then + enable_atomic_ops=yes +fi + +if test "${enable_atomic_ops}" = "yes" ; then + + AC_MSG_CHECKING([whether $CC knows 32-bit __sync_bool_compare_and_swap()]) + AC_LANG_CONFTEST([#include <stdint.h> + int main() { uint32_t a = 4; + __sync_bool_compare_and_swap(&a, 4, 5); }]) + $CC conftest.c $CFLAGS -o conftest > /dev/null 2> /dev/null + ret=$? + rm -f conftest.o conftest + if test $ret -eq 0 ; then + AC_DEFINE([HAVE_GCC_ATOMIC_OPS], 1, [Have 32-bit __sync_bool_compare_and_swap() and friends.]) + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no - try specifying CFLAGS=-march={your_arch}]) + fi + + AC_MSG_CHECKING([whether $CC knows 64-bit __sync_bool_compare_and_swap()]) + AC_LANG_CONFTEST([#include <stdint.h> + int main() { uint64_t a = 4; __sync_bool_compare_and_swap(&a, 4, 5); }]) + $CC conftest.c $CFLAGS -o conftest > /dev/null 2> /dev/null + ret=$? + rm -f conftest.o conftest + if test $ret -eq 0 ; then + AC_DEFINE([HAVE_GCC_64BIT_ATOMIC_OPS], 1, [Have 64-bit __sync_bool_compare_and_swap() and friends.]) + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no - try specifying CFLAGS=-march={your_arch}]) + fi +fi + +if test "${enable_pthread}" = "" ; then + enable_pthread=yes +fi + +if test "${enable_pthread}" = "yes" ; then + AC_CHECK_LIB([pthread],[pthread_create],,[AC_MSG_WARN([Pthread library not found - threads disabled.])]) +fi +AC_CHECK_LIB([jpeg],[jpeg_start_compress],,[AC_MSG_ERROR([The jpeg library is required.])]) +AC_PATH_PROG(XML2_CONFIG,xml2-config, no, $PATH:/bin:/usr/bin:/usr/local/bin) + +if test "$XML2_CONFIG" != "no" +then + CPPFLAGS="`$XML2_CONFIG --cflags` $CPPFLAGS" +fi + +AC_OUTPUT([ +Makefile +flam3.pc +]) diff --git a/src/convert.dsp b/src/convert.dsp new file mode 100644 index 0000000..0f7fba1 --- /dev/null +++ b/src/convert.dsp @@ -0,0 +1,146 @@ +# Microsoft Developer Studio Project File - Name="convert" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=convert - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "convert.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "convert.mak" CFG="convert - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "convert - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "convert - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "convert - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "c:\src\libxml2\include" /I "c:\src\jpeg" /I "c:\src\iconv\include" /I "c:\src\pthreads" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /Zm1000 /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 c:\src\expat\expat.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib c:\src\jpeg\libjpeg.lib c:\src\libpng\libpng.lib c:\src\libxml2\lib\libxml2.lib c:\src\zlib\zlib.lib c:\src\pthreads\pthreadVC2.lib /nologo /subsystem:console /machine:I386 /out:"Release/flam3-convert.exe" + +!ELSEIF "$(CFG)" == "convert - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "c:\src\expat\xmlparse" /I "c:\src\jpeg" /I "c:\src\libxml2\include" /I "c:\src\iconv\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib c:\src\expat\expat.lib c:\src\jpeg\libjpeg.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "convert - Win32 Release" +# Name "convert - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\docstring.c +# End Source File +# Begin Source File + +SOURCE=".\flam3-convert.c" +# End Source File +# Begin Source File + +SOURCE=".\flam3-palettes.c" +# End Source File +# Begin Source File + +SOURCE=.\flam3.c +# End Source File +# Begin Source File + +SOURCE=.\isaac.c +# End Source File +# Begin Source File + +SOURCE=.\jpeg.c +# End Source File +# Begin Source File + +SOURCE=.\png.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=cmap.h +# End Source File +# Begin Source File + +SOURCE=config.h +# End Source File +# Begin Source File + +SOURCE=jpeg.h +# End Source File +# Begin Source File + +SOURCE=libifs.h +# End Source File +# Begin Source File + +SOURCE=rect.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/src/docstring.c b/src/docstring.c new file mode 100644 index 0000000..c562e6d --- /dev/null +++ b/src/docstring.c @@ -0,0 +1,206 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + + +#include "config.h" +#include "flam3.h" + + +static char *the_docstring0 = + "FLAM3 - cosmic recursive fractal flames version "; + +static char *the_docstring1 = +"\n\n" +"This software is licensed under the GPL. You should have access\n" +"to the source code; see http://www.fsf.org/licenses/gpl.html.\n" +"\n" +"This is free software to render fractal flames as described on\n" +"http://flam3.com. Flam3-animate makes animations, and flam3-render\n" +"makes still images. Flam3-genome creates and manipulates genomes\n" +"(parameter sets). A C library is also installed.\n" +"\n" +"Note: the following instructions are written for Linux users. Windows\n" +"users may have to install the cygwin package to get the \"env\"\n" +"command or set the envars in your windows command prompt manually.\n" +"That means instead of a command like\n" +"\n" +" env dtime=5 prefix=foo. in=test.flame flam3-animate\n" +"\n" +"say\n" +"\n" +" set dtime=5\n" +" set prefix=foo.\n" +" set in=test.flame\n" +" flam3-animate\n" +"\n" +"\n" +"envar default meaning\n" +"===== ======= =======\n" +"prefix (empty) prefix names of output files with this string.\n" +"begin j time of first frame to render (j=first time specified in file) (animate only)\n" +"end n-1 time of last frame to render (n=last time specified in the input file) (animate only)\n" +"time NA time of first and last frame (ie do one frame) (animate only)\n" +"frame NA synonym for \"time\" (animate only)\n" +"in stdin name of input file\n" +"out NA name of output file (bad idea if rending more than one, use prefix instead)\n" +"template NA apply defaults based on this genome (genome only)\n" +"dtime 1 time between frames (animate only)\n" +"fields 0 if 1 then render fields, ie odd scanlines at time+0.5\n" +"nstrips 1 number of strips, ie render fractions of a frame at once (render only)\n" +"qs 1 quality scale, multiply quality of all frames by this\n" +"ss 1 size scale, multiply size (in pixels) of all frames by this\n" +"jpeg NA jpeg quality for compression, default is native jpeg default\n" +"format png jpg or ppm or png\n" +"pixel_aspect 1.0 aspect ratio of pixels (width over height), eg 0.90909 for NTSC\n" +"seed random integer seed for random numbers, defaults to time+pid\n" +"isaac_seed random character-based seed for iteration loop randomness, defaults to time\n" +"nthreads 0 number of threads to use for render. default auto-detects.\n" +"verbose 0 if non-zero then print progress meter on stderr\n" +"bits 33 also 32 or 64: sets bit-width of internal buffers (33 means 32-bit floating-point)\n" +"bpc 8 bits per color channel: png supports 16, all others are 8 only (render/animate)\n" +"image filename replace palette with png, jpg, or ppm image\n" +"use_vars -1 comma separated list of variation #'s to use when generating a random flame (genome only)\n" +"dont_use_vars NA comma separated list of variation #'s to NOT use when generating a random flame (genome only)\n" +"cross0 NA randomly select one genome from this file to genetically cross (genome only)\n" +"cross1 NA with one genome from this file (genome only)\n" +"method NA method used for genetic cross: alternate, interpolate, or union. (genome only)\n" +"mutate NA randomly mutate a random genome from this file (genome only)\n" +"symmetry NA set symmetry of result. (genome only)\n" +"clone NA clone random flame in input (genome only)\n" +"clone_all NA clones all flames in file. useful for applying template to all flames (genome only)\n" +"animate NA interpolates between all flames in a file, using times specified in file (genome only)\n" +"sequence NA 360 degree rotation 'loops' times of each control point plus rotating transitions (genome only)\n" +"loops NA number of times to rotate each control point in sequence (genome only)\n" +"tries 50 number of tries to make to find a good genome. (genome only)\n" +"strip NA strip input, frame and nframes control which one. (genome only)\n" +"transparency 0 make bknd transparent, if format supports it (render/animate)\n" +"name_enable 0 use 'name' attr in <flame> to name image output if present (render only)\n" +"nick \"\" nickname to use in <edit> tags / img comments\n" +"url \"\" url to use in <edit> tags / img comments\n" +"id \"\" ID to use in <edit> tags\n" +"comment \"\" comment string for <edit> tags (genome only)\n" +"use_mem auto floating point number of bytes of memory to use (render only)\n" +"write_genome 0 write out genome associated with center of motion blur window (animate only)\n" +"noedits unset omit edit tags from output (genome only)\n" +"print_edit_depth 0 depth to truncate <edit> tag structure. 0 prints all <edit> tags (genome only)\n" +"intpalette unset round palette entries for importing into older Apophysis versions (genome only)\n" +"insert_palette unset insert the palette into the image.\n" +"enable_jpeg_comments 1 enables comments in the jpeg header (render and animate)\n" +"enable_png_comments 1 enables comments in the png header (render and animate)\n" +"\n" +"New in 2.8:\n" +"earlyclip 0 enables the early clipping of rgb values for better antialiasing and resizing\n" +" defaults to 0 for backwards compatibility\n" +"flam27 0 flam3 2.7 compatibility mode; ensures generated genomes can be used by flam3 2.7.18\n" +"stagger 0 affects simultaneity of xform interpolation during genome interpolation.\n" +" represents how 'separate' the xforms are interpolated. set to 1 for each\n" +" xform to be interpolated individually, fractions control interp overlap.\n" + +"\n" +"for example:\n" +"\n" +" env dtime=5 prefix=foo. in=test.flam3 flam3-animate\n" +"\n" +"means to render every 5th frame of parameter file foo.flam3, and store\n" +"the results in files named foo.XXXX.jpg.\n" +"\n" +"the flam3-convert program reads from stdin the old format created by\n" +"the GIMP and writes to stdout the new xml format.\n" +"\n" +"the flam3-genome program creates random parameter files. it also mutates,\n" +"rotates, and interpolates existing parameter files. for example to\n" +"create 10 wholly new control points and render them at normal quality:\n" +"\n" +" env template=vidres.flam3 repeat=10 flam3-genome > new.flam3\n" +" flam3-render < new.flam3\n" +"\n" +"if you left out the \"template=vidres.flam3\" part then the size,\n" +"quality, etc parameters would be their default (small) values. you\n" +"can set the symmetry group:\n" +"\n" +" env template=vidres.flam3 symmetry=3 flam3-genome > new3.flam3\n" +" env template=vidres.flam3 symmetry=-2 flam3-genome > new-2.flam3\n" +" flam3-render < new3.flam3\n" +" flam3-render < new-2.flam3\n" +"\n" +"Mutation is done by giving an input flame file to alter:\n" +"\n" +" env template=vidres.flam3 flam3-genome > parent.flam3\n" +" env prefix=parent. flam3-render < parent.flam3\n" +" env template=vidres.flam3 mutate=parent.flam3 repeat=10 flam3-genome > mutation.flam3\n" +" flam3-render < mutation.flam3\n" +"\n" +"Normally one wouldn't use the same file for the template and the file\n" +"to mutate. Crossover is handled similarly:\n" +"\n" +" env template=vidres.flam3 flam3-genome > parent0.flam3\n" +" env prefix=parent0. flam3-render < parent0.flam3\n" +" env template=vidres.flam3 flam3-genome > parent1.flam3\n" +" env prefix=parent1. flam3-render < parent1.flam3\n" +" env template=vidres.flam3 cross0=parent0.flam3 cross1=parent1.flam3 flam3-genome > crossover.flam3\n" +" flam3-render < crossover.flam3\n" +"\n" +"flam3-genome has 3 ways to produce parameter files for animation in\n" +"the style of electric sheep. the highest level and most useful from\n" +"the command line is the sequence method. it takes a collection of\n" +"control points and makes an animation that has each flame do fractal\n" +"rotation for 360 degrees, then make a smooth transition to the next.\n" +"for example:\n" +"\n" +" env sequence=test.flam3 nframes=20 flam3-genome > seq.flam3\n" +" flam3-animate < seq.flam3\n" +"\n" +"creates and renders a 60 frame animation. there are two flames in\n" +"test.flam3, so the animation consists three stags: the first one\n" +"rotating, then a transition, then the second one rotating. each stage\n" +"has 20 frames as specified on the command line. if you want to\n" +"render only some fraction of a whole animation file, specify the begin\n" +"and end times:\n" +"\n" +" env begin=20 end=40 flam3-animate < seq.flam3\n" +"\n" +"the other two methods are harder to use becaues they produce files that\n" +"are only good for one frame of animation. the output consists of 3\n" +"control points, one for the time requested, one before and one after.\n" +"that allows proper motion blur. for example:\n" +"\n" +" env template=vidres.flam3 flam3-genome > rotme.flam3\n" +" env rotate=rotme.flam3 frame=10 nframes=20 flam3-genome > rot10.flam3\n" +" env frame=10 flam3-animate < rot10.flam3\n" +"\n" +"the file rot10.flam3 specifies the animation for just one frame, in\n" +"this case 10 out of 20 frames in the complete animation. C1\n" +"continuous electric sheep genetic crossfades are created like this:\n" +"\n" +" env inter=test.flam3 frame=10 nframes=20 flam3-genome > inter10.flam3\n" +" env frame=10 flam3-animate < inter10.flam3\n" +"\n" +"see http://flam3.com/flame.pdf for descriptions & formulas, and\n" +"see http://electricsheep.wikispaces.com/Variations for updates.\n" +"\n" +"The complete list of variations:\n" +; + +void docstring() { + int i; + fputs(the_docstring0, stdout); + fputs(flam3_version(), stdout); + fputs(the_docstring1, stdout); + for (i = 0; i < flam3_nvariations; i++) + printf(" %2d. %s\n", i, flam3_variation_names[i]); +} diff --git a/src/filters.c b/src/filters.c new file mode 100644 index 0000000..1af5d4a --- /dev/null +++ b/src/filters.c @@ -0,0 +1,490 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + +#include "filters.h" + + +/* + * filter function definitions + * from Graphics Gems III code + * and ImageMagick resize.c + */ + + +double flam3_spatial_support[flam3_num_spatialfilters] = { + + 1.5, /* gaussian */ + 1.0, /* hermite */ + 0.5, /* box */ + 1.0, /* triangle */ + 1.5, /* bell */ + 2.0, /* b spline */ + 2.0, /* mitchell */ + 1.0, /* blackman */ + 2.0, /* catrom */ + 1.0, /* hanning */ + 1.0, /* hamming */ + 3.0, /* lanczos3 */ + 2.0, /* lanczos2 */ + 1.5 /* quadratic */ +}; + +double flam3_hermite_filter(double t) { + /* f(t) = 2|t|^3 - 3|t|^2 + 1, -1 <= t <= 1 */ + if(t < 0.0) t = -t; + if(t < 1.0) return((2.0 * t - 3.0) * t * t + 1.0); + return(0.0); +} + +double flam3_box_filter(double t) { + if((t > -0.5) && (t <= 0.5)) return(1.0); + return(0.0); +} + +double flam3_triangle_filter(double t) { + if(t < 0.0) t = -t; + if(t < 1.0) return(1.0 - t); + return(0.0); +} + +double flam3_bell_filter(double t) { + /* box (*) box (*) box */ + if(t < 0) t = -t; + if(t < .5) return(.75 - (t * t)); + if(t < 1.5) { + t = (t - 1.5); + return(.5 * (t * t)); + } + return(0.0); +} + +double flam3_b_spline_filter(double t) { + + /* box (*) box (*) box (*) box */ + double tt; + + if(t < 0) t = -t; + if(t < 1) { + tt = t * t; + return((.5 * tt * t) - tt + (2.0 / 3.0)); + } else if(t < 2) { + t = 2 - t; + return((1.0 / 6.0) * (t * t * t)); + } + return(0.0); +} + +double flam3_sinc(double x) { + x *= M_PI; + if(x != 0) return(sin(x) / x); + return(1.0); +} + +double flam3_blackman_filter(double x) { + return(0.42+0.5*cos(M_PI*x)+0.08*cos(2*M_PI*x)); +} + +double flam3_catrom_filter(double x) { + if (x < -2.0) + return(0.0); + if (x < -1.0) + return(0.5*(4.0+x*(8.0+x*(5.0+x)))); + if (x < 0.0) + return(0.5*(2.0+x*x*(-5.0-3.0*x))); + if (x < 1.0) + return(0.5*(2.0+x*x*(-5.0+3.0*x))); + if (x < 2.0) + return(0.5*(4.0+x*(-8.0+x*(5.0-x)))); + return(0.0); +} + +double flam3_mitchell_filter(double t) { + double tt; + + tt = t * t; + if(t < 0) t = -t; + if(t < 1.0) { + t = (((12.0 - 9.0 * flam3_mitchell_b - 6.0 * flam3_mitchell_c) * (t * tt)) + + ((-18.0 + 12.0 * flam3_mitchell_b + 6.0 * flam3_mitchell_c) * tt) + + (6.0 - 2 * flam3_mitchell_b)); + return(t / 6.0); + } else if(t < 2.0) { + t = (((-1.0 * flam3_mitchell_b - 6.0 * flam3_mitchell_c) * (t * tt)) + + ((6.0 * flam3_mitchell_b + 30.0 * flam3_mitchell_c) * tt) + + ((-12.0 * flam3_mitchell_b - 48.0 * flam3_mitchell_c) * t) + + (8.0 * flam3_mitchell_b + 24 * flam3_mitchell_c)); + return(t / 6.0); + } + return(0.0); +} + +double flam3_hanning_filter(double x) { + return(0.5+0.5*cos(M_PI*x)); +} + +double flam3_hamming_filter(double x) { + return(0.54+0.46*cos(M_PI*x)); +} + +double flam3_lanczos3_filter(double t) { + if(t < 0) t = -t; + if(t < 3.0) return(flam3_sinc(t) * flam3_sinc(t/3.0)); + return(0.0); +} + +double flam3_lanczos2_filter(double t) { + if(t < 0) t = -t; + if(t < 2.0) return(flam3_sinc(t) * flam3_sinc(t/2.0)); + return(0.0); +} + +double flam3_gaussian_filter(double x) { + return(exp((-2.0*x*x))*sqrt(2.0/M_PI)); +} + +double flam3_quadratic_filter(double x) { + if (x < -1.5) + return(0.0); + if (x < -0.5) + return(0.5*(x+1.5)*(x+1.5)); + if (x < 0.5) + return(0.75-x*x); + if (x < 1.5) + return(0.5*(x-1.5)*(x-1.5)); + return(0.0); +} + +double flam3_spatial_filter(int knum, double x) { + + if (knum==0) + return flam3_gaussian_filter(x); + else if (knum==1) + return flam3_hermite_filter(x); + else if (knum==2) + return flam3_box_filter(x); + else if (knum==3) + return flam3_triangle_filter(x); + else if (knum==4) + return flam3_bell_filter(x); + else if (knum==5) + return flam3_b_spline_filter(x); + else if (knum==6) + return flam3_mitchell_filter(x); + else if (knum==7) + return flam3_sinc(x)*flam3_blackman_filter(x); + else if (knum==8) + return flam3_catrom_filter(x); + else if (knum==9) + return flam3_sinc(x)*flam3_hanning_filter(x); + else if (knum==10) + return flam3_sinc(x)*flam3_hamming_filter(x); + else if (knum==11) + return flam3_lanczos3_filter(x)*flam3_sinc(x/3.0); + else if (knum==12) + return flam3_lanczos2_filter(x)*flam3_sinc(x/2.0); + else if (knum==13) + return flam3_quadratic_filter(x); +} + +int normalize_vector(double *v, int n) { + double t = 0.0; + int i; + for (i = 0; i < n; i++) + t += v[i]; + if (0.0 == t) return 1; + t = 1.0 / t; + for (i = 0; i < n; i++) + v[i] *= t; + return 0; +} + + +int flam3_create_spatial_filter(flam3_frame *spec, int field, double **filter) { + + int sf_kernel = spec->genomes[0].spatial_filter_select; + int supersample = spec->genomes[0].spatial_oversample; + double sf_radius = spec->genomes[0].spatial_filter_radius; + double aspect_ratio = spec->pixel_aspect_ratio; + double sf_supp = flam3_spatial_support[sf_kernel]; + + double fw = 2.0 * sf_supp * supersample * sf_radius / aspect_ratio; + double adjust, ii, jj; + + int fwidth = ((int) fw) + 1; + int i,j; + + + /* Make sure the filter kernel has same parity as oversample */ + if ((fwidth ^ supersample) & 1) + fwidth++; + + /* Calculate the coordinate scaling factor for the kernel values */ + if (fw > 0.0) + adjust = sf_supp * fwidth / fw; + else + adjust = 1.0; + + /* Calling function MUST FREE THE RETURNED KERNEL, lest ye leak memory */ + (*filter) = (double *)calloc(fwidth * fwidth,sizeof(double)); + + /* fill in the coefs */ + for (i = 0; i < fwidth; i++) + for (j = 0; j < fwidth; j++) { + + /* Calculate the function inputs for the kernel function */ + ii = ((2.0 * i + 1.0) / (double)fwidth - 1.0)*adjust; + jj = ((2.0 * j + 1.0) / (double)fwidth - 1.0)*adjust; + + /* Scale for scanlines */ + if (field) jj *= 2.0; + + /* Adjust for aspect ratio */ + jj /= aspect_ratio; + + (*filter)[i + j * fwidth] = + flam3_spatial_filter(sf_kernel,ii) * flam3_spatial_filter(sf_kernel,jj); + } + + + if (normalize_vector((*filter), fwidth * fwidth)) { + fprintf(stderr, "Spatial filter value is too small: %g. Terminating.\n",sf_radius); + return(-1); + } + + return (fwidth); +} + +flam3_de_helper flam3_create_de_filters(double max_rad, double min_rad, double curve, int ss) { + + flam3_de_helper de; + double comp_max_radius, comp_min_radius; + double num_de_filters_d; + int num_de_filters,de_max_ind; + int de_row_size, de_half_size; + int filtloop; + int keep_thresh=100; + + de.kernel_size=-1; + + if (curve <= 0.0) { + fprintf(stderr,"estimator curve must be > 0\n"); + return(de); + } + + if (max_rad < min_rad) { + fprintf(stderr,"estimator must be larger than estimator_minimum.\n"); + fprintf(stderr,"(%f > %f) ? \n",max_rad,min_rad); + return(de); + } + + /* We should scale the filter width by the oversample */ + /* The '+1' comes from the assumed distance to the first pixel */ + comp_max_radius = max_rad*ss + 1; + comp_min_radius = min_rad*ss + 1; + + /* Calculate how many filter kernels we need based on the decay function */ + /* */ + /* num filters = (de_max_width / de_min_width)^(1/estimator_curve) */ + /* */ + num_de_filters_d = pow( comp_max_radius/comp_min_radius, 1.0/curve ); + if (num_de_filters_d>1e7) { + fprintf(stderr,"too many filters required in this configuration (%g)\n",num_de_filters_d); + return(de); + } + num_de_filters = (int)ceil(num_de_filters_d); + + /* Condense the smaller kernels to save space */ + if (num_de_filters>keep_thresh) { + de_max_ind = (int)ceil(DE_THRESH + pow(num_de_filters-DE_THRESH,curve))+1; + de.max_filtered_counts = (int)pow( (double)(de_max_ind-DE_THRESH), 1.0/curve) + DE_THRESH; + } else { + de_max_ind = num_de_filters; + de.max_filtered_counts = de_max_ind; + } + + /* Allocate the memory for these filters */ + /* and the hit/width lookup vector */ + de_row_size = (int)(2*ceil(comp_max_radius)-1); + de_half_size = (de_row_size-1)/2; + de.kernel_size = (de_half_size+1)*(2+de_half_size)/2; + + de.filter_coefs = (double *) calloc (de_max_ind * de.kernel_size,sizeof(double)); + de.filter_widths = (double *) calloc (de_max_ind,sizeof(double)); + + /* Generate the filter coefficients */ + de.max_filter_index = 0; + for (filtloop=0;filtloop<de_max_ind;filtloop++) { + + double de_filt_sum=0.0, de_filt_d; + double de_filt_h; + int dej,dek; + double adjloop; + int filter_coef_idx; + + /* Calculate the filter width for this number of hits in a bin */ + if (filtloop<keep_thresh) + de_filt_h = (comp_max_radius / pow(filtloop+1,curve)); + else { + adjloop = pow(filtloop-keep_thresh,(1.0/curve)) + keep_thresh; + de_filt_h = (comp_max_radius / pow(adjloop+1,curve)); + } + + /* Once we've reached the min radius, don't populate any more */ + if (de_filt_h <= comp_min_radius) { + de_filt_h = comp_min_radius; + de.max_filter_index = filtloop; + } + + de.filter_widths[filtloop] = de_filt_h; + + /* Calculate norm of kernel separately (easier) */ + for (dej=-de_half_size; dej<=de_half_size; dej++) { + for (dek=-de_half_size; dek<=de_half_size; dek++) { + + de_filt_d = sqrt( (double)(dej*dej+dek*dek) ) / de_filt_h; + + /* Only populate the coefs within this radius */ + if (de_filt_d <= 1.0) { + + /* Gaussian */ + de_filt_sum += flam3_spatial_filter(flam3_gaussian_kernel, + flam3_spatial_support[flam3_gaussian_kernel]*de_filt_d); + + /* Epanichnikov */ +// de_filt_sum += (1.0 - (de_filt_d * de_filt_d)); + } + } + } + + filter_coef_idx = filtloop*de.kernel_size; + + /* Calculate the unique entries of the kernel */ + for (dej=0; dej<=de_half_size; dej++) { + for (dek=0; dek<=dej; dek++) { + de_filt_d = sqrt( (double)(dej*dej+dek*dek) ) / de_filt_h; + + /* Only populate the coefs within this radius */ + if (de_filt_d>1.0) + de.filter_coefs[filter_coef_idx] = 0.0; + else { + + /* Gaussian */ + de.filter_coefs[filter_coef_idx] = flam3_spatial_filter(flam3_gaussian_kernel, + flam3_spatial_support[flam3_gaussian_kernel]*de_filt_d)/de_filt_sum; + + /* Epanichnikov */ +// de_filter_coefs[filter_coef_idx] = (1.0 - (de_filt_d * de_filt_d))/de_filt_sum; + } + + filter_coef_idx ++; + } + } + + if (de.max_filter_index>0) + break; + } + + if (de.max_filter_index==0) + de.max_filter_index = de_max_ind-1; + + + return(de); +} + +double flam3_create_temporal_filter(int numsteps, int filter_type, double filter_exp, double filter_width, + double **temporal_filter, double **temporal_deltas) { + + double maxfilt = 0.0; + double sumfilt = 0.0; + double slpx,halfsteps; + double *deltas, *filter; + + int i; + + /* Allocate memory - this must be freed in the calling routine! */ + deltas = (double *)malloc(numsteps*sizeof(double)); + filter = (double *)malloc(numsteps*sizeof(double)); + + /* Deal with only one step */ + if (numsteps==1) { + deltas[0] = 0; + filter[0] = 1.0; + *temporal_deltas = deltas; + *temporal_filter = filter; + return(1.0); + } + + /* Define the temporal deltas */ + for (i = 0; i < numsteps; i++) + deltas[i] = ((double)i /(double)(numsteps - 1) - 0.5)*filter_width; + + /* Define the filter coefs */ + if (flam3_temporal_exp == filter_type) { + + for (i=0; i < numsteps; i++) { + + if (filter_exp>=0) + slpx = ((double)i+1.0)/numsteps; + else + slpx = (double)(numsteps - i)/numsteps; + + /* Scale the color based on these values */ + filter[i] = pow(slpx,fabs(filter_exp)); + + /* Keep the max */ + if (filter[i]>maxfilt) + maxfilt = filter[i]; + } + + } else if (flam3_temporal_gaussian == filter_type) { + + halfsteps = numsteps/2.0; + for (i=0; i < numsteps; i++) { + + /* Gaussian */ + filter[i] = flam3_spatial_filter(flam3_gaussian_kernel, + flam3_spatial_support[flam3_gaussian_kernel]*fabs(i - halfsteps)/halfsteps); + /* Keep the max */ + if (filter[i]>maxfilt) + maxfilt = filter[i]; + } + + } else { // (flam3_temporal_box) + + for (i=0; i < numsteps; i++) + filter[i] = 1.0; + + maxfilt = 1.0; + + } + + /* Adjust the filter so that the max is 1.0, and */ + /* calculate the K2 scaling factor */ + for (i=0;i<numsteps;i++) { + filter[i] /= maxfilt; + sumfilt += filter[i]; + } + + sumfilt /= numsteps; + + *temporal_deltas = deltas; + *temporal_filter = filter; + + return(sumfilt); +} + diff --git a/src/filters.h b/src/filters.h new file mode 100644 index 0000000..980bb8b --- /dev/null +++ b/src/filters.h @@ -0,0 +1,65 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + +#ifndef filters_included +#define filters_included + +#include "private.h" + +#define DE_THRESH 100 + +/* Spatial filter kernels */ +#define flam3_gaussian_kernel 0 +#define flam3_hermite_kernel 1 +#define flam3_box_kernel 2 +#define flam3_triangle_kernel 3 +#define flam3_bell_kernel 4 +#define flam3_b_spline_kernel 5 +#define flam3_lanczos3_kernel 6 +#define flam3_lanczos2_kernel 7 +#define flam3_mitchell_kernel 8 +#define flam3_blackman_kernel 9 +#define flam3_catrom_kernel 10 +#define flam3_hamming_kernel 11 +#define flam3_hanning_kernel 12 +#define flam3_quadratic_kernel 13 + +/* Temporal filters */ +#define flam3_temporal_box 0 +#define flam3_temporal_gaussian 1 +#define flam3_temporal_exp 2 + +typedef struct { + int max_filtered_counts; + int max_filter_index; + int kernel_size; + double *filter_widths; + double *filter_coefs; +} flam3_de_helper; + +extern double flam3_spatial_support[flam3_num_spatialfilters]; + +double flam3_spatial_filter(int knum, double x); +int flam3_create_spatial_filter(flam3_frame *spec, int field, double **filter); +flam3_de_helper flam3_create_de_filters(double max_rad, double min_rad, double curve, int ss); +double flam3_create_temporal_filter(int numsteps, int filter_type, double filter_exp, double filter_width, + double **temporal_filter, double **temporal_deltas); + +#endif + + diff --git a/src/flam3-animate.c b/src/flam3-animate.c new file mode 100644 index 0000000..7f00676 --- /dev/null +++ b/src/flam3-animate.c @@ -0,0 +1,342 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + + +#include "private.h" +#include "img.h" +#include "isaacs.h" + +int main(int argc, char **argv) { + char *ai, *fname; + char flamename[256]; + char *prefix = args("prefix", ""); + int first_frame = argi("begin", 0); + int last_frame = argi("end", 0); + int frame_time = argi("time", 0); + int dtime = argi("dtime", 1); + int do_fields = argi("fields", 0); + int write_genome = argi("write_genome",0); + double qs = argf("qs", 1.0); + double ss = argf("ss", 1.0); + char *format = getenv("format"); + int verbose = argi("verbose", 1); + int transparency = argi("transparency", 0); + int bits = argi("bits", 33); + int sub_batch_size = argi("sub_batch_size", 10000); + int bpc = argi("bpc",8); + int earlyclip = argi("earlyclip",0); + int ftime, channels; + unsigned char *image; + flam3_genome *cps,center_cp; + int i, ncps = 0; + char *inf = getenv("in"); + double pixel_aspect = argf("pixel_aspect", 1.0); + int num_threads = argi("nthreads",0); + FILE *in,*fp,*genfp; + flam3_frame f; + flam3_img_comments fpc; + stat_struct stats,stats2; + + char badval_string[64]; + char numiter_string[64]; + char rtime_string[64]; + +#ifdef WIN32 + + char *slashloc; + char exepath[256]; + char palpath[256]; + memset(exepath,0,256); + memset(palpath,0,256); + slashloc = strrchr(argv[0],'\\'); + if (NULL==slashloc) { + sprintf(palpath,"flam3_palettes=flam3-palettes.xml"); + } else { + strncpy(exepath,argv[0],slashloc-argv[0]+1); + sprintf(palpath,"flam3_palettes=%sflam3-palettes.xml",exepath); + } + putenv(palpath); + +#endif + + + memset(¢er_cp,0, sizeof(flam3_genome)); + + if (1 != argc) { + docstring(); + exit(0); + } + + /* Init random number generators */ + flam3_init_frame(&f); + flam3_srandom(); + + /* Set the number of threads */ + if (num_threads==0) { + num_threads = flam3_count_nthreads(); + if (verbose > 1) + fprintf(stderr,"Automatically detected %d core(s)...\n",num_threads); + } else{ + if (verbose) + fprintf(stderr,"Manually specified %d thread(s)...\n",num_threads); + } + + if (getenv("frame")) { + if (getenv("time")) { + fprintf(stderr, "cannot specify both time and frame.\n"); + exit(1); + } + if (getenv("begin") || getenv("end")) { + fprintf(stderr, "cannot specify both frame and begin or end.\n"); + exit(1); + } + first_frame = last_frame = atoi(getenv("frame")); + } + + if (getenv("time")) { + if (getenv("begin") || getenv("end")) { + fprintf(stderr, "cannot specify both time and begin or end.\n"); + exit(1); + } + first_frame = last_frame = frame_time; + } + + if (NULL == format) format = "png"; + if (strcmp(format, "jpg") && + strcmp(format, "ppm") && + strcmp(format, "png")) { + fprintf(stderr, "format must be either jpg, ppm, or png, not %s.\n", format); + exit(1); + } + + + if (pixel_aspect <= 0.0) { + fprintf(stderr, "pixel aspect ratio must be positive, not %g.\n", + pixel_aspect); + exit(1); + } + + if (inf) + in = fopen(inf, "rb"); + else + in = stdin; + if (NULL == in) { + perror(inf); + exit(1); + } + + cps = flam3_parse_from_file(in, inf, flam3_defaults_on, &ncps); + if (inf) + fclose(in); + if (NULL == cps) { + fprintf(stderr," error reading genomes.\n"); + exit(1); + } + if (0 == ncps) { + fprintf(stderr, "error: no genomes.\n"); + exit(1); + } + for (i = 0; i < ncps; i++) { + cps[i].sample_density *= qs; + cps[i].height = (int)(cps[i].height * ss); + cps[i].width = (int)(cps[i].width * ss); + cps[i].pixels_per_unit *= ss; + if (cps[i].height<=0 || cps[i].width<=0) { + fprintf(stderr,"output image has dimension <=0, aborting.\n"); + exit(1); + } + if (i > 0 && cps[i].time <= cps[i-1].time) { + fprintf(stderr, "error: control points must be sorted by time, but %g <= %g, index %d.\n", + cps[i].time, cps[i-1].time, i); + exit(1); + } + if ((cps[i].width != cps[0].width) || + (cps[i].height != cps[0].height)) { + fprintf(stderr, "warning: flame %d at time %g size mismatch. " + "(%d,%d) should be (%d,%d).\n", + i, cps[i].time, + cps[i].width, cps[i].height, + cps[0].width, cps[0].height); + cps[i].width = cps[0].width; + cps[i].height = cps[0].height; + } + } + if (!getenv("time") && !getenv("frame")) { + if (!getenv("begin")) { + first_frame = (int) cps[0].time; + } + if (!getenv("end")) { + last_frame = (int) cps[ncps-1].time - 1; + if (last_frame < first_frame) last_frame = first_frame; + } + } + channels = strcmp(format, "png") ? 3 : 4; + + /* Check for 16-bit-per-channel processing */ + if ( (16 == bpc) && (strcmp(format,"png") != 0)) { + fprintf(stderr,"Support for 16 bpc images is only present for the png format.\n"); + exit(1); + } else if (bpc != 8 && bpc != 16) { + fprintf(stderr,"Unexpected bpc specified (%d)\n",bpc); + exit(1); + } + +// f.temporal_filter_radius = argf("blur", 0.5); + f.pixel_aspect_ratio = pixel_aspect; + f.genomes = cps; + f.ngenomes = ncps; + f.verbose = verbose; + f.bits = bits; + f.progress = 0; + f.earlyclip = earlyclip; + f.nthreads = num_threads; + f.sub_batch_size = sub_batch_size; + + if (16==bpc) + f.bytes_per_channel = 2; + else + f.bytes_per_channel = 1; + + + image = (void *) malloc((size_t)channels * + (size_t)cps[0].width * + (size_t)cps[0].height * f.bytes_per_channel); + + if (dtime < 1) { + fprintf(stderr, "dtime must be positive, not %d.\n", dtime); + exit(1); + } + + for (ftime = first_frame; ftime <= last_frame; ftime += dtime) { + f.time = (double) ftime; + + if (verbose && ((last_frame-first_frame)/dtime) >= 1) { + fprintf(stderr, "time = %d/%d/%d\n", ftime, last_frame, dtime); + } + + if (do_fields) { + + if (flam3_render(&f, image, flam3_field_even, channels, transparency,&stats)) { + fprintf(stderr,"error rendering image: aborting.\n"); + exit(1); + } + f.time += 0.5; + if (flam3_render(&f, image, flam3_field_odd, channels, transparency,&stats2)) { + fprintf(stderr,"error rendering image: aborting.\n"); + exit(1); + } + + stats.badvals+=stats2.badvals; + stats.render_seconds+=stats2.render_seconds; + stats.num_iters+=stats2.num_iters; + } else { + if (flam3_render(&f, image, flam3_field_both, channels, transparency,&stats)) { + fprintf(stderr,"error rendering image: aborting.\n"); + exit(1); + } + } + + if (getenv("out")) + fname = getenv("out"); + else { + fname = malloc(strlen(prefix) + 20); + sprintf(fname, "%s%05d.%s", prefix, ftime, format); + } + + if (verbose) + fprintf(stderr, "writing %s...", fname); + + if (write_genome) { + sprintf(flamename,"%s.flam3",fname); + + /* get center genome */ + flam3_interpolate(f.genomes, f.ngenomes, f.time, 0, ¢er_cp); + + /* write it out */ + genfp = fopen(flamename,"w"); + if (NULL == genfp) { + perror(flamename); + exit(1); + } + + flam3_print(genfp, ¢er_cp, NULL, flam3_print_edits); + + fclose(genfp); + } + + fp = fopen(fname, "wb"); + if (NULL == fp) { + perror(fname); + exit(1); + } + + /* Get center cp for embedding in png file */ + flam3_interpolate(f.genomes, f.ngenomes, f.time, 0, ¢er_cp); + + /* Convert to string */ + fpc.genome = flam3_print_to_string(¢er_cp); + sprintf(badval_string, "%g",stats.badvals/(double)stats.num_iters); + fpc.badvals = badval_string; + sprintf(numiter_string,"%g",(double)stats.num_iters); + fpc.numiters = numiter_string; + sprintf(rtime_string,"%d",stats.render_seconds); + fpc.rtime = rtime_string; + + if (!strcmp(format, "png")) { + + write_png(fp, image, cps[0].width, cps[0].height, &fpc, 1); + + } else if (!strcmp(format, "jpg")) { + + write_jpeg(fp, image, cps[0].width, cps[0].height, &fpc); + + } else { + int size = 3 * cps[0].width * cps[0].height; + fprintf(fp, "P6\n"); + fprintf(fp, "%d %d\n255\n", cps[0].width, cps[0].height); + if (size != fwrite(image, 1, size, fp)) { + perror(fname); + } + } + + /* Free string */ + free(fpc.genome); + + clear_cp(¢er_cp,0); + + fclose(fp); + + if (!getenv("out")) + free(fname); + + } + + for (i = 0; i < ncps; i++) { + xmlFreeDoc(cps[i].edits); + clear_cp(&cps[i],0); + } + free(cps); + + free(image); + + if (verbose) + fprintf(stderr, "done.\n"); + + fflush(stderr); + return 0; +} diff --git a/src/flam3-animate.man b/src/flam3-animate.man new file mode 100644 index 0000000..b754356 --- /dev/null +++ b/src/flam3-animate.man @@ -0,0 +1,36 @@ +.TH flam3-animate 1 "" "" +.SH NAME +flam3-animate +flam3-render +flam3-genome +flam3-convert - render and animate FLAM3s and manipulate their genomes +.SH SYNOPSIS +.B flam3-render < input + +.SH DESCRIPTION + +FLAM3 implements a visual language based on a recursive set equation. + +Flam3-genome creates and manipulates genomes (xml parameter sets) in +this language. Flam3-render turns genomes into still images, and +Flam3-animate renders motion-blurred frames of animation. + +Flam3-convert reads from stdin files in the old format used by the +flame GIMP plugin, and writes the new format to stdout. + +.SH OPTIONS + +Any command line option will cause the program to write its +documentation to standard out. + +.SH ENVIRONMENT + +The environment variables are in the documention written to standard +out given any command line option. + +.SH SEE ALSO +.BR WWW.FLAM3.COM, +.BR electricsheep (1), + +.SH AUTHOR +spot aka Scott Draves, Erik Reckase diff --git a/src/flam3-convert.c b/src/flam3-convert.c new file mode 100644 index 0000000..3062a4b --- /dev/null +++ b/src/flam3-convert.c @@ -0,0 +1,239 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + +#include "private.h" + + +#define MAXARGS 1000 +#define streql(x,y) (!strcmp(x,y)) + + +/* + * split a string passed in ss into tokens on whitespace. + * # comments to end of line. ; terminates the record + */ +void tokenize(ss, argv, argc) + char **ss; + char *argv[]; + int *argc; +{ + char *s = *ss; + int i = 0, state = 0; + + while (*s != ';') { + char c = *s; + switch (state) { + case 0: + if ('#' == c) + state = 2; + else if (!isspace(c)) { + argv[i] = s; + i++; + state = 1; + } + case 1: + if (isspace(c)) { + *s = 0; + state = 0; + } + case 2: + if ('\n' == c) + state = 0; + } + s++; + } + *s = 0; + *ss = s+1; + *argc = i; +} + +/* + * given a pointer to a string SS, fill fields of a control point CP. + * return a pointer to the first unused char in SS. totally barfucious, + * must integrate with tcl soon... + */ + +void parse_control_point_old(char **ss, flam3_genome *cp) { + char *argv[MAXARGS]; + int argc, i, j; + int set_cm = 0, set_image_size = 0, set_nbatches = 0, set_white_level = 0, set_cmap_inter = 0; + int set_spatial_oversample = 0, set_hr = 0; + double *slot, xf, cm, t, nbatches, white_level, spatial_oversample, cmap_inter; + double image_size[2]; + + memset(cp, 0, sizeof(flam3_genome)); + + flam3_add_xforms(cp, flam3_nxforms, 0, 0); + + for (i = 0; i < flam3_nxforms; i++) { + cp->xform[i].density = 0.0; + cp->xform[i].color = i&1; + cp->xform[i].color_speed = 0.5; + cp->xform[i].animate = 1.0; + cp->xform[i].var[0] = 1.0; + for (j = 1; j < flam3_nvariations; j++) + cp->xform[i].var[j] = 0.0; + cp->xform[i].c[0][0] = 1.0; + cp->xform[i].c[0][1] = 0.0; + cp->xform[i].c[1][0] = 0.0; + cp->xform[i].c[1][1] = 1.0; + cp->xform[i].c[2][0] = 0.0; + cp->xform[i].c[2][1] = 0.0; + } + + tokenize(ss, argv, &argc); + for (i = 0; i < argc; i++) { + if (streql("xform", argv[i])) + slot = &xf; + else if (streql("time", argv[i])) + slot = &cp->time; + else if (streql("brightness", argv[i])) + slot = &cp->brightness; + else if (streql("contrast", argv[i])) + slot = &cp->contrast; + else if (streql("gamma", argv[i])) + slot = &cp->gamma; + else if (streql("vibrancy", argv[i])) + slot = &cp->vibrancy; + else if (streql("hue_rotation", argv[i])) { + slot = &cp->hue_rotation; + set_hr = 1; + } else if (streql("zoom", argv[i])) + slot = &cp->zoom; + else if (streql("image_size", argv[i])) { + slot = image_size; + set_image_size = 1; + } else if (streql("center", argv[i])) + slot = cp->center; + else if (streql("background", argv[i])) + slot = cp->background; + else if (streql("pixels_per_unit", argv[i])) + slot = &cp->pixels_per_unit; + else if (streql("spatial_filter_radius", argv[i])) + slot = &cp->spatial_filter_radius; + else if (streql("sample_density", argv[i])) + slot = &cp->sample_density; + else if (streql("nbatches", argv[i])) { + slot = &nbatches; + set_nbatches = 1; + } else if (streql("white_level", argv[i])) { + slot = &white_level; + set_white_level = 1; + } else if (streql("spatial_oversample", argv[i])) { + slot = &spatial_oversample; + set_spatial_oversample = 1; + } else if (streql("cmap", argv[i])) { + slot = &cm; + set_cm = 1; + } else if (streql("palette", argv[i])) { + slot = &cp->palette[0].color[0]; + } else if (streql("density", argv[i])) + slot = &cp->xform[(int)xf].density; + else if (streql("color", argv[i])) + slot = &cp->xform[(int)xf].color; + else if (streql("coefs", argv[i])) { + slot = cp->xform[(int)xf].c[0]; + cp->xform[(int)xf].density = 1.0; + } else if (streql("var", argv[i])) + slot = cp->xform[(int)xf].var; + else if (streql("cmap_inter", argv[i])) { + slot = &cmap_inter; + set_cmap_inter = 1; + } else + *slot++ = atof(argv[i]); + } + if (set_cm) { + double hr = set_hr ? cp->hue_rotation : 0.0; + cp->palette_index = (int) cm; + flam3_get_palette(cp->palette_index, cp->palette, hr); + } + if (set_image_size) { + cp->width = (int) image_size[0]; + cp->height = (int) image_size[1]; + } + if (set_nbatches) + cp->nbatches = (int) nbatches; + if (set_spatial_oversample) + cp->spatial_oversample = (int) spatial_oversample; + if (set_white_level) { + /* ignore */ + } + for (i = 0; i < flam3_nxforms; i++) { + t = 0.0; + for (j = 0; j < flam3_nvariations; j++) + t += cp->xform[i].var[j]; + t = 1.0 / t; + for (j = 0; j < flam3_nvariations; j++) + cp->xform[i].var[j] *= t; + } +} + +int +main(int argc, char **argv) +{ + char *s, *ss; + +#ifdef WIN32 + + char *slashloc; + char palpath[256],exepath[256]; + + slashloc = strrchr(argv[0],'\\'); + if (NULL==slashloc) { + sprintf(palpath,"flam3_palettes=flam3-palettes.xml"); + } else { + strncpy(exepath,argv[0],slashloc-argv[0]+1); + sprintf(palpath,"flam3_palettes=%sflam3-palettes.xml",exepath); + } + putenv(palpath); + +#endif + + if (1 != argc) { + docstring(); + exit(0); + } + + { + int i, c, slen = 5000; + s = malloc(slen); + i = 0; + do { + c = getchar(); + if (EOF == c) goto done_reading; + s[i++] = c; + if (i == slen-1) { + slen *= 2; + s = realloc(s, slen); + } + } while (1); + done_reading: + s[i] = 0; + } + + ss = s; + s += strlen(s); + printf("<conversions>\n"); + while (strchr(ss, ';')) { + flam3_genome cp; + parse_control_point_old(&ss, &cp); + flam3_print(stdout, &cp, NULL, flam3_print_edits); + } + printf("</conversions>\n"); + return 0; +} diff --git a/src/flam3-convert.man b/src/flam3-convert.man new file mode 100644 index 0000000..b754356 --- /dev/null +++ b/src/flam3-convert.man @@ -0,0 +1,36 @@ +.TH flam3-animate 1 "" "" +.SH NAME +flam3-animate +flam3-render +flam3-genome +flam3-convert - render and animate FLAM3s and manipulate their genomes +.SH SYNOPSIS +.B flam3-render < input + +.SH DESCRIPTION + +FLAM3 implements a visual language based on a recursive set equation. + +Flam3-genome creates and manipulates genomes (xml parameter sets) in +this language. Flam3-render turns genomes into still images, and +Flam3-animate renders motion-blurred frames of animation. + +Flam3-convert reads from stdin files in the old format used by the +flame GIMP plugin, and writes the new format to stdout. + +.SH OPTIONS + +Any command line option will cause the program to write its +documentation to standard out. + +.SH ENVIRONMENT + +The environment variables are in the documention written to standard +out given any command line option. + +.SH SEE ALSO +.BR WWW.FLAM3.COM, +.BR electricsheep (1), + +.SH AUTHOR +spot aka Scott Draves, Erik Reckase diff --git a/src/flam3-genome.c b/src/flam3-genome.c new file mode 100644 index 0000000..1e00e9b --- /dev/null +++ b/src/flam3-genome.c @@ -0,0 +1,1075 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + +#include "private.h" +#include "isaacs.h" +#include "config.h" + +int verbose; + +char *get_extras() { + char *e = getenv("extras"); + return e; +} + +void gprint(flam3_genome *cp, int extras) { + if (getenv("noedits")) + flam3_print(stdout, cp, extras ? get_extras() : NULL, flam3_dont_print_edits); + else + flam3_print(stdout, cp, extras ? get_extras() : NULL, flam3_print_edits); +} + + +void test_cp(flam3_genome *cp) { + cp->time = 0.0; + cp->interpolation = flam3_interpolation_linear; + cp->palette_interpolation = flam3_palette_interpolation_hsv; + cp->background[0] = 0.0; + cp->background[1] = 0.0; + cp->background[2] = 0.0; + cp->center[0] = 0.0; + cp->center[1] = 0.0; + cp->rotate = 0.0; + cp->pixels_per_unit = 64; + cp->width = 128; + cp->height = 128; + cp->spatial_oversample = 1; + cp->spatial_filter_radius = 0.5; + cp->spatial_filter_select = 0; + cp->zoom = 0.0; + cp->sample_density = 1; + cp->nbatches = 1; + cp->ntemporal_samples = 1; + cp->estimator = 0.0; + cp->estimator_minimum = 0.0; + cp->estimator_curve = 0.6; +} + +flam3_genome *string_to_cp(char *s, int *n) { + flam3_genome *cp; + FILE *fp; + + fp = fopen(s, "rb"); + if (NULL == fp) { + perror(s); + exit(1); + } + cp = flam3_parse_from_file(fp, s, flam3_defaults_on, n); + if (NULL == cp) { + fprintf(stderr, "could not read genome from %s.\n", s); + exit(1); + } + return cp; +} + +xmlDocPtr create_new_editdoc(char *action, flam3_genome *parent0, flam3_genome *parent1) { + + xmlDocPtr doc = NULL, comment_doc = NULL; + xmlNodePtr root_node = NULL, node = NULL, nodecopy = NULL; + xmlNodePtr root_comment = NULL; + struct tm *localt; + time_t mytime; + char *ai; + char timestring[100]; + char *nick = getenv("nick"); + char *url = getenv("url"); + char *id = getenv("id"); + char *comment = getenv("comment"); + int sheep_gen = argi("sheep_gen",-1); + int sheep_id = argi("sheep_id",-1); + char buffer[100]; + char comment_string[100]; + + doc = xmlNewDoc( (const xmlChar *)"1.0"); + + /* Create the root node, called "edit" */ + root_node = xmlNewNode(NULL, (const xmlChar *)"edit"); + xmlDocSetRootElement(doc,root_node); + /* Add the edit attributes */ + + /* date */ + mytime = time(NULL); + localt = localtime(&mytime); + /* XXX use standard time format including timezone */ + strftime(timestring, 100, "%a %b %e %H:%M:%S %z %Y", localt); + xmlNewProp(root_node, (const xmlChar *)"date", (const xmlChar *)timestring); + + /* nick */ + if (nick) { + xmlNewProp(root_node, (const xmlChar *)"nick", (const xmlChar *)nick); + } + + /* url */ + if (url) { + xmlNewProp(root_node, (const xmlChar *)"url", (const xmlChar *)url); + } + + if (id) { + xmlNewProp(root_node, (const xmlChar *)"id", (const xmlChar *)id); + } + + /* action */ + xmlNewProp(root_node, (const xmlChar *)"action", (const xmlChar *)action); + + /* sheep info */ + if (sheep_gen > 0 && sheep_id > 0) { + /* Create a child node of the root node called sheep */ + node = xmlNewChild(root_node, NULL, (const xmlChar *)"sheep", NULL); + + /* Create the sheep attributes */ + sprintf(buffer, "%d", sheep_gen); + xmlNewProp(node, (const xmlChar *)"generation", (const xmlChar *)buffer); + + sprintf(buffer, "%d", sheep_id); + xmlNewProp(node, (const xmlChar *)"id", (const xmlChar *)buffer); + } + + /* Check for the parents */ + /* If Parent 0 not specified, this is a randomly generated genome. */ + if (parent0) { + if (parent0->edits) { + /* Copy the node from the parent */ + node = xmlDocGetRootElement(parent0->edits); + nodecopy = xmlCopyNode(node, 1); + xmlNewProp(nodecopy,(const xmlChar *)"filename", (const xmlChar *)parent0->parent_fname); + sprintf(buffer,"%d",parent0->genome_index); + xmlNewProp(nodecopy,(const xmlChar *)"index", (const xmlChar *)buffer); + xmlAddChild(root_node, nodecopy); + } else { + /* Insert a (parent has no edit) message */ + nodecopy = xmlNewChild(root_node, NULL, (const xmlChar *)"edit",NULL); + xmlNewProp(nodecopy,(const xmlChar *)"filename", (const xmlChar *)parent0->parent_fname); + sprintf(buffer,"%d",parent0->genome_index); + xmlNewProp(nodecopy,(const xmlChar *)"index", (const xmlChar *)buffer); + + } + } + + if (parent1) { + + if (parent1->edits) { + /* Copy the node from the parent */ + node = xmlDocGetRootElement(parent1->edits); + nodecopy = xmlCopyNode(node, 1); + xmlNewProp(nodecopy,(const xmlChar *)"filename", (const xmlChar *)parent1->parent_fname); + sprintf(buffer,"%d",parent1->genome_index); + xmlNewProp(nodecopy,(const xmlChar *)"index", (const xmlChar *)buffer); + xmlAddChild(root_node, nodecopy); + } else { + /* Insert a (parent has no edit) message */ + nodecopy = xmlNewChild(root_node, NULL, (const xmlChar *)"edit",NULL); + xmlNewProp(nodecopy,(const xmlChar *)"filename", (const xmlChar *)parent1->parent_fname); + sprintf(buffer,"%d",parent1->genome_index); + xmlNewProp(nodecopy,(const xmlChar *)"index", (const xmlChar *)buffer); + } + } + + /* Comment string */ + /* This one's hard, since we have to treat the comment string as */ + /* a valid XML document. Create a new document using the comment */ + /* string as the in-memory document, and then copy all children of */ + /* the root node into the edit structure */ + /* Parsing the comment string should be done once and then copied */ + /* for each call to create_new_editdoc, but that's for later. */ + if (comment) { + + sprintf(comment_string,"<comm>%s</comm>",comment); + + comment_doc = xmlReadMemory(comment_string, strlen(comment_string), "comment.env", NULL, XML_PARSE_NONET); + + /* Check for errors */ + if (comment_doc==NULL) { + fprintf(stderr, "Failed to parse comment into XML!\n"); + exit(1); + } + + /* Loop through the children of the new document and copy */ + /* them into the root_node */ + root_comment = xmlDocGetRootElement(comment_doc); + + for (node=root_comment->children; node; node = node->next) { + + nodecopy = xmlCopyNode(node,1); + xmlAddChild(root_node, nodecopy); + } + + /* Free the created document */ + xmlFreeDoc(comment_doc); + } + + + /* return the xml doc */ + return(doc); +} + +void offset(flam3_genome *g) { + char *os = getenv("offset"); + double ox, oy; + if (NULL == os) return; + sscanf(os, "%lf:%lf", &ox, &oy); + g->center[0] += ox / (g->pixels_per_unit * g->spatial_oversample); + g->center[1] += oy / (g->pixels_per_unit * g->spatial_oversample); +} + +void spin(int frame, double blend, flam3_genome *parent, flam3_genome *templ) +{ + flam3_genome *result; + char action[50]; + xmlDocPtr doc; + + /* Spin the parent blend*360 degrees */ + result = sheep_loop(parent,blend); + + /* Apply the template if necessary */ + if (templ) + flam3_apply_template(result, templ); + + /* Set genome parameters accordingly */ + result->time = (double)frame; + result->interpolation = flam3_interpolation_linear; + result->palette_interpolation = flam3_palette_interpolation_hsv; + + /* Force linear interpolation - unsure if this is still necessary */ + /* I believe we put this in so that older clients could render frames */ +// result->interpolation_type = flam3_inttype_linear; + + /* Create the edit doc xml */ + sprintf(action,"rotate %g",blend*360.0); + doc = create_new_editdoc(action, parent, (flam3_genome *)NULL); + result->edits = doc; + + /* Subpixel jitter */ + offset(result); + + /* Make the name of the flame the time */ + sprintf(result->flame_name,"%f",result->time); + + /* Print the resulting xml */ + gprint(result, 1); + + /* Clear out the xml doc */ + xmlFreeDoc(result->edits); + + /* Clear the result cp */ + clear_cp(result,flam3_defaults_on); + + /* Free the cp allocated in flam3_sheep_loop */ + free(result); +} + +void spin_inter(int frame, double blend, int seqflag, flam3_genome *parents, flam3_genome *templ) { + + flam3_genome *result; + char action[50]; + xmlDocPtr doc; + char *ai; + double stagger = argf("stagger", 0.0); + + /* Interpolate between spun parents */ + result = sheep_edge(parents, blend, seqflag, stagger); + + /* Unsure why we check for random palettes on both ends... */ + if ((parents[0].palette_index != flam3_palette_random) && + (parents[1].palette_index != flam3_palette_random)) { + + result->palette_index = flam3_palette_interpolated; + result->palette_index0 = parents[0].palette_index; + result->hue_rotation0 = parents[0].hue_rotation; + result->palette_index1 = parents[1].palette_index; + result->hue_rotation1 = parents[1].hue_rotation; + result->palette_blend = blend; + } + + /* Apply template if necessary */ + if (templ) + flam3_apply_template(result, templ); + + /* Set genome attributes */ + result->time = (double)frame; +// result->interpolation_type = flam3_inttype_linear; + + /* Create the edit doc xml */ + sprintf(action,"interpolate %g",blend*360.0); + doc = create_new_editdoc(action, &parents[0], &parents[1]); + result->edits = doc; + + /* Subpixel jitter */ + offset(result); + + /* Make the name of the flame the time */ + sprintf(result->flame_name,"%f",result->time); + + /* Print the genome */ + gprint(result, 1); + + /* Clean up */ + xmlFreeDoc(result->edits); + + /* Free genome storage */ + clear_cp(result,flam3_defaults_on); + free(result); +} + +void truncate_variations(flam3_genome *g, int max_vars, char *action) { + int i, j, nvars, smallest; + double sv=0; + char trunc_note[30]; + + for (i = 0; i < g->num_xforms; i++) { + double d = g->xform[i].density; + +/* if (0.0 < d && d < 0.001) */ + + if (d < 0.001 && (g->final_xform_index != i)) { + sprintf(trunc_note," trunc_density %d",i); + //strcat(action,trunc_note); + add_to_action(action,trunc_note); + flam3_delete_xform(g, i); + +/* g->xform[i].density = 0.0; + } else if (d > 0.0) { +*/ + } else { + do { + nvars = 0; + smallest = -1; + for (j = 0; j < flam3_nvariations; j++) { + double v = g->xform[i].var[j]; + if (v != 0.0) { + nvars++; + if (-1 == smallest || fabs(v) < sv) { + smallest = j; + sv = fabs(v); + } + } + } + if (nvars > max_vars) { + sprintf(trunc_note," trunc %d %d",i,smallest); + //strcat(action,trunc_note); + add_to_action(action,trunc_note); + g->xform[i].var[smallest] = 0.0; + } + } while (nvars > max_vars); + } + } +} + +static double golden_bit(randctx *rc) { + return flam3_random_isaac_bit(rc)?0.38196:0.61804; +} + +int +main(argc, argv) + int argc; + char **argv; +{ + int debug = 0; + int count; + char *ai; + unsigned char *image; + flam3_genome *templ = NULL; + flam3_genome cp_orig, cp_save; + int i, j; + double avg_pix, fraction_black, fraction_white; + double avg_thresh = argf("avg", 20.0); + double black_thresh = argf("black", 0.01); + double white_limit = argf("white", 0.05); + int nframes = argi("nframes", 100); + int sym = argi("symmetry", 0); + int enclosed = argi("enclosed", 1); + char *clone = getenv("clone"); + char *clone_all = getenv("clone_all"); + char *animate = getenv("animate"); + char *mutate = getenv("mutate"); + char *cross0 = getenv("cross0"); + char *cross1 = getenv("cross1"); + char *method = getenv("method"); + char *inter = getenv("inter"); + char *rotate = getenv("rotate"); + char *strip = getenv("strip"); + char *sequence = getenv("sequence"); + int loops = argi("loops", 1); + int frame = argi("frame", 0); + int rep, repeat = argi("repeat", 1); + double speed = argf("speed", 0.1); + int bits = argi("bits", 33); + int ntries = argi("tries", 10); + char *use_vars = getenv("use_vars"); + char *dont_use_vars = getenv("dont_use_vars"); + flam3_genome *parent0=NULL, *parent1=NULL; + flam3_genome selp0, selp1; + flam3_genome *aselp0, *aselp1; + int parent0_n, parent1_n; + int num_threads = 1; + flam3_genome *cp; + int ncp; + + int ivars[max_specified_vars]; + int novars[max_specified_vars]; + int num_ivars = 0; + int num_novars = 0; + char *var_tok; + + flam3_frame f; + char action[flam3_max_action_length]; + + stat_struct stats; + + + +#ifdef WIN32 + + char *slashloc; + char exepath[256]; + char palpath[256]; + memset(exepath,0,256); + memset(palpath,0,256); + slashloc = strrchr(argv[0],'\\'); + if (NULL==slashloc) { + sprintf(palpath,"flam3_palettes=flam3-palettes.xml"); + } else { + strncpy(exepath,argv[0],slashloc-argv[0]+1); + sprintf(palpath,"flam3_palettes=%sflam3-palettes.xml",exepath); + } + putenv(palpath); + +#endif + + + verbose = argi("verbose", 0); + + memset(&cp_orig, 0, sizeof(flam3_genome)); + memset(&cp_save, 0, sizeof(flam3_genome)); + memset(&selp0, 0, sizeof(flam3_genome)); + memset(&selp1, 0, sizeof(flam3_genome)); + + if (1 != argc) { + docstring(); + exit(0); + } + + /* Init random number generators */ + flam3_init_frame(&f); + flam3_srandom(); + + //f.temporal_filter_radius = 0.0; + f.bits = bits; + f.bytes_per_channel = 1; + f.earlyclip = 1; + f.verbose = 0; + f.genomes = &cp_orig; + f.ngenomes = 1; + f.pixel_aspect_ratio = 1.0; + f.progress = 0; + f.nthreads = num_threads; + f.sub_batch_size = 10000; + test_cp(&cp_orig); // just for the width & height + + /* Are the variations to be used specified? */ + if (use_vars && dont_use_vars) { + fprintf(stderr,"use_vars and dont_use_vars cannot both be specified. Terminating.\n"); + exit(-1); + } + + /* Specify reasonable defaults if nothing is specified */ + if (!use_vars && !dont_use_vars) { + novars[num_novars++] = VAR_NOISE; + novars[num_novars++] = VAR_BLUR; + novars[num_novars++] = VAR_GAUSSIAN_BLUR; + novars[num_novars++] = VAR_RADIAL_BLUR; + novars[num_novars++] = VAR_NGON; + novars[num_novars++] = VAR_SQUARE; + novars[num_novars++] = VAR_RAYS; + novars[num_novars++] = VAR_CROSS; + novars[num_novars++] = VAR_PRE_BLUR; + novars[num_novars++] = VAR_SEPARATION; + novars[num_novars++] = VAR_SPLIT; + novars[num_novars++] = VAR_SPLITS; + + + + /* Loop over the novars and set ivars to the complement */ + for (i=0;i<flam3_nvariations;i++) { + for (j=0;j<num_novars;j++) { + if (novars[j] == i) + break; + } + if (j==num_novars) + ivars[num_ivars++] = i; + } + + } else { + + if (use_vars) { + /* Parse comma-separated list of variations to use */ + var_tok = strtok(use_vars,","); + ivars[num_ivars++] = atoi(var_tok); + while(1) { + var_tok = strtok(NULL,","); + + if (var_tok==NULL) + break; + + ivars[num_ivars++] = atoi(var_tok); + + if (num_ivars==max_specified_vars) { + fprintf(stderr,"Maximum number of user-specified variations exceeded. Truncating.\n"); + break; + } + } + + /* Error checking */ + for (i=0;i<num_ivars;i++) { + if (ivars[i]<0 || ivars[i]>=flam3_nvariations) { + fprintf(stderr,"specified variation list includes bad value. (%d)\n",ivars[i]); + exit(1); + } + } + } else if (dont_use_vars) { + /* Parse comma-separated list of variations NOT to use */ + var_tok = strtok(dont_use_vars,","); + novars[num_novars++] = atoi(var_tok); + while(1) { + var_tok = strtok(NULL,","); + + if (var_tok==NULL) + break; + + novars[num_novars++] = atoi(var_tok); + + if (num_novars==max_specified_vars) { + fprintf(stderr,"Maximum number of user-specified variations exceeded. Truncating.\n"); + break; + } + } + + /* Loop over the novars and set ivars to the complement */ + for (i=0;i<flam3_nvariations;i++) { + for (j=0;j<num_novars;j++) { + if (novars[j] == i) + break; + } + if (j==num_novars) + ivars[num_ivars++] = i; + } + } + } + + if (1 < (!!mutate + !!(cross0 || cross1) + + !!inter + !!rotate + !!clone + !!strip )) { + fprintf(stderr, + "can only specify one of mutate, clone, cross, rotate, strip, or inter.\n"); + exit(1); + } + + if ( (!cross0) ^ (!cross1) ) { + fprintf(stderr, "must specify both crossover arguments.\n"); + exit(1); + } + + if (method && (!cross0 && !mutate)) { + fprintf(stderr, "cannot specify method unless doing crossover or mutate.\n"); + exit(1); + } + + if (getenv("template")) { + char *tf = getenv("template"); + + templ = string_to_cp(tf, &ncp); + if (1 < ncp) { + fprintf(stderr, "more than one control point in template, " + "ignoring all but first.\n"); + } else if (0 == ncp) { + fprintf(stderr, "no control points in template.\n"); + exit(1); + } + + } + + /* Methods for genetic manipulation begin here */ + + if (clone_all) { + + cp = string_to_cp(clone_all, &ncp); + + printf("<clone_all version=\"FLAM3-%s\">\n", flam3_version()); + for (i = 0; i < ncp; i++) { + if (templ) flam3_apply_template(&cp[i], templ); + offset(&cp[i]); + gprint(&cp[i], 1); + } + printf("</clone_all>\n"); + + exit(0); + } + + if (animate) { + flam3_genome interpolated; + int first_frame,last_frame; + int ftime,iscp; + double stagger = argf("stagger", 0.0); + cp = string_to_cp(animate, &ncp); + + + for (i = 0; i < ncp; i++) { + if (i > 0 && cp[i].time <= cp[i-1].time) { + fprintf(stderr, "error: control points must be sorted by time, but %g <= %g, index %d.\n", + cp[i].time, cp[i-1].time, i); + exit(1); + } + /* Strip out all motion elements here */ + for (j=0;j<cp[i].num_xforms;j++) + flam3_delete_motion_elements(&cp[i].xform[j]); + + } + + if (!getenv("begin")) + first_frame = (int) cp[0].time; + else + first_frame = argi("begin",0); + + if (!getenv("end")) + last_frame = (int) cp[ncp-1].time; + else + last_frame = argi("end",0); + + if (last_frame < first_frame) last_frame = first_frame; + + printf("<animate version=\"FLAM3-%s\">\n", flam3_version()); + + for (ftime = first_frame; ftime <= last_frame; ftime += 1) { + iscp=0; + for (i=0;i<ncp;i++) { + if ( ftime==cp[i].time ) { + flam3_copy(&interpolated, &(cp[i]) ); + iscp=1; + } + } + if (iscp==0) { + flam3_interpolate(cp, ncp, (double)ftime, stagger, &interpolated); + for (i=0;i<ncp;i++) { + if ( ftime==cp[i].time-1 ) { + iscp=1; + } + } + if (iscp==0) + interpolated.interpolation_type = flam3_inttype_linear; + } + + if (templ) flam3_apply_template(&interpolated, templ); + gprint(&interpolated, 1); + } + printf("</animate>\n"); + exit(0); + } + + + if (sequence) { + double blend, spread; + int seqflag; + int framecount; + + if (nframes <= 0) { + fprintf(stderr, "nframes must be positive, not %d.\n", nframes); + exit(1); + } + + cp = string_to_cp(sequence, &ncp); + + if (enclosed) printf("<sequence version=\"FLAM3-%s\">\n", flam3_version()); + spread = 1.0/nframes; + framecount = 0; +#if 1 + for (i = 0; i < ncp; i++) { + if (loops) { + for (frame = 0; frame < nframes; frame++) { + blend = frame/(double)nframes; + spin(framecount++, blend, &cp[i], templ); + } + } + if (i < ncp-1) + for (frame = 0; frame < nframes; frame++) { + if (0==frame || nframes-1==frame) + seqflag=1; + else + seqflag=0; + blend = frame/(double)nframes; + spin_inter(framecount++, blend, seqflag, &cp[i], templ); + } + } + spin(framecount, 0.0, &cp[ncp-1], templ); +#else + if (1) { + flam3_genome res; + memset(&res, 0, sizeof(flam3_genome)); + res.final_xform_index = -1; + flam3_add_xforms(&res, cp[0].num_xforms, 0); + + if (ncp < 4) { + fprintf(stderr, "catmull-rom requires 4 or more control points.\n"); + exit(1); + } + for (i = 0; i < ncp - 3; i++) { + for (frame = 0; frame < nframes; frame++) { + blend = frame/(double)nframes; + interpolate_catmull_rom(cp+i, blend, &res); + res.time = frame + i * nframes; + gprint(&res, 0); + fflush(stdout); + } + } + } +#endif + if (enclosed) printf("</sequence>\n"); + exit(0); + } + + if (inter || rotate) { + + double blend, spread; + char *fname = inter?inter:rotate; + int ni; + + if (nframes <= 0) { + fprintf(stderr, "nframes must be positive, not %d.\n", nframes); + exit(1); + } + + blend = frame/(double)nframes; + spread = 1.0/nframes; + + cp = string_to_cp(fname, &ncp); + + if (enclosed) printf("<pick version=\"FLAM3-%s\">\n", flam3_version()); + if (rotate) { + if (1 != ncp) { + fprintf(stderr, "rotation requires one control point, not %d.\n", ncp); + exit(1); + } + spin(frame - 1, blend - spread, cp, templ); + spin(frame , blend , cp, templ); + spin(frame + 1, blend + spread, cp, templ); + } else { + if (2 != ncp) { + fprintf(stderr, "interpolation requires two control points, not %d.\n", ncp); + exit(1); + } + spin_inter(frame - 1, blend - spread, 0, cp, templ); + spin_inter(frame , blend , 0, cp, templ); + spin_inter(frame + 1, blend + spread, 0, cp, templ); + } + if (enclosed) printf("</pick>\n"); + + for (ni=0;ni<ncp;ni++) { + xmlFreeDoc(cp[ni].edits); + clear_cp(&cp[ni],flam3_defaults_on); + } + free(cp); + + exit(0); + } + + if (strip) { + + cp = string_to_cp(strip, &ncp); + + if (enclosed) printf("<pick version=\"FLAM3-%s\">\n", flam3_version()); + + for (i = 0; i < ncp; i++) { + double old_center[2]; + + /* Strip out motion elements */ + for (j=0;j<cp[i].num_xforms;j++) + flam3_delete_motion_elements(&cp[i].xform[j]); + + old_center[0] = cp[i].center[0]; + old_center[1] = cp[i].center[1]; + cp[i].height /= nframes; + cp[i].center[1] = cp[i].center[1] - ((nframes - 1) * cp[i].height) / + (2 * cp[i].pixels_per_unit * pow(2.0, cp[i].zoom)); + cp[i].center[1] += cp[i].height * frame / ( cp[i].pixels_per_unit * pow(2.0,cp[i].zoom) ); + rotate_by(cp[i].center, old_center, cp[i].rotate); + + if (templ) flam3_apply_template(&cp[i], templ); + offset(&cp[i]); + gprint(&cp[i], 1); + } + + if (enclosed) printf("</pick>\n"); + exit(0); + } + + /* pick a control point until it looks good enough */ + if (repeat <= 0) { + fprintf(stderr, "repeat must be positive, not %d.\n", repeat); + exit(1); + } + + if (enclosed) printf("<pick version=\"FLAM3-%s\">\n", flam3_version()); + image = (unsigned char *) malloc(3 * cp_orig.width * cp_orig.height); + + for (rep = 0; rep < repeat; rep++) { + + if (verbose) + fprintf(stderr, "flame = %d/%d..", rep+1, repeat); + + count = 0; + + if (clone) { + + parent0 = string_to_cp(clone, &parent0_n); + /* Action is 'clone' with trunc_vars concat */ + sprintf(action,"clone"); + + if (getenv("clone_action")) + sprintf(action,"clone %s", getenv("clone_action")); + + flam3_copy(&selp0, &(parent0[random()%parent0_n])); + flam3_copy(&cp_save, &selp0); + aselp0 = &selp0; + aselp1 = NULL; + truncate_variations(&cp_save, 5, action); + + cp_save.edits = create_new_editdoc(action, aselp0, aselp1); + + } else { + int did_color; + + do { + + int random_mode=0; + + if (verbose) fprintf(stderr, "."); + did_color = 0; + f.time = (double) 0.0; + action[0] = 0; + + if (mutate) { + int mutmeth; + + parent0 = string_to_cp(mutate, &parent0_n); + flam3_copy(&selp0, &(parent0[((unsigned)irand(&f.rc))%parent0_n])); + flam3_copy(&cp_orig, &selp0); + aselp0 = &selp0; + aselp1 = NULL; + + if (NULL == getenv("method")) + mutmeth = MUTATE_NOT_SPECIFIED; + else if (!strcmp(method,"all_vars")) + mutmeth = MUTATE_ALL_VARIATIONS; + else if (!strcmp(method,"one_xform")) + mutmeth = MUTATE_ONE_XFORM_COEFS; + else if (!strcmp(method,"add_symmetry")) + mutmeth = MUTATE_ADD_SYMMETRY; + else if (!strcmp(method,"post_xforms")) + mutmeth = MUTATE_POST_XFORMS; + else if (!strcmp(method,"color_palette")) + mutmeth = MUTATE_COLOR_PALETTE; + else if (!strcmp(method,"delete_xform")) + mutmeth = MUTATE_DELETE_XFORM; + else if (!strcmp(method,"all_coefs")) + mutmeth = MUTATE_ALL_COEFS; + else { + fprintf(stderr,"method '%s' not defined for mutate. defaulting to random.\n",method); + mutmeth = MUTATE_NOT_SPECIFIED; + } + + flam3_mutate(&cp_orig, mutmeth, ivars, num_ivars, sym, speed, &f.rc, action); + + /* Scan string returned for 'mutate color' */ + if ( strstr(action,"mutate color") ) + did_color = 1; + + if (cp_orig.flame_name[0]) { + char tm[flam3_name_len+1]; + strncpy(tm, cp_orig.flame_name, flam3_name_len); + snprintf(cp_orig.flame_name, flam3_name_len, "mutation %d of %s", rep, tm); + } + + } else if (cross0) { + int i0, i1; + int crossmeth; + + parent0 = string_to_cp(cross0, &parent0_n); + parent1 = string_to_cp(cross1, &parent1_n); + + i0 = ((unsigned)irand(&f.rc))%parent0_n; + i1 = ((unsigned)irand(&f.rc))%parent1_n; + + flam3_copy(&selp0, &(parent0[i0])); + flam3_copy(&selp1, &(parent1[i1])); + + aselp0 = &selp0; + aselp1 = &selp1; + + if (NULL == getenv("method")) + crossmeth = CROSS_NOT_SPECIFIED; + else if (!strcmp(method,"union")) + crossmeth = CROSS_UNION; + else if (!strcmp(method,"interpolate")) + crossmeth = CROSS_INTERPOLATE; + else if (!strcmp(method,"alternate")) + crossmeth = CROSS_ALTERNATE; + else { + fprintf(stderr,"method '%s' not defined for cross. defaulting to random.\n",method); + crossmeth = CROSS_NOT_SPECIFIED; + } + + flam3_cross(&parent0[i0], &parent1[i1], &cp_orig, crossmeth, &f.rc, action); + + if (parent0[i0].flame_name[0] || parent1[i1].flame_name[0]) { + snprintf(cp_orig.flame_name, flam3_name_len, "%d of %s x %s", + rep, parent0[i0].flame_name, parent1[i1].flame_name); + } + + } else { + sprintf(action,"random"); + random_mode=1; + flam3_random(&cp_orig, ivars, num_ivars, sym, 0); + + + aselp0 = NULL; + aselp1 = NULL; + } + + /* Adjust bounding box half the time */ + if (flam3_random_bit(&f.rc) || random_mode) { + double bmin[2], bmax[2]; + flam3_estimate_bounding_box(&cp_orig, 0.01, 100000, bmin, bmax, &f.rc); + if (flam3_random_isaac_01(&f.rc) < 0.3) { + cp_orig.center[0] = (bmin[0] + bmax[0]) / 2.0; + cp_orig.center[1] = (bmin[1] + bmax[1]) / 2.0; + add_to_action(action," recentered"); + } else { + double mix0, mix1; + if (flam3_random_isaac_bit(&f.rc)) { + mix0 = golden_bit(&f.rc) + flam3_random_isaac_11(&f.rc)/5; + mix1 = golden_bit(&f.rc); + add_to_action(action," reframed0"); + } else if (flam3_random_isaac_bit(&f.rc)) { + mix0 = golden_bit(&f.rc); + mix1 = golden_bit(&f.rc) + flam3_random_isaac_11(&f.rc)/5; + add_to_action(action," reframed1"); + } else { + mix0 = golden_bit(&f.rc) + flam3_random_isaac_11(&f.rc)/5; + mix1 = golden_bit(&f.rc) + flam3_random_isaac_11(&f.rc)/5; + add_to_action(action," reframed2"); + } + cp_orig.center[0] = mix0 * bmin[0] + (1-mix0)*bmax[0]; + cp_orig.center[1] = mix1 * bmin[1] + (1-mix1)*bmax[1]; + } + cp_orig.rot_center[0] = cp_orig.center[0]; + cp_orig.rot_center[1] = cp_orig.center[1]; + cp_orig.pixels_per_unit = cp_orig.width / (bmax[0] - bmin[0]); + } + + truncate_variations(&cp_orig, 5, action); + + if (!did_color && random()&1) { + if (debug) + fprintf(stderr,"improving colors...\n"); + + flam3_improve_colors(&cp_orig, 100, 0, 10); + //strcat(action," improved colors"); + add_to_action(action," improved colors"); + } + + cp_orig.edits = create_new_editdoc(action, aselp0, aselp1); + flam3_copy(&cp_save, &cp_orig); + test_cp(&cp_orig); + if (flam3_render(&f, image, flam3_field_both, 3, 0, &stats)) { + fprintf(stderr,"error rendering test image: aborting.\n"); + exit(1); + } + + if (1) { + int n, tot, totb, totw; + n = cp_orig.width * cp_orig.height; + tot = 0; + totb = 0; + totw = 0; + for (i = 0; i < 3*n; i+=3) { + + tot += (image[i]+image[i+1]+image[i+2]); + if (0 == image[i] && 0 == image[i+1] && 0 == image[i+2]) totb++; + if (255 == image[i] && 255 == image[i+1] && 255 == image[i+2]) totw++; + + // printf("%d ", image[i]); + } + + avg_pix = (tot / (double)(3*n)); + fraction_black = totb / (double)n; + fraction_white = totw / (double)n; + + if (debug) + fprintf(stderr, + "avg_pix=%g fraction_black=%g fraction_white=%g n=%g\n", + avg_pix, fraction_black, fraction_white, (double)n); + + } else { + avg_pix = avg_thresh + 1.0; + fraction_black = black_thresh + 1.0; + fraction_white = white_limit - 1.0; + } + + clear_cp(&cp_orig,flam3_defaults_on); + + count++; + } while ((avg_pix < avg_thresh || + fraction_black < black_thresh || + fraction_white > white_limit) && + count < ntries); + + if (ntries == count) { + fprintf(stderr, "warning: reached maximum attempts, giving up.\n"); + } + + } + + if (templ) + flam3_apply_template(&cp_save,templ); + + cp_save.time = (double)rep; + + if (1) { + char *maxforms = getenv("maxforms"); + if (maxforms && atoi(maxforms)) { + cp_save.symmetry = 0; + while (cp_save.num_xforms > atoi(maxforms)) + flam3_delete_xform(&cp_save, cp_save.num_xforms - 1); + } + } + + gprint(&cp_save, 1); + fflush(stdout); + + /* Free created documents */ + /* (Only free once, since the copy is a ptr to the original) */ + xmlFreeDoc(cp_save.edits); + clear_cp(&cp_save,0); + + if (verbose) { + fprintf(stderr, "\ndone. action = %s\n", action); + } + + } + if (enclosed) printf("</pick>\n"); + free(image); + + return 0; +} diff --git a/src/flam3-genome.man b/src/flam3-genome.man new file mode 100644 index 0000000..b754356 --- /dev/null +++ b/src/flam3-genome.man @@ -0,0 +1,36 @@ +.TH flam3-animate 1 "" "" +.SH NAME +flam3-animate +flam3-render +flam3-genome +flam3-convert - render and animate FLAM3s and manipulate their genomes +.SH SYNOPSIS +.B flam3-render < input + +.SH DESCRIPTION + +FLAM3 implements a visual language based on a recursive set equation. + +Flam3-genome creates and manipulates genomes (xml parameter sets) in +this language. Flam3-render turns genomes into still images, and +Flam3-animate renders motion-blurred frames of animation. + +Flam3-convert reads from stdin files in the old format used by the +flame GIMP plugin, and writes the new format to stdout. + +.SH OPTIONS + +Any command line option will cause the program to write its +documentation to standard out. + +.SH ENVIRONMENT + +The environment variables are in the documention written to standard +out given any command line option. + +.SH SEE ALSO +.BR WWW.FLAM3.COM, +.BR electricsheep (1), + +.SH AUTHOR +spot aka Scott Draves, Erik Reckase diff --git a/src/flam3-palettes.xml b/src/flam3-palettes.xml new file mode 100644 index 0000000..d9a258a --- /dev/null +++ b/src/flam3-palettes.xml @@ -0,0 +1,23135 @@ +<palettes> +<palette number="0" name="south-sea-bather" data="00b9eaeb00c1eeeb00c5f2eb00c9f2eb00c9f6eb00cdf6eb00cdf6eb00cdf2eb +00d1f2eb00d2eeeb00d1f2e100d6f2eb00ddf6fe00d5f2f400f2faf400e2f2eb +00def2eb00d6f2eb00d6f2f400d1eef400d1eef400cdeef400cdeeeb00c9eeeb +00c9eeeb00c9eef400c9eef400c9f2f400cdf2f400d1f2f400d2f2f400d1f6f4 +00cdf2f400c5f2f400bdf2f400bdf2f400b9eef400b5f2f400bdf2f400c1f2f4 +00c5f2fe00c5f2fe00bdf2f400b5f2f400b1f2f400b5eef400bdeaeb00bdeaeb +00c1e6eb00c1e6eb00bde6e100b5e6e100a5e6e100a5e2e100a1e2eb009de6ea +0099def400a5e2f400a5e6f400a5e6f400a9e2f400ade2eb00b1e2eb00b1deeb +00b1e2eb00b1e6f400b1e2f400b1e2f400b1e2f400ade2f400a9e2f400a1e6fe +009de6fe00a5eaf400adeaf400b1eeea00b9eeeb00c1eeeb00c5eeeb00c5eeeb +00c9eeeb00c9f2f400c5f2f400c5eef400c5eaf400c5eaf400c5eaf400c1e6eb +00c1e6eb00c5eae100c5e6e200c2e2cf00ce9b8400b27f7100a6845500918055 +009a805500a2725500a2764b00b6724b00ba7f6700d2a48400c6e2c600c9eae1 +00ceeed800deab8300ce9b7a00be907a00ca977a00dba38400e6b79600fae9ce +00deeaeb00d1eeeb00c1e2eb00bddeeb00b5deeb00ade2f400a9e2f400a9e2f4 +00ade6f400adeaeb00adeaea00ade6eb00ade2eb00ade2ea00b1e6e200b5e6e2 +00bde6eb00c1e6f400c5eaf400c9eaf400c9eef400c9eef400c9eef400c9eef4 +00c9eef400c9f2f400c9f2f400c9f2f400c9f2f400c9f2f400c5eef400c1eefe +00b1eefe00ade6f400b1e6f400b1eaf400b5eef400bdeef400c1f2f400c9f6f4 +00cdf6f400cdf6f400cdf6f400cdf2f400cdeef400cdeefe00c9eefe00c5eefe +00c1eef400c1eef400c1eaf400c1eaeb00c1eaeb00c1eaeb00bdeaf400b9eaf4 +00b5eaf400b5e6f400b5e6f400b5eaf400bdeaf400c1eaf400c5eaeb00c5eaeb +00c9eaeb00c9eaf400cdeaf400cdeef400cdeef400cdeef400cdf2f400c9f2eb +00c9f2eb00c5f2eb00c1eaf400b9e6f400b5e2f400b5e2f400b5e6f400b5e6f4 +00b9eaeb00bdeeeb00bdf2eb00c1eeeb00c5eeeb00c5eeeb00c5eee100c1eae1 +00bdded800aa94710075684200483725000b0c0900242c25004c7567009e9171 +00b1cec500bde2d800bdeae200c1eeeb00bdeef400bdeef400bdeef400b9eaf4 +00b9eaf400b9e6f400bde6eb00bde6eb00bdeaf400c1eef400c5f2fe00c9f6fe +00c9f2fe00c5eefe00c1eef400bdeeeb00b9eaeb00b1e6ea00b5e6eb00b5e6eb +00b9e2eb00b5e6eb00bde6eb00c1eaeb00c1eaf400bdeaf400b9e6f400b5e6f4 +00b1e6f400b1e6eb00a9e2eb00a9e2eb00a1dee10089bec5009e917a00957c67 +00857967008d6a4b008d5f420085634200796c420079643800756841005d5938 +"/> +<palette number="1" name="sky-flesh" data="00a6947a00dba28400eed4b200faedce00eefaeb00e2f2eb00daf2e100cef2e1 +00ceeee100ceeacf00b6a98d00b28a6700b2826700aa937100b1c6b300b5e6e1 +00b9e6eb00bde6f400c5e6f400c9eaf400cdeaf400cdeef400c9eaeb00c5eae1 +00c1decf00aa947a00917f5e00756442003c402f0014241c0008140900141c12 +00383c2500715b3800916a4b00a6795500be896700e6bea900dae6e200d6eeeb +00d1eef400cdeef400cdeef400c9eef400c5eaf400c5eaf400c5e6f400c5e6f4 +00c5e6f400c1eaf400b9e6f400b1e2eb009dcece0078998d00608584006c8d8d +008db1b200ade2e100b1e6eb00b9eaeb00b9f2f400c5f2f400c5eef400c5eef4 +00c5eef400c1eaf400bde6eb00b9d6c5009a907a00967f5e009280550085734b +0085784b007d6b4b007d705500856f4b008d654200816a4b00896a4200856642 +008d5b42008d5d3800895d2f00755725006d4a2500382c1c000c140900041000 +000c1c0900342f1c00504c2f00715b3800795e38007d62380071572500553f1c +00282c1c000c0c0900000c0000041809001c3c250038584b0079685400918467 +00aaa08400c1e2cf00c5eee100cdf2eb00cdf2f400cdeef400c9eef400c9eef4 +00c9eef400c5eef400c1eaf400bde6eb00bde2e100babd9700ba966700a6875e +00a6865e00a2825e00a2825e00a6825500a28255009e7e4b0096764b009e714b +00967542009a75420095724b009e835500a68b5500ae8e5500b69b7100c6c2a9 +00cde6d800cdeaeb00c5def400c1e2f400b9e6f400b5e2f400b1e2e20091a5a0 +009e9067009e905e00a68f5e00baa07a00c5decf00cae2e200c9eaeb00c5eaeb +00c1eef400bdeaf400ade2f400addeeb00899da00089787100817c67008d845e +009e7e5e00aa8f7100b2b9a000b9e6e100bde6eb00c1eaeb00c1eaeb00c1eae1 +00b6c2aa00a290710092775500715c4200444025001820090000100900000c09 +000c101200382f1c0071532e00855a3800966c38009a6d42009e684200996438 +00a55f2f009e672f009e6c38009e6842009d6e4b009e684b00a2714b00a26c4b +009e714200aa704200ae744b00b67c4b00ae784b00b67c5500be8e6700d6c0a9 +00d2e6e100d6eaeb00d6eaeb00d2eaeb00d1eaeb00cdeaeb00cdeeeb00caeeeb +00c5eeeb00c5eeeb00c5eeeb00c5eeeb00c9eeeb00caeeeb00cdeeeb00cdeeeb +00d2f2eb00d6f2eb00d6eee100d2eae200c6d2bc00b2977a009e7367007d6b55 +005c615e00304c42000c181c00080c120004080900101c120038382500644b38 +0085624200926e55009a7b5e009e8c6700b2b18d00b9e6d800c1eaeb00c5eaeb +00ceeae100ceeacf00d6a28400be895e00b27d5e00aa7b5e00aa7d5e00a68771 +00b2a88d00b9e2cf00b5e6eb00b9e6f400b9e6f400b5e2eb00bed2c600aa9871 +"/> +<palette number="2" name="blue-bather" data="007d645400a2634b00ae634b00b6736800be7c7a00be898d00c2999700cea1a0 +00daada900e6a9bc00eeacc500eab4c500eab0bc00deb4bc00deadb300e2a1a9 +00e295a900d68d9700d28d9700c6918d00c2898400be847a00b27c6800966855 +00715c4b0038404b0034446700303c7a00283c84002738840028387a0024347a +0024346700282438001f182f000c18250004141c0000101c0004101c000c181c +00281f2500342838002c3042003438710030448d003851a0004055aa004461b3 +004861bc004861bc004865bc004869b3004c65b3005065b300ad7c7b00ba8884 +00ba8d8400be8d8d00be8d8400be918400c28d8400be898400ba898400b18084 +004c69b3005069bc00546dbc00ba999700be9d9700c6a19700caa5a000caa1aa +00caa5aa00caa9aa00caa9aa00ceadaa00ceadaa00d2adaa00d2a9aa00caa5a0 +00caa5a000caa19700c6999700c6918d00c2918d00c2918d00c6918400c6887a +00b6787100aa675e009e584b00543c38003034380028282f0024302f00283038 +00283442002834710030388400344497003c51aa00485db3004861b3004861b3 +004861b300495daa00a96f7a00ba808400ba848400be808d00c2748400b67371 +00be6f6800b2635500aa544b0075545400443c5500344471003040840038498d +006d587a009e746800a97c7100a18071004965aa004865b3004865b3004961aa +00a5787100aa787100b27c7100b6787100b27767009a6b550079605e00344084 +002c40840030448d00344997003855a0004059aa00405daa00405daa00445daa +004461aa005461970091685e00ae504b00a2484200543c410040344200343042 +004d494b008d645400aa746800b6787100b6787100b27c7100ae7c7a008d6884 +00404d97003444970030408d002c388d00344497003851aa004459b3004061bc +004861bc004c65bc004c69bc00506dbc00b6899700c2959700c699a000c699a0 +00c2999700ba958d00ba8d8400a9807a004c65b3004865b3004465b3003c5daa +003451a00030499700344997003c4d970081647100a9787100b6847a00ba847a +00ba847a00aa7c7b004c61aa00445daa00445daa004455aa004055aa004051a0 +0044557a00815c5400aa5f4b00b25b4b00ba6f5e00c2775e00ba776800ba8471 +00ba887100b68c7100ae807100a6787100505497003849970034449700304497 +00304497002c4097002c408d002c448d0030498d0030498d002c4997003855aa +004461b3004861bc004865bc004869c6004c65bc00506dbc00ba8d8d00ba8d8d +00c2959700ca9d9700ce9d9700caa19700c6998d00c2958400be947a00ba8871 +00b67b6800b6736800a6674b00715c4100383c380024342f0024342f00202c25 +0038271c0092444200ae504200b6574200c26b6800c26f7100c2737100be7467 +"/> +<palette number="3" name="no-name" data="001009090039321800554c310064605000797558008a694a008d5c4900904c42 +008b4635007f3c2b00632c19004b231d003d1b1200290c0900130808000d0808 +000e0808001f0c0a002d220e00473115005948260067461d006b4a1f006b4c1f +005f4b2300524121004428120034180c00290b0700100707000b060600080606 +00070606000806060008060600090707000b0808000d080c000f090d00131214 +00292010003b351b00574a25007359220081612200896b2c0088672300886c24 +008d6d2600896d2c008b712d008c6f2f008c6c32009b66430094654c0097644e +00996954009b685900a2716300aa7b7400ac8c7b00a8907b00a88c7900a98c7d +00a48d7900a58774009c7b630099755e008d685800845d4800635936005a4b2b +002e2d2100111a290010142600121920002f2a1700413a20005c4b2b00745d24 +007a602500876129008a573800935b45008d5b44008c553a008c5845008f5442 +00874c3500864c350082472e007f462c007e422b0080472b007f571f007e591e +00835d220081612100805b22007a572200704c1e0060431c004f301800382715 +0024201300131116000f080e000c080c000a0808000a07070009070800080808 +00090808000a0808000b0808000d08080010090800240b080031120e00452715 +00603b18007a4b17008b612000946d27009477340094783a0094763c00946a51 +00966c51009c6e5600a2756200a57f7200a2907b00919085008c8c7d008b8e7e +008da1b100a9999200a6988c00a7948700ab8f7d00a78a7800a7806e00a37660 +009a6d550092644c0088503a00753a3400542e27003e1b13002f0f0800190808 +000e0808000e080800200b070030110b0046231100582c1b0076332100774126 +00774126007a422b0074452400654c26005a492700443519002b21150011141f +000f11220010101d000e0a15000f081100261a100043230e005b3313006a3a14 +00794817007c531a0076562700695b25005a4928003f3821001a1e2000101120 +000e0f1b000c0811000e080e0011080800280b070035180f004b1f1200673012 +007a37210078471e0082581e008d6528008b6433008b6746007879610076717c +00898a7b00898c7b00828375007b7b6200807d6c007d7d5d00976d5300a97f45 +00a6814200a7833e00a7823e00a07b36009b813900987c3700997c35009a782e +009a77300092743500876c2e00806b3800685f41005c5534005d502e00514423 +003b331b0029201000140b09000d0808000c0808000c0808000d0808000d0707 +001008080024090700310f0700320f0a0036150e003f1b1000431c1000461b14 +004a1a1000501f1100561e10005425140062371400654119006f46170079531d +007a60250082692c007e672c006c5e40006d6244006a6245006a664a00746947 +"/> +<palette number="4" name="pillows" data="004b3a2f003a2b2b002b221c001c1c16001111110011111100111111000b110b +000b0b0b000b0b0b000b0b0b000b0b0b000b0b0b000b110b00111111001c1111 +002b1611003c1c16004d2d1c005e362000774422008d5a2d00ad653200bf6a32 +00cb754300ba754e00af7043008d603e00804f3e007149330072422b007a4d2b +0097491600a0491c008a49160075411a00673c250053311a004d3114003c1c11 +002d110b001a110b001111110011111100111111001c1611002716160036221c +003c221600512216005122110057271100682d0b00833200009c3d0000994305 +00884305007d320b006b3311006b33110068321100663311005a3e2200533620 +005c401e0060442700603e2d0068493800774f38007e513a0088603e0088603e +00885a38007553360066493300643c3100603c2b00603e27005a3e27005a3e27 +005640290056402f00513a340047363100493e38005c4b4500774f5a00826666 +0091a2ad00afc0c500d2d8e300f3f3f300fcf6fc00f6f6f100fafaef00f6f6f1 +00f2c59d00c9795800a97060008d665a0086544f006b44440055333e00453131 +00362727002d221c00221c160022161100361611003a1420003e232300493327 +004f382700513a2f005c402f00604433005c4b3a006b553e006f533c0071553e +007a424d0086535300794c5d007749540067464100684938006442310056402f +00493e2d004933270038271c001c1c1c00111611001111110011111100161c16 +001c272d001c354e00403a34004b333300643c360077444f00794c4c00913e4f +008255490093542200b33838009e491600ab490b00c9050b00b6310000993d0b +00994e0b00a74e050096380b00863205007c160b006d11110060221600532d16 +0053271100492216003e1c1600361c1100292312001c16110016111100111111 +000b110b000b110b000b110b0011111100111111001111110011111100111111 +000b0b0b000b0b0b00050505000505050000050000000b0000000b0000000b00 +00000b0000050b0500050b05000b110500110b0b001a0b0b0022110b0034110b +00381c16003c2222003e2525004b312b0042363100423631003c3631003e332d +00422d2700452b2b003a202f002d222700221c1c00222216002d271c00342f23 +0047362b004f33380060444f00774f5a0095736d00a4a9af00b9bfc400dee4e9 +00f1f1f100fed6ba00f0ce8b00cb804e00ba704e00ad5a43008d5433007c4f38 +00714f3e0056514b005656760086869c00a78ba200c58c8700ad7f74009b8568 +008d664f009c5a4300a96a3200a4651c0097491000742d1100582211004d1c0b +004211110024050500160b000011140000110b0500110b00000b0b0b000b0b0b +000b0b0b000b0b0b00050b05000511050005110500050b05000b0b0b00110b0b +"/> +<palette number="5" name="mauve-splat" data="00161616001616160016111400160b0f0011050b000b050b000b050b000b050b +000b050b000b050b000b050b000b050f000b0b0f000b0b0f000b0b1100110b11 +00111111001111110011111100110b0b00110b0b00110b0b0011050b000b0509 +000505050005050500050505000505090005050b0005050f000b051100110511 +0011050f0011050f000b050b000b050b000b050b000b050b000b050f000b0b11 +000b0b1100110b1100110b140011051600110b1400160b140016111600161616 +00161c1100161c16001616160016161600161616001616160016161600161116 +001611140016111100161111001c1111001c11110016111100160b1100160b11 +001111110011111600110b16000b0b11000b0b11000b0b1100050b0f0005050b +0005000b0005000900050505000b05050011050500160b0b00161111001c1616 +001c1616001c1616001c1622001c16250016112000110b1e000b0b18000b0b14 +000b0b14000b051a000b0514000b0514000b0514000b0511000b051100110511 +0011051100110514001105140011051400160b1a00110b20001a1427001c1c2b +004d424800607a6500aeac8100548b9200f0c3b800bf704e009f5a4900d2492c +00785e42006b5a5a0054585a00765a430055606b00426475004b4b400036504a +0036423600272d11001c1c1c00202020002d27220053252500831c0b00d51600 +00da100500941b00004b1016002b1611001c160b0016160500201100001c2500 +001111050011160b0011110b00110b0b00110b0b00110b0b000b0b0b000b050b +000b050b000b050b0011050b0011050b0011050b000b000b000b000b000b000b +000b000b000b050b000b050b000b050b000b050b000b050b000b0b0b000b0b0f +000b0511000b0511001105110011051100110b1100110b1100110b1100110b11 +00110b0f00110b0b00110b05000b0b000011050000110505001105050011050b +0011050b0011050b0011050b0011000b0011000b00110005000b0505000b0505 +000505050000000500050505000b0505000b0505000b0b0b000b0b0b000b0b0b +000b050b000b050b000b050b000b050b000b050b0005050f0005000f00050011 +000b0011000b000f000b000b000b000b000b000b000b0009000b0005000b0000 +000b0000000b0005000b0005000b0005000b0505001105050011050500110b0b +00110b0b00110b0b00110b0b00140b0b0016110b001611110016111100161111 +00110b1100110b1100110b1100110b1100110b1100110b1100110b1100110b11 +00110b1100110b1100110b1100110b1400110b160011111a0011161e00161620 +001c111c001c11160022111a00251a14002d1c160036311a00643333004d3832 +004d3a3a00324e5a0031363c00473238003e3a34003c4216004f442d002d2225 +"/> +<palette number="6" name="facial-treescape 6" data="0027221a0034253800253c3a0034493400495533006e573b00a4937f00856958 +00a68675007a858e00897d5b009681380098650000874927003e471100275611 +00223e1600254d2b00273e2200274f1c002d5c3300364f310034403a00314531 +0027402d002f3e1e00273e110027310b002d2d11002731160022361c00203723 +00273827002d3322002d3c2200223116001c27110014230f0016220b0011270b +00161c0b0011220b00112711000b1c0b000b1c05000b1c0b00111c0b0016160b +0016110500160b0000160b00001611000016110000231409003c161100522710 +005131140084502900877b5a00b2a67000c5cba900cde9de00b2dad4006b9eaf +00326084003156670025373700222d2700222722001c1c2200221616001c1111 +0016161100161611001611110011110b000f14090011160500161a0000161c00 +00222000001c200500221c0500221c00001c1c000022160b0022160b001c1111 +001c160b001c160b0016160b00161c0b00161c1100161c110011161600111111 +0016110b0016110b0016110b0016110b00160b0b00110b0b00110b0b00110b0b +000f09090016050500160b0500160b0500161105001616050011160500111c0b +00111c0b00111a0b000b160b000b160b000b1105000b110500051105000b1100 +000b1105001111050011110b0011161100161c16001c1c250016274000335349 +0055754a007ab08e00c1dee300dce7ed00d7e2e800fad89a00f4cd6d00c37245 +0095723a005d6735003e4722003336160027221100201a140011160b000b0b0b +000b0505000b0505000b0505000b0b05000b0b00000b0b0500110b0500110b05 +0011110500111605000b1600000b1100000b0b00000b0b00000b050000110500 +0014050000110500001105000011000000110000000b0000000b0500000b0500 +000b050000000000000b0500000505000005050000050b0000050b05000b0b05 +001111050011160000161c0000162505001a2509001c2b0f001a391d002b442b +001c402b001c45220020502300294d2f0038604400496e4c002d6f4f0052695e +003e727400439393004eafc500b4dcdc00d8dede00fad28300b47b5f0079573b +00494427003a482c003342220025312000222716001c2211001c160b0016110b +00110b0500110b0500110b00000b0b00000b0b00000b0b000011110000161605 +001a1a09001c220b001c220b001a250f001c2711001c2216001c201600202014 +002222110022251100272b0b00252b0f002227110022250b001c200b00161c0b +001c1c0b001a1a090022220b002d1c0b0031250f003627160045271c0038271c +0029231a0022221c001c221c001a2216001c25160022271600222d1600222716 +0022271100222511002d270b002d2714002d27160033271100312b1400333924 +"/> +<palette number="7" name="fasion-bug" data="0018131a002d1f2900432d33007a1f2c00901f2700911d2500921e2300961e24 +00901e240085212300452d2c002f222800231d24001f191e001b171b001a151a +001b161c001e182100201c220025222900302b2f003b353800534d49005f4d45 +007b5a4d00826d58007c746200948e7000b0a47800c9c09900d6d0c200e4dece +00e6e0cd00e6e1c900e6ddca00e5d5be00dbbe9e00b0986f008d6d5300984945 +009c3a3500927d5e00b6957b00dacd9000e5d8bf00e6decd00e6e0da00e6e2db +00e4e2dc00e6e3dd00e8e4d900ece8cc00e9e7bf00e6dec700e5dbc800d9d4c6 +00ddd1b500c7a891009c7f7d005c4a51004532330037283200292228001d1d22 +001718200015181d0016151c0018141b001e151d0025191d002d192000381e22 +006c1d26008e1e27009522250096202400941e2400921d24008e1d2300881f24 +00483235003f2f32003b303000392d31003f3033004e373a005c504c007e705f +00a7937500cea08e00ccc3a800d6cebe00ac9b8e0092827b00735f58005a4a51 +003d3638003728340031282b002e292d002c2a2e002e2a2e002e2628002a2925 +0025212100221b1b001f171c001d15170019121700180d1500160e1500140f15 +0013101500131115001410170016111800191319001c131b001f151d002c1824 +003421290042282c007a1d21008e1c23008f1c23008c1f220077222100442828 +002b1e21001f131b0018101400120e1100100c10000d0c10000c0b11000d0b10 +000f0c1000120e1200161418001b191d002521230034272b00452d30007f1e24 +008e1d2400941e2400981d26009c1d27009c1c23009a1c2400941d2000912121 +008a2022004a3034003b28320030222c002c222800262124001f1f2400211c22 +00291a1f002e1b25003a252900741c23008b1b2100901b2300951d2700991f26 +009c1f27009d2127009a24280097222a00911e2500881b23005f181d00312019 +0020181900191417001411180012101700110f150012101600100f180014101b +0012132300201923002a2426002e2a290034352d0043442e00624b410065453f +009222300096212b009d212900a01e2700a0202700a21d2500a1232800ab2526 +009d25280097242800902027008a2026004f2c30003d292e00372427002f202a +00231c23001b181d001b151b0016141a0013141800101218000f1016000f1017 +000f13160010101600110f16000e1015000c0f14000f0d1400120e1500131015 +0016101500191415001816190019181d001d191f00201b20001f1b21001f191d +001b151a001c131a001a10180019111700170e1700130f1600100e13000e0d12 +000d0b12000f0c1200100e11000f0f13001010140010101500120f1700141017 +0017121a00181321001d121e00231820002b1c220037202500452a2b00831b20 +"/> +<palette number="8" name="leafy-face" data="002a2521001f1719001713160014141800181719001f1919002f252700402827 +00513333004a3b390049453f004d5148005f625e00c8a88600d7bc9900dfd1b1 +00eee1cf00ede3d700eee3c900e1c3a200d2b69300bfa385005b6261004b4a4f +004646430049453b00534c3700544a37006b4f4900c5846000da9f7400deae82 +00e1b68600deb68900dcad8300d7a47200a36d5800675344005a533d00916858 +00d0a37900d1ae8a00d5b09700d5b29700d3b78f00ceae8500c59a7800595b5b +00484d4e004247450040423f003e383b003c3b3a003a3a370038363600323330 +003c2f2e0041322e0041322e0043343100423b390041433b00444944004e5450 +0082786c00cea28700d9ac9000dfb89800e0bc9a00e2bc9a00e2bb9800e1be94 +00e2c39000e0c39200dcbe9300dfbe9900e2c19800e3c09800dfbb9800dfbb93 +00e3b88f00dfb88d00ddae8700cca28200826c660052524b004a4d3f00464c3f +0044473f0044473f0042483f00474c42004e594d008a7a6d00cda68900d2b395 +00d5b69800debd9b00e2c79c00edd2ac00f0e3c700eee5d600eee7de00efe8e3 +00ebe6e300e6e4df00dcd9cf00cbc1b000cea69500c294760057624e00485947 +00525645008b745d00d0a77b00dbaa8700dbb38a00dab69500d6b09700d4ae93 +00c6a08800626161004e4c5200444747003c4244004143450043484700525750 +00a8827100d0a48b00d1a78a00bd8d810063565a00504b400052473f00534d44 +00625e6000ca9b7b00dbaa8200d4a475008e6a5c0051514a0048494400474943 +00494f450053635500a4957900cfa68c00d5b19900e0c1aa00ded2cf00dfded7 +00e8e7e100e9e3e200e2e2df00dae2d800deded600ded5c700e1bf9d00d5b894 +00d1b08a00c7a5800060605f004b4d450046434000443d3c00443e3b00463f3a +004a483f0052584d00af8e7100d9ab7d00ddaa8200cf9f7a007056490053403c +0033292b001d1b1f00151218000d0b0f0013101100161117001e181d002e2529 +002c292c002b2e260020201b00191a1c001c161900201e200029292a002b292f +002f323100373735003a3f3c003d443a0040463900434a3e004b4c4100585953 +00b0917600cea69000e0bea800eedfd200e9e6e100e9e5e000e3dad200dcbca2 +00cca79700968e840055615f004b4e480046464100434039003f3d3400393731 +003e382e003c3b2e003d3b3400403d3a00404439003e4636003e4336003f4337 +0040403700424133004341320045413300454136004c42370054413600794840 +00c5846000d9a67700deb27c00e1bc8100e0bc8a00deb88b00d1b28d00ceab86 +00a2906c004e5a5100434c4800484848005346520072706900cba78f00d5b89d +00dbd2c700dddcd200dad5c800b7ada5006b6a67004d534e004a534b00525f53 +"/> +<palette number="9" name="mouldy-sun" data="00110b0b000b0b0b000b0b05000b1100000b11000011160000161c0000221c0b +0033271600454018005469320081874900bda64e00c3c24e00cfbd5300d0b45f +00d6cb5a00d6c55a00cfb36900bfad5c00bfa35a00b49e3e00b1952d00b49227 +00ae9137009f8241007e6d3c009068220094682d0099733000925d1f009a6011 +00a3731900b47b1000b78a1c00ad812d00d2873d00e1924300c5ae7b0094c1c1 +00bfbfb400ccc0aa00d5c48b00cbd08700a5b99c00717c5a00437132004d541a +003c4414004240140053451400785214009f680b00ac7e2700ba862d00d09227 +00f2922c00ce942700a4792d00915f2d0080542200592716003a1c11002b160b +001c110b00160b0b00160b0b00160b0b00110b0b000b051a000b0b0b00110b11 +0011110b0016160500110b00001616000011160000110b00001c110000250b00 +00311605003e270000473a090077490000a4481c00ba751600cb9d2100f2ae32 +00f8d05900f4ef9a00fef8a900eddc8700f0ce5800e7ba4800cbae3200b29227 +008b7f100074650b005e510500333a000016200000111a00000b110000051100 +000505050000000000050000000b0500000b0505000b05050011050500110505 +0016050500160505001105050011050500110505000b0b00000b0b00000b0505 +000b050500110500001105000011050000110500001605050011000000110000 +00110000001105050011110b000b1109000b1600000b1c0000112711002d4500 +003e56190054620b006b631100775d11007a63140086651c008d701600966e21 +0082712700806f4b0085845700a58e7800c5a38700dcca9200e1e1b400e5e5be +00faefc700f4e9bc00f2eda300dac87f00e1ca7600e0c96900e3cd5b00e1d04e +00eddc2c00edc53200f8bf4300e1ae5900b5925500908a4c007c7c33006c772b +0060632a0049491c00473414004f3216004f2716005d3238009a5a54009e6b43 +00a27f4200c5a33200d2b02f00cba82100b48b0000987605007d50000060490b +00452d0b00361c160027221600222216001c1c11001c1c0b0027160500221600 +001c180000161c05001c22140033341e00423618005e3c2e007e562f00847652 +009e8c5a00d0a86500d6c58c00e9e3bc00fcf0c900fcfcd400fcf6c900faf4b0 +00fef29800fedc5f00f8d05400e7ae2c00cb9d1c00c27e0000bf7b0500be7005 +00af7610008a7400006b63000063600e005b59140036400900271c11001c1111 +00110b0b000b0505000b0505000b0505000b0505000b05050005050500050000 +00050000000b0000000b0500000b05050011050500110b1100111111001c2121 +00393f2e004d4722005b4b2b007c5821009b700b00ba871600cb922700e79d27 +00e1a83200edcb5a00efe99400fcebbd00f8f2d000e5dae000f4f4d200edd0a9 +"/> +<palette number="10" name="sunny-harvest" data="000000000022040d0047131700691420006b332000661e220046171b00341414 +0012060800040001000000000000000000000000000000000000000000000000 +0008050600100c15003a1d1e0059312700745e4900957e6400c1ab9000d0c7b5 +00d5cab800cccbc300e3d1bc00e4d2b800dbc8ab00d8be9400d4b67b00d3ab6c +00bd895800ad7d4800a77b52009d7f6700b89f8900ccb4a200cdb99c00ceb692 +00c8a88500aa835700a370400091674400846244007b6631005d412700543921 +0056401e0076512c008960390094763e009f744000b0884d00c38f5a00cea470 +00baa07200a98255009772590079685100705d4400664d3500563421004c311c +00523f1e005c4f260071664700848062009a9b9600c9bba100cfbfa300d7bfae +00ccb5a500b9a989008f856400635850003d2927002910150011030c00060003 +000000000000000000030103001008090036181e00413f2b00555748007c7a5a +00b69a6c00c9ae8800cab57a00cfb77100daa95b00d0924300d5844000e38530 +00e2823000df7c2f00d57a2d00d3702900d7652b00d6672c00cd702d00c26a2a +00af642500a9592300a44a2700a6532a00a34a2400b05c2300bb662a00ca7436 +00da832d00e59c3600e5a43e00e5b34d00e0b75f00dec17300e0bd7b00dac395 +00dfc89e00d7beac00cab39d009a9077008f7a61007a5e460077553300652d20 +00612f1f0053231d00471d210038151800100815000200030000000000000000 +000000000000000000100a080017100b003e281d005c4229008a633d00c19232 +00d7aa3c00dea43900e5a83600e9a83800ecaf3700eeb43700ecb13900ebb33c +00ecb73b00e7be3f00eab83d00ecad3c00e9a93b00ebaa3a00eba63a00e9a03a +00e9973a00e9963b00e2893500e77d3200db652e00ca622d00cf542700c14d25 +00be4a2500b23e2700b3342300b7392400bf3e2800be502d00bb612b00aa7239 +00ae7c4700b5975100cdaa5f00dabd7700d7be7200e3bf6700e1be6000ebc049 +00ebba4300e9ae4400e9983800d87e2b00c65e2800b748290097472700802b21 +00590e1900190f06000600020000000000000000000000000000000000000000 +000300010012040700210d13003c1c21004a2c2400573523005d3e25007a542e +0079582d008d5a33008c4329007a5131008b3c2800873d220096392200912626 +00954025007b3820009a2827009e2e2400af2d2600b3382900a4482700a05528 +0096512f00a65d30009d633700876a4200746d4a0088725a008d6c56009f7345 +00b4855000d3af6e00d6be9100e0cbb200e8e2c200ebdabb00e1d5b800d4c4a4 +00c1b18900b4875a00af713900c66e2c00d0712900de882d00e9983500eb9d36 +00e7a03700e7a03600e4973400d8822d00c56a2b00ad5427009643250085371f +"/> +<palette number="11" name="peach-tree" data="00aa3b1c00aa3f1c0081442500445425004d6d250051792f0051712f005d7138 +0065854b00758d550089a15e008da25400c2ad4100da8b2f00de772500d6672f +00d66a2500c25f1c00914c25004c6925003450120020440900203c1200203012 +00203812002c48120040692500618938008db25e00aac67a00eed17a00fae154 +00e6972e00e67a2500e67a2500db692500ca5e2500b64c1c0085371200542b09 +00241b09001c2000001c30090020400900405c1c005479380069914b0091ae67 +0096b2710095ae71008daa7100718d5500516d420040442f0024341c00101812 +000c0c09000408000000040000000400000004000000000000040000000c0000 +00100b0000240f00004417120081261200aa371200c25f1c00b27c2f009aae67 +00a6c27a00aaca7a00b2d28d00bedaa000bed29700cad69700e2de8400b6da8d +00b6d28d00bace8d00bece9700c6cea900d2dab300eae6c500eaeac500faf1bc +00f6e5bc00eac08d00d2ac9600beca9600b2c69700b6ce8d00b6ca8d00b6c684 +00aaca8400a6c684009eba7a008db2710071954b00517538003c54250030401c +001838090014280900141809000c100900070c09000408090008040900140709 +001c0f09002417090050271200812f1200b23b1200c6572500db662500de6625 +00de751c00e2871c00e68e1c00f2922500fa9b1c00f6bb1c00ea7f2f00fabc67 +00fae17000fae15400fed32e00fecf2e00fed04a00dab55e0095786700597942 +00405d2f00203c1200142c090004180000000c00000408000000040000000400 +0000040000040000000400000004040000040400000408000004080000040800 +0000040000000000000000090000000000000000000000000000000000000000 +000000000004000000040400000c0800001010000020100000381b0900593309 +007d430900a63f1200b2481200c65a1c00be6b25009d70380099632f00597938 +005565380071481c00b6502500ce622500d2662500d66e1c00d66e1c00da7625 +00de6e1c00e2722500de6e2f00ee6f4100c6a05400a9947000a1ba7a00aac284 +00bece9700ced6a000e2eebc00f6eec500fefafe00fafece00f2fece00e6eec5 +00c6d6a000aac2840091957100546d4200384025001c2c120018240900141409 +0020130900300f090065271200892f1200a633130091371200652f1200442712 +00203809001c2c0900141c0900101409000810000008100000040c0000041000 +0008140900102009001430120028481200446d25006181380089aa670095b671 +0091b6710081a15e0069854b00445938003c4c2500304025003c441c00713712 +00a6331300be4c1c00ca5b1c00d25e1c00d2621c00c65712009e370900692200 +002c0f0000140400000c000000080400000408000008100000102009001c3409 +"/> +<palette number="12" name="fire-dragon" data="0058030900400009002c030900180409000f000900100409001c080900280409 +0030030000340000003400000030000000280000001c04000010000000080009 +00080009000f0009001c000000280000002c0000003000000038040000380300 +003400000030000000280000001c000000100000000400000000000000000000 +0000000000000000000000000000040000000400000000000000000000000000 +0004000000080400000c04000018040000200400002804090030040900340309 +0044030900510400006503000075000000890009009e000900b6000900ca0700 +00d20a0000ca070000be000900ae000900910309007103000059030000440309 +0030070900240409001400000008000000040000000400000004000000080400 +0018040000280400003c030000540300006d0300007d030000910000009e0000 +00a2000000a2000000a2000000a2000000a2030000990709009d0b0000990000 +0091030000810000006d00000059000000490300003403000024040000100000 +0008000000040000000000000000000000000000000000000000000000000000 +0000000000000000000000090004000900000009000000090000000900000000 +0000000000000000000000000000000000000000000004000000040000000000 +000000000000000000000000000400000010000000280400003c000000490000 +006100000071000000850000009d000000a6070000b6070000ae0a0000ae0f09 +00a61d00009d230900791e09005d0f09005d0b09005c0b000059030900580309 +00500309004c0000004400000040030000440300004c00000059030000690000 +0079000000910000009e000000a203000099120900a9070000a6000000ae0300 +00ae000000b2000000b2030000b6030000be0b0900ce0e0900ea3a0900f6831c +00f2b31c00fabb2500fae95400f6fe6600fafe8c00fef98c00faf16600f2c32e +00f69f2e00ba5b2500892b1200653712004c271200380b09002c0b09001c0400 +0010000000040000000400000000000000000000000000000000000000040000 +000804000010080000180400002407000028040000200000001c000000140000 +000c000000080000000400000000000000000000000000000000000000040000 +0008000000180000002c0300003c0000004d0000006500000085030000a21e00 +00b62f0000c24f1200c56b1200ce5f1200c6561200c62f0000be270900c21209 +00b6070000b60a0000ba160900be160900ce420900e6620900f6860900f69b1c +00ee8a0900ee8e2500e27e1200be5709008d3000007d2b0900650f0900650009 +00610300005c070000590f09004d18090055070000400700003c030000340700 +00300400002c0400002c030000300000002c00000028070000240400001c0000 +"/> +<palette number="13" name="ice-dragon" data="00602b250071504b009d786700ae8d7a00b2a19700c2ada000baa9aa00a58d96 +0099818d008d8583008981830089858d008d898d009d9da000a1adbc00a5bdd8 +00b5cdeb00c1deeb00bde2f400c1e6f400c5e6fe00c5e2fe00bde2f400b9def4 +00add1f4009dc1eb0085b1e20078a9eb007cade10085b9e10090c6eb0095c1f4 +009dc9f400a1c5eb00a9c1e200a1b9c500b1b1b300b9b1bc00c1c1cf00e2ded8 +00f6f6eb00fefefe00fefefe00fefefe00fafefe00edf5fe00d1e6f400c1c9d8 +00b5adbc00ada1b300a19da00091898d0095787a0085605e00793c380061382e +00502725003c0f12002c13090030131200381712003c1f2500402738004c3441 +005c48670061657a00757184007d75840085757a00897571007d6d5e00755c54 +007558540085615e008d645e0085687100817984008091b20074a2d8007995c5 +00747097006c5c7a004c305500382842003c1f2500341b1c002c1b1c0030131c +00301b1c00381f2f0044384b00605c7100717597006c99c5006c9ee100649aeb +00649eeb006c9eeb008dbdf4009dc9f400a9d2f400add1f400a5cdf40094c5fe +008cc1fe0074b9fe0068adf40064a2f400609af400649ef400689ef40068a5f4 +006cb5f4008dc5f400a9d2f400b9e2f400cdeefe00daf6fe00e6fafe00eafefe +00eafef400d5faf400bdf2f400b1e2fe00ade2f400a0e2fe00adeafe00bdeefe +00ddf6fe00fafefe00fefefe00fefefe00fafefe00eafafe00def2fe00c9e2f4 +00b5d2eb00a1caeb0095bdeb0078adeb006cb1eb006cb1f40070b5f4008cc5f4 +009dcdf400b1daf400c1eaeb00d6f6f400def6fe00e2fafe00def6f400d1e2eb +00c1c5d800adb1cf00a1a1b300918596007d647a006448540058344200503038 +00582b2f0044272f0048273800502b38005034410058404b00716167007d8197 +00749acf00689eeb00649eeb00649ef40064a6fe0068adfe0064adf40068bdfe +0084cafe00a1c9f400b9caf400c9e2fe00dde6fe00e9fafe00fafefe00fefefe +00fafafe00e6eeeb00cecacf00b2a9a90095818400755867005d3c4100693838 +007138380085584b008d6c5e0095898400aaa5a900b6bec600d6d6e200d9e6f4 +00d9eaf400d1eafe00c5e2eb00adc2e20095adc6009da5b3009595a00095797a +0081646700714c5400603841005c343800583438005444380061555e00706d84 +00808196008589b300899dbc00a19da900a18d9600a688840099847a009d7871 +00a98d8300c6ada000cab1aa00dad2cf00f6eef400fafefe00fefefe00fefefe +00fafefe00eefaf400def2f400dad6e200bebec600b5b1b200b9ada900c2ada9 +00b5adb300a1a5b3009da9b3008dadcf0085add80088a9e2008995bc007d7984 +00605c670054404b00503c4200583c4200684c5500817d7a00a1a1a900c9c1c5 +"/> +<palette number="14" name="german-landscape" data="003d3e2b0034302d002a2c27002527220021271700242c16002e362000333721 +002d3126002d3126002d2d2d002d2d2d002323230023271c00242c1600242c16 +001f2711001f2711001f2711001f2711001f2711001f2711001c221200171d0d +00191d12001e2217001e22170021271700242c1600273016002d2b260037372c +003c362d003f3d360045443a00464236004240300046452d004f4b32004d5537 +005e653f00647b4600737b500083846a00868b66008382500078693f006e6246 +00604c3e004d443900414f3c00484f41005a5f450066634d0076826b0089a38d +009fb6ad00a7b2b400b1aab300b2acb700b7b3c400a5b1c20097a8b9007f9a9c +0083858d00847d9500858b8c0097819a00a39daa00a9a8b000a4aeb400a8b3c1 +00a8bbc300a1b3c200a1c3c200aec6cc00c1e3ca00d2e6e000d6dfd600f0ead1 +00dbd7c900c9c5c000ccb4ac00c59cab00b89da700a99ca900b1818900946947 +006f534000654f39005d50320051492d004f4f2f0055593800645e4a00777854 +009a6d60008484780085bc70007cb46300829c67006f8b4b00666d3e005e5e36 +005b4f390056483800564635004e44310044392e003a3a2c00353b2b0032362b +002e321c0029311b00273016002730160027301600273016002c351b002f3921 +00363f250046472d004b4f2800544e2900605d2e006e6a37007a7332008e9e49 +0089b94d0084b24f0087964700726d3500615c3a0056614e0061603e0071795a +006e8181008a90aa00a4adb500b7b8c800c2c1ca00d6d2d300d0dcd800d2dcd4 +00cdcacc00babac100baadb000b09b9800b97b5800ac824100a17e3500786a38 +0062533c004c4633003a3a2f003a3a2c0040432b00464e2a0050613200636f3a +00688c3b0071903e00918b4300a4853c00ac854100b8953b009e873800866d38 +0072643a006a6741006d6c400072784b007b8676008893980091a8bb009cb3b7 +0099aebe0099acbe008fa1b200828b9600727478005d59520057513e004f4f2f +004b552f004c572e004d552d0054582d0057612e0061612f00746c38009f8239 +00aa784800896743006c554100634b3800574e36004e442e0045442c0046402d +00494330004d4b370054584100616653006c7780008392920097a2b100a8acbe +00b4b6c800a8bbc300b6bec400c2c5c500d4d2ca00ddd9d000dcd9d900dad9d8 +00d2cdcc00c8b6a200dfc25300dcae4b00e1ad4e00d6974d00aa734c007d5850 +0065533c0058533700565b2f00535b3200525c39006263460072744500758963 +0081947f008f9da800a1abb300a0a8bd00999db6009b8ba100b37470009e6859 +00a4615300a1614400ad665000b6776400b5909d00aaaaa9009c9eac00828d9c +00738c8c007c8b8200839b720082a074007e95680086948800939dac00a3b2bb +"/> +<palette number="15" name="no-name" data="00dadebc00eee6c500eef2ce00eef2cf00e6eee100eaeed800f2f1eb00f2f5d8 +00e6f2ce00deeac500d6dac600ced2bc00c2caa900becaa000ced6aa00dee2c5 +00eaedce00eaf2c500dee2c500c2caaa00aebeaa00a5b29600a2a98d0096a284 +008d8d7a0085897100858d710085856700797d6700797d670071795e00656d55 +004d5d4200344025003040250030381c002c3c1c002c341c00242c1200242400 +00242c0900283409003840120030401c0040502f0055694200657555006c7d5e +00748d710074898400748d8400788d840079897a0079857100757d670071795e +006c715e006d705e006c795e0068755e00697155006d7555006d755500697155 +0065715500696d550064715e006870670068706700686c67006c6c5e0071715e +0079796700818571007d91710085927a0085927a007d9284007992840078928d +00788d8d00748d84007492840075927a006c85670064795e0059694b00aa5700 +0038441c00303c1c002c3c1c003440250050614b005d6d5e0064715e0060715e +0060755e0068755e006c795e006c795e0071796700707967006c7d6700687967 +006c7967006c75670071755e0071755e0075795e00757d5e00818d5e008d925e +008d9267009a9a71009aa27a009aa27a009aa17a00929a71008992670081855e +007d7d550069794b00616d4200444c250038441c0040512500454d2500716d42 +00797d4b00817d5500797955006d755500697d55006c795e006579540068795e +00647967006479670068755e0064715e00646c5e00656d55004d584200344025 +002c381c0020281c001c1409001818000004140000081000000c1800001c2809 +00243012003c4425005d6555007579550085895e008991710096a271009aa27a +009eaa7a009eaa7a00aaae7100a6aa7a00a2aa7a00a1a57a00969e7a0085967a +0081927a0078927a0075927a00758d7a00708167007d7d670089896700929a71 +009eaa7a00aab68400b2b68d00b6ba9700c2ca9700b2be8d00b2b68d00aab28d +00a2ae84009aa67a00929e7a00859a7a007d967a007d927a007d9284007d9284 +0081968400859684008596840081928400859a8400859a84008d9a8400929684 +009ea98400aeb28400aaba8400b2be8d00b6c2a000c6caa000c6ceaa00d6dab3 +00dae2c500d2d6bc00bec2a000aab68d009ea67a00929a710089897100817d67 +007d7d6700817867007d7d5e0079795e0079815e00817d6700817d6700818167 +008189710085917a0089927a00969d7a00969e7a0092968400969a8d00929284 +0089918400819284007d928d0078928d0074928d0078928d007896970081968d +0081968d00819a8d00859a8d00899e8d00899e8d008da2970095a297008da297 +0096a68d009aa18d009ea984009ea67a00a2a571009ea671009aa67100959d71 +"/> +<palette number="16" name="living-mud-bomb" data="00c190230099752100856b2300664c1400604314004f331000462f1000423410 +0040301000402f10003d2c10003a2910003a2a1000402e100048301000553412 +00563c120058401600554c18004b4c180059380f00542f1000542e1000542b10 +00542910005428100054281000542710005427100054271000512710004f2710 +004b271000422710004028100037281000332810003028100030281000312a10 +00352b1000372910003729100035291000312810003028100030281000302810 +0030281000302810003028100030261000302610003026100030261000302610 +002d231000302610003026100031281000352810003a281000402810004b2710 +00512710005327100054271000512710004f2710004b281000442f1000403010 +0040301000403010003a2e1000382c1000382c1000352b100031281000302810 +0030281000302810003028100031281000372910003f2b1000442f10004f3110 +005d380f006044140078541400976e2300ba8d2300eca22300f6a72c00eea523 +00e2992100b96a160080520f0060461400543c1600483010003e2f1000372a10 +0031281000302810003028100030281000302810003028100030281000302810 +0030281000302810003028100030281000302810003028100031281000372810 +003a281000402a1000442e1000462f10004d2b10005128100054271000552710 +005b270f0060271000602710005e2710005b2710005527100055271000542710 +0054271000542710005427100054271000542710005427100054271000542710 +00542710005427100055271000572a10005b2b1000602b1000642810006a3416 +007c4b1100a4691500d9871e00efa23100f8af3000ed9f3100ca7d2000a3540f +00824c14006a47160062350f005b2b1000542910004d27100044271000402a10 +00402c1000442f10004b2e1000542a10005b281000622710006428100065320f +0075370f0078350f0078330f0078360f006a340f00662b0f00642710005c2710 +0057271000552710005427100054271000542710005427100054271000542710 +0054271000542710005427100054271000542710005427100054271000552710 +005c2710006427100064271000752e0f007f3e0f00af370f00c0350f00ed3c0f +00f74a1400e63e1100b8350f00b6380f0086300f0080431400804e1c0089671c +00bc801e00e5992300f5972300f8852900f86a1f00ca6b1600895e23006c4c0f +005d380f00542f1000542d1000542a1000512710005127100049271000402810 +003a281000372710003128100030281000302810003028100030281000302810 +00302810003128100035281000392810004028100042271000462710004d2710 +00512710005427100054271000512910004d281000442e1000402f1000402f10 +"/> +<palette number="17" name="cars" data="002b1e2400261a21001d161e00201820001f1f23002827240033382a0045472b +005c5e360074784000b7824d00ddac5500dabc8800bbbd9400bebfad00b0b4ac +009fb8aa008ea198007e8782006877620062534e00513c400057292a005a2c24 +004e2320003b18220039182000362026003323250036202700403326004a3b22 +00524626005b60330084894400cf984200e5cc6100d9c77500d5de9300dad7b2 +00c1ccb500b1c5b900abc7bf00a5b6b9009ba19c00747a81005b576300484a55 +003f373f002c29320022212d00211922001b171c0021151900272118002f2d26 +0034332d00433e38005c5245007876590098865500a4875b0098985d009ba65f +00929d76008aa6660082a46f00859b5d00718858006683550060643c005a5139 +00454625003b3f26003a312500312727002b24200021171e001b111e001b131f +001a171d0018141b001a151d00211820002d202500332d2e0046423e006c5e4e +00ae6b4a00cd903800d2ab4e00cdc29400d3c9b200cde2c500c3d2ca00b7cfc7 +00b2cec300a2cbb8009cc3b1009ebba90098ba9c0098a297008f8f890093936f +007d8a66007d7c61007a8444006d723e005c5e31005249290048373100453227 +0043312f00453e3c0046465000545d6400608472006a857d0071827b00758072 +00888a7b008fa07e0097ae80009dbc7600a5b88700adcb9b00badba300c6e2b4 +00c3f4bf00cbf7c700cfeec400cdf4e200ddf8e800ecfaec00def7e800cfe6d4 +00bed4c800a5bebf0088a2ad006b85800060746d005c694d004c484500594c3c +00645c4c007876620096a48900a7c69e00bcda9d00d1eda200d7f4b800defed4 +00ecfdee00f6fdef00fcfcf100fbfef300f8fcf100f3fbee00f2f0e000efefd5 +00d3e5d100e0e5c500d7e5b300cbe4c500bedcb400b6daa3009fc58b0085a781 +00789180006a826e004f525e0040404600342c39002a1f2b00272a2e003a3b3d +004c4954006c6b72008c949100a9b2a500c3cdba00d5e3d100daf4e100f1fdd7 +00f1fed400eff8b400e9f7af00dfe1ab00b7c09300988f7a007b76670069705f +005a595e004c4d59004f586200606e70007474740086868600909ca4008aa6af +0099b8b700a6c9a100aedaaa00b3d7af00b6bfa900abb8a90095a4a800889ea3 +0074837f005c7863004e6541004d4e3d004244300042432c004b4834005c4d42 +0099644400b2573b00a83c320098352b005c4d32004f443400443b42003f3b48 +00394749004f535b006f6e5f0086785b00b64a3700bd1e2700bd1c2500a71a22 +009f202400612425003f242800301b2400281718002016100018111700161119 +001711190018141b00181318001a131a001e121a0021101d0024131b0021131b +0023161b002d1b150032222500312c2b0040352d00504534005c5e44007f7b55 +"/> +<palette number="18" name="unhealthy-tan" data="00dacdc000dfcdb700dbcab100cdc1ab00ceba9d00bdaa9300ad978200a38f81 +00a08e77009c8d78009f968500a8a18f00b7aca400d3c8bf00d8cec700dad4d3 +00dcd5ce00ded5cb00dfd1c700d4cbc000cdc2b000c6b49700bba07f00ad8d6a +00997e6500826c580068604f00584c4000483b3300433030003f2a2c003a2326 +003c292d00402e2d004c383200503c35005c42390060463a00634d4000695443 +00725b470076614f00796854007b69520072655200716048007159400071513c +006c43330066413400583f35004f3631004a303000412e2f00452e2c0044292b +00462e2e00493031004d3634004d3a36005a463b005d4c400061554300655d51 +00736a57007d7061008d7c610093796800927868008a725b00866d55007a604b +006f5342006a463e00664135005c3a33005331310053302e00533631005e4238 +0063463600674b3a006c4f3f0071554000775a48007b624c0080664e00826b4e +00836c4f0084684f0083644f008763490087624700836446007c5e4600765b47 +00725d460069604500695a43006956400068513f00674b3e005e49380058483a +00554a3b005c463c00574a3c00604f3e006557460070664d007c6b5400856c57 +008f725c0094776300957c6800957c6a0096836800a58c6d00af947100bda483 +00c7b29000cab6a000d1c0b200d6cabf00dcd2c200dbcfc000deccb500d0c0a5 +00c4a98a00b8997600b08e6800a5815c009b734b008e6e4d00886c5200886c54 +00866e54008673570088745a00927b5f00947e6200957f6600957d6500957f61 +00967d6300947c61008c785c008876560083765600816d5500806c55007d6c59 +007e6b610083705f008c7e650099877000ab937600c3a48800ccb19000c7b395 +00c9b9a000c7b8a200b6aa9900ac9c8c009e947d00908b7900847d7000817964 +007c6e5c007064540068544400644c4300624b3f005e4c3c005e4c3c005e493c +00664e3d006f514100715941007b5d470080654e00846c5000856c5400826d50 +007b664e0075654b00705e47006a5643006a5241006d523c006f543900715439 +0076583900795c40007d624500816a4a00846d4f008f775200a27d5700a8855f +00a28c73009e9084009c9893009b989600a19f9c00b7a89f00bcae9700beab91 +00c2aa8f00c1ad9200c1a79100bca38a00b49b7c00a28c7600947b6400896a55 +0082634c007b5e44007c5b3e00795940007b5b40007e5e450083614b0080624b +007b604800755e4200755c41006f593f0066533f005a4b3c0054423b004f3737 +0048313400472e3000482e30004b3230004f3634005c3e3500634336006d4b3b +007a4f37007e593f00845e4300886143008a664600876a50008b725b00987e60 +00a38265009f866800a28d6d00a888650098846700977b5f008e7353008a6c4e +"/> +<palette number="19" name="daffodil" data="0011000000362216005c3e1c00807a2e00d6860000f8980000f29d0500e19d05 +00ac8f3800856e38005a5a330041412e0042362b0036362f0025332d00223122 +00223c1c0027342400222d1c0033331e003131200036312000312d1a002d2711 +00221c0b0016160b0011110b0011110500110505000b050b00050b0b00050505 +0005000000050000000b0505000b0505000b0505000b0505000b0500000b0505 +000b0000000b00000011000000110500001c0505002f160b004b2b140072532e +00ba863200ef920b00fe920000ed980500d2871c0072652b0044421600363c20 +002d382200333c1c0033361c002f33180036310f0036310b00331c05002b1a00 +001c160000161100001c2200001e2d0f002b290f002d2d1600312d1600332d16 +002f2516002d271600202014001c111100160b0b00110b0b00110b0b00111111 +00111111001116110011140f001116050011110000110b000011050500160b05 +00180909001c110b0022160b00291c11002d27160033351d00443e2200654e38 +009b744100dc974900f29d2700feba2700f8cb2100f8bf1b00f8a30b00fe8600 +00fe810000d45f00007f3e1c004d3b19003c3a20003c3f2300444f2d00555d3b +006060380067515c00527c93003c6f8b002d49830031535300333e44003a3434 +00312b2b0023242400222216001616140016161a0016111a001611110016110b +0016161100161611001a2014001c221600222d1a0031312500383831004d4742 +006d705c0078a09f00b4bab400dae0be00efe9cd00cfdab2009ea87b007f9b60 +006b715a00424d4200364f360031453100384424002748300031563f005a664f +008b855e00b3b37a00edd69d00f6ebbd00f8e1a300f8d08100f8d04900fec52c +00fec52c00f8b93800d0b44900bd9b3b00988d4f007f8a49008a904300878d4f +00969c5e00b1946700d6b47600f6d9a100f4c69f00f6e5b200feedb400feedb4 +00f6dfac00abbf8e0093987600938d6b00878d6b00958368009e8d6c00988d76 +009c9a8000bca59a00e7d0a900f8e2ba00f8e2c500d0e1c500afb39800979175 +00777c6000566442003e5533002d47160031401a003c45190065573200917138 +00d6871c00f8a31000f8a91600feae1000feb40b00feb41000f2ae0b00fea805 +00fe9d0000fe970000fe9d0000feae0000feba0000febf1000f2c51c00c4b23c +0098824400717c3b0064643800444f3b00353c270031252000271c1600221111 +001c16110022160b0022200b0031250f0038271c003c2f20004d391f005a5030 +006b744100a4765400bc946d00c5986b00e7c58100c5ae5f009e985f00857941 +006f5247005a3c36005c4b2f006e462a0084583200ba703200dc811c00e07516 +00b45f1c00663c22003c3c14002b340f001a2b0500111f00000b1c05001c1611 +"/> +<palette number="20" name="rose" data="007121250054172500371b1c0024281200203809003c4d120038651b003c511c +003459120030551c0028441c0028381c0028341c004c1e1c0069121200791613 +007d151c0069161c0054131c0038171c0024241c0020281c001c2412001c2012 +001b200900301b09004d160900650f0900890e090096151300a21c2600b22639 +00a6235600a6275600b22c5600b22f5f00ae447100aab6aa00b1bebc00b5c6b3 +00a6aaa000b6346900c62c6000a61f56009a1e4300921d2f0081191c00651612 +004416120034171200242412001c241200202c12002430120028381c00343c1c +0034491c0040491c00651a1c007d191c008d161c0081121c006d151c004c1a1c +00303425003c481c0049612f004d6d55005c857a006485840060858300557155 +005d602f005d752f00716c25007d3f2f008d1d260092191c0092161c00921926 +0092193900961a42009e1e4c009e235600a21b5600a61b56009e224c00992239 +008d1d2f00792125004c3b2500303c25001c381c001c281200141c1200141812 +001718120018201c001c2425002827250040171c0065161c008d13260092162f +0096152f009e1a390096162f009615390092162f008d12260089151c0089161c +0085151c008515120071120900851412008d15130092151c0096151c009a1c1c +009e181c00961c1c009a1c2600a6213000a61930009a162f009e1e3900a21f43 +00a22b4c009d8c380081aa6700a6baa900b5bdc600adbdcf00a9b9bc009aaaaa +00b6348500b22c7300b2286900b638720096aaa000a5babc00a5b9bc00709ea0 +00688571004c714b00555c2f00851e2600961d1c009e1c1c009e1d1c00aa191c +00a62526009d1e3000961a390092164200962243009621390096192f0092162f +009213260089151c006d151c0048131c00301b1c002b282500242c1c0024341c +00303c2500344d250034512f003c4d38003c5538004d6d42004d7d41004d8538 +005d8d2e00659242005d854a005181530069894b006da25e00719e540079a255 +008e9a4200718d4b006d81380065792f006d892f00617925005175250049611c +00515d12006d191c0081191c008d191c008d161c008d161c008d151c00891525 +005d131c0044131c0033131c001818250017181c0018181200181812001b1812 +001c1812002f171c003f171c0058131c00791213008518130092151c0092151c +0092151c0092121c0092121c0092121c0092111c0092121c0092151c00921513 +0092151300921113008d1513008d1513008d15130085151300811513006d1212 +00501a1200381b1200202012001c1c120020201200381312005013120071161c +00921a39009a224300a13355006b85840096aeaa00a5bab3009aaeaa007c9a7a +00aa375500ae274300b6374200aa252f009e202600911a26007d191c0044171c +"/> +<palette number="21" name="healthy-skin" data="00fae1eb00c2a5bc009d858d0089645e00603c2f00482b1c003c231c00341712 +00231009002310090023100900200800001f0c0900180c09002310120028131c +00381b1c0050272f00714041008d544b00a65f5500b66b5e00ba6b5e00be6f5e +00ba6f5e00b66f55009a5c42008d582f0069442e0051331200381b1200341709 +00231012001b0c120018081200000000000000000018041200230812002c0c12 +002c1412002c131200280c12003413120034131c0028101c00230c1c0027101c +0034171c00381b1c0044271c004c302f0065404100856454009e705e00ba775e +00c6887100ce988400d29d8d00e2a1a000eea4a000eeb4a900f6b8a900fab8a9 +00f6b49f00f2ac9600faa08d00f2987a00f2947a00ea907100ea907a00de9184 +00d6958400d6957a00db957a00d2a58400dba58d00eaac9600eeb09600eeb096 +00f6b08c00faa48d00f2a08300ea9c7100ea906700db805e00d67b5500d2775e +00d67c6700e28c7100ee988300eea48d00eea49600eaa09600ee9c8d00f2948d +00db8d8400d2887a00c6776800c2776700b6675e00ae675500aa5f4b00a65855 +0096585500955c4b00926055008d584b00794c4100603c380054342f00502f25 +0054331c005c3c2500713c2f0089543800a65f4b00b6735500ba806800ce9d84 +00dea59700eeb8a900f6c5ce00f6d5f400eae2fe00f2e2f400d6cacf00dba9a0 +00d6958400db917a00d2897100d6807100d2786800ca7c6700ce807100c67768 +00c26b5e00b26355009e544b009a504b00894442007d4441007d403800894838 +00925438009e6b4b00a66f5500b6806700ca998d00deb9a900f6d1bc00f6def4 +00fae2f400f6ddf400e6cde100cecac600e2b9b300eeb8a900eaac9600d2a17a +00d28d7100be6f5e00aa67550092544b00753c3800602f2f00502b2500482725 +004c2b2f00603c2f00714c38008d5c4200a2745e00b68c7100bea19600c69db3 +00cea9b300d2adaa00cea09700c2999700c2949700a6857a0095787100816867 +007d6467006550540054382f0050382500582f250065382f00794838009a5842 +00ba735e00ca918400daa1a000e6aca900e2b5bc00cdb9cf00cab9c600b2aeaa +00a1898d0085707100815454006444380054332f004827250048271c00502b1c +005c402f0075584b0085705e00aa806700ba9d8d00baa59700ba9da000a995a0 +00aa898400aa786800b26f5e00ba6b5e00c26b5500c66f5500ba735500b26f55 +00b26b5500b25f3800953f250065342f0054272500481f1c00481b1c003c1b1c +00301f1c00381f1c0044231c0044231c0050271c0059382500714c380089604b +009d785e00b28c6700ca998400c6958d00c6918400c6806800c2775e00ae6755 +0092685500916455009168550099706700aa706700c2775e00d6845e00e68c67 +"/> +<palette number="22" name="orange" data="007b6a390061643c005b533a00464a3600464735003b4433003b382000363d2c +0039483900434a3e0051614c005f725b006d7252007371540070786200808362 +0082896a00868e6a0096976b009596720095987b00949c8700aaa17f00bc7981 +00e4656400ea5c4900e0423900c348390079412400563620004b4926001d2227 +003634340035393e003c4e44003f454d004059490054694d0054725f00627a6c +00788f7d00849e8a008aa589008ba289009a999f00b29ba300b09a9b00b79f9d +00bbab8200a9ae8f00a5b78200aaab8a00afb381009faf7c009b9c7a008f8e6e +00838174007d8074007f7983007777860073768400798b85007b8a7c007c8d82 +00889a8d008c949e0083959e005b9bb6006484ab005381b8005280c1005595cf +005db7ec0071c0f20089c4ed007fbfed0077bbea0072aad6006d9cc5009099ad +009993a000a9a1a800afb9bd009ec4e1008fc1db00a1bad600b3b9c100c7a89e +00e1777400eb667200e6646c00d9707800b08f93008d878d00719193005f8099 +00677d920070817f007a856a008794610090865500a3885100a08f5d00c6a349 +00dcb23d00d5a24300c9953200a1774400ba6c5d00a68a630098958c009c9ea4 +008eb4d5008ab5e10075bbec005ab1e9005399c9006f88a40088717300bb675c +00ec644300e44b3000f7442400f8452000f1402a00e9442900da403300885540 +006055440064674f005b644d006a6344007971470088944f00939851009e9a5b +00bfa86500c8b36100bead6500b9af7000b1c27300acb78400afbf950095b184 +00889c83007d8b7a006b84770061776600596d5c00545c48004b4b42004f5049 +004c5b49004d6a5d004c656b005c796b00627d7700709489008baa9c0096bbd5 +0090c1e60091c0e40092bfde00a7b4b5009eb99a009db179009ba059009ea84e +00acaf5d00ba9e4900ba9e4900b5995400979d5800859a5b0082976300849362 +007e8b69007b8167006a6f6000545f69004a51590047405c004d4951005a6553 +0060645a006969610073726100757a5f0086895300888a3700967e34006e763b +00556b370059603c004c4c35004443250048493b005a574900736b5600906e4c +0096795700987b5f008b8c6a0084907b008d979600a29ea000a9b2af00b9c7da +00bfcddd00b9cadd00b9c3d400bdc59000c2b18800d5c45a00dcb64000d0a44c +00ee6a5b00ec675500f0585300ef504800ef523900ec443400f6412b00f53f1a +00f4431000f44e1100f4521700f34c1700f7451c00f34a1c00f4482c00ee5637 +00f34b3c00e15447009f5c61007c7d6700717569005c7164005f7165006a6f71 +006b736d006e736300757b5a00777b4b00867a510082804700848e4b009b9b5e +00a3a47900a098940082a5a0006ba3cc005eb7eb0060bcee006ab4ea007eacd1 +"/> +<palette number="23" name="white-ivy" data="00f2f2fe00d0e7c500a3c598008daf76006b984900609333004f7c2d004f6b1c +00556b1600607c27006b933e0071a4600087a9870098cb9800b2d4b200d0e7c5 +00dcf2e100d4f6f600d0edfe00c5f2fe00a9e9e100a9dcba0098d0a30098cb98 +00a3ba980092a39e009c9c9c00909e9e0087987c007698760065827100525252 +003a202000381c1c0054542700607121006b82160076981c008daf220087af43 +0071a45a0076986500708d70006589700065876500608260005476540043713e +00386b3300386b2d0044662200497c33004f764f006b8d600082a47c009eb48d +00babaa900d6dcd000efefef00f6f6f600fefefe00fefefe00f2fefe00f2f8fe +00edf2f800e7f2f200dcedcb00d6d07600a3c53800a9a31c0093a932008d9e54 +0076a4760071a976006b9e7600498d65002d803800225522001c491c001c4d1c +002d5a3800547654007698760098b49800afcbaf00c5e7d000d0e7fe00d0e7fe +00d0dcfe00ced6c500c0a9a900abb4af00aed0ae00b4d1b400c5e7bf00dcedd6 +00edf2ed00f6f6f600fefefe00fefefe00fefefe00f2fefe00f2fefe00f2f8fe +00ededf800e1e1e100e7a3a3009670700060544f005252520038603800325c2d +0022551c00275a2700497349007c8765009eaf8100a3baa300bad1ba00d0d6fe +00d0e1fe00d0d0fe00aed0c50098c0980076987600547c4f003e6538001c491c +0005330000220000000034000000330000003400000b3e05001c4f16001c491c +0038530b00444400002d33000049601c00546521005a661c004f8233005a8f70 +005aaf760098cb9800a3d1ba00badcfe00d0e1fe00dcdcfe00dcdcfe00dce1fe +00dce7fe00dce7fe00e7e7fe00e7e7fe00e7e7fe00e7f2fe00dcfefe00d0fefe +00d0fefe00c5fefe00d0fefe00dcfefe00e7f8fe00e7edfe00e7e7fe00e7e7fe +00e7e7fe00e7edfe00e7f2fe00e7f2fe00e7f2fe00e7f2fe00e7edfe00e7e7fe +00e7e7fe00dcedfe00dcedfe00c5fefe00a3fefe008cbfc50098af9800989e81 +007c825a006b433e007c222200892d2d009933330099333300af5f43008d8d70 +0087987c008da3870098ba980098cb980098cb9800a3d0a300bfe1bf00e7e7e7 +00dce7fe00dce1fe00dce1fe00e7e7fe00f2f2fe00f2f2fe00f2f8fe00f2fefe +00fefefe00fefefe00fefefe00f2f8fe00f2f2fe00e7f2fe00e7f2fe00e7f2fe +00e7f2e700e7e1af00dcd68700fea98c00d0c57600d0bf7000a3bf6b006b9849 +00609333005a8d33005a87270055883300608d2d0065932d00768d3e0087814e +00879e6b0092c0650092c5700098c5870098cb9800bad6ba00d0f2e700dcedfe +00e7f2fe00f2f2fe00f2f2fe00f2f2fe00f2f2fe00f2f8fe00e7fefe00e7fefe +00e7f2fe00ededf800d6eddc00badcb40098cb98008dc0540076a42d00607c1c +"/> +<palette number="24" name="summer-makeup" data="00eec18d00eec08d00eec08d00eac18d00eac18d00eac18d00e6c18d00e6bd8d +00e2bd8d00e2c18d00eac18d00eec58d00eec98d00eac59600eac19600eac596 +00e6c19600e2bd8d00deb98400dbb17100d2905500db6a4b00db5f4200be3f25 +0096401c00912f1c0085332500652b1c00543325005034250050382500503c2f +00594838006d5438007d684200a66b4200c6884b00dba15e00deb46700e2c17a +00e2bd7a00deb47100dba96700c68c5500b27342009e6338009e582f009e5838 +00a66b3800ba774200ca8c5e00dbad6700e6b47100e6b47a00e2b47a00dba571 +00ca8c5e00a26742007d50380071482e00593c25004c3425004030250034271c +0028231c0024241c002024250024242500282325003028250034272500302325 +00342825004030250048342500503c2f00604438006144380064443800614038 +00543838004c302f00442f2f0040302f0044302f004c342f00543c2f00654438 +007554410089584200a6674200ce884b00d29d5500dea45e00d69c5500ca8c55 +00ba7b42009667420079583800694c3800583c2f004c302f0040302500382c25 +003c302f0044302f00553c2f0069503800895842009a6b4b00c28c5500d6a971 +00dbb17a00deb48d008991970058685e004c44420051444100504038004c3c38 +0050382f004c342f004c3438004c34380044343800382c380030272f0030232f +00302325002823250027201c0024201c0024201c0024201c0020201c001f1c1c +001c201c001f201c0018201c001f1c1c00201c1c00231c250024202500242025 +00281f1c002c231c0034241c0038271c00342325003c27250034282500302825 +00303025002c281c002c241c002c241c0030231c0038271c0040271c00583325 +0075482e0092503800a66f3800c6884b00d6a45e00dbb17100deb98400e2b88d +00e2bd8d00e6c18300e6c58300eac08300e6b88300deb98400e6b88300e6b883 +00e2bd8400debd8400eabc8300eab88300e6b87a00deb47100dbb16700d29455 +00c2844200be6a3800aa5f3800ae5b2f00c2571c00c2481c009a4c2500814025 +005d332500482b2500442b2500403025003c3425004434250059402f00715438 +0091644200b67f5500d2a55e00dbb56700eac17000eac17a00eabc7a00deb071 +00ca945e00ba774b00aa674200925c4b00895c4b0095684b00ae6f4b00ba7f55 +00ca905e00dea97a00e2b48d00eac19600eac9a000eacda900eac9a000e6c596 +00e6bd8d00e2b47a00d6a16700ba87550099685400816c5400795c4b00795041 +00714c38007948380075482e007d442f007d4438006d4038006d3c2e0058372f +00542b2f00482b2f003c2c2500342c25002c28250028231c0024241c00242425 +00282325002c2c250034302f00503c2f006d442e0081542f009e634200ba774b +"/> +<palette number="25" name="glow-buzz" data="00b65b25008d54250079442e005d3c2e004c302500482b250050302f00653c2e +0089442f00a24c2f00b25f3800b6663800b6632f00b6572f00c2543800c65438 +00be574200ae573800924c3800753c2f005833250040271c00341b1c002c181c +0028181c0028171c0028171c0028171c002c1b1c00341f1c003c271c00542f25 +006d332f00853b3800a2403800b2442f00be443800c6482f00c6482f00c6482f +00be442f00b2442f00a6442f009547250081402500643c1c005c2f25004c2b25 +00483025004c342f0064383800854c38009a502f00b2572f00b2502f009e502f +008d442f00713c2e0060382f00542f380054302f005c372f0064332e0060332f +005c372f0054382f005d3c2f00543425004c341c004828120040231c00381f1c +00302025002c232500301f2500382325003024250038232500402325003c272f +003c232f003823250034231c00301f1c00301f1c002c1f1c002c1f1c002c1c1c +00281b1c002c1c1c00381f2500402b2f00502b3800643c3800894c4100b26638 +00d27b4200c6904b00d6944b00db9d4b00dea04b00dea85400fab34a00fabf41 +00f6b73800f2b74100eea83800e6982f00f29f3800db914b00d6807a00deb0a9 +00bea97a00fed47900fae19600fed45d00fedd5400fad55d00fed95400fac84a +00fed45400f6d04a00fed04a00febf3800feb22e00eaa72e00de952f00d29138 +00ce7f3800c26a3800be6a3800c65b3800be5b2f00ba6a3800c6772f00db8438 +00e6773800e66e2f00e67b2f00ea943800faa63800faaf3800fab33800fab338 +00eeab3800db994200e6983800d28c2f00c26a2f00ae532500a24825009a482f +00a64c2f00aa542f00aa5b2f00b65f2f00ba543800c6573800d2663800e26e38 +00e2622f00e2663800de573800d6533800ca543800c2543800b6503800a24838 +00924c2f0089402f007d402f006d3838007138380081403800924c3800a64838 +00b64c3800c2482f00b6503800ba482500ba3b1c00c2482500ce482f00ce5325 +00ce502f00d2572f00db532f00d2503800c64c3800ae483800923c2f00813c25 +006d331c005c2f1c0065331c00793325008d3725009e3c2500aa382f00ae402f +00ae442f00b2402f00b63f2f00be502f00ca502f00ca572f00c6532f00b6532f +00b2502f0096482f0085402f00713c2e00653325004c2725003c1f1c002c1b1c +0028171c002713120024101200241012002314120023141c0023181c00241812 +00231409002414090024141200241812002c1f120038231c00482b2500602b25 +006d332e00753c2e0081482f007d4425006d3c2500602f2500502725003c2325 +00301b1c002c1b1200281712002817120027181c0024181c0023141c0023101c +0023142500281c250038282500482b2f0061342e0071332f00a23c2f00ba442f +"/> +<palette number="26" name="deep-water" data="001814120018181c001c1c2f001b184200181c4b00171c4b00171c4200131c2f +0014181c001418120014181200181c1c001c2038001c2442001c245500243467 +003040710030387a002c407a003440840034407100443c710044406700384d67 +0038445e00343c5e0034345e0024345e0024345500242842002020380018181c +00101012000b0812000b08090008040000080400000b0409000b0812000b081c +0010101c00131c25001820380018284b001c305e0024406700284071002c447a +002c44710028407100243c7100243467001c305e0020284b0024244200202438 +0018202f001320250014201c000b18120008141200081012000c1012000c1012 +000f14120010141c00141c250017202f001b2038001c1c2f001b1c250017141c +00131012000f101200101009000c0c0000080c00000808000008080900080809 +0008080900080c09000b0c12000b0c12000b0c12000b0c12000c101200101812 +00182012001c2c2500283425003038420030384b0034445500384d7100496184 +00546da0006471a0006475a9006575a0006881970071819700687daa00687daa +007c89c6006874aa0058648400444d670034405e00283855001c2c4b001c2438 +0018202f00181c1c0018181200141812000f1412000c1012000c1012000c1009 +000c0c09000c0c09000b0c09000b1009000c1009001010090010140000101800 +0014140900181412001c18120020201c0020242f0020283800202442001c244b +001c244b001c244b001c244b001c2442001824420018244b0014245500142455 +0018244b00182042001820380017181c00141412001010090010100900101409 +001014090013140900141812001418120014181200101012000f1012000c0c12 +000b0c09000b0c0900080c09000c080900080809000808090004040900040409 +00070012000304120003081200030409000404090008080900080809000c0c09 +00100c0900100c09001010090013140900141c120018201c0020282500242c38 +0038444b0054657100757d970095a5bc009db1d800b5bdeb00c1ced800c6cac6 +0095b1c5008da1bc006c9296005c6c8d00444971003840670030385e00243455 +001c285500202855001c245500202c550024385e003044710034498400344984 +0030498d0038488d0040518d00495d8d004c5c84003c4d840038408400303071 +002428550020244b001f203800171c250013141c000b14120007100900071009 +00070c0900070c09000708090004080000040400000404000004040000040400 +0007080900080c0900081009000b1012000c14120013181c0014202f00142442 +0014245500142455001820550018205500171c5500131c550014205500172055 +00182055001f205e001c245500182455001b1c4200181c2f0017181c000f1012 +"/> +<palette number="27" name="afternoon-beach" data="00b6a2aa00be9d8400b2887100ae6b4b00a27c5500bea05e00dbc56700e6d271 +00fef58300fefe9f00fefeb200fafece00fefed800fefec500fafea900eade8d +00dbc1a000cabdaa00beb9a900b5a9b300b59db300a999bc00ad9dc600a195bc +00a595b300a292aa00918d97006c6c8d007070670081816700957c6700ad955e +00ce955e00eaa86700fac07000fac87000f2d97a00f2e57a00feed7000f6e570 +00f6d16700fecc5d00fac45d00ee985e00c27f4b00ba6f4200be7f4b00dea85e +00fecc7900fef5a900fafece00fafee100ded5e100d2c1cf00eec5a900fae996 +00fef99f00fefea900fefec500fafed800fefec500fefea900fefe9f00fef18c +00fedd7900fad17000f6d17000fed97000fedd7900fae18c00eec5a900e2b9cf +00ceb9cf00cdb1cf00c9b9d800bdb5e200bdb5d800b1a5d800ada5cf00b9a9bc +00caa5bc00dbb5a000e6b88d00eab48300e6b47a00d2b58d00d2a99700caa1a0 +00ae9aaa00b195b300aa96aa00a999b300a6a2aa00a1a59700aea29700b29d8d +00aa9d8d009e9171008d745e007d604b00615c2f004d4d2f0049492f0040442f +0044402f00403c2f003c342f0038302f0030242f003028250034282500342725 +003427250040272500402c250048382500403c2500443c250054383800754c41 +0092584b00915c4b0095634b00926c550091686700a26c68009e745e00a97368 +009d815e00a2996700b6ba7100ded67a00f6f68300fafea900fefec500fefed8 +00fefee100eae2fe00d1c9e200cec1cf00d2b1c600b5a5b300a28da00091797a +009164710079605e00685d5e0055504b0059554b00615d540064605e00656954 +00797967008981710096966700b6986700ceb17100e6c55e00eeb45400eea85d +00e2ac5400bd985400b6704200a663420085503800583b2f0044302f00402c2f +003427250030281c0030231c0034271c00302c25003830250038302f00443438 +004c403800554c410071584b00755c54007d6054007d6054007d5c5400855854 +0075584b005c4838005144380048443800444438004c4c420051514b00554d4b +00554441004838420044403800403c4200403838003c3038003c3438003c3838 +003c382f00443c2f0044403800494938005151420055604b0061694b00696d38 +007d7542007d814200928d5500aaa95500c6ca7100eacd7000fac07000eeac67 +00ea985e00be774200ae6a3800a66f42008d6c4b007d7055006c716700718167 +00857d7a00b691a000caa1b300d2c1b300fef1c500fefed800fefed800fefec5 +00fefea900fefe9f00fef59600fef58c00fae58300e2ce7a00b6b67100a28d5e +009580410091744b00896454007d6c5500816054007d704b00756d5400696d4b +00616d4b0065694b00797042008d704b0095745500a28d6700c2a97a00dac984 +"/> +<palette number="28" name="dim-beach" data="001b1c1c003024250044302500483c250044442500383c25002c2c1c0024241c +0020201c001c201c001c1c1c001c1c1c001c201c001c241c0020282500303c38 +00384942003c514b00505d4b005c898d0064aaa00085b9bc0099c2bc008db6a9 +0075a283006d917a00557154004555380040442f003838250028281c0020241c +001f201c001c201c001c201c0020201c0024241c00342c1c0048381200613c1c +0079541c0081702500966b25008d64250081541c006d481c0040491c00302c1c +0024281200242812003438250040402f00444c3800615838006d6438006d6438 +005d614200444c4200304c4b0030383800282425001c2025001c2025001b2025 +001c20250020201c0020201c001c201c001c201c001c1c1c001b1c1c00181c12 +00181c1200171c1200141c1200141c1c00131c1c00131c1c0010181c00131c1c +00141c1c0018201c0018241c0018281c00182425001820250020242500343c2f +00444d2f0069582e0085742500a68c2500b6996700d6ce8400dedaa900e6eabc +00f2f2c500f2f1c500e6e2b200f6c45d00f2b84a00e29c3800d2a43800dea038 +00d69c2f00dea32500de982500d69d2500ba7b2500b6722f00ae6f2f00956338 +00795c380065714b007daa7a009aaea000b9cabc00c6dac600a9c6bc008db2a9 +00689a9600346d97002c597a0028384b00143038001824250018201c0018201c +0018201c0018201c001b201c001c201c001c241c0020281c0028382f00303c38 +00304038003840380038403800504438005c3c2e0071602f00966f3800998042 +00aaa68400d2caa000e2e2bc00f6f2c500faf1ce00eae6c500e2debc00c2bd8d +009991670069654200494d38003c402f002c282500202025001b1c2500181825 +00181c1c00181c1c00181c1c001b201c001f201c0020241c002830250030402f +0034492f00384838003c442f00444c38005d552f0071602f0069502f0065482e +0068483800614c2e005c442500594c250058482f0044492f003040250024281c +0020241c001c241c001c201c001c201200201c12001c1c1c001c1c1c00181c1c +00171c1c00181c1c00181c1c00181c1c0018201c001b2425001c242500203c38 +003040380030443800344938003448380030403800303c380034382f002c2825 +0024241c0024201c0024241c002c3425003c3c2f003c402f00444938004d5438 +005d6138005d653800616542006161380061654200616d420058897000619a8d +006c9e8d0074a6a0007db6a0007db28d008db68400a69d7100ae884b00c68c38 +00d2953800dbac4200d2ce9700d2dec600d6e6cf00dee6cf00e2e2c500cece97 +00a6a27a007d7d4b00596542003c492f00282c1c001c20120018201200142012 +0018201c001c24250024282f00243442002850550038555400588e8d0081b6a0 +"/> +<palette number="29" name="cloudy-brick" data="00cacebc00b2baa000999d8d00818d7a0070817100607d7a0068928d00709ea9 +0089b5bc009ddee10099daeb0084d2eb0064c6d800549abc003c757a0030505e +00283c4b001c303800282c250018201c003038250050231c004c232500442325 +0044271c00442725004448380038442f004448380030482f003c4842004d6155 +00547167006485840085a2a000adbebc00bdd2c600c1dacf00c1dad800c1dad8 +00add2e10084c9e10068a1bc00548da90050798d004c6d7a005d685400695c42 +0081503800915f1c00995f1c00ae6f4200e2a75400ea9b4100c2772500b23f09 +00aa210900812612007d3f2500994c1c00aa6b3800f6bc4a00f6c46700fad99f +00e2d5bc00e6ead800e6ede100e6f6eb00daf6f400daf2eb00d1eee100d2e6e1 +00cedee200c5dad800bddacf00b9d2cf0099a9bc006996a000507d8d0044657a +00385d710034617a00446971005c81840081968d00b9b18d00f2c47a00caa584 +00b6734b00aa3b1c00993b12007d2a1c00712b1c005c23250050272500404042 +00344c5500385954003851550040555e0049615e00556d5e00646d5e00799171 +0081a68d0092baa900b1d2c500bddacf00c5dae200c5dee200cedee200d9e2e1 +00deeae100daeae200d6ead800c9ead800c9e6d800c5e6e100c5e6e100c1e6e1 +00c1e6e200c1e6e200bdf2eb00c9f2f400d5edf400cdeaeb00c9eeeb00c9eaeb +00c1e6eb00c1e6e200c1e2e200bde2e100b5e6e100a1c6cf006ca6b2005c99a0 +00497e960058899600598e97007da2970095b6aa00b5cabc00bddacf00c2e2d8 +00c9e6e100cde6e100d5eae100d6eae100d6e6d800cee6cf00c2dac600a6beaa +0091958400796d540075684b008d716700a68d8400b6aea000ced6b300daeecf +00f6f9e100fafeeb00fefef400fefefe00fefefe00fafefe00fefefe00fefef4 +00fafaf400f6faf400f2faf400e6f5eb00e2e6e100d6ded800e2eed800d2ded8 +00ceded800c9e6e200cde2d800cedecf00c6decf00cadecf00c9e2d800c5ded8 +00c6decf00c6dec600cad2b300aec6a90099b9bc009dbeb300b5cabc00c6d2c6 +00cad2c600c1dacf00c6e2cf00cee6cf00cee6cf00cae6d800cae2d800c5dad8 +00c1dae200b9ddeb00b9e6f400b5eaf400adeaf400ade6f40074cfeb004cc2d8 +0048b9ce003caacf004c99a90044797a004c695e003c554b0049514b004d4d38 +004c444200495955006150410050402f00602b25007d261c007d2a1c00642f2f +005c484b004451550044555e00545d670048717a0064958d0085aaa900b9cacf +00ceded800e2eae100eefaf400f6fef400fafef400fafaf400fafef400fafef4 +00fefef400fafeeb00fafeeb00fafee100fefed800faf9d800d2decf00dab5a9 +00d6b99600b674670081783800815b38007d584100695854008181710095a1a0 +"/> +<palette number="30" name="burning-wood" data="0050231c005c271c0061271c006027250061271c00502b2500442b2500542725 +004c2b2f00483038003c2b2f002c2c2f00242025001f1c25001b1c25001c2025 +00281c250030202500341f2500381b1c0044231c0054231c00601e1c00682212 +00691e120061221200582212004c231c0044271c00402b12003c302500343425 +00302c250020281c0020201c001b201c001c1c1c001c1c12001f1c12001f1c12 +00231c12002420120034231200381f12004c1f1200601e1200711e1200851a12 +00911a12009a161300a2161200ae190000b2190000b22e0900be571200d66912 +00db610000c6571200b2480900a22500009e1600009e1609009a160000921600 +00921a0900891a0900751e0900691e12005c17120058171c005c271c0058271c +0050342f00483838005444410049494b00403c38003438380024342f00202425 +0024201c00281f1c00341f1c00301f12003c1b12004c1f1200581f1200641e09 +0071220900791e0900851e12007d271200791f1c0079261c006d2325006d221c +00691f1c0065221c0054232500481f2500441b2500381b1c0030171c0028181c +00241b1c00231c1c00231c1c0024201200301f1200502b120065401c008d4c1c +00b65f1c00d67b2500eaa33800eab05400eab04b00de9d2f00de832f00d26e1c +00de4f2500c2261200ca0e0900ce1a1300ba1e0900b61e0900ba480900ae5309 +00a14f12008d3b090081401c00794c2f00793f3800852e25007d2f1c00812b1c +00792f1c00712f1c007d2f1200792f1c006d2f1200642b1c005c271c004c1f1c +00381f1c00301f2500281b1c00231c1c00201c1c00241f1c002c241c0038231c +0044231c004c232500502f1c0058271c00582b2500652b1c0069271c006d2b1c +006d3c2e006148380069584b007168540085645e00a55b3800a5572f00a24725 +00a63b1c00a23f120095401200963b1200923c09008d210000813b0000793b12 +008540120095401c009a502500ae531200b65b1200c6601200ca6e1c00ca6a25 +00ca6a2500c65f2f00b2561c0085441c00713b1c005c2b12004c231c003c231c +00381f1c00401f1c00441b1c00481f1c004c1f1c004c231c0050271200541f1c +0055231200511f1200501f12004c1b1c00401b1c00381b1c002c1b1c00241c1c +001f1c1c001b181c0017181c001b181c001f1c1c00201c1c00231c1c002c1f1c +00441f1c00582b1c006d3c1c0085401c00a65b1c00d28c4200d6d2bc00e6b471 +00eeb05d00dbad5500dea44200ca832f00ae672f008d642f0079584200503c2f +003c2b2500301b25002c1b2500241c1c00201c1c001f1c1c001b1c1c001b1c1c +00181c1c001b1c1c001b1c1c001f1c1c00201c1c00202425002c282500381f25 +0044233800593c2f0075402500793825007d382f006d2f2500692f25005c1b25 +"/> +<palette number="31" name="aquatic-garden" data="0092500900855c1c00856c380099704b008d7d540085714100694c3800504825 +003c442500343c2f00282c2f0024242500201c2500201c1c0020181c001b1825 +001b1c25001c202500282c2f003c4038004d5942005c694200758555007d9e67 +00a6b1670095b27a009d9d71007d8567006d605e00515d4b0040554b00344438 +0028382f00282c250024241c0020201c001c1c1c00181c1c00171c1c001c201c +0024241c0028281c0038271c0048301c0054331c0050381c0054401c0048401c +0044271c00382b1c00242012001c1c1200181c1c0017181c0014141c0017141c +0013141c0013141c0018181c001f181c001f1c1c00231c1c0030231c00402b1c +00483425004c3825004834250038271c00301f1c00241c1c00201c1c001c1c1c +001c201c001c201c001c201c0018201c0018201c0018201c0018201c0018201c +0018201c001c241c0024281c002c30250040402f005161420060796700589296 +00609ea900649eb3006496a00064818d00556d7100445d55002c3c4200242c2f +00182825001824250017201c0014181200181812001714090018201200242c12 +002c302500343c2f0038514b004061550044655e005571550060755e0054545e +004450550040494b003838380034382f00282c25002424250023201c001c1812 +00201c1c0020201200342712003c231200542f25005137250050483800404c42 +0034404b003049550034515e003c597a0040657a0058697a00597571005d7571 +0064757100647d6700687d67006d81550060694b005d654200595d420069694b +00757d380079794b00756438006d642f00595d3800545d42004955420038402f +002c302f00282025002c1f2500282c250038341c004444250040382500443825 +0040302f0030342f0028282f002024250020241c0020241c00242825002c342f +00343c420040555500546d670064797a0068919700749e8d00709697006c8184 +007169670059654b00455d3800444c250044441c0034301c0028281c0024241c +0020241c0020201c0020201c0020201c0020241c00202825001c2c2f00244442 +0030555e002c6da0005896a90071b29f0074aaa90085adb3005c9ac500245daa +00285da0002449670030384b002c3038002424250020201c001b1c1200181c12 +0014201200181c1200131c120013181c0014181c00141c1c00171c1c0014201c +00141c1c00181c1c001c1c1c001c1c1c001c201c0020201c002420250028242f +00343042003c4d5e005c7984007da6a00091b1b300a1bec600a9c6bc00aebaaa +00a6baaa0091aa84008da255008185550089632f00894809007d2e00006d2f12 +0055331c0069501c005d402f0068484b007d795e00818971006c967a00609283 +0058897a0044698d0034485e001c34380017202f001f1c2f0020282f00283438 +"/> +<palette number="32" name="no-name" data="0018180900181c0900181c12001c1c12001c1c1c001b1c1c00181c1c00181c1c +00141c1c00131c1200181c09001718090014181200131412001414120013141c +000f181c000b1412000c1012000c0c09001014120014181c0018181c001b201c +0020241c00202c1c0020342500303c25004c442f006550250096601c00c2661c +00d26a2500d66e2500d67f2500d27f2500ce842f00d69c2f00e2a82f00f6bf2e +00f6d02e00fedc3800fecf3800fabf2e00fabb2e00eeb32e00ee9f2e00ea942e +00de882500da942500deb32f00e6c82500e3e62e00f6e12e00e2da2f00d7c038 +00a5954200656d2f0048481c00383c1c00282c1c00202012001c1c1200182012 +00182012001820120020201c0020241c00282c250034302f00403038004c402f +0059402f006d5038009a603800be6b2f00ba6a2f00ae7b2500956f25006d542e +0055502f00514c3800404d4200384042003034380020242f001c2425001c201c +001c201c00232012002c28120048301c006537250085482f00ba662f00ba5b38 +00955438006d50380089632f00a26c2f00b2883800ba943800d2bd4b00ead167 +00eacd6700eac56700eeb44100d2943800e2734100de734b00c66e4200b66e2f +007d502500693b250044341c002c281c00202012001c1c1200181c1200141812 +00171812001c201c002828250034302500483c25006048250091633800c26638 +00d67b5500e6b46700fef58300fefe8c00fafec500eaeabc00bead970081928d +006989540055652f005d4d2e006d3c2500794c2500956c2f00b6772f00b28c38 +00ba902f00c2882f00c27b2500b273250075582f0054402f003c382f00343c38 +0034402f003c44380049514b00748d8d00b6ba9700dadea900ceceb30096a697 +00546d67003c49550038494b00494d4b00555d410061714200818d4b00a69d71 +00b6a97100c69c6700ba844200ae772f0079542500513c1c0040381c00303412 +002c2c1c002828250020242500202425002828250030302f003049380049752e +00717d2f0096aa5e00bab56700d7ce5e00f6e94a00faf95400fee95400fef14a +00fee53800fae53800fee14100fae95400eef17000f6d97a00ceb57100c67b55 +00ca774200c27f3800c6833800c2884200deb95400eae67000fef97000fefe83 +00dee29600d6c18400ae9d7100697138004d54380034442f002c34250024281c +0020241c0024281c0024241c00282025003027250040271c005034250069372f +00a5543800c2622f00c66a2f00ca833800eeac5400f2c46700fad56700f6dd4a +00f6c83800d2b43800aa9538008d6f2f005d5c2f0054482f0040441c0038401c +002c341c00242c1c0024241c0028281c0028281c00382b12003c2b120048341c +0060402e0075544100aa7b4200aa8442007948380064372e0038302500242425 +"/> +<palette number="33" name="fall-quilt" data="0018282500383425005d44250089441200ae4c1200be660900be5e1200b24b12 +00a2401200813c1200694c12004d441c00403c25002830250018282500142025 +00132025000f2025000f20250014242f0018283800182838001c2838001c2c38 +001c2c3800202c2f0024302500303425004c442500514925006d50250089501c +00aa572500c2621200c6661200d26e1200d6760900c6771200aa801c0092631c +0075501c0055482500443425002828250018241c0013201c0018181c00201c1c +00281f1200382312004c341c006954250085602500c2903800d6c58d00d6cab3 +00eae6d800fae9e100fae9d800dec1a90096915e006d6038004d442f00283038 +00242c380024283800202438001c28380018242f0014202f0014202500182425 +00182425002424250024241c0028201c00281f1c00301f1c00442f1c006d271c +00812e1200852f0900a23b0000c6720900d6911c00e2ab2f00eab72f00e6c041 +00dea54100c2902f0091702f0071582f005d482e003c3c2f0024302f00202c2f +0020242f00242425002428250028282500282c1c0030341c004c4425005d4c25 +0071581c00aa7b1c00c27a1c00d2841200d68d1200d27f1200b6771c00994c1c +0089401200793709005d33120050402500614c250071542500a6732f00d6ad4b +00e6c54b00f2c84b00daad4200b6842f0071582e004d482500383025002c2825 +0023181c00180c1200170c12001b141200341f12005d331200955c1c00c28c25 +00e2b44b00f2d55400fad57000fed47900eede8d00fae9c500fef1d800faede1 +00fee9c500fae5a900fee59600fee58c00fadd8300f6d97000fad15400fad04a +00eec03800d6831c00ba480900922600006d1e09004c0f0900301009001b0809 +0017181c00182025001824250018282f00202c2f00282c380038343800594038 +007d4825009e3c2500a23f1c009a3712008d261200851a090071160000590b09 +00490b0000340b090024140000281009001b14120017141c0018182500131c2f +000f1c2f0010202f000c1c2500101c2500131c2500101c250018241c00282312 +002c2312004023120061260000793309007d2a0900792609005d1f120034281c +0024282f00202c2f0020302f0020302f001c2c2f0018242f00131c250013141c +00140c12001804090010080000100c0000140c090014141200101c1c00101c25 +000f1c25000c1c1c00171c12002c1b12003813120050131c00711e1200813309 +00914f1c00ba7f1c00e2a32f00eac04100f2c84b00e2bc5400be902f007d602f +00615038003c3c2f0024302f0018282f0014202f00101c2f000c1825000c1425 +000c142f000f182f000f1c3800141c3800142438001c2c380024302f0034302f +004d4925006d5838007d602f00ba7f2500daa32f00e6a62500e6901c00c67825 +"/> +<palette number="34" name="night-blue-sky" data="00030c4200040c4200070c42000708380004082f000308250000041200000409 +0000040000000400000004000000040000000409000004120003041200040412 +0004041200040409000404090000040900000000000000000000040000000400 +0004040900040412000404120004081200030812000008120000041200000412 +000004120000041c0000082500000c2f00030c38000310420003104b00030c4b +00030c4b0003104b0003104b0004104b00040c4b00030c4b00030c4b00030c4b +00000c420003083800030838000308380003042f0004042f0004043800040838 +00040838000308380003082f000008250000081c0000041c0000041200000412 +000404120004041c0003041c000004250000042500000425000004250000041c +0000001200000009000000090000040900000409000004090000040900000400 +000004000000040900000409000008120000081c0000041c0000041c0003041c +000404120004040900040409000404120004041c0007082500040c2f00080c38 +00070c420007104b0007104b000b104b000b104b000b104b0007104200071042 +00071042000410420003104200040c380004082f000404250004041c00040012 +0004001200030012000000090000000900000409000004090000040900000009 +0000000000000000000000000000000900040409000404090004040900030409 +0000040900000409000000090000000900000009000004090000040900040409 +000404120004081c000708250004082f0003082f0003082f0000042f00000425 +0000042500000425000004250000042f000004380003083800040c3800071442 +000718420003144200001038000008380000042f0000041c0000041200040409 +00040409000004120000041c000008250000083800030c4200070c4b0008104b +00081055000714550008144b0007104b00070c4200040c380003082f00030825 +000008250000041c0000041c0000041c0000041c0000041c0000041c0000081c +00000812000008090004080900040409000404120004082500040c3800030c42 +00031042000310380004103800080c38000708380007082f0004042f0004042f +0004042f0003083800030c3800030c4200030c4200030c4b00030c4b00040c4b +00040c4b00070c4b00070c4b00070c42000408380003042f0000001c00000012 +0000000900000009000000090004000900040009000400090004000900000000 +0000000000000400000004000000040900000409000404090004040900040409 +000404120004081c000408250004082f0004083800040c3800030c2f0000102f +000008250000081c000004120000040900000009000000090000040900030412 +0004081c00040c250004102f0004102f00040c250004081c0004041200040409 +"/> +<palette number="35" name="shadow-iris" data="0024141200201412001f1412001f14120020181200231c1200242012001c1812 +001b14120018101200170c1200170c1200171012001814120018141200171412 +00131412001014120013100900140c0900170c09001810090018140900181409 +00141409001410090014080900170c0900180c09001c1009001c1409001c1409 +001b14090018141200171012001710120014101200130c1200100c0900131009 +0014100900171009001c100900231012002c141c003817250040132f004c172f +00501b25005823250058232500581f1c00441f1c0034171c002c141c0024141c +0023181c0023181c0023181c0023141c00201412001c1412001c1412001b1012 +001b1012001c1012001f10120023101c0028131c00301725003c172f00481f38 +005823420064274b00602c4b0060304b006428540064284b00541b380048172f +00381725002c1712002414090023100900201009001c1009001c140900231409 +00231809002318120023141200231412002318120024181c0028171c002c171c +00381b1c00401b2500481b25004c232500401f250034171c0034171c0034171c +003c1b250040172500441b2f00481b2f005023380058284100652c4200642b38 +00542338004427380028282f00271c250028171c002b141c002c171c00301725 +0034182500381b2500341b25002f1b2f0027182f0023182500231425001c181c +001c1812001818120017141200131012000f1012001010120013101200141012 +00171412001714120017101200140c1200180c12001b0c12001f101200201012 +002310120024101200241412002414120028141200281312002c141c00381725 +00401738004c1f420054444b006c3c5e0079405e007d345e00753854006d274b +0068284b00682b41006d23420064233800501f2f004813250038131c0034131c +0030141c002c131c0027101c0024101200201009002414090023141200281812 +0030171c00481f25005c1f3800712c54008d3c5e00cab5bc00b1748e00914c7a +00914c71008950710081385e007d385400792f4b006823420060233800541f2f +004c23250040171c0034171c002c141200271012001f10120018101200141012 +00100c0900100c0900100c0900101009000f1009000f0c09000f0c1200100c12 +00100c1200130c1200140c1200180c12001b0c12001b101c001b101c001b101c +001c101c001f101c0028131c003017250034172f00381b2f0040232f00481f2f +0044232f003c242f00301f250028181c0028181c002b181c00301c1c00342025 +00401f2f00441b2f00501f2f00541f38005823380060233800601f3800541f38 +004c1b3800481b3800441b38003c1b2f003417250028141c001f141c0010141c +00140c1c00140c1c00170c12001b10120020141c0023181c00241c1c00281c25 +"/> +<palette number="36" name="solid-sky" data="0091685400b26f4b00ca7b4b00c67f4b00817055005448250028281c00141012 +000b041c000c041c0017181c00005d8d00006da000047aaa000786b300138abc +00188eb3001f97b3002c9eb30034a2b30081757a00be896700d6984200ce8325 +00ca771c00c66a0900c25a0900a62b090085120000481309003c131200241c09 +0024241200343c250000659600006d9600006d96000069960000618d00142412 +0010180900080809000c0409000c0409000b0409000804090004040900070409 +00080009000c0009000f00090010041200130c1c0000598d000061a0000065a0 +00006596003c3c2500441f1200691e0900aa500900c65a0000b2430000851e00 +00480f0900240c12001708090010040900130809001b141200342c2500046996 +003ca2bc00adada000c6a59700c2947100daa05400de995400d6842f00d27b25 +00ca6f1c00da761c00ca772f0095685500587471000471a0000076a000007aa0 +00007aa000007aa000007aaa00047aaa000076aa000072aa00006da000006596 +002c3c1c001c24090014100900100809000f0409000c0012000b001200080012 +00080012000c0409000f040900140409001c0c12002424120034342f00006196 +000065960049494200403c250030381c0040402f00006996000076a000047aaa +00087eaa000482aa000486aa000082aa00007eaa00007eaa00007aaa000072aa +000069a000005d960010201c00100c120013080900141412001c2c1c0000618d +000476a000178eb3002c9ebc003ca6c5003ca6c50044aac50048aac50048adc5 +0060b1bc0095916700d68f4b00d27f2f009a63250044441c002c231200181412 +000f081200070412000400120003041200070412000b0412001308120020241c +0000699600188ab30048aebc0095bec500cedacf00d2decf00dad2cf00dadac6 +00dad2c600c2c2aa00c2b5a0008d89670071514b004854250034441c0034301c +0044401c00515025008d582f00c26a2500ce6a1c00ce6e1200ce6e0900c26212 +00ae57250060585e00047196000c86aa00138eb3001f93b3002797bc00309ebc +0030a6bc0030a2bc002b9fc5002797c6001b93bc00178eb300148ab3001386b3 +000882b300047aa000046da000006196002c2425001f10120017081200170812 +001b1c1c00005d8d000069960000618d00302725001c1c1200201809002c0f09 +003c1b12005d3725009a542500ba621c00ba660900aa57120049501c00283412 +002824120030231200403c1200954b0000c25e0900c6620900d6690000d26209 +00d2651200c6702500be6b38006c6c5e00046996000069a000006da0000069a0 +000065a00000598d000b0825000b041c000b0412000c04120014081200240c12 +00401309004d0b00006d130000a90e0900954312005555420018719600239bbc +"/> +<palette number="37" name="misty-field" data="005459670060645e00656955005d695400596d550064715e006d796700687571 +0074757a00798d8d0085a6b30099b9c500a1b9cf009dbdcf00a1b9cf009db1cf +0095a9c600859ebc007492b3006c85b3006c85b300748db300708daa008196aa +00859dbc008da1bc008999a9007d8d8d00798571006d795e00697d5500658554 +00658555006d855500618555005d794b00617d55006575550069754b0059754b +0054794b005d8d4b006d964b0075aa670085b27a0091aa9700a9c2bc00a9c6cf +00adc1cf00a9bdcf00a9bdd800a5bdd800a5b9d800a1b5d8009db5e2009db9e2 +009dbde100b1c9e200cdd2eb00d6daf400d6def400d1def400cddaf400c1d6eb +00b1c5d800b1bdcf00a9b9cf00a9b5cf00a5b1d800a1b5d800a5b9d800a5bdd8 +00a9c1d800b1c5d800c1cee200cedee200dadeeb00dee2f400e2deeb00dee6f4 +00dee2fe00dee2f400dae2f400dae2f400deeaf400d6e2f400cddaeb00b9c5d8 +00a5b5cf008d99a90079798d006965710054545e004d555500494d4b0049494b +0049494b00494d4b00495555004d61550054715e0068858400709a840081a2a0 +008da9bc0091a5c6008da5cf0089a1cf007ca5cf00408bcf00408bcf004087cf +006481b300607da0006c9184007089670061795e0059715500596955004d5955 +004d5154004d494b004d494b004d4d4b00515154004d4d4b0049494200494942 +00494d4b004c4d5e0044446700484d67005c6484007c858d0091a1b300a5b9cf +00adc9e100c9deeb00d5e6f400dee6eb00dee2eb00dee2eb00d1deeb00cddaeb +00b9cee200adc5d800a9bdd800a5bdcf00a5b9c60099a9b3008da68d00899a84 +007d9d8400799e670065954b00557d410051754b00486d5e004d55550050515e +00514d54004d494b0049494b0044444200444442004949420049494b0048484b +0051554b0051594b0051594b0055614b0059615e00595d5e005559550051514b +0055614b0055594b0055554b0051614b00516942005561420055654b0051654b +004c654b0049614b004d5d4b0049514b00444d4b0049494b0049494b0049494b +0049494b004949420051554b0051614200516938003c652f0049613800445942 +00494d42004949420044444b00344867002c518d003c82cf003c87cf00408ac6 +00607da00058797a00546c71005c656700656571007075840068758d00687d97 +007485aa008091bc00809dc600819acf00819dc50089adc60091adc6008da5bc +0085a5bc007d9dbc007891b3007085aa006079a0006475970048697a00445971 +00505d67004c6184006c7d9700898da000919dbc00a1b5cf00a9c1d800b5d2e2 +00c1deeb00c5daeb00b5c9e200a5c1d800a1bdd8009db5d8009db5d80099b5d8 +0095b5cf009db5cf0099b1cf0095b1cf0095b1cf008da9cf0089a5c60080a1c6 +"/> +<palette number="38" name="wooden-highlight" data="00614c4b005544380061482e007d5438008d645500956b710089747a00997071 +009a857a009d7c6700997c5e00a1775e00b2775500ae846700aa897a00c2997a +00a67c7b00a27d7b00aa786700b2835500ae774200a66f2f009a5f2f0089501c +008d4809008d4412008d401200893b12007d3709008d3309007d330900753312 +0075371c006d371c0069371c006d331c0061371c0065332e0058402f006d442e +008d604200a6785500aa774200ae6f4b00aa735500b27b5500966c5e009a6b55 +00855c4b008d582f00814c1c0079401c0085481c00895025009258250096602f +009a632f009a632f00925c1c009a4c1200924012008d401c008d4c1c00915025 +009e5f2f00ae6a2500b26e2f00aa661c0096541200814812006d441200602f09 +00542312004823120044231200442712004c2b1c00542b1c005c331c0064371c +0075481c0085581c00a26a1c00aa6a1c00a25b1c0096501c008d401c007d331c +00752f1200652a1200542712003c1f09002c1709002010090018100900101009 +0010140000101009001010090010140900141409001b1409001b1409001b1809 +0018141200201012001c10120014101200130c1200130c1200100c1200101012 +00101012000f10120010101200131012001b1812001f141c0024181c0030181c +0044231c00502b1c0059331200693312006d33120079331200792a0900793312 +007d2e12007937120075401200714412006d44120069401c00693b1c0060331c +00502b1c00381b1c002c131c0024181c0018141c00131012000c0c09000c0c09 +0010100900181409002817090044230900552b0900692a09006d2f12006d2f12 +006d2e09006d2e090061260900502b09003c23090028181200201812001c1812 +001c181200281c12002c171200381f120044271200502b120055341c00654825 +0085582f008d644b009270550092745500926b4b0079482500713c1c00582f1c +0038231c0023181200171012001310120010101200100c0900100c0900181009 +0023140900301b0900381f12003c1f1200442325004c2725004c271c004c231c +0054231c0060261200612712006426120054271c0044231200381b12002c1712 +0030171200381b1200402325004840380059484100695d540089645500956c5e +0096685500815c540065544b006548250071441c0085441c0081401200894412 +0089481c007d4012007d3c1200793c120075371200652f1c00542f1c0044271c +00301f12001f18120014100900100c09000c0c09000b0c09000c0c0900100c09 +00180c09001f0c0900231009003c170900401b090048271200482f12004c2f1c +0048341c004c2f1c00502b1c0048231c00401f12003c1f0900281b09001b1409 +0020140900241c0900301b090038271200512f1200693b120079401200924c1c +"/> +<palette number="39" name="jet-tundra" data="006d5c4b0069554b0069554b0061594b005d554b005d514b005d504100554941 +005444380054442f0050402f004c402f00483c25004440250048402f004d492f +00554c2f005d4c38006150380065503800695038006d54380069583800655438 +00615038005d4c380055442f00483c2f00403825003c3825003c382500443c25 +004838250049402f004c4438004c443800514038005044380051493800555041 +005d554100655d4100655d4b00696154007160540071645e0071685e0071685e +00756c5e00796c55007968540079684b0075644b006d614b00695d4b00695c41 +00695c420061594b005d594b005d554b00554d410051494100514838004d4838 +004949380048443800484438004c4438004d443800554c3800595038005d5141 +0061594b00695c4b00715c4b00795c4b00795c4200715c4100695841005d5538 +0059543800554d3800494938004844380048402f00443c2f00443c2f00403c2f +00403c3800443c3800443c3800484042004444380044402f0044402f0040382f +0038342500383425003434250034342500343025003030250030301c003c341c +003c381c00383425003430250038302500383025003c302500483c2f00554838 +00615541006d604b007968550081746700857d6700897d7100897c7100857d67 +00897467008570670081705e007d745500716c550069654b00655c42005d5841 +005955410059553800595538005955410059594b005d59540068685e006c605e +006c605e0069615400655d540061504b00594c41005149380049442f0044402f +003c382f0038382f0040402f0048442f00514938005d5138006158420065584b +00695954006d615400756454007d6454007d6454007964540079685400796c5e +00796c5e00756c5e00796c5e0079755e008579670091746700957c5e0096785e +009a785e009e8055009e84550089784b00857042007160410061583800554c2f +0049442f0040382f003c342f003c30250040342500493c250055482f00594c2f +005d502f00615138006155410061584100655c410065614b00716854007d6c5e +0085746700917871009a897a00b2958d00c6a59700dac1b300d2b9b300b2998d +00a69184009d8d7a009985840078707a007d6c710079645e0071614b006d5d41 +006d5c4100695d41006d5d4b007168540071645400716854007168540071684b +006d604200695c3800695c380069582f006d5d38007160410079644b007d6454 +00816c55008570550085705e008574670089786700917c6700897867008d745e +0085744b0079644b0079604b006d5c410069584100655438005d4d380055482f +00504425004840250044401c003c381c00403c1c00443c25004c402500554925 +0059542f0061582f006158380061553800615038005d4c380051483800494438 +"/> +<palette number="40" name="pastel-lime" data="008995550085925e00818d5e006d8555007985550069794b0085814b00a28055 +00be6b42009e6f2500c6733800ca984200ae8c550095954b0089925e0071854b +0069794b0065794b00617942005d6938005d553800714c380092581200a23b09 +00714409005550250051442f0040402f0034492f0038492500404d2500404d1c +0044492500444d25004d592f00596d380071894b006d8555007996670089a27a +0091a6970096b69700c2c6a000eacd9600d6b98400d6b55e00d29d6700c6905e +0099745e006d715500656d4b00596442004d5d420045593800404d38003c4d2f +0038513800384c3800384938003c493800444938004951380049593800495938 +005571380065794b006d81550081965e008da67100a6ad6700a2b28400aeb684 +00babe7a00c2c28400d6ca8400bac28d00aaba7a00a6ad6700a2a9550091a655 +007d8555006d754200696d4200616138005d4c380071584200716d4b00aa5b25 +00aa773800ae7338009d9155007d8955006d714b00696d4b0065654b00616942 +005d6d420059714200596d4b00596d4b00556d4b0055694b0054654200516542 +0051654200516542005569420055693800596438005161380049613800495d38 +004d512f005d4c2f0055483800514938005150420059494b0065555400716054 +0079795e00898967009d957a00b2b17a00cab99700d2ceaa00d6c1aa00bebeaa +00b6be9700aabaa000aebe9700aac297009eba8d0095b28d00a2c2a00095aa84 +0091997a007d85710068755e0059694b004d5d4200404c3800384038003c3c38 +003c3c42004c404100614c410061614b00656d4b00697954007d8d6700819e71 +00859e7a00819a7a00819e7100759667006d754b0059614200494d38003c3c2f +00343025002c271c00202812001414120017141c0014182500131c2500242025 +0028302f002c384200302c3800303038002c38380038403800383c380030382f +0034342f003c302f0030302f0030302f0024382f0028302500203425002c3c2f +002c34250028382500284025002844250030381c003844250030341c00384025 +0038342f0034402f003c442f0040403800404938004449380044442f0044492f +003c4d2f00444c2f00445138003c5138003c5138004051380044514200494d4b +004c584b00515d4b0055614b0059694b00596d4b005d754b005d715500657554 +006d815e007d8d71008da17a00ae9d7a00be918400a6aa6700a2b671009ab284 +0096ae71008daa840089aa7a0089a271007d91670079855e0069755500656d55 +005d6d55005d685500596d550065755500758967007596710074857100616d5e +005569550049614b004c5442004d54420051503800495138004455380040552f +0038552f0045512f004951380044512f0049552f004959380051593800556138 +"/> +<palette number="41" name="hell" data="008d1f120091260900952209009a2209009a220900992212009a220900a22500 +00a6250000ae2e0000ba360000c6430000c63e0000ae3a0000a62600009e1a00 +0089160000890b0000850b00008107090089160000891a0900811a09008d1e00 +009a2a0000aa320000b23f0900aa4b1200b64b1200b64b1200b2470900ba4b00 +00ba4b0900be430900c2430900ca3f0900c6430900ce4f0900da5e0900d66612 +00e6620900da670900f28b3800de620900d2560900c24b1c00b63f0900aa2a09 +0096260900892209007d1a0900710f00006507000055070000490b00004c0300 +00490b0000550b0000590f0900611a0900712712007d2f1c0079432500853f12 +009e3b0900be571200d2620900d26b1200da671200d6620900ca5a0900b64a09 +00a23b0900962a090085220900751a000061130000500f09003c0b0900380f09 +00380f000038070000400700004d0f0000591300006116000075220000812200 +00852200008922000089220000892600008522000081220000791b0000711600 +00711600006d160000691a09006917090069130000690b00006d0b00006d1600 +00711a0000751f0000792200007d1e0000791e0000751e00006d1a0000651600 +0059130000551300004d1700004913000049130000440f09004c1300004c0f09 +004c130900501b1200501f1200541709005d170900691a09007d1a1200751a12 +00691b1200611f12005d1b120061170900591a000059170000591b09005d1a00 +00611a00006d1b0000752200007d220900852209008d220000922200009a2100 +009e1d00009e2100009e260900a2220900a12a0900a12a0900a2260900a62500 +00aa250000aa320000ae3f0000b23f0900ae3b0000a22e0000922a0000812b09 +00792609007d2609007926090079260000752a0000792e09007d2a0900812c12 +0095381c00914b250099441c00b6502f00a55f4b00a5635400c27c4b00b27838 +00ad572500ae532500ae4f1c00a9371c009d2e1c009a3709009a370900922b09 +00953300009a2e0000922a0000962a090096260900922209008d271200852b12 +00852712008d2a130092330900953b09009e430900be561200ca5f1200ce4f09 +00c2480000ae3f090095331200852e09007937000071270000651f09005c1e09 +00651e0900691a090075270900812609008522090089220900892609008d2609 +009126090091260000922600009a2200009e220000962100008d1b0000851600 +007d1600007d1600007912000079120000751600007d1b00007d220000792609 +00792609007926090071260900691a000065130000610f0000610f0000550f00 +00540f0000500f00004d0f000051130000551300005916000061160000691600 +00710f09007d1a0900811e0000811e00007d1600007d12000085120000851600 +"/> +<palette number="42" name="indian-coast" data="0044382f0050402f00594c2f0069442e0068442e00503c25003c342500342c25 +002c2825002428250020202500282c1c00242c1c0024281c001c241c0014201c +0013181c0014181c001c1c1c00232025001b2425000c242f0014241c0020201c +0020201c00242c1c0024301c0028301c0034381c00383c1c003c3c1c00403c25 +00514d2f005d592f006d5c250071582f00816038007d6438007d643800816038 +0079543800755438006d502f006d4c2e0061502f00554d3800544c3800514842 +004d4942005961550089b1bc00a9d2d800add2d800adced800b1cac600b6774b +00a6673800a2633800b27b4b00b5cecf00b5d2d800b5d2d800b1d2d800b1d2d8 +00b1d2cf00a5856700956c38008d6b380091673800916438009e674b00a9d2c5 +00a9d2d800a9cecf008d7d710085584b00795441007d4c380075503800754c2f +0079502e0079582f007d543800855c38008d6738008d684b0095957a00b1cad8 +00b1d2d800b5d6d800b9dad800b9d6d800b5d2e200b5d2e200b1d2e200add2d8 +00a1cec5007979550065583800544c2f0044442500343c2500343c1c00283c2f +0038441c004d4025006d482e008558380091604200aa735500adcecf00b1ced8 +00b1d2e200b1cee100b1d2d800b1d6cf008989710081644b00715838005d4c25 +00553c0900302c12002c281c00241c1c0034231c0034302f00403838004c4838 +005d553800756d54009dcecf00a5cee100a9cee100a9cee100a9d2d800a5c6cf +00796c5e00755841006d4838006d4838005548380050443800504038004c4438 +0051483800554c380069503800795038008d60420091684b009da68d00b5d2cf +00bdd2d800b9d6d800b9d2cf00ba7f55009a634200916338009163380092602f +009e582f009d633800ba7f4b00b1cec600a9d2d80099c2cf006c685e0055594b +00494c380040442f00383c2f003c3c3800443c380048443800514d380059592f +005d58380069615400a5bac500bdced800c5d6d800cedad800f6e5c500f6e1bc +00ce945e009e644b0085604100694c3800483c38002030380020303800203038 +0018304200344442004d4d540071797100a5cecf00b5d6d800c1dad800c1dad8 +00cadad800cadad800cad2c600ba834b00aa773800ae734200c2905500b9d6cf +00b5d6d800b5dae200b5d6e200bdd6e200c1dae200c5dae200cedae200cedae2 +00c9dae200c5dae200c6dacf00e2d6b300be884b00ae734200b26f4b00c29867 +00b9d6cf00b5d2d800b1cad80095857100896442008d60380085542f007d5825 +00814f25007d502f006d5425006d4c2e005d502f0044402f003c3c25003c3c25 +00443c2f0048443800494942005155550071857a00a5d2d800add2e100add2e2 +00add2d800a9d6d800a5d2cf00817d55007d6838006d543800594c3800514d38 +"/> +<palette number="43" name="dentist-decor" data="00dab9a900d6c19700d2bd8d00cac68400b2a97100a6a2670095855e00857867 +00796d5e006d69540069655400696955006d6d55006d6d55006d6d5500756d5e +008181670089925e0092a65e0092a6550089955500858d55008d8d5500899255 +008d895e0089916700929a71009ea27a009da671009aaa710096aa7a00a6b684 +00c2b18d00d2b98d00dab99700e6b48d00eab49600eab08d00e6ac8300d69d71 +00c6917100b6806700996c5e008d64540079655400755c54006d585e0060505e +00794c5e00755c5e0075695e00755c5e0081645e00857d670099846700ae8d7a +00be947100c2a57100dba17a00e6b48d00e6b48d00eeb48d00ea9d9700e6ac8d +00ea9da000ea9c9600e69da900de959700db918d00ce957a00c68c7100be8071 +00ba886700c2806800c2886700ca8c6700ca917100ca987100d2987100dea171 +00dea97a00dba57a00dba98400d6a98400d2a58400d6a18400db918d00db8d84 +00de8d8d00db918d00d6a18d00cea88400caad8400aeaa7a009595670089855e +00716c5500655d5400514d4b004d514b00555554006d61540089704b0095705e +00a5775e00ba7b5e00ba806800c2887100c2947100cea58400dec5a000faf5d8 +00dec5a000d6b5a000d6b5b300fac5c500eea4a900ea9da000eaa09600ea9197 +00db8d8d00ce898d00ba908400b2998400a6a57a00a2aa710092a66700899667 +0095895e00ae9d6700bead6700cac67100cedb8400ceca7100beb57a00aea971 +008d8d5e00697155004d514b003c404200302c2f002c2c250024202500182025 +0024242f00342838005040410054484b006958540079716700918d7100a2957a +00ba9d8d00cab59700d2bd9700d2c1a000dec5a000dabd9600ceb58d00d2a584 +00d2997a00d2997a00db8d8400db898400ce897a00ce947a00ce917a00db8984 +00db8d8400de918d00de999700dea49600db999700db919700ce899700a9848d +00a58d840091817100916c6700855c6700896867007d7167007d756700917467 +00a1806700b2985e00b2a16700b2a55e00a6ae5e009aa65e00aea95e009aa25e +00999555009d895e00ba845e00ba7f5e00be805e00c2886800be886800c28c5e +00ca8c5e00ca916700ca917100ce957a00ce958400d28d8d00d6898d00ce898d +00ce898400c68d8400c6917a00c2917a00b2947a00aea17a00a6a56700a2b25e +009eaa6700a2ba7100b2ba5e00bec26700beb17a00c6ad8400baa19700ce9197 +00d68d8d00db8d8400ce8d7a00db897100ca917a00c28c7a00b6887100b68467 +0095785e00796954005d4c41005544420048444b003030420030282f002c2c2f +002c282f00282c2f0020282f001c283800202438002c2c380044384200555141 +0069654b00757555008985550085895e0091785500856c4b00616142004c444b +"/> +<palette number="44" name="greenland" data="00add2bc00a9b9c60091a9c6008da1bc00899db3007d99a900789ea900819eaa +0089aea900a2c6a000c2eac500cef2ce00e5f2e100feeee100fee9d800faedd8 +00fae5d800ead1bc00e6c9b300debda900cea88d00bead8400d6bda000e6c5a9 +00eac9bc00e6d2c500f2e1d800faf2eb00eefaf400eaf2fe00daeafe00cddefe +00c1d2eb00b5c9e200a5b5d8008da5c60089a5bc0089a9bc0091b2aa00a2d2a9 +00bde2cf00c5e6d800d6eee100deeef400deeefe00deeefe00ddeefe00daeefe +00d5f2f400c5eee100b5e6d800b1c5d80089adbc007d9ea900789aaa007c9db3 +0085a5bc0099b1c600b1c1e200bdcdeb00c9daeb00d2eee100d6f2e100daf2e2 +00daf2eb00daf6eb00d6f2eb00d6eeeb00d6eeeb00daeeeb00daeeeb00daeeeb +00daeee100d6f2e100ceeed800c6e6cf00b5dabc00a6baa0009696aa00898daa +00858da0007d89a0007991a9007892aa007c96aa007099a9007492aa00789aaa +00819aa90091a5b300a9cabc00bddecf00bde2cf00b1ceb300aeba970099a697 +008592970085929700748d97006c85970068819700648197006881a0006c85a0 +006c89a0007089a0007089a0007189a0007489a000708da000708daa006c8daa +006c89aa006c89aa007085a00074818d0068798400647584006481840068858d +0074858d0074859700858da0009191a000a6999700aea19700b6a6a000debdb3 +00e6c9bc00ceced800d2deeb00dee6f400deeafe00deeafe00e2eafe00e2eafe +00e2f2fe00e2f6fe00e2f6fe00e6fafe00eafafe00eafafe00e6f6fe00e2f6fe +00def2fe00daf2f400d2eee100c1e6d800cad6c500dac1a900cab59700baa9a0 +00bab5aa00bddacf00ceeee200d6eeeb00deeef400daeaf400d5def400cddaf4 +00cddaf400c5d2eb00c9cee200c1cee200bdcee200c5d6e200d6eee200e2f2eb +00e6f6f400e6f6f400e2f6f400deeef400deeaf400d5daf400c9d1eb00b9c9e2 +00b1c1d800a1a1b300a699b300aa9a9700b2a19700b2a99700caad9700dec1a9 +00eacdbc00f6dad800fae6e100e6f2f400e2f2fe00e2f2fe00e2f2fe00e2f2fe +00e1eefe00deeefe00deeefe00deeefe00deeafe00daeaeb00d9eee100c9eacf +00badeb300a2c2a00096b6970081a68d007d9e84008d927a00918d8400ae9984 +00c2a18400caa08400debda900eacdbc00eeddd800eaeaeb00e2eef400e2eefe +00e2eefe00e2eefe00e2eefe00e6f2fe00e6faf400eafef400f6feeb00fef5eb +00faf2fe00eefafe00eaf6fe00eaf6f400eaf6f400e6f2f400e2eef400e2f2f4 +00e2f2f400e2f6f400e2f6f400e2faf400e2f6f400def2f400deeef400deeaf4 +00d6e2f400cddaf400b9c9eb00adc1d80091a5bc008199aa007d95a0007892a0 +007092a00070929700708ea000708da000708daa00748daa00748daa00708da9 +"/> +<palette number="45" name="purple-dress" data="00c6608e00ce6c8e00c6887a00b2998400b6958d00ae9584009e897100997867 +00996f6700996b5e009268550089645400795c54006d5954006d5554006d5554 +007554540089605e0095685e00aa587100b25c7b00b2588400ba608e00c2648e +00c2688400b6807100ad847100a28871009a897100998571009d7c71009a7471 +00a95c7b00b1588400be648e00ce6c9700db79aa00ee8dbc00f6a8cf00f6cdbc +00dbad9700f6bcb200f9e1e100bea19700ae958400a5807100a5735e00a66f5e +00ae786700aa847100a68d7a00a58d7a00a18d84009d8984009d898d00a98d8d +00ae969700b29d8d00b69d8d00b2998d00baa19700d275a100da79a100db79a1 +00da70a100de7da000db9d8d00dba18d00ca997a00aa8c7a00a17c7a009d6084 +0095588400995884009d547a00a1507b00a9548e00ad5c8e00b1588e00a95884 +009d547a00955071008d506700895c5e0091685e0092745e00917c6700968167 +009a806700a17c5e009e745e009e705e00997c71009680710096857100918571 +0091857a0099818400998584009a8584009a857a0099857a0099857100a18071 +00a5787100ba687b00be607b00c6648400ca688400c6688400b6648400aa707b +009d807a00a2897a00a28c7a00a1857100aa7c7100ba688400c6688400ca688e +00ce688e00ce688e00ca648e00ca608e00c6648e00c6688e00ca688e00c66497 +00c6659700c66c9700be649700c6649700c2648e00be688e00b6688400a57871 +009e7c71009e787100996c710099587a00a55c7a00a66868009d7068009d7871 +009a787100957d7100957471008d70670085706700856c670085645e00755c54 +006d55540061515400615554007560540091685e009d6f6700ae647b00ba6084 +00be648400be5c8400b66484009d787a008d7071008568670075646700796c71 +0089747100917c710095817a0099847a009d857a00a18d7a00a58d7a00a58984 +00a6898400ba688e00c2648e00c6648e00c6688e00c2648e00be688400b27c71 +00a27c680091787100817067006c605e0064585e006d5954007960540085645e +008d685e0089685e0079645e006c5c5e0064545e006151540059514b0059494b +0059494b005d4d540068545d00855c5e00a1547a00ba608e00c6689700d270a1 +00de7daa00ee89bc00ee89bc00ea85bd00de79aa00d2709700ca847a00be8871 +00ca957100ba846800b6806700b67b6800a6787100a9587b00a5547b00a1507a +00994c7a0099547a00895c71008d6467008d70710095787a0091747a0091787a +00957c7a009d857a00a68d7a00aa917a00aa917a00aa918400a28d8400a68d84 +00aa898400c26c9700c670a100c66ca100ca64a100ce689700ce6c9700d26c97 +00ce649700ca649700ca649700ca608e00c6608e00c25c8400b2587b00a6547b +"/> +<palette number="46" name="no-name" data="00795c4b00a2846700b6987a00c6a98d00d2bda000ced2bc00c2c6bc00cab9aa +00ceb5a000ceb19700cab1a000c6b19700c2ada000c2ada000c2ada000c6ad97 +00c2a59700ba9d8d00ba998400ba947a00aa805e00915442006d402500514425 +00403c25003038250038341c00303c2500383c25003c3c25004844250059331c +006d3b1c0085481c00a6734200ba946700be9d8400c2a59700beb5aa00cacecf +00cad6cf00c5d6d800c5d6d800c5d6d800c1d6d800c5d6d800c9d6d800ced6d8 +00ced2d800ced6cf00cad6c600c2cebc00bab6a900bead8d00c2ad7100caad71 +00d6b57a00e6c18d00e6c9a000eac9a900eacda900eacda900e6c9a900e6c5a0 +00debda000caa98d00b6997a009e8d5e00794c38005534250044231c003c2825 +0030272500342c1c002c2c25002c2c25002c342500282c1c00242c250028302f +002c2c2f00302c2f00383038004430380048342f005c442e00695d4100898d55 +00929a5e009a9967009e9d7100818d840054615500405142002c3c2f00242c2f +001c201c001f181200181c1c00141c1c0014181c0014181c0014181c0014201c +0014201c0014201c0014241c0020242500282c2f0034342f0040342f00484438 +005d69420085925e00b2a97100dec19700eacda900f2d9bc00dee2cf00dee2d8 +00e2ded800e2e6d800dae2d800cadad800c9d6d800c9d2d800cadad800cedacf +00d2dacf00ead1b300e6cda900e2c1a000caad8400bea57100a2955e0071614b +005550380040442f0034382f002c302f0028342f002c343800343c3800484842 +005d5041006979550089965e00a6a56700b2997100bea97a00c2a98400c6a98d +00cab9a000cad6c600c6d6cf00c6d2cf00bdd2cf00b5c6bc00beb1aa00b6a197 +00b2917a00925c4b0081442e0081442f008d705500ba997a00dbc1a000ead1b2 +00d6d6cf00d2dacf00cedacf00ced6c600c2b1aa00ba998d00a98c71007d684b +0061504b004d4d4200484c4b00616d4b0092925e00b69d7a00caad8d00dbb997 +00e2bd8d00d6a48400c6a17100b68c5e008d5c42006d3b2e0075482e00925842 +00b6835e00ca9d7a00e6c18d00f2c99600f2d5a900f2d5b200eed5b200e6c9a0 +00e2c18d00cea87100c2a15e00aa996700899155006d6842004d4d3800404038 +00404038004c48420061584b00817d5500a9957a00b6918400be918400be9d84 +00be9d8400c2a18400ba9d8400b2917a00896854006d40380048403800403c38 +003c402f003c442f003c402f00444038005d5141007d85550096916700b2997a +00baa58400bea58400bea18d00c2a58d00bea58400bea58400bea48400bea17a +00ae98710096915e00715441005948380044402f0034302500241c25001c1c25 +001320250010181c001314120010141c0014181c00181c1c0020281c00302c1c +"/> +<palette number="47" name="spring-flora" data="003343240035422200333e1d0028331700282a1a00252b190024301900202e17 +00222c1600151c110012130e0010110b000f110b000d0f0a000d0e0c000d0e0c +000f110d0011150e001a231500222c1c002a332700313b27003240360037393f +003936420037253b00321b33002c261c001a20120011140e000f120c000e100a +000e0e090012120d00131710001f2924002c283a003430480042354f00413f4c +003f3d4400363f2a00354222002e4322002e3e2000233318001a23130012130e +000c0d0900090a07000806050007050400090606000b0909000e0f0b0015160f +002c1f3200301b360037273b0035203b0030263e002c2b3700323b2a00354327 +0036482d003a4f2c003f572c003d572a003a4f2a00384a2400324822002d4222 +0024391f00202c1a001721140010140f000f130c0011130d0011140f00172116 +001e2e1d0024372000293e21002e432200304224003242250032422500354225 +00334327003543260037482a0039482a0034482d0034482d0031482d0031482a +0032482500324825002f482a00334a27003948220037482700394b27003d4f27 +00465125004c593300526643005670490064724c0059763c00667e5800728c61 +0087986200707f5d00768c5d00bfaea3008f9a7100637f64005d783b004f663c +005267430053684700566748005667400057573400495832004c5034003e5739 +004658320047543800464b3200434a2c0039482a0034482a002f422800293624 +00222a1900151b100010130c000c0b0a000a0807000705050006040400050403 +0005030400050403000505050006050500060405000704050007040500070505 +00080606000a0807000d0b0a000e0f0b0013150f0027211700302f1e003c3935 +004f4161004a3a4c006a3b4f00605a5500543e5500584f5e005052480046453b +00394536003c4f2f003a4f2f003a4f2e00364f2c00354f2c00354f2c00354f2f +00374f32003c4f32003e5731003c5734003d5e3400435e34004c5e3800567638 +0050603500536d2c00536e37004c67370049663600445832003f4f2c00394827 +003748220035432200324225002c3e24002c37260029392300283d2400293e26 +002c482a00374f29003d572f00435e2f004d673500597639005675390059764c +00727f55006a7e61005d774c005275480049663b003c57340031482d00273922 +00202e1b001721120011170d0011150d0011140e00161b1100212a1900242f1c +002c391f00313e2100313f23002d3a210025331b00202c17001721110010150d +000c0f08000b0d07000b0b07000a0e08000c0c09000d0f08000f130b0013170f +001d2c160023341d0027391e002e431c0032421c002f481d002f3f1e0027391b +00203319001c281900151a110013170f001c231500232f1a002e3e2100354327 +"/> +<palette number="48" name="andi" data="00350f05004d2f16005c452700705337007e5a3b008a573f008c5a42008c5d40 +00895832007a522000643e1300481f0c00340201001400000002000000020000 +0018150c0048221e0052352f00613e29006c472a007a4d370084514100885c47 +00895c4700895e4700885c470087524500844a3d00734335006a3b3600552d2a +00300d150010020100000000000000000000000000020000002e110500492412 +00543c2600744c340089533b00945e47009d684c00a26d4f00a07652009c744f +00996e4f0094664900945d48008f57410091513a0090513700924f31008c5130 +008f54300095583f00975b4100945a430091574400905744008a5b440089583e +00765538006f532b00644a2400643f2100643818005e3f140060341400573812 +0058300e00482607004417060045140b0053220c00612b1c00642e2800724232 +007a57400081684c008e776500a2867a00aa968c00a8a29b00b8afa700b2a79f +00ae9d9400a4978500a38f7300957f5b008c6a3f00754c3300592e1e00390d04 +00170000000200000000000000000000001306010038150800563223006c3930 +007e413100824439008048300085412e008044280087411d0078421800823914 +00612f0b00491707003f0e0200360000003600000041120b0053371e00593d25 +00694a2b007459340082603d0081614200846047008d644e008e6d4c00916c4c +009572500097745000977554009a775700aa806700b1896c00ad937800ac987c +00b09c8d00bbab8e00b6ac9200ae9d8c00ac9c7900a1916a009b88620099845d +0094765700966c4d0095644a00965d4800915c3d008f593e008c5539008c5934 +008a64360086653b0087633b008d6140008e5e42008a623b0084633600826031 +00785b2600693c11005e0e03003d0000003b040200440d1100581b0a00603013 +006f4925007d582a00825e32008c603a009461450096624900996750009e6e4f +009b6e54009e6e50009d694f009b664b00986249009a614800a3604600a46a50 +00a5705100a4755000a3765100a27851009e755000986d4d008c6449007e5744 +0076503d00693f2d005b351900582c0c0056280f006823110075391e0075442a +0083502a007f522f007c562e007e522700785628006d441e00683c19005f4118 +0065421500674124006b48270074522a007c582e007c5b3400796438007e663e +0083644600886048008c5f48008e5d48008e6048008f5d44008c5d46008c5a46 +008e5946008c524000894b3c00844d37007d573c0078593e0080684600886f4c +00937659009c8775009f917c00ae948200b3977d00ae977700ad947100b29264 +00aa8f7000a18a6d00a1865c00a07d5100a1875b00aa7b5500a47a5800998250 +0098765400947750008b6f4d008d6f4900896d4f00876c5d008f6f5e00948064 +"/> +<palette number="49" name="gig-o835" data="00386155004c6954004d7554004c6d5e00546d5e0058715e005c7d5e00657967 +006985710071917a0071957a00658d71005c7d670054715e0051654b00386142 +0034594200245142001c4d42002c482f00143c2f00143c2f0010444200104442 +0004444b00045154000c59670010657a001c657a001c697a001c717a0024697a +0024697a0030697a0034697100306d67002c655d002861540030594b00284c38 +00184838001c483800184c38002848420030594b00385d54004469670044757a +0044757a0048757a00487971004c797100547d6700597d67005c7971005d8167 +0068917a00649d8d0079a296007da6a900a1b6a900add2c500a1baa00089b2b3 +0079a5a0006c918d005c8d830050818300507d7a004c7d7a004c817000487d67 +004875670048756700447971003c79700034757a003079830028758d0028718d +00307996003875a000407d96004c7d8400598a840064928d00709a9600759597 +0074919600709596006492a000508ea0003c82960030798d0024758300247183 +0038718300447983004c7d840054898300608e8d00649596006492a0006896a0 +00648ea000648596005c818400587d7a00597967005071670048695e00486555 +00405d4b00245d54001c615d000c5154000c596700044d6700105d6700136167 +00205d5e0030615e0040695e004c755e005d796700617967005c7d7100547d71 +005c8171005485710058817a0058817a005c817a0060817a006c817a00708d84 +006d9983006c928d0071958d007d958400719684006c998d006ca2960071a696 +00709a8d0074958d0075998d00789a97007da2970085a297008daa970091aea0 +008db2a90089b6b30085a2a0007da28d00799d840075927a006d917a00608571 +0058797100547167004c716700447167003c69670034655e00306567001c6570 +00206d83001c698400207184002775830038798400447d8300447d83004c8183 +004982840048868d00518697005086a0005486960054868d0058818400648584 +0064898400648e840064898d00648e8d00618e84005c92790058857a0058817a +0058817a0058857a0060897a0060897a006c918400708d84006c918d00748d8d +006c8d96006092a0004882a0003c7e96002c758d00246d830028697a002c6d7a +003c717a0048797a0055817a0060858300648584006885840068898d006c898d +0068858d00648584005c797a0058757a004c757100507567004c756700487567 +004471670040717100386d7100386d710030717100347170003c757a00497e84 +005082a000588aaa00508aaa004486a0003882a0002875a0001c718d0014658d +001861840010617a001461700024615e0030655d003c695e0048755e004d7967 +00547d7a0054868400588696005889a000548ea0004c858d00507d840050797a +"/> +<palette number="50" name="rie02" data="00304825003c551c0030581c003c4c25003840250030341c002c301c00242c1c +001824120014241200182812001c2c120024281200241c1200141412000c1009 +0010140900141809001c1c0900282c120038341c004440250058482f00555d2f +005564380058604b005d614b005c614200556538005869420059694b00546942 +0059714200718d5500859d7a008dbe960091b6a90081bdbc00a9b5b300b1bda9 +00d2e6a000deeab300f6f19f00d6e68d00bedaa000c6e27a00eaf67900dad170 +009dad5d007d955e0079955400657d42005d6d420059652f0059752f0065712f +00717d38007d854b00998d5400999d6700a2c26700b6ca6700b6be5400c29870 +0089815e0071714b00596d4200485c38003c593800385c38003c5d2f0040582f +003859380034593800345038003850380030482f002c482f00243c2f00203438 +002438420024383800244438003058380044654100617d550071955e0091aa7a +0095b170007d99670061795400555d42003c404200242c2f0014241c000c1812 +00081000000c0c00001418120020301c002c3c2500444c2f0048592f0040542f +0051582f00485d1c003c4c2f0038382f002c38250020341c0018341c00142c12 +001c300900183012001c381c0018382500183825001c382500243c2f00304825 +00345825003c6125003c5d2f003c602e00304c2f002844250020341c001c381c +00102c120010281200102c09001c3009002c341c002438120028401200244825 +002c4c25002c4c2500284825002c381c0024341c001c301c0020281c00202012 +0018201c0014281c001c2825001c241c0018282500182c250018342f001c2c2f +001c2825001c302500142825000c281c0014201200101412000c1412000c1809 +000c1809001024120014341c00183c2500204c2f002c5038002c512f0030612f +003c792500406d250048652f003c5d380038594b003c505e004c5d670058795e +0065814b0061914b005d853800719d41005d79420055752f004d652f00445525 +003c4425003c382500383425003c3c2f005050380058684b0075815e0095ad71 +00a6ba8d00a6c67a00adba8400a2b27a0085955e0075854b005d714b0054694b +003c614b00404442002c404b00243442001c3842001c3842002030380024302f +0034301c0030382500302c1c002c341c0038381c003c3c1c0040442500505038 +0069654200818155008585710081897a0075916700799d540071914200617542 +004c69380048713800448138003c7d3700346d41003461410040694b0059855e +007d957100a2ae840099c69700aac68d00a9ce8d00aed28400b5d68300a9d68c +00aede8d00b6ce9700beca9600c6c69600dad58d00d6d6a000bdce8d00bed267 +00aed24b007599380069853800697d38006d6d38005d714200696d4b00757d71 +"/> +<palette number="51" name="rie05" data="00497d54004d8d530059925300689a5e006daa670092c67100a2d68400b6e2a0 +00c6eaa000ceeaa900daf2b200deeea900dae29600dee68d00dae68300d2de83 +00cede7a00bedb7100cbe27a00cee26700dae25e00d3de5e00c6de4b00aad25e +00aace670096c2710089ae710079aa670081ae710081b6710092c68400a2dea0 +00b6daa900d2eac500e6f6ce00e6f6d800e6f2cf00deeac500d6eebc00d6eaa9 +00d6e69600d2e68300c6e67a00badb7a00aace7a009ac6710089b655007db24b +0079aa540089995e008dae5e00a2b67100c1c98d00cdcdb200dee6c500eaface +00f6fec500fef1a900f6ea9f00f2fa7000e6ee5e00deea7000c6de7100bedb67 +00c6ce6700bad66700aed67100a6da7100b6d67100badb7a00c6e28400cae296 +00dedea000eeea9f00f6e9a900e2eeb200d2eaa900c6eaa000c6e69600cae284 +00cfe67a00c6e27a00bade7100b2d66700a6ce6700a6ca5e0096be54008dba4b +0099ae4200a5a9420096b655009ec25e00a2c26700a2ce67009ece6700a6d271 +00a2ca7100a2d27a00a6d671009ece5e008ec2550081ae550079a64b0079ae4b +00799d4b0081a24b009a942500899d4b006d9a4b0079a2670089aa8400a6c697 +00b2daa900b6d6b300b9d2b300b2daa9009ac68d007db27a007dba710092c267 +0096c2670096c267009ac25e0092c655008ec255008eb655008db6540092c24b +0096c24b009ac64b009ec23800aac63800a2ce4200bed24b00e6bb1c00fec609 +00f2d02500f2e14b00f6ed7000def29f00e2eeb200f2f2cf00f6f2d800f6f6e1 +00f2f2e100f2f1d800e2f2bc00ceeab300c2e29600b2d68400a2d27a0081c267 +0075a655006d95410065994b0059964a00619e4b0065a2540071aa550089c25e +009ace6700aace5e00bdc15400eed04100fee45400fee96600fedd5d00e6cd5e +00b6ce710099b17a00719a5e0064965e0054815d0049794b00417541003d7138 +003c6d380041712f003d6d3800416d380041713800457541004d8141005d8d41 +005d964a00719e550085aa550092be670096be7a009dbe84009eca8400a2d284 +00aedb7a00bade7a00c6e69600cee6a900d6e6b300deeac500e6f6d800eeede1 +00eeeaeb00eeeed800e2eebc00d6e6a000c2da8d00bec68300aec67a00aeca7a +00aed67a00b6db7a00c2d68400c6e2a000cae2a000cae2a000bedeb300bedeb3 +00c2e6b300cae6b200d6eab200dee6b300daeab200d2e6a900cedaa900b6dea0 +009ac28d0081aa7100659a5d00518d5300518553004d7d4a0049794a00458141 +0049794a004d814a006d854b0061924b006c9a5e007db2670096ca7100a6d27a +00bade8d00c2de9700c2da9700b6da9700a2da8300aad67a00aed27a00b6d27a +00bad67a00bed67a00c2da8400c6e68d00cae69600cfe68d00cada8300bece7a +"/> +<palette number="52" name="rie11" data="00ae9067008160550075504200695c380071502f00655c42006d7155007d8967 +00a1887a00c6987a00ce9d8400aea58400919e670071755e00585c4200444438 +003c382f00342b2500302825002c2c1c002c2c1c002c2c250030302f0034342f +0034342f0034342f002c343800343838003838380038383800383c38003c3c38 +00403c38004438380040382f003c3c2f00383825003434250030302500302c25 +00302c2500302c2f002c2c3800283038002c383800303c420034404b0038484b +00515555006961540079796700997d6700ae8c7a00c2948400be988400a18d71 +0085795e00716042005c503800443c2f003c342500342b1c0030231c0030281c +003434250034382f00383c2f003c382f0038342f0030342f00282c250020241c +0020241c001c201c0024241c0030302500443c2f0055483800715c4b00998167 +00b2997a00c6a59700c6a59700c6a58d009e9a710085855e00656142004c3c2f +004938250040302f0040302f003c383800444442004859420061695500798167 +0091917a00c2a58400d2a58d00d2ad8d00dab59700dab4a000dab1a000c6a98d +009d9171007d7d67006d6d4b004d4d4200484c420049494b00443c42003c3838 +003030380030302f002c2c2f0020242500181c1c0014141c000f141c000c1412 +000c1012000c1009000c140900101009000c1409001014090014140900141409 +0017140900181409001b1009001c180900181409001714120013141200181412 +001f14120023181c001c18120020181c001f181c001c1c1c001c20250018242f +001c202f001c20250017181c0017141c00181c1c001c242500282825002c2c2f +002c283800282838001f1c250014141c0013101c0010101c0010101200101412 +001018120010181200141812001714120014181200181812001c1c1c00282c1c +00303c2500383c2f003848380040483800444038004440420040403800444042 +00444942004c4c420044595500546071007175670091897a00958d8400898d7a +0069796700515554003c444200303c38003438380038382f0034342f0038342f +003c2b2f0038302f00342c2f00301f2500281c1c0028201c00241f1c002c2012 +0024241c0024241c0024242500281f2500242425002824250030272500342825 +00402c2500402c25003c30250038302f0034303800383438003c34380038342f +00383025003c3825003830250034302500303025002c2c25002c301c00202c12 +00182012001718120017101200141012000f141c000c181c000f1c1c0018181c +00241c1c002c201c003028250034302f0034342f0034382f0038382f003c3c2f +0044382f004c382f0055403800794c380099674b00ae885e00d2a48400debda9 +00e6c5a900eac0b200debda900cea99700ae9584007d705e0040402f000f1009 +"/> +<palette number="53" name="etretat.ppm" data="0025362500384a330048593d005c664c006e685b007a72600082736300938169 +009c7b71009e7a6e009a75700080695600715f4e006f5844006d4b3500774936 +00715740006d5a4d0070635300776b5a00776a64006f726b006c6c77006f8475 +007a8c750083937a007d9474008092750081866a00777864007a7666007e6f5d +00806953007f644f0074604400735f4700695d4b00605f4c005e584b005b5a54 +005968630054716900567473005e716f00637369005a6a61004b655a00426258 +0040534d0036504a00304a3c003f4d3d0035543c003a5444004a4e4d00575853 +0066645f0078706d008e807e009d968300ada08e00aca49700aba38c0098a681 +00929875007c7a6600776553006b574400624d3b005349380047463600404535 +003e413100333a2c002e352a002a37240029332400212e1d0020231900202119 +0020211a002221190031291c00352a20002e2e200023271b0023241a0021231a +00212d210025322e002b313100273530002e3c390040493d004c534600625c58 +00786c670082778100857a82008c868d008c888c0095948100989e8a00a39b8e +00a69e8b00a4968a00a0817500a47f6e00a0755500816551005f593c004b5338 +00394a360032482e0032422d00384234003b3d3400363d34002f3e2d0030392f +002d3a2e002d3328003231230032302300373123003a332d00454137004c433b +00554c44005a504200604b3a005f493a0054483d0053483e004c47410048443f +0043413a003c3d35003542370034463f002f46400030413d002d422f00293a28 +00263a26001f2e1f001f221900212118002121180024241a002d2d21002f3123 +00313026003a392e00474231004a4739004b4a3f00464e40003f4d3c003b4333 +0036392600343428003b3932004540390050534400625c5100746b6400877a6e +00958b7d00a8988900ada49200b2a69100bba18e00afa08b00a79c84009d927f +009a7f6b0089674e0076594100614a37005e402e00514333004d4435004d4b40 +004b4f4a004556550051545800525c5600575d58005b6262005f706300646d62 +005c665c00566158005f635c006c6d6200777365007887660081916a007b8e75 +00798877006c756e00657665005c685900545f570053584a0055524a00525048 +00554f420059523d005f53380062513d00655044005c5145005a544a005e5652 +00625c560060635a00716e5e0077695c0078685800675e56005a5b4e004c5a4b +004e534f0046544900425c4d004c5e57005e636400676c770069848200819c8b +009ea29200b2ac9d00b2b0ad00a6a6a7007d968f006184870069818200687e7b +00648078005f7778005f756b00677f6f006e897a00828d85008e8a7800899d78 +008b856e00837b6d007f70630078695f0074675a00675c4f00695c4c00726353 +"/> +<palette number="54" name="the-hollow-needle-at-etretat.ppm" data="006a6e67006975740069777800758582007b9087007c908a007d958c007b928c +007a9596007f9c9000809b8e0089978f008c948e008f978400969a8200979887 +00939e95008f9a90008b979000899693008f9895008995920089938e0086928c +00838d87007d8c8a007b8f8a007b908c007b908c0080918e007f968d0078998d +007d9d9000839f970086a193008fa097008ea6a30088aca9008ba3a500829d8e +0082978d0083928d008694960082988f00829c8a00849b8900899e8400869981 +0086938100878f7e00858e7f008a877600847d6a007d715f0076655700675c48 +004e453700403b36003b3835003c3a360045403a00585653005f6561005d6c65 +005b6c65005b6d6b005b6e6d00597271005d706d005d6c690065706c006b7476 +0073807d00789384007d9a8600839683008a9387008a908400888b80008a8a7f +008a8a73008986660084836600897c61007f785800786c5400726e5400706854 +007163530074695700766f5900797566007e7f70008383790088898000888882 +00878b8300848c7f0083847e00807977007a6e68006a5c5c005b4b4500463b35 +003c3734003b3633003b373000393632003b3534003a33330034333300343132 +003734330033353200373434003a353600373739003a3d3b003a4f4c0055655d +005f6561006566610067686300606a68006c746a0074786e007d817900818d83 +00818d8700828b84007e808000727875006b6a6400645e550058504500443b37 +003c3534003733300035313000313430002f322d002f2e2f00312c2b00332b2a +0034312d00383434003a3938003f514e005669640066797600637c7e00697c7b +00757f770081877900858d7b00888b730085826d007f7d66007c766100747262 +0078716300797160007d6d6000786e5e00776a5c00706a5c006a5e5a005c544e +00453c3d003d3735003a363500393635003436360034353300353732003c3934 +0047423b005b615900606a66006a7974007f8a8100808d87007b8b890074817b +00677d6f0068796f006f736a0072726900796f670078736e007a7870007f7c70 +0083766b0082746900807c6600827c67008b7962008f746300938064009a7f63 +0093876d009d8066009e827300a294730096897700909179008f9484008d8e7e +00878c8000868d850086908400848c8200838e8200848d8000868d7e00858d7b +008887710086816b007f7a640079775e006b745a006a6f5b0069675d006b675c +006c6f5e0070776b0072807900778b83007a9187007e948800809387008a9289 +008b9184008e8e7d008f85760090846f008e886e008c886e0087827300847b6a +0082765c0084735c008e6a5b007b6d59006b6554005f5b560048403b00403a35 +003b3636003b3833003f3937004745440061645800707267007b877b00849180 +"/> +<palette number="55" name="rouen-cathedral-sunset.ppm" data="0089817e00827d6f0078706200716d5700646553005b5d51004e544800525942 +00565847005f5f4500645c3d00725e35007d5b36007f6039007c633900736540 +006562440060655000646a570068685a006d6a5700736f5a007e736400857e6b +008f87740090857a00958388009c86810091867d008d80760085816d00837d6f +00817d6e007e7c63007e826b0080816f008581710088887b00949189009c9690 +009f9992009f969800a09891009c939300948f95008d8d90008a858200877f7d +0086837c008c8378008c817e008a8984008a8a95008795a0008695a4008699ab +008a95a400808c9600898e9300929091009e8d8c00a3928b00b09a8800b39f90 +00bba79700c6ab9a00be9e8400a6916b0091855b0092724f008a6c470077654c +006b664e0062624e005e5c4e005d5a47005b583c005a523500584d3400494a34 +00545239005d593900695e47005e5b4500615e48006c624000736347006e654a +00736b490080704b008e71490094754b00978056009c896a00a28d7700a3977e +00a79c8500a39b8800989390008c938c00858b7f007e827d007c7d710073776c +0070786f00667673006874740061756b006b716b006f6c6700696d6300686f61 +006a6a5b00696558006c6655006b664e0070694e0081705a008a7f5c0090876f +008a8e8100959593009b98a100999eaa009b9fab00a39ea100a79b9900ad9f91 +00a99b8700a98d6900a27d5f0096755d008a745b00866d5500776d5000776c52 +007a6c4d007c694a007d6f4f00786d4d00766f5100747357006f71590072725b +007479600086806c00998a7a00a9928400b59a8200a8998200988e77008f876c +00857e5f007d7b5d0077705600746a5300796f5400806b5700816e5f008a785b +008c7c5b00907e5d008d835b00807a5a0077775a00747066006d725f006d706e +006d78770079817a0084837a00909187009e948d00af9e9000b49e9500bbab9e +00bcb09e00b8a79100afa68900a297850099896f00907b640080775a00787155 +00716e500073684800746444007c65400086644300876d3f008b70430087784b +0085785d00857f690084807b0084889200868f98008c99a4008d9aa8008e9ba5 +009d9c97009f9f8a00ada28d00b1a48f00b1a39600b5a69e00b5a9a200afaaa3 +00b3a4a200afa29b00a19b94009e9d9300969b930093999000888a7c00807e72 +0070706b00646a6300606863005d676000676659006f6854007066500076664a +0077624600765f4300745e3d00705a3a00685a3c00675b3800625639005c5433 +0059543c006a5237006f5a380071553800675c41006d674d00686356006a6059 +0065655f00676962006d6e670066725e0070726b007e75630088826800968c6b +009d8a6a009d8e68009a8b6d009b9280009a8e88009b91910094979c00879eaa +"/> +<palette number="56" name="the-houses-of-parliament.ppm" data="00695f850061567800515167004e4758004a424f004b4049004c444b004f414a +0051474a00534a5100584a57005b516000625c7000655f7e006b5f88006e5f8d +006d5a88006858880069598200675776006658750069576e0065546f00695a70 +0067637300696574006b627500685a780061577a00625a72005e596d005a5b67 +0058526000524c56004e4a4d004648450042483f0039433c003c433900444941 +004d534700555e5c005e66610061656a006565640063636a0064626d00675e70 +00675a70006557710068596f0064606b005f606b005f586a0061586c00635d70 +00625a690063596000615a6000605763005e58690061556f0065567100695875 +006d5d800074628700736287007167830070698a006c6385006b5f7c006d5e7b +006a5b7a006a5874006b57740068547500695474006d5770006e5b72006b6075 +006f5c75006b5974006956760069507f00634b86006249810064508000624f7e +00654a7f00624e7900614c7100604b67005c4c6300584f5a00574b5a005a4a5e +00574b5c00584c5c005b476000634d6300605066005f4d69005b4770005e4575 +00624e750067577a00725a8d006d608600716588007e6b8c0077648400726071 +006c586d0063576a005c536600574f6000584c5f00554a610057456600584765 +00584961005a4f67005d516b005d52760063517b0060517d005d547d005e5281 +00645a800065617c00646374006b677000756a6800726a6c00756a73006c636c +0068636b00676b6200676662005f6061005f5e5b0057575300574f5700514954 +004d3f4f004b3c4a00493d4b00483d4e004b3f4e00493e4e004e3f54004d3a61 +0055426400574166005248680051426900503c6000493f5200423f4c00393736 +0015181500171d14003037300037403c003f43450046424800514a5300594f59 +0060566000695669007560700076727c007e7b7e00878497007d738900777686 +006d6d85006d658000706b80006d687a0065677c006a637500706477006d6270 +006a6572006966720064636f00605e67005e595e005e585800585c5200525c49 +004f5949004854480046534400534b4d00594c57005b506700655472006c567e +006e578b00735a8e007c558e006b5281006d5c81006452770061527000615366 +0059546100595360005c565e0060575f0063565c005f5460005e555d005b5455 +00565354004e55590049545600454c53004b4753004d4453004d4551004f4654 +00504552004d4453004e45550053485600524b5700544a5400534851004d424c +00493c49003e3446003c343f0043413f0050444100544e4700574e560058525d +005c5460006155660069526c0067546900625266005e4d6700584a6500584966 +00594a6800584b73005a5176005f537a00615276006453710061566d005b5965 +"/> +<palette number="57" name="starry-night.ppm" data="00171a12001b1d15001e1d15001d1e160020231a00282a20002b2f23002d3626 +0034342400323626003338270032382a00323c2a00343f2f003c443300454937 +00434c3700444e35004552370046573b004d654100576542005c6c43005d6941 +005d6b41005a6e42005d6e41005f6f450066724900686e45006d6e3d00626941 +005e6c3d00526238004e563500514f390051523e00585b3c00635d3e005f6a40 +005b6e410054754d00597c510068805c0072825400788454008a94550094964c +0086934c00838a4e006e6c4200605939005148310042412d003f3c28003c372c +003a382b0038382a0035392a003a3b2a00393d290039412a0039412d003b3d31 +003f443700474d35004c5636005a5f3700656c4100727d4a0085924c008e9c52 +00a1a85c00b1b25e00b1ad5d00a79e560098934f008573480062644300505636 +00495035003d472f002c3a2600252e200023261b001d2317001c2419001c2618 +00212e1e00252f1e002c3022002f3124002e33240029331f002332220023301f +002a3323002e352c00353e2b003c463100494d3b005058400053625400566563 +0064725c00656c50005d6a4c0051674b0057654b00557155004e6e5000536d4a +00566b470056714100596843004f6542004d623f0046563f00444c430045523d +0049523b0048543d00465a4500506253005b6a4d00666e500066784d00627e46 +00637a4e005e724800546543004b543a004c4e3500454d300040412c003a402b +00333729002e332600282d23001e221d001d1d16001a1b16001a1c1800191b16 +001c1c16001f1e190025221c0029251d002a2722002f2c24002a2f2100262c1e +0021241b001f1f19001d1b15001b181500181a1300171a120014120e00181912 +001e20170025281e002a2d2500333729003c3f2f00464b3400544e3100645c3b +00706a3f007673420079834e007a8a59007d9562008b9d69007c986200718b53 +00677d4800697045005d673f0050583600494e35003d4c310039422f0036442f +0032402800353c2a0038352c003a3627003a3827003539250035382600383624 +00343121002a2c1e0023261a001d2318001d231a00262a1f002c2c200035331f +003e3e29004e4d36005b6143006d7a4d00888a530095955300a39a5300a79959 +009ca05a0091995400818e4f006d825000657b5500627b5e005b6657005a624f +005e5c5100535c42004e543b004a4d3700404130003a382b00323024002d2a1f +0025221900221e1500221c180026271c002f30230034342900383b2b003b4439 +00394e3a004459390045583800435036003d4d3300384a2f0038452c00353e2a +0033382a0035352d0033342c0033363000363b3400403d350045423f003f4538 +004b4c3400504f34004e523300545b3b005c64410061683f0062633d005c5d39 +"/> +<palette number="58" name="water-lilies-sunset.ppm" data="0047432e00474332004348390048543c00515748005c5d4a0054564a00586454 +00535449004d4a4400443e38003c3b30003c372f0039312600352d2600342c24 +00342e2400393125003a3126003c3427003f392b00463c2d0050413000554734 +00594c36005a533500605c3900665f3e006a623d0070643e00736b4100776a43 +00816f460084774a00827847007e764500706f540065645000575d5c005a6557 +00555e64006b6c5a0082766e0087766800999c7f00b7b77e00bdb87e00b1a564 +00ad995b00a294580091874d00867c4800746b4200675b3b0059493e004e4131 +00453a2b00433329003f322a0042333000453931004c3a350051413600564937 +00565135005f57370064573a00655841007057500075624900726a4400786e44 +007a6d43007a6b42007d684200745e3f00725a3c00695438005d4c35005d4b33 +005b4b3400544c310053493000524a30004d4c3300484a350044443600454236 +004242340041403000413e3100403a31003f3a2e003e3c2e003d3c2e003a392c +0038372d0038342c0037332d0031322900332f260036312900322e26002d3127 +002c2f2400322f2200302c2100332c220033312500373325003831260036342a +0037322800393327003a3527003c3526003b3628003d3729003d3a2b00403c2b +004840300053412f00544830005d4b3300665737006a613d00716840007a6d43 +0085714500887445008e7b48008e7b4a0090764900826453008658470070563a +006444340050362c0048342a00423126003f3729003f392a003f3c2c0046402f +00484430004e472f004c4d33004e523400525134004f4a30004e462f004b432d +0043402b003e3b2a003b372a003935280038352c003c373200433d31004d4433 +00544a3400595235006259380065583a00665a3b00655f45005f5f3d00605e3b +0053584200544f44004c49430049443600443e3300423d30003d3d2f003c392f +0039372c003936280039382800393627003837260034332500302e26002c2924 +002a2a21002c2b210030282200342c2400392f2a0039312a003e37290040372c +0043382b00443a2c00453d2900473d29004e3f30004e483400564b3a005f553d +006e634400776f4500867c4a0095844e00988d5400a18f55008f7a4c00817446 +00725a3c0062523700594230004f382d004a352c0047362e0042362a00403828 +003e382800403427003f3027003d302b003a322c0039332c003d352e00433531 +0044393000473c3400463f3100453d3000463e31004641300044442f00414330 +003e402e003f3d2b00403c2a00443b2b00483d2c004f382d0055412f00554734 +00524d3b004f4d3f0048474100464538003f4535003d4234003a3f2f00403e2d +00433b3000473f33004a4036004a483400544d36005c543d0069603e0075664b +"/> +<palette number="59" name="gogh.chambre-arles.ppm" data="001811080019220400353848004b5e6c00566e9100638daf007d9aa300a6926d +00b68e6700bf9f7100cebf7800eed88e00fce99c00f2e5ab00dce2d700d1d8dd +00cfd5e000c7d7e000bdd0df00abc2d000b0bcbb00b79f7500ac825c00a3713e +009f6d3500b06e0900bc740600c4760600ca7b0a00d17e0f00c87f2600c1915b +00f0c17700fbeb9900fcf0aa00f6e7ae00e5e0dc00e8e8e000e0e6e600cedbe1 +00c2cfd700b1c1be00cdb18200c4956500bf866100c1926a00c4a87d00b0bebf +00aac5d900bbccdc00bcced800b2c6cc00abbfb700ad936c00a27954009a6c46 +008c623a007455300074543800835d340094613100ab5f0900b7680700bc6e06 +00be6e0400c16d0200c66d0100c16b0100c26a0700c46d0400c46e0600c76c05 +00d06b0200d0720300d1760300cf740400cf760100cd740200cd730200cb7102 +00c8710300c7710400c8710800c66e0600c3700400c36f0800c5710900c17008 +00c16c0e00a9774300ac8f6d00abb8b200a9bdc600a8bbc600a8b9b400a99471 +00a9846000a77a5900a97c5b00a9835e00a69b660094aca20081acbb0088aac2 +00999da100a5835f00a0795400a1765500a37a5b00ab855e00b8987400b3b5a8 +00b1bccb00a9c1ca00a3bfca0095b2c20085a2b000888a6f0084903d00898635 +00c27d0f00be750a00bf760400c17a0400c87d0800cf820200d2860200d88608 +00db870600db910900cecd6300e8dc7f00ded87f00c9cd6200c4aa6700af8b56 +0097765300736666006e859400789cb00086a9c50088b1c700a1aeb200b6906b +00b57c4400c9791000ce7a0a00d0770400d6760100dc840a00d4903700eab670 +00e4bc7400c2a56d00b98e6000bb855300b17e4f00b27f5600bb8b6800c6a479 +00d1b99b00d8d4c000dde0d900e3e6df00e6e9e200dee4e500cfdada00bdc6c9 +00c5a98200b5886300a97856009b754b0099724b00976e4800906a4800906844 +00946941009367400093644200916a43008d7048008977490086724d008b764e +0096734f00a4774e00b98a5f00c3ab7600f3cd7b00fbed9600fdf0a600fceba4 +00e0d3a200bfb47800a2805600845e3800544d2500371e100040220700703d07 +00964e0c00b15e0600ba6b0500c0730500c8730700cf750500cd7c0c00d1820d +00c4a35800ddc86d00f7dd9100efdfa600d9d3b100b0c3c20081a1b8005e7d94 +00495c790055556b00635e3c00615a3a006a481800854d0e008f500700803f0b +00603b180064381f007d5028008e603b009e703e00ae855200b99e7000c9c09d +00c4ced000c5d8df00cad4df00c6d4d700bec6d100bebca700b89e7000a9815e +009b724d0092704e008e704e008e6b4b008e6b45008a68410090623d00996b34 +00a6610b00ae650500ba6d0500be6a0500be660400c5290100742107003a2005 +"/> +<palette number="60" name="gogh.entrance.ppm" data="00020201000605080005080700080f0800091510000b1a14001b311e00234123 +00364d2f00456a34005e7d40007c895100949d5700a9b66800bec17400cfcf81 +00dbdc8c00dbd08e00d9dc8c00d7d67e00cfc77000bca95700b38e3a00b6842c +00b98f1d00c6cb4100dcd66300e7de7500eee47f00eae58800fbf59c00ebeb90 +00f0eb9700f4ea9700f1e99500efec8800f1e67c00e9e87400dfd86900d5cc62 +00b3b35b0088913c005d8a35004a6f3a003e7135003b663e00345e43002b5e46 +002d573d0027533800265736003e642f00426c2f0059703400757f2c008b8b2c +008b8b320083812a0066793c0050703a00445e2a002f581c00234427002a3836 +002d383d002940480025624500286f5000358b64004d856e0054887000517a75 +004d5f7900476167003b616400365a5a002c505c002c474f002a504c003f5d43 +005871420081803a009b9d4500b1b36300c2c56d00cec97c00ddd87800e9ec79 +00f0eb7600e7dd6800ddd06200c8c75e00b6ac3a00ab882f008e8539007c6c2e +00516130004d5e2e00595c34007d542a009c632000866a290052632a004c5c28 +0041552500244b2d00174b3100214f2f001d5a350029684b003d704f004a8648 +006d975d0091ad7c00aec4a100baceaf00bdcfa100afbc8d008aa876006d846d +0049656500375f52002e49390014372b00112427000c2524000d1c1c00141914 +00151217000b0f1c001e1e1100161d1a00151c1600132a16001e2517001f261e +0019261f00181b2200191e30001f2e3e001f373600233f3c001d4c4d001f4e4f +00245b52002d5a630031616f00406c6c004a7a7b00638f8b00a8ad8d00bed195 +00ccd79f00d1e2a000d1d69900c5cf8400b9b47300a99e66009095490066853e +00496b3a00364a37002a4034001f342c00222d2600272f1e0031331d00373422 +002c352d00374c3c00515f4e00697c64008fa56200b6c88400cad69500d7dca8 +00e6eca500e7ebb500d8e5aa00cfd5ae00c2d2b900b4dbc9008cc6c9008ebcc1 +009fb89e006ea08f00529089005991710067895f008392620092976d009c9d6e +00c4be8600cfc99000d0d19a00d0d39400c3c99200839d810061847e004d7e75 +0031786c003a715800415c4c00495f4200595e3e007b602f00a0642800a56b2a +008f713a006b693d0058704600536142004a513c0039544000315a430036644c +003c60540043735a00627c5b006976590084874800a3865400b5a76300c6bf69 +00d2d07400d4d47000dbd76c00dbdb7300dbdd8300e3da8900e7e48b00e4e487 +00e2e08600e9e48600ece98100ede98500f3e98a00f3e68600f1e88100ede67b +00e2d96c00d5d36300c1bf5900a3af4a00959b300090983e00a79b3d00b6ad53 +00bab46800beb06400b2ab5900a88d3e00908940006b6f33004f562e00231f11 +"/> +<palette number="61" name="gogh.the-night-cafe.ppm" data="0038241900482810004c2e1a0060371f007947290091582e00a15a3c00a86d3f +00a8775300a97a5600a27b4f008b734b0066734900637b480069844b006c894b +0085935e00928b8900b3ad8200c6b98c00cabb9100d0b4a200d7bb8d00e9bc7e +00eac07c00d4b77200d6b06500deb55d00d6ae5300d2a55000cfa15300c79b4d +00c59a4a00c2954300be903e00bb883e00bc854200bf7a4600c0814300be893f +00c2893e00c48f4000c3954600c89b4600c9a24900cda54d00cea25500caa05b +00c1966000b79c6200b6996a00b3a07000a39d6b00a5935b00a38f5800ac8953 +00b4864f00b5884d00b3844300af844800b2834900b27c4300b4864000b5833c +00bc7e3b00b5743f00a8753c00ad653d00a1583a009e503a009053350080513e +00705e390062683e005a66420059664700635d5300706455007f674c00906b45 +00986e450096703f009b713f00a2703c009d6e39009a6d33009a6537008e5b37 +00764f36006b4a3000694a2d00674324006c342700743829007a352500873c2c +00954329009b432d00a3443000aa4a3200af513700b0622b00ad6d2500a77033 +00b0743000aa753900aa773d00aa743700a87b3b00ad813d00ae7c4100aa7840 +009c7e3b009d6e3d009e5d45008c643700845b2f006e4c30005d4f36004b3f2e +004a342b00462d2b00413029004837290050392500583d250061422c0068422e +0071452d007d462b008953300095552a009e522d009a5a2e009b4f31009d5132 +00a1503000a54c3700a54b3800a04631009f462d009c4a30009e482d009d442f +00a3432e00a1402d009d422f00a23f2c00a23a2b009b3b2c009a432f009a4c34 +009350370086473a007b493100734e3900714e3b0074593c00775b4500775c41 +007b5c3a008161340092673900986d3d0097713d00a3723f00a37c3c00a47a34 +00ac853400a66f3a00aa653500a85f3300a35b3300a05b3300a05c3400a56134 +00a5602d00ab5d3100b05c3200b4693300ba703b00c7793600c98d4300c89247 +00cd9c4800cfa24c00d0a54d00d4a95600d7aa5900ddae5f00daac6400d7ac63 +00d1a65900cea55300cea55200c4a45600c3a25b00bea05a00bd9a5c00b19554 +00b48e5100ac85460098814d006d824c00647f4600617b4600627644005e7445 +005a7144005761370058503f005c503900564b3d0063493e0077533f00956243 +00a0714200ab804500b08e4c00be9c4b00ccaa5600d6af6400e1b36e00eec96d +00efc46200e1b45900e0b25200da9f4d00d49e5100ca9b5200c8974f00c2954b +00bc8d4500bc904500b18c4400bc8c4200b2934600b98d4500ba884d00c48a52 +00c88f6a00d3a46700d7ac6a00d0b48400caae8d00b4a97e00b5a37500a68d65 +00af836500956a55007b5c4600634a37004c372b00472f230044222100402d21 +"/> +<palette number="62" name="gogh.vegetable-montmartre.ppm" data="00282b1d002c281c0042371e005b3d1e007041280089523100a4663500c47643 +00dc814500e3804d00e88d4800dd975300eca15000e1a15200e1a35000dda860 +00dd995800e9ab6000d2ae6900e3a16200ebac6d00eeb37400e8b06700e7ba66 +00e3b86e00d2ab7600bea16600b2a065009f9c6d008f9a7c0086957e00849278 +007f907600839076009098720090966800a38f6600b9935d00c19a6200c79b5c +00c69b5a00c1925700c08e5a00b98e5700b68d5300a98b500091845c007d945a +007f8a6a007b8979007888790074847600708679006a867500637a710060776d +005b6b630057676600596756005f644d00616048005f5a400062594f00645f45 +00756240006d614800686448007360470078634a00856e46009c7b4d00a58b4c +00b1924f00c2965800d2945700d59c5500d49e6100d3a06200d3a16400daa86f +00deb67200ecc27e00e8c67d00e0bb7a00d3b77e00e4c68d00b6bd830097a98d +0090a18600869b8900819888007f958800809487007c9184007b918300748e84 +006f8883006c8280006b7e7a00637a6f00666958006b7052006f6b4a00736a43 +007b663c00976f3e00a2633900a1674c00a17349009a794600947d42008b7b4e +008f7a5800947c540087714d007f754c00726f4900726f4900756a5b00726e4a +006f725300686f6100637a7000627c7700647f7600698077006a817900708479 +0072887f006f88820070898300758d8000799382007d917e007d8d7a007c8d78 +00818d6f009a896200a6935e00bb945a00ca935500d38d5400da8e5300db9559 +00e39c6000de9b5e00d2996100cc986000be945d00ac955b009c935d008f9567 +0089926a00808f72007d8d73007d8a70007c8362007a7b5b007778580069734f +00676645005f5e3d0054573e00524e36004b4b2e0047453600534c280063441f +00654221005f3012006b371a00693c2300673925006f381b0078281700753c1d +0076502e008d63390095683600966236007e5825008044210079492200754116 +00854a22009e422300a85a3500a9613100c3663800c86e3d00cb764100d17c41 +00c47e3700b5803900ae7d4800ab794600a5724400a8643a00af693400b66e3e +00b2784800bc834900c58b4f00c58f4f00c49b5900c3a36100c19f6e00c1ad7c +00b9ad86009aa4860096a48300949f85008c9d840087958000829880007c927e +0079907c00768e7d0074877600778266007c8362007d805f0079785900726d4c +0072684600655f3b0067583b00555430005c4b2b00614f370055552800614a23 +0067482800624c2a00674e2d0065532f0069583c00735f3b00726337008a7037 +00977a4100ab824500af7d4a00c3874800d38f4900db894c00e08c4a00d79047 +00c68c4c00ba894600ad7e4400a76d3200936637006e552700573e250034331e +"/> +<palette number="63" name="matisse.bonheur-vivre.ppm" data="0003030300271f2e005b3b3f00a97d5100ce9f6900d0ba7300ccc46500dfbe55 +00f5cf4c00f7d24200f8d23c00f5c53e00deba4a00cfb05500bf9b6c00a17e66 +00696f6f00506266002b523c00243d2d001736280012332a00203c2600354a33 +004962430076875d00afa17800dba58400e2ab8c00e2c39a00e4ce8b00f1d573 +00efd07000eac76700dfbd5f00e3a14d00dc974700cd9e3000ca8e2900b87925 +00b1741900a06b240064742c0051423e0042343c004b5453004f5a6c005e6870 +007a787a00afa37d00d4b09100ddbea700e1c9a600e8c79e00e6c69300e4c76b +00e4d06500e2ce4400e6cb3b00dfc52e00f3c71700e8cb2800d9bf2e00daad23 +00c9b22300e2ba1900d2a81d00ccb03b00d9962400bc771500d8a31300dc9109 +00e19f0100df9d0100db870000cc861500cc710200c1680200c3700000ba7312 +00ad750d00b7681300b7762000a49b2b008e9b4200618a45002f583d00304f33 +00234a3100274834002a4d390043565a005a5f65008e856800a88e5e00bb8868 +00c9876a00cf8a7b00d18c7900d9977a00d9977f00de967e00db988600dea788 +00e3aa9000dcae9200dcb79c00dbb09d00c0a99b008aa8800068956c00417756 +00265747001d463a00193b3600194538001d4238002b5840004975580076875d +00998e4e00c1924800c6913d00c7a24600c49d3500db962f00dea33000d9c13b +00dec93e00debd5200cfb45d00d3b96200cdb36400bea16100a99a5500759e5e +00528366004b795d004e775e0058795a0083665700a2692600a0652100a3681c +00a6581e00b04e0300a9470300a62b01009f0f08009a080800a5060300a00300 +009501000094090300320b0a00301d0c002e181b0030272100524620009b671e +00ac772e00b8823600d29c4500e3a15b00dca96e00e09b6b00d2836800b86a5e +00aa655600a65b51009c605500586f52004c7b5a003e77560036745b00427b66 +00568e74007e9e7b00a3a57600d1a87700deb29000e1c8a300e2d4a200ddc9a7 +00e1d1aa00d7d5bc00eacebe00e0d2ab00e3c9ae00dfcbb200e1b5aa00daa393 +00c48e8200b5846100b46f3f00c65d2300c8650300d5671a00d05e0400d15408 +00d2430100c3420100c24a0200b5460000bc410100bd350400b8320100b33503 +00aa290400ae0d0600b00d0300b2300500a6403400c55a3800bc635000d16860 +00de7a5c00ce837000ce977800c7a18300adb48a0088b39100629c8200539375 +0046866b0055846a006e906700a28c5800b2765400c07a5d00cc7a7100cb7e77 +00c4897600bf837100b6826b00a199780068916d004e80670035705700236650 +002860470034674b0061894f008a9f4300bbad4000c0b13b00d2be3d00dbb75b +00e0c46800ddcd8b00e1ca9b00d1c998009cb0900073788000455760001b3a30 +"/> +<palette number="64" name="matisse.flowers.ppm" data="000d0a1100421e0e008c352200a52c2100cd5e2d00b1794b00b69f5900b9af75 +00d1ba8200cbbd8c00d0c08d00d6c68e00dcc99600ddcc9700deca9700dcc68d +00d8c58700dccb8e00d8cb9c00e0cfa800e3cea800e3d4a800e6d9ad00e8d9b5 +00ebdac100f1d5c800ebdac700e9dac600e7d9b900e7dbb000e4d5aa00ddd0aa +00d3ccb200cecbbc00d1cdbf00d6cdc500d3cfc600c8c9c300c7c7bb00c6c5b2 +00cbc6a700cec5a400d5caa300d8caa400dac4a000e0bf9900e1bd8d00d7c282 +00d9bf7300dcc56800ddbc6800d9a35700d7a13300d3ac3200d5ae3b00cea658 +00d6a45700d0995700c5795d00d1522700c1150800a8261400aa4b3d00977f5f +009aa59400b4bcae00b8bbac00b5bbaf00b2b8b1009db2b80098afb60085acad +0082ab9f008baba5009cb1b700afbbb900b4bdbe00b6bdb700bdbeae00bec0a8 +00cac2a000cec59900d4c99e00dacaa900e1d1b300e2d8b700eddec100ecdec8 +00ebdfcf00ebddd200ecded500e9dfd600eadbd700eaddd600e9dcd400eaddd6 +00edded900efe2d800efe9d800efe6dd00efe5db00ede4d600e9ded300e7ddd0 +00e6dfcc00e8d8c900ded7bb00cfcdb900c7c8b900c3c5b800c3c4b600c2c3b2 +00babeb000b4b8b1009eaeb2008fac9c00749f950048676000374c4100152a2c +0029262500463b2300956a6100af835d00d5b46300dbbc7100ddc37500e3cc7c +00e2ce8f00e9c69700e5d3a300e6d7b200e9d8c800dcdace00d3d3cc00c3c6c7 +00b9c5bd00bbbdbb00bcb6bc00b5b1b600afb2b000a1afa200a38d9700b07076 +008d636d005250350035332800242833003c493f004e6f610083a17d009ab29a +009cb5b3009db6bb00a4c0c500b4bcc500c0c2c800c8c8c600d1d0c700d7d6ca +00d5dac900d4d7cd00cdcfcc00c6c6cc00c0c4c700b4c1c100b0bac000aeb8bd +009eb5bb0097afb20087a99e00749c930039535600381f2000461c130079382e +009b4b4100b26a7200c1856500b6ab7400a5a78c00bc8b8e00b87b7f00ba7275 +00c5926f00d0a88d00ddb8ab00d0c6b500d5cebf00dfd1c300e8d8c900e8d8cf +00e7d9d000e8dcd500e2dcd700dbd9d100d9dad100d8d1d000cacaca00c0c5c3 +00c1c3ba00c0c1b900c1c3b600c2c6bf00cdcec800d9d2c300e7d7ca00e7dacc +00ebdccd00ecdccc00eaddcd00e8ddcd00e7d9cf00e7d6cc00e1cfc400d6c8c0 +00cdbfbb00cca9a900ceada700c8c1af00c3c4b400c2c6ba00c6c8c400d7c9ca +00e5d6cf00e7d9d000e9dbd100eadfd300eee3d300f0e5cf00f0e3d000efe2d1 +00ede0d000ecdccd00ebd7cc00e3d3c500d6d0c100c5c5b800bcbdac00a9b4a0 +0095a989007388550049422700331f1e0023200c00211c0e00262921003f3728 +004d644e00819b83007ba2970081a59f0087a79e008a968b007c798700383641 +"/> +<palette number="65" name="matisse.lecon-musique.ppm" data="0011180d0019322500333c390038464700326c54003c7865004e6d68005b6e80 +00777b6700838d6c008b936b008c9066008182580081785a008e774500a27a38 +00ab7f4000b37f4500946b4200856746006b6544005c74370053663e004e7f36 +0045843f004d894c0055904800599a510067a1480062a34c00659c500062a472 +006bb14f006aa2760078a472008096860081a08d008aa39a008caa9d008eaaa0 +0081a7aa0098b4a800a0b39e00adbe9d00acc1ac00adc9b500b7cdbf00b4c6c0 +00bbcacc00bfcac400ced1bc00d3d5c400d1d6be00d3d0bd00c8c9b900c5c7b6 +00ccc6a200c4be9f00bec08800b3be7a00b5b27200b8a37a00af9c7800ac9c78 +00ab9c7e0093927f00849787008d9e8b00999a8d009a958300949e7200969671 +00888e7100807a60007a77620072795f0071755a006a6b5200705e5500825f57 +00965c5100a75b5c00b44e4800b54a4b00b9454b00b6433e00c2553200c47a1e +00dd9f0700e2a10600dca30600eabb2500be843b00cf9c3b00ba802800bb8213 +00bc812400ba731c00a26c20009a6e2d00735b3000626441005d613e005a5d40 +0046513f00474a39004b4e3200604a28006b502b0096513700b25c3200bd5850 +00ba696600af8a7900c3977c00cd998700bbb38d00bfd2a200d1dfb600e4ead0 +00e4e1d000dbddcf00d2d4c500cecec300bcc6bd00bcc2b200b7bba000b7bf9b +00baba9000b9b08d00bfaf8800bfa37c00a8aa6f009bb86b0091b1610078a84b +0071954e0075a1500079ab520086b2600098be6f0091c2830096b48500a4b384 +00a7b18000b2b08b00a9a68400a29d81009c9277009a9276009a837500966d67 +00ab5d5a00b9665c00c5666000c1685f00b7545200ad474000ad413f00a03a2b +009d30260078040500261e0900201a0c001f190e002f301c003f341a005e3f14 +006342160073581c00796221009e6f3000b0813d00b9791e00c0941d00ad7c22 +00c06b0200c0620300b95b0200a15909009e5916009a6020007a562e00715525 +006b5e290058533c004b50320044503600414e3a003f4735003b4228003a3328 +003c442500313725003f4125003e402a004249340046503a00505a4a00505f54 +00555d47005e6546006262430060644d00676f520068735f006f705b00686d57 +005d7153004c6e5400435d5e00455559004b5a4a004e514000484b3900464938 +00444732005c4821006c3b15008a4d0d00a1500500a04100009a3600008a2202 +00372a0500140e06000e09040018190c0021271e002d2d23002d302800333e31 +003c4a37003f4d3f003b6740004b80460059954f00609d690065af89007bbb93 +007cc2920089bd90006eb1880073b57f0070b0810077a295005baa8800549877 +0043987400348c7400318d79002e8675001c776b002a5845002f4b3d0021322d +"/> +<palette number="66" name="modigliani.nude-caryatid.ppm" data="001f181100392f2600594d3d0077585600976c6800ad808100b88d9800c494a0 +00c59c9e00c9a4a900c7abae00c8b0b300cbb2b500cbb3b600cbb2b900c9b2b7 +00cab1ba00c6b2b800c3b3b200cbadad00caa9a900cca7a300c79b9b00c89e97 +00cb9d9300c79d9400c4988b00ca907b00c88e7b00be827700af6f6600af5c4d +00a85b51009e5753008b49480085473e0072393700563332003222200028201e +00211f2100211f22002823220039352b00524642006c545900826b7000aa8687 +00b88e9100bf979100bd979600b5939200ac9b8400a9998200a8988100a89781 +00a7957f00958071008e7861008c6c57007f6954007f555000764d4e00734c50 +0070504a00604d3c00483930002c262400261d2200231d1f00251f1b0029211f +003028260056383300744f4a007d5f5e00996e6a00b07a7f00b9878700c28f8e +00c3918f00be918600b3817a00a47777009c6f6c008c6a6500806762007c6a67 +007d615f00915c59009c5d57009d5c5b00a4646000a56d6f00b67b7d00b57c7e +00b4868200a9958000a9978100ab9b8200c1978b00c99a9600cc9c9800d4a3a3 +00d2a6a200d8afa900e1bcb300dab9bc00d9c0c400e0c3c400e0c3c800e1cdd1 +00e5d1d400e2d0d300dacbd400d9c2c800d7c4c700d6bfc200dab9b700d7b7b5 +00d6afad00cea7a400c59fa000c19a9900b1969400aa9a8400a8957f00a08b6f +00987e670098806800a18e7600a8968100ae9c8600be9d9400c49fa100c4a4ac +00c4aeb500c6b0b700cab4b600ceb4b400d2b2b400d6bbb700d1bcbd00d0b8c1 +00d3bdbf00d7c2c100d4c4c500cfbfc700c2bdc200b1b0b400ad9fa500ad959b +00aa959a00a7889200a17d8000926d710084625c0080505100854d5000945c5c +009c666300a5757100ae838000bb8f8c00b58e8b00a87a7a00906c6800795c5e +006b5351004a3f36002d2b290029201f00251c1a002119190023191800261c1b +003a2818004c3628006d44380068412c00433528002a222000241b1c0020171b +001d1417001e1415001f1514001d141300150f0f000f0b0c000f0a0b00120709 +00120c0c00150c0e00150c0f00150f1100191415001d1718001e181b001f181b +0022191a002823210033312e0044483d0069635e007b6d7400907674009d9588 +00a6967d009a866600977f6700937b63008f76600099686400a06b6800a67367 +00b5797000bb777000b17b6f009b706c008e7761008a7a61007e6a5500766351 +0067503c00503c3000352d25002a22200029211f002b262300423935005a4749 +00745051008765680098757600a88b8e00a4999b00999da800939eac00aa989f +00bb9ea600baa3a600bca4a300c0a8a700c9a7a400cca8a800caa6a700c6a3a6 +00bea1a200b99a9d00bb959800b6939300a6878a008b727900685c5800453e37 +"/> +<palette number="67" name="braque.instruments.ppm" data="000d09040016120a00231f1400302a0e00382d070044390b0053420f00655212 +0075590f007457130067531000585e1900485c2100405319003a4f1400394412 +0036420f003e450f0041490d0046440b004e3e0c00573d0b0067440b006f4614 +0080510c00845717008b551600866b18008a731e0092762c009d823800a58b3f +00a1915200aaa47200bab17e00c3b98000d2c88900dcd58b00ead58500f0d585 +00efdc9100f9e39300f9e39900fae7a000f4e3a200f7e8a500f9f2bc00f5f2ab +00fffcbe00fbf1a800f7f1b500f1e7aa00ede5a600ded9a100d4cd9f00d0ca92 +00cdc07b00c4ae6300b2964e00a88c4200967e340083752b007f5f2100786022 +006a5f29005f5a2d005d5732005d5b360061563e00766d500092845d00a9a17d +00bdb78700cfc59100d5ce9400ddce8b00dfcb8900dfca8900e1cc8600e2cf82 +00eacf7f00decb7e00d8bc7200d2b36200dfac2e00d9ab2e00d3a62e00d09f1d +00ca911600c7992100c4a13e00cbb35b00d3c07300d5c57f00dccc8200ddd081 +00ddc98200d4c47c00c8b37100c2ae6000af9a5300a6924800a7934c00b49c5a +00cbb16e00d3c07300d5c67400dac77a00d1bf6b00c1a74d00ce9f2a00c29220 +00c18d1400ba870a00b38d1000b38f080099780700936e1400806e1900766725 +00736b26006e7a2e007578400084814a008c8559009185550087805000887043 +008b7435008a761f00886d1b0085650e00875c0400825002007b4a06006f4901 +005d430400503f08004f3d0e0052461600595d13006a641c00776727008b7d2a +009f8a3b00b0945400bca26e00cfb88200d7c48300dbc18900d0bb7e00c9ae6d +00b19e5300b39a3d00ad892700b18b1a00b191140096730b008b6c0700826509 +00724c05006743080064370500523b0800523a110047401600424a12003c4916 +003c491c0044551b004f582100576125005a6b250060613a0078713f00897939 +009f833900ab904000a5933f00a1883000a27d22009a7a2a0091711d007f660b +006e5d030057570100533b00004f38050051350600472d06003d2402003c2201 +00361f0500331803002e130000270f040022100200210f0400240d0500271003 +00251d0300261b0800261b08002c140900381c0600391a02003d190200411d04 +003a1e090041260a00422d0d00492f0a004636080046370600383b0600303d0e +00303707002b37050030370e002d44080030551400385618003c511600395119 +0037522800474a3300594b2e005a52350066524000786a5100827b4e008e8951 +00a3995c00b2a77000baaf7800b4a87800a49a5d0093904a0086844700827342 +00786c3c006d622c006e571d00805716007a520a006e4d0a00644105005b3702 +00513603004c360700403209002c340d00232a0800232908001d1a0900180c01 +"/> +<palette number="68" name="calcoast09.ppm" data="0020202c0034384200444759004c5e670052747a0053728f005a7b9a005e7f9e +006082a1006386a4006387a7006588a800678aaa00678bab00678bad00678bae +00678baf00688cae006a8eb0006c8faf006c8fb0006d90b0006c8fae006a8dac +00678bad00668aac006488aa006286aa006285a8006183a6005f81a4005f809f +005f809c005e7e99005c7f910052768c004c737a0045646b0046595e003d545b +00404c5800474b4e00464844004149490042414900383e4a00373b4700363b45 +0032374000292d3a002a2935002c2c35002e2c3a00303237003a383800394041 +0048443f00514d400060523e00675d4900645c4e005c59470058584700595449 +0057574d005e5e540063655900636b6300606e770055718f00557395005b7c9b +006081a0006487a5006a8baa006c8fac0077929c007f95a00094a59d00a5bcbe +00b3bfac00b8bd9a00bec29500ae9b680093836000908a6c0089876b008a8270 +00918e7300848983007280880065828e0066829d006081a2006082a5006283a6 +006385a8006386a9006486a9006488a9006486a9006486a9006386a6006081a4 +005e7fa0005c7c9d005a7b9a0054729300516d8b004b6581003e5b77003b5969 +003758630037576200395270003a5173003f577800435d7e004a6485004d6a8a +00516e8f00506e90004e6b8d004b658600445e7f003e587900405a7800496280 +004b6888004f6e8c00516f900052709200526f8e004d6987004f6c7500516273 +00576067005b5f61005e5b5b0065665e00757464007d806b00768683007a9194 +0082a6a7008cb0ba009cc1c800a3ccd400a7d5d400a9cfd700a8cfd3009dc7cd +0089afbd0082a6ae007698a40076999d00769ea0007ba4a60088b1b10092bfc5 +00a2c5c600a6c9cb00a1c8cb0099bdc80089afb90079a3a7006c9397006a8d99 +006283a1006083a10064889b006f8491007086900069868a0065868a0069828d +006d7580006e736b00686b5f00716f580077705c007e7c67007974670077755a +0075705500706652005f5f51005656500050545300515c650055707a005e7f84 +006a8c8f0074a2a0008eb7b900b8c9cd00bde0e500d6f8f700e0fbfa00c9e8f0 +00bbdade00aac2cb008aafb0007399a20065899700537e8400436a6f0046575d +0049505200494c4e0047515000474e5100424b58003d516100465b750049627f +004d6a8a00526e8f0053739400557697005a7b9c005a7c9d005c7d9e005d7e9f +005d7e9f005e7fa0005e7fa2005e7fa2005e80a3005f80a3005f81a4005f80a3 +005f80a1005d7e9f005d7e9d005e7c99005b7a8c0051747c004e697200515b60 +00545450004d4e4700403e3600332b2300251d23001a171e000000000005020c +00161b2e00232030002b2832002a313a001d384900233e5000262f3f001d2135 +"/> +<palette number="69" name="dodge102.ppm" data="002f2a2e00585d5a00889896008cdae10082f2fb007bf5f3007abcc600638999 +004a716d004a5952003a493d00314036003a292000401e18003f1c1700411b16 +004c1e15004b2211004a200e004f1f0e0050200f00551f120052221700592a19 +00552d1b004e311d004d281d004d241b00592723007038270074452b00765933 +007c5c2500a07a2e00ab873800a89c6100999f66009096580089735500766c59 +006c5f4b005f573f005f4e3700584138005c3931005e3930005e352f0062332b +00694332006d4a3c00745b51008c775900b3a16f00ebddaa00f5f68c00eddd66 +00e3c15b00d7b56a00c59d5800b8993e00a17c2e00956329008f542500824d2a +0075493000764335007c513c008b6b5a009ca19300c0cfa100ddebba00d8f4ce +00b2dfc800b3bba3009a867400926a4f008169340072673100777a4a00878d70 +0093a49500a5d5a800c7f3de00bbfbf800bef8e900a9d7c7009eb09600888b78 +007779680079785d0092986d00b49f6300b5bf6900b5cd9d00afe7d800a8f3f3 +008af1f7007ff7f7008af7f0008dbcae00708881005b67510045564300453b29 +003e3b15003b2411003d190e003d18100037190f002c1a17002f1f1700362116 +003c221e00352a3100333c42002e483c003554560036647d0054959b005cf3f9 +006cf4f90082dbe7007d9ba600476978002f5976001a324400181920000d0c15 +000c090800050404000502020004000100050100000c04020010070400150701 +0016050200120505001006060009050400050201000100000000000000000000 +0000000000000000000000000000000000000000000100000003000100060003 +001005050017090400160f0900120e0e0014141a001a1a17002b241d00342a2a +003b433e004b5050004d746300618d990079dbe10079f6fc0088eef5008fb0ae +00797d79006b625e004c5d48004d563300533931004e332c0046282900431f1f +003f1c18003e1b14003a1d0a00371f0c00311c0d002a17070025130700261106 +002b0d05002f0e05003b0f06003d1106003f15050043170800451b0600421c06 +00421e0d004622120046281c004e2a2300583527005d453800715353008a7774 +00c4b58a00dee3d800f7f5df00faf9e400f7fbf200e6f7eb00c7ece700c7ece4 +00c1e7e300a5adb20099868c0080776e00705f57006c4e3900634f30005e4725 +0047341c00412f1a00451f1a003d1a16003818130038150f0037150d002f100b +002d0b0300290a0400270a0600250b0500210e03001e0902001e0500001c0903 +001b0b02001b0b03001a0e0700180c0500160f05001b0c04001f100600241107 +0029150b0030140c0039120c003d160b0041170d0044170e00441609003f1307 +00391107002e11070025120500221106001e120e001e1a0b0019201100251f1f +"/> +<palette number="70" name="ernst.anti-pope.ppm" data="003c292c003f2c35003d2d36003e2b37003b2a38003d2737003d2b3900412c35 +00432e35004a2c36004c2c390050303f0057314000592b39005d2e3500602c35 +006a313500683838006c4440006f48430077464400814c4700854f4400854b4a +008b41410086454c008f4d4c00aa4d4c00945c5100885c4900875a570095604b +00ae724900cb825100ca895600c9a48800c9a48a00b0938700cb836500a79175 +00ba796c00ae6b590092755a008570620076707b00645f64007d66620071645d +0066545100644a5600634d6100623f4c005e3546005634410051313f004b343d +00473440004631400046323e0045343f0043323d0040323f0042333b003f333e +003f363d003e323d003e303d003e303d00392d3b00392b3800392e3800372d38 +00352b3800352b39003628350035293700372b3900392a3b00392f3b003b313c +00353044003a32420033314600313140003433460036334500393543003d3449 +0041354b00403446003e3343003d3244003c3046003a3146003a3143003c303e +003d3240003d323f003e323e003f303d00412f3d00432d3b00412e3a00402e3a +003f2f3a003f2d39003b2d3a003a2c39003d2b39003d2c39003d2b3b003e2a3c +00402c3c00422d3d00432f3e004230430042324500483544004a3846004e3847 +0049444b0050374c00553a4e004f3c54005641520060444c0062484f006c554e +007b58460071534e007a55510084685c007f6f5a00885d65008e53570089524b +0079504d006e43550066434d005e4248005344420050474c0051495500575459 +00554554005a54600052545800505a5f0055546e005d485600524851004d4652 +004a3f4d0048384a004737440043334100413343004032410043324200483344 +004a32420050353f0056374400593f44005b4244006141410067423a00634040 +00663d47006f3a4800683f3f0076353b007f343b008d2f3400a1273500a42533 +008f293300882e3d00762f32006f2f3b006d2d3b006a2e3d006b2a3f006d293a +006a2a35005f2c3b00582d39004e2b3d00462f3f00432e3d00422d3e00402e3e +003e2d3c003e2e3a003c2d3a003a2d3b003a2f3a003e303e0040323f00423441 +0045374400473f440044414c0042424c003e3d4e003e3d4f004137500042364c +0041354d003c345000393649003a3a4600393b4a003e3d50003b4356003f4456 +003f44580041465a0043415d003e465f003a4463003e4b5c003b4d61003d4c6d +003d4d64003646690038466900354366003441630037416600364467003d495c +0040445e00444c5f004a4f5900464d530042485700443e5c0046384d0048374c +0044384b00483548004a3642004b3840004d353d0051323a005736340060333a +005c2c3d00552d3e004b2d3a0047293600462938004629380045293700422935 +"/> +<palette number="71" name="ernst.ubu-imperator.ppm" data="0024390c00576682007e94aa0089a6b20092aeb900a0b3ba00a3b7be00a1b4ba +009aacb50093a5ae008a909b00906717007f4d03005d1406004e0a0600410402 +00350008001e0400000903020001010000000001000301030005000900150f04 +0020110000270302003005000036040000380303004103000042020200460303 +004c070100500401004f0300005004000051090000510f0000571a0100674408 +006c970b005d9f1f007b95a1008ba3af0095abb5009eb0b800a2b1ba00a6b2bb +00a4afb900a1adb500a2aaad00ac7b4a00b2710300bb750100be7a0000b87a02 +00a57b08006c8f24007593a40081a1b00081a6b6006794ae005c69870048450f +004c18030048110300491001004b0f02004d0e03004e0b04004e0903004d0901 +004a090100480a0200470a0400420904004206010040060200420a0100440c02 +004508010044060100450600004707000047080100490a02004b0c01004b0e01 +00510d0200540f01005a110200631702008b4f000097570600863f0900661504 +005d0f05005c0c0600650a02007d1b0300a3420200b34c0200be5e0500ce7404 +00d3790100d5820200d6880100d1890100c6830200b5700100a7640000965a01 +007e5707003a540700224002003e5a0a00835704009d530100a6570200a85802 +00a9580100af570100b45a0400b1620400b5660100b1690100b36d0300bc7001 +00c36b0100c56d0000c8740200c0790400bf790200b3710300ad6902009e6a09 +006b798e00728ba2006d88a20058658a005c2c210056100500540a0200520903 +0054070100590b00005b0e0100631101006e14000097390400a5440200aa4606 +00aa450200a8490200ab4e0000ad580000af5f0200b6690000bd720000c57b02 +00ce7f0200d1820200d4810300d07c0100ce7a0100c67c0400bf770200ba6805 +00b1590800a94a0500a44902009d3901007c190600661002005f1003005b0e02 +0057100200580f04005f160200833402009f430100a24c0000a2500200a85806 +00ad600600af600300ac610200ad620300ae660200a7660400a2711300919799 +00a2abb000a3acb300a9b2b700a8b1ba00a8b8c100a9b9be00b0babc00b6bfb7 +00b4bdbc00adbec400b1bfc800a9bfc6009fbec90094b0bb008aa6b200859eac +006d7e92004a5825003a1b0500471302004e130300510f05005c21220057637c +00667e9b005e697100825f040092630300986001009f5c0200a6670200b17100 +00af750200ab7910009885460092a3ad0096a8b1009aacb50099b0b80097adba +009aabb90095a9b80091a9b1008a9a9d00ac7c1700c37c0600c57e0700c87f07 +00d4820b00afb0ac00afb7b800adb6b500a0aab3008ba1ae007d8aa0005b6269 +002b3a06001d1205000f0c04000306040001030400040302000b0b01001a1903 +"/> +<palette number="72" name="fighting-forms.ppm" data="00020300000b0f0200161708002824170052352800853f240095601200a9640c +00b67a0e00d68c2f00ebb24900e6b03f00dc9f2c00ae971d008d8b2b00816328 +00383d210023241200191806001112030012110000181300001b190300231d0c +00642a10008c2d0e0090340e00783727004b3b380033282600221c0f00181305 +000d0d03000c0d0100070803000b0d0200090b00000c0b02000d0f0200161707 +001e1f0c0028281c00343f45003f6041004267490064727c00699b85008a9269 +00987d41009f7a37009e5e1e009c3c0700952e0e00872b28007c395100613a84 +005046950042538b00555e8c00617499006077970060667e0061574f00894d43 +00a4371800ae3c1000af2a0400af250700a4280c008e2f0e006f2f1e00412e2f +002522160020220c001f2010002b211900582a25008c1e0900a4180100a91c02 +00ae220200a8260100a0290400832c070047351500221e0a001b160500120f01 +000d100100121303001e1b0b00252120002e2046003b267500423a7f00433c85 +003f3f7b003533470038324300372f40002d2e25002d281d00302b27003d323e +004b5a4600515f78005964880063617c00825d4f009e3a1c00ae3f0900b83304 +00ba2e0800be251200bb281500b4300a00ae320300a6450200b5531500cd6102 +00cb730500d48a0300da8d0400ed900000e98b0500e1730400cf620400cc3a1b +00c7341200c7311000c1270900c2230600bd240500ba230200ba210600b62505 +00b9270200ba1f0200b91e0300ba1f0300bb1e0300ba1e0200b7200200b31b03 +00b41f0300b81f0500b81d0600b51e0300b51c0000b51e0200b31d0200ae1d00 +00b0210300b21e0300af190100ae180100ad190000a6180100991a0700741e05 +002b1904001c1202001a0f01001b0f0100201708002b1c0e006f220200902704 +00a01e0200a32304009b290c008135420084476300636d84005f8d91006b878f +00657d9c0064758f00576f800042724900486c3000616f1d006c783a008a9677 +00b7a59b00c3afa400a3a6b6007daac500839abc007875ac00566aaf0044518f +00433d7b0055384200702530009a270f00b4301800bb3c4500bc767b00c192a0 +00ceaabc00a29dbe00908893008b669e00ad366d00a72d3100b12b0d00aa290e +00992809007e240500371d0b001d110200150b0100120a0000191001001c1308 +00241c0a005b2c09008f260700922f06008e34050082490a004e3e1600282517 +002c1a10005a1b0400881e07009e1e0200a9210100af200700a6251100953324 +0081304a0063367e004c338100493a8900544a9400664f980077508e00ae3963 +00b2323200af313100ba3a3000ba396300b03b73007c6b7400748f930080a18b +00bea97f00ebaf7200e9af51009492380097631e0078560c00784e1600383209 +"/> +<palette number="73" name="fog25.ppm" data="000b0e02001e1c0a0023230e00342b1700343d16003d3f1d00433e1e00534627 +0071603f0095868300a39da200afa9ad00b2acb000ada5aa00a0959800a2774e +009f6c4100875f2f0070532000585117004b481200483b1200493f1800463016 +0048391e0042341400403c150042471700483e1b00424915004b421a00504017 +006749210082582800a3632f00ac642f00ae6a3300b9783c00c2804900ce8d54 +00c9915e00b3a5a400bfb4b800cdc4c000d6d4d900e7e6ec00eef2f500eff2f7 +00e9ecf100e3e2e700d5d0d600c5c0c600b2acb1009690920082674400564c35 +004a3d2c00443a28003d351c003a3313003c350b003e2d05002d2b0600222704 +001f29030024240900202309001e24060011100a00151202001f0d05001c1407 +001c18040021180600232911002d2a0c0033241100352516003e2610004e270c +00512e110053340c0059410d00674c120077501a0089551d00a05c2900a26736 +00ab6d3b00b8783b00c47c3c00c2834900c7926100b5aaac00c4babf00cbc6ca +00d7d8da00e6e5eb00e7e7ef00e7e6ee00e1e1e500d3d0cf00c3bdc100ada8ab +00918c8e0075673600624d2100563d22004e3f1e004c3f1f004b402200463a2a +004c372400483a1e00433911003f370900353e0200322a04002f2807002e2806 +003327080034270a0037290c003a2d1300393014003f2f120046300f00473010 +005735130064481d006e5a270086773f00948a8900a7a4a300b6b1b100bab3bb +00b8b1b900b2abb200a89b9e00bb8f6b00c0824f00b3773f00a56f38009f6d37 +00a06f3d00a0724800998d8e00a79fa400aca7ab00aba6aa009d979900978781 +008f6940007c56280070491f00583e1f005b4018005a401300593f12005c4514 +00664e1300704e1d007b5325008e6134008f7645009b929500b2acae00c2bebe +00cbc7ca00d9d8de00e8ebef00f1f5f800f5f9fc00f7fbfe00f9fdff00fbfdff +00fdfeff00fdfeff00fdfeff00fbffff00f9feff00f9fdfe00f9fdfe00f7fdff +00f5fafd00f4f9fd00f4f9fc00f0f5f800e7e8ed00dbd8da00cbc4ca00bdb7bb +00a9a0a400b4856200a9714200a36d3800a7693a00a7724100a2734b009b9094 +00ada4ab00b8b1b900bbb6bd00bcb6bb00b3adae00a69c9b00c68a5900b57b43 +00a3683700985f3200855b25007c511c0075511c006c4d1b006f4f2000765327 +00855c33009261380099673d0098683900946839008e653000865f2b007b541f +006d461c00634216005f401c0061412400664e340078583a008f6e5100989093 +00aea5aa00c1b6bc00cdc3cb00dcd9e000e8ebf200f3f6fb00f5fafd00f8fdfe +00f9fdfe00fdfffe00ffffff00ffffff00feffff00fdfeff00fdfeff00fafbfd +00f4f8fa00eaecf300dedbe500cfc5cd00bcb5bd00aaa0a7008e8586004c432c +"/> +<palette number="74" name="geyser27.ppm" data="00000000001a0505004d110600622d1d007c4e42007281920073a8c10084b3d2 +0098badc0099b0ca008eabb5009da9b000a5a29e009a8367009568490098623c +008c552e008a431700a3390600ad370800b3380300be3d0800d0560700d26e19 +00dd7f1d00de962c00e2a13500de9f3400de983c00d5944200c1864600a49271 +008a8d9f008590a5009a8b7a00946c54009e734500bd793900c67c3000d4882d +00e0922700df8f2300de891f00de881800dd891200cd651300c64c0400b03c0e +0094562b009a6e3d008d7359007da89c007eadc7006d9cd4006990c3006078a1 +00474a7900253a7d001a317700102a75001129730012266a00232a5f0035242d +003b23230054190e0062230f00743012007938170087481c008e522400a36733 +00b26c3800c47b3d00d6914400caa56300b6a69500b1aea500afb0a5009da8ab +008799a700787d81007e5745007d5240007e513f007f4b2e00895325008e5224 +008e50230086461400743309006b260b00611d070056190d00571a08005d1c08 +00671f06006e2806006f2b07008d1c08008f1f070091220a0094240600912703 +00803616007333190063321900632f1c00662c1b005f2a1a0035232b00172664 +000e226700121c59000400020001000000180302004b0f0600550f0200621704 +0065180200692002006a22020068250c0064210e005b1e0b00581d0b005d2612 +0060271800622f1e00453f4c0024367900313f76006444450072473700835639 +009f6d3d00ba702d00c87b2e00d98f3200dd953700dd933200d38b3600bc7731 +00af67260098552000a53d1700a02b0700a3290600991f03009c230700a22907 +00a42b0500aa350900b6430c00c36e2800d5863000e0983a00dfa14300de9a40 +00c3863d00b5773c009c6f3d0091684a007e5141005b5b7000727b9d0076a3b7 +007fb6c40080bad30084bbc0009ac1a400a7cca400aacaa300b4cbbc00a3c6e1 +008bc1de0088c0db0077b1e10073ade10070a6e1006d9aca0071769000774d48 +007043340066352000663521006f4336005a555b002c3f7f00203479001a2e77 +0012266d00101f5f0002041500000000000000000006010000210b15002e2534 +0037427800626b90008595b000899ebe007984a4004c568000283a7d001e3276 +001b2f790027326d006b3d2e00683924006e3c280082523700996c3c009b7242 +00ba844400d8b16200ddb67200dcd57e00dfcd9300c2c5b200aec6b100b7b89f +00c0916600b26f4000aa511c00ad3a0700ad340700ad320500a7300200a02f03 +009e300200a3330600ae3a0800bd611600d17c2900db903400db943e00c88a3e +00bb864800ab9c8500a7aca0008a96ad007e8b9d008e6a5100754737006c321c +00622a1200591c0a00511706004e0e02004e0e01004b07010009000100000000 +"/> +<palette number="75" name="gris.josette.ppm" data="0024292800474d52005a7277007898a4009ec0c800abc6cf00b0c7cf00b2c6cf +00b0c7d000b3c8cf00b5cacf00b8ccd500bad1db00b8d1dc00b7d3d900b5cfd1 +00b3cdd200bbcfd500bcd3d800bcd3d900bcd3d900bed1dd00c2d5db00faf9e5 +00fffae300fff7e400e3e4da00c1cdd400bccccc00b4c3c600a2b2a700759293 +005a7c860051757b004c696d00476661003f595000283b3c00212f32001d2b2e +001a242600121b1a000e171600131c1b001e2423001d24270020292e00202e31 +002a302f002a352e004952390048544800495b54004c5f60004f625e00526663 +00546864005d6a64005a6f720058737c005e7a85008b999800afbeb700b1c1be +009dae9d005e7b8100526c6d00425d590025343a001a2627000b121600080b12 +0007091000090e12000d1417001a242600243237003d50520046605d004c6465 +004c676f004f6e7100526e780055707d0056738100577685005a7c8f008ba6af +00abbbcb00b4c3ca00b7c6c900b4c6c700aec2c3009da0a50061777d00566a6a +0045535200253435001c272400101918000a1215000a1016000c14170019272a +00283b410045615e005a757a007d969a00adc1b900b9c8c300b8c8c800aec4c9 +0091b3b7005b858d005678840056747f0056747f005a747f0063808700a0b0a3 +00c1c3ba00becdc500d0d6cb00fffadf00fefce800fdfcea00fdfae700f6f5e1 +00bfd2d700baccd500b6cbd000b2c9d100aec9d100a5c5cf008eafb900577b90 +0055778a0057788d006c898f0091b5b500afc4c900b8c5cd00bdcfcf00c0cecf +00c0d1d000d6e1d300f9fde700fdfdf300fdfdf400fdfcf300f7f9e100c0d1cb +00a3b2ac0076888f005a777e005571780054707300566e6f005870740058757b +005c7a840076949400a1b5b000b0c3c800b2c5cc00b2c6cd00acc8cc00a9c0c8 +007d9ca6005b7b87004d707400446161003547510020313b001e2e3900283c43 +0041585000485c5b004a5f62004b6461004d6663004f6865004e6764004e655f +004e655f004e665f0050676200516665005165660052666700506869004c6a6b +004d6a6c004f6d6c00506e70004f6f7200516f72005271730055737400557276 +0055717b0055737f0054747c0053757f0056777d00617e850095aeab00adc2c5 +00b1c5c700b3c8c800adc1c90090adb3005b7c8d00547682004c707900426a70 +0047686a004968670048656100445b53002e3d440027323400242e270022261c +000d131300091211000914170018222500222b2a002a34360046514700495851 +004a605700485f5600465a520046544f002c3e43001d3036001e30340020333a +00303f4600455b5900566c6f005f7c8200b5be9600e0cfbd00faf6db00fffbe0 +00fcfae500eef3e700bdd4d600b5cbc900aec1c200819c9a005c797800455a50 +"/> +<palette number="76" name="gris.landscape-ceret.ppm" data="00100f0900262619004a402a00663b27007c4f2800885b2c00a05e3800ad5048 +00b6504600d24d4700d1524300ca302600e3583600d3663600e27f3200ea8f38 +00ee9c4100e4a74700bda64f0085b06b0077997a006f917c00608a7e00677c64 +0063645e004e606b00456484004079ad0062a5c4006ba5b6007aacb300abc9d3 +00bdd1d100c9d2cf00d2dbcd00c4d0cc00a3bdc70084a6ae00768a990086737e +00a8826b00b4786c00b5657000d15a6100d75c5f00dc5f6000d9626400e2625f +00e4695c00e8695800e5615300e0534900e3585500db644c00e3695300e56a5a +00e06b6200e2746700e2797200d7989b00daa8a800d9aca700deb1ac00efb7aa +00efb9a700e2ca9000fce76300fcdf5900f8da5200f9c84f00e4bf5300b4a05b +0088b87e0070a28200719c84006f9c87007ca19a0080a3a7007e9aae00788da2 +00627b8a00657b830064846d0064786000606e5500585e460070572a0078552c +00805638008b5636009f733e00b17a3400c67f3e00dd923200dda02f00d6a625 +00eab32000f8c22300fdc52200fcc62300f9c41f00f9c32b00f9a53000f29626 +00f1972000f2952400f1962300ed8e2100e18b1c00e58c2000e6852b00dc7e2c +00df7a2000dd7f1d00d6872100cf852700d2902b00ce8c3c00c18d4300a48f52 +00818345006d733a005a744500556b44004c4f5100595d48004e55440042473e +00383e3a003033330024231800190f10000a0d090008070500040203000e0d0b +00100e0f0013120f00141213001c231800212220001d261f002d38280034392f +003a362b00393b2e003c3531003e3c3a0045443f0046503c0053514600615751 +00705e560074685300816f4900827c37007d78390086702e00a3793000c68e3b +00cd994c00daa38900d4a4a000d09ba200c77e8100c2717b00bd797c00ca7e68 +00c4744500c6702300c76c1f00cf7f2700d3832800e48c2800f4a02c00f8c22c +00fdc72800fdc82300fdc92500fecc2900fbcd2900fcce2a00fed32700fece2c +00fdca2c00f9cc3500f6c43b00f1c03600ecac4000c3a4540084bb7c007fbd77 +0073ab6a006fa15f00677e5f00617359005e7056005a6c4e006a6b4300735e42 +0068573b00644b38005c453100554d3d005d553e006259320060472e005d4a2e +0057492b004f523f0045594500455f3e0034563c003c543f0040562f00414739 +00454632004c4531004a503400485f3d004e6947005f7b4b006c8a4700778a51 +00988e8b00c997a200d7adaf00dac8af00e3e4d300fefbf900fcfcfa00fafcfc +00e4eae600dbdcd800edbdac00fde46100fbda4800fed53f00fbd34300f9d63e +00fbd43800fcd53400fdd22e00fec92c00f6bf2f00f4a44a00deaa6400e79d8b +00d6a5a600d59ca200c6879400b2768300a16a73007b4c48004b4438002a2a26 +"/> +<palette number="77" name="kandinsky.comp-9.ppm" data="00511f1500791a0a009f150300c2390200d8660000d76f0000d77a0100dc8402 +00e3940300e9a71600fbbf2900fcc23c00fdc84800e1c06700d8cc8700e0cd99 +00e8c99c00fbd25c00fecf4400febf2a00f8b60700e7920200e17f0200dd6b00 +00c53e0600a91a04009d230c009a4c5c00a2506400ad8963008dba790092b77f +00b3b78e00c0aa8900f0b15200fec64500fecf4400fecb4100fcc23e00fbbe38 +00f9b53900f3a92500dd810500d26e0000c33c0400a713010081140300601c14 +00541e170058211b00611d2a0054232e005c8873005aa17f007dba75008fbb76 +00cbac4d00c88a2800c4730900aa330d007b1d07006a230d005c2012005c1d11 +00771c05007d1e0700b6390e00d26d0300da7b0a00eda51b00ebbb3d00d7c267 +00adc5840092c57e008ac37f0086c27c0089c0820095c18600b2bc8a00c8cd8d +00d4cdac00d8d5bb00d4d9ba00b4cdae009dc3a60070bbb20067b9b7005fb1b5 +0044a0b90045a6c9005bada70070ac8d0081be7b0083bc7b0080ba740079b66b +005b95740066222f006b220f007b1c0a00aa310b00d6610100d96f0000de7c03 +00e38d0200ea9d1600f0b02c00f9c23600fac23c00fcca4000fec83f00fdc443 +00f6c04200dbb65c00a2c076008dbc7c0085bb7b0088ba790089bd800084bb84 +006cb0b60062b7bc0060b9c10051abc60043afd10044aecc0051b4c4005eb5ab +0082c0810088ba780086765b007f3549005e1f3200551a2c0051192800511924 +004a1d2100491d1e001d291d001c261b000b110d0005100b000a0c08000c0c0a +001a120700471a2100551e2b0060513500569d79007fb8780091ad8f00a3b09f +00c5b8a900d7c6be00d1cab600b3c99e009bc88f008bc37f0086b8710094714d +009e240d00a50f0300ae040500b2050100b50e0100a212030083130000771605 +007a1c0e00905f4000a1934c0088b873008abb760097ba7000d5be5600ebbe48 +00fccb4e00efd57500e7d6a900eadab300e4dcb500d2d6aa00a0cd950094ca8e +0093c88a00a1c68b00b5c88600c6c37600eabb4600f1ae3300e6811200e37d03 +00e0790300e4770200de7b0400e07d0400df820100e5910100e8a61d00dbb545 +00b7b76e0099c17c0099c987009ecb9200bcd2a400cedac500cadbcb00c8d6c9 +0095c1ac0070c0b7007dc2ac0090c08400a6c07e00d5986200d5830e00da7907 +00dd710500dc6f0200df750200df750400de760100da770100da7a0000d97d01 +00d9860900e7a02000f1ab5500ceba8700e6d3ad00e3d8bc00e3d2c000e6dcc3 +00e2ddc200e1dbbc00dddac000dfe3c400dbdecf00cfddcc00d8dfc400d7dabd +00dcdaad00ccbf9100c9879000da8e5300c47f1600ca570200a31500007c1301 +0065200600542f0e006f784300559b7b0059a58100539d7c00467a75004e2028 +"/> +<palette number="78" name="kandinsky.yellow-red-blue.ppm" data="000801090012070c0029021100380e1a006112280065302d006e4c24008e7025 +007d7a2a00765a28006e48220068111d006f171b008d292a00a8585800b27465 +009c7680008a8272008b7e630084795a0081786500817674006e647b005c457d +00554174006247690082624a00898236008c80370091762d00957b2600908032 +009e8d3800ac9737009f912f00ab9a3a00b8994200b99a4600b79b4400b1a346 +00aea04200a89d4700ac9f4100a89c4400a39b4300a0934500a4975500a49959 +00a2995b009c9b62009b8e6c009e95610098956000979371008f897c008b8087 +0080768700777e8e007380930074809a00756da700696ea500678bce00748ff1 +007684f200808af3008796f30094a1f4008c97ef008da0f200919bf0009e91e6 +00a192df009098df009e88e300aa87d800a992dc00bca5d600d2b3ee00dbc0f4 +00e9d1f500ecd3f300dabef500bfaaf600b29ef7009d90ed009380e6008f7de3 +00677ce9006473c8006657c0004b4a94001b3678001e2d64001e2742001c2533 +00211f210020212500272d330028435e003b347100474278004e429e005842b4 +006b4bd7007859d8007d54e2008465e4008d6bec009071ec008b6ce9007d68cf +006e5fc600856eb1009b85a600a89aab00a395a2009186a6008184a1006d7984 +0060727a0056627c00434c7500383f68003c3a4500422345005f193800711d3e +00902a4f009d416400814b82006251b5006155c700603dcc005e3bca005939c5 +005535c4005c3fbe005e3dc5005a3bbc004a2dad00462bb0004528a0003f2490 +001f2163001413430013103000110e270013141b000d09070005020900050007 +0004000600010103000100020003020200030404000302060003010a0008060e +0016132000221d1f00221e1e002a1d26002c1a3000342530003c38420042424a +00434b5f00807668009b8e6d00a89b7e00b2a39a00b1a7a500b7aaad00c1afc3 +00c9b7dc00d6bae300d7b2e800dbb4f000d0b4f400c6aff200b2abe700b1a0dc +00b69cd200b89ccf00ba9bcf00b59ebb00b49fb900978dc9008f82cc009a7eda +009378e8009473ec009e78ed009e89eb009c8bf0009598f600949dfa0096a0fa +00a39efe00b6aefa00b5b1ef00afb1eb00b0a7d400a395c4009395b700888cbb +007877ae007e7bbf00918abb008b93c4009581c4009d84bc00a45db100b75eb6 +00b96eae00b78590009e8a9500a68d9e009f9391009e968200a09b7d00a19c65 +00a89d5000afa04b00bb9f4600c0a24000e4c33000c6a54200c8ae5400caa956 +00dcab5a00d8ba3c00d3b55c00d3b16000ddac6400cfb26200dbba6100e4cb65 +00e1c57100dfc09400d5bc9500d1b39700c2a38d00b6a68900a2986b00a19657 +009f9141009e8238008a814b007d5f360068461f0038132c001b0928000d020b +"/> +<palette number="79" name="klee.insula-dulcamara.ppm" data="00170a04003f261b00906e55009483490090885600a3835a00b0926000c0a366 +00c19d7200c1a18200c1a89300b5a99c00a8a9960092a09e0082939b00789fa2 +0079a192007096980057798e005c748a00778a8e00838e83009a9e6e009c9a65 +00ab976300aa935400a6834c0098804b00957a3f006d5330001a080700180604 +00130706001103020009020200040b06001a1406005775550075977500918a71 +008f845700816b42001c0a0700160708001e0f0c005c6f6d0054758900546f92 +006e8b99007e9d8d0099a0840097a57800a4ab7a00aba76f00aaa96800b19568 +00ba8f5d00b0944d00a0974100af964b00a98d3d00a36c3d0084562300200901 +0022140500806d38009f724e00b1755300ba815300b8835900c1866300bb955b +00c08f6400c79a6c00c99c7700c9a97900caae8000c9b28500d5b78500ceb389 +00d2b38900dbb48a00dbb68500d8b98600d8b98900ddb89000ddc19300ddc09e +00dbbb9f00ddbea500ddc4a700dcc5ac00dcc8a500cec4a500c4bfa700c3b8a6 +00c0b2a700a6b2ad00a0b3a7009ea8a10095a5a40094a4a70090aaaa008ea5b2 +007999ab00718aa0005e779300596e8c0034313600170a07000e050000060100 +0009020100130807001a08060036220e00967a2800939439008f953d009b9145 +00b08f4500c2974200c7924000c5913c00b5914300b28b4800ba8e4c00b79348 +00b99a5000be9c5400bfa86300afb36800b5a87800c3a98500b7ae8900c5a582 +00cea67e00d3b08500d1bc8800d7b58500cab87a00cdc57700c3c07300cbbe6b +00d2ac6e00d4bd6e00cfc06a00bfbe6500b6ba5c00aeb74e00a8b34f009eaf4b +009da6450091a4400081a35b005e926a00433a1d00180b06001a0906005f4f2a +007981600092a15c00a6b95800acb15200b9b84c00b8bb5500b3b15600bdaf61 +00cbb16400c7a86e00d3a47000d0a27b00caa67900d2a48600cfa79300cfa987 +00cfa98200d6ae7d00d2ad7a00cdac7d00cab27c00bbb27800b8b67500cbbb5f +00d1ba5e00d9c16500d5af5d00d0ab5700d0a55000cd9e4f00c1a04f00c0a250 +00cbb45500c7bb5200d9c65a00dcc96200e2cc6900ddbe6700dec87800debf7f +00eac88600deba7a00ddba8500dbba8700d7b98200cebd8200ccb98b00ceb792 +00c8ae9000cab19200c1b69600bbb89a00b5ae9900c2b89500d2b29800d1b59d +00d8bc9200d6bf9200d8c49300dfc59700e2c69a00dfcf9c00d7cba600ddcca4 +00dec3b100edccb100dfc8ab00e6ddbb00e2dbbf00d9d0c300fffae800d2c9b5 +00d9d1a700e6d0a100e3d09e00e0cf9900e2ca9c00e3c4a100dfbfa500e0be9f +00dbc4a200d7c6a300d4c0a700d3bfa000cec4a100cec3a500cfbaa500c8bea6 +00c7c2a000c6c58f00b3c88d00abab82009b93780093876f0086724a00221007 +"/> +<palette number="80" name="nile.ppm" data="00062742001b3e630061444b009c432600d8750300eb8e0300feac0300fad4a3 +00fce7da00eee2f700efe5f900edddfa00dccff400cbc8f300c6c2eb00c6add4 +00cda2a700cb8a2a00e9910200f2940100fa9d0600d7af8c00cbafc300bea4c3 +00be948900d8871600d77d0a00ab66170081642f00795f9000808eae00ada1dd +00b7aae400baade500bcafed00bcb4ef00bfb2f200bfb0f100c3abe600c1a6f0 +00c4a7e700c3a8e500b9a4dc00b1a0d200898b8d0086523c008d261200741801 +0070100100731c0600783d340067499f004024a6001d28af00182aa700082faa +000226ac000722b2000930b9001336ba001743c200283bb900343db7004144bf +004446bf004d56c7005459c900696acb007272df00b295dd00c19dd300d3aca4 +00f89e0b00fea50300fcac0800eabfb000dbc4cf00d4c1d800cfc0db00cdb1e3 +00cbb3e300c5b7ee00c4bdf400c2b8f400c8bbf500cdc7fb00d5d7fb00d9d6fe +00ece9fa00f7e8fd00fbeefd00fbf2fb00fcf3fb00fbf0fc00f3e7fb00e9dbe7 +00ebd4d600d5b6da00cca4a900a16e6200733b2b00772803007c1f0500842708 +00ae490700df800500f39d0a00e8b3a700e0c4d200efcdd300f1ddda00eadfee +00ece1f800e6d9f700e5ceea00dbcddb00d6c4d200d7b8a300f69e0700f9a503 +00f5a00400f1920300e9890200dc7a0700a1583300997f8200ac91c200bfa0d6 +00c0a4e100c0a2e600b99fe800b19ce2009093df006283dc00517cd6004073cb +003d75b5003e6faf00456aa200426a940031649a00195796001e5091000d4282 +0011467900205067004452630058220b00691106006a13030077381f00724c53 +007665a700a196d900b0ace900b3b1e900b0b7f200abb1ee00a8b5f100b1b9f2 +00b2bcf100b2bef700bdc4fc00c2d0fa00cbcbf300c5c6f400c4c3f300c0c4f4 +00c4c1ee00c0bbef00b7bff000b6bef400bcbfe000b9b3e000b9abd200ab90b1 +00af815c00e18a0100ea8c0100f0920400f5970600dba88a00c19dce00ad9ddb +006c7bcb00537acf00467fbd004074b4003d71a80038619e001e598e00235a80 +001e597d00164d780012446e00143758005d08060064090300760e0100882906 +00d9710300e3890100df840300a563140090371e007f200600741a0600702e2c +006f4762005c5d98006b6eb0006673c8006e76d500928ede00ada3e000b6afe5 +00b8b3e900b8b1ec00b6acef00b2aaef00aeaded00aaa0e1006c78da00627dd2 +005477da005179d900477bda004873d4004f72d0005774ce00576acb005564ca +004a5cc600395ad100375fce003d58c3003d4fba003353c2002150c3002057c6 +00205ac9003368d3003a66ce003d6ab5003e6eb2004873a500496ea0004b5f9b +004b609100445b9500276094001f518f001d528900174f790019407800113c64 +"/> +<palette number="81" name="picasso.jfille-chevre.ppm" data="001800000054020200b82e0000c33d0500c63d0200cb4c0300cf500300d35503 +00d1540200d04f0300cc490000cb3d0100c93b0400c73e0300ca4c0300cd4d07 +00cf550700cb5d0e00c25a1c00cb662e00cc642800b7612600b9601c00976633 +00c4662900ce773300e18e4e00de944d00e4944c00dc8c4d00c7884600d0722b +00d16c2500c77c1f00ce7f1d00cf821e00cd871e00d0892000d6922400da9a37 +00dea25300e1b86300e4c58000e8ca9600e3caa300edd0ac00efd3ac00f1d6ad +00f6daaf00f8dbb200f9dcb200f7dfb900fce2b400fce0bb00fae2bf00f9e1bd +00f7e0bf00f9e2c300f8e1c000f7e3c000f7e0c100f5dec100f4dcba00f3ddb8 +00f5dcb600f5d8b800f4d7b700f2d8b400efd7b300eed5af00edd6ac00eed3a2 +00ecce9800eccc8c00e8c78000e5b37100e5a76100e1a35d00df9b5200d29355 +00c47e4600d0683000d7653100d36f2000cd7d1200d6850e00d68e0f00d7992c +00dba84c00e4b85a00e7bc6300e9c27600f1cb7c00ebca8700ecc98500edba78 +00edb06b00e7ab6600e7a85e00e3a76500e1a87700d4a46900e8b27700f4c283 +00f1ce8c00eed09600eed2a100e9d0aa00e9d3a900edd7ad00f1d9b100f3d9b5 +00f6dab300f7ddad00fbdfae00f7dcac00f7dca900f3d8a100f5d19000f2c989 +00f1c97400e8bb6300e3a05000e1914900d97a3300d57a2100cc811500c87f14 +00c5790b00c4750700c16d0000c3780800c5841200d1891b00da911f00dca338 +00e6ba5f00e8c16900e9c88100edcf8d00f5d39600f2d79e00f2d5a400ecd4ab +00ebd3ac00ead4b000ecd6b100eed5b700eed6b300e3cfb500f0d7b600f2dbb6 +00f1ddb600f3ddb700f4dcb700f2dab700f0d8be00f2dabf00f6dbc300f5e0c6 +00f3e2c700f6e4cd00f6e2ca00fae6cd00fae5ce00f8e7cd00fae4c500f8e6c2 +00f8e4c400f6e3c300f4e0c400efdfc500ecd6c100eddabc00f0d9ba00efd7b5 +00f1d4ad00eed3a600edd49b00e9ce9100ebc98600dcb37800d4aa7900ceaf6c +00d3a27500d29c5d00df9a5900e09e5100e4a35100eaa75a00edb06800f0c17f +00edcc8d00edce9800edd09f00eed4a500f1daaa00f0d7ab00f4d8aa00f6d7a0 +00f2d5a900f5d2a000f9d79a00f7d49200fbd58900f5d38900efcf9200ebcb97 +00e0c99a00ecca9700edcb9a00e9ce9e00efd2a600eed3a900f0d3a700f2d4a8 +00efd4a400f1d39d00ecd09600eccd8e00ebca8b00e7c07a00e3bd6600e2a858 +00e09f4800d3902800c9882100cc841500cd851000d0840e00cd830a00cc8209 +00ca780800cc7c0200c3770600c1750c00cd6d1b00d5621e00cb591b00cf5c1d +00d45f1700cb5a1800c9591900cb5a1700ca5a1400cc5c1000cb550b00bd5205 +00c4500f00c14e0c00bd440500c24e0400b7460200b641090093310b002a0103 +"/> +<palette number="82" name="pollock.lavender-mist.ppm" data="00030502002521170041442400605f3f0080705300987f5600a88d6400b59b68 +00b79d6f00b39d7700af9d7900af9f7a00ac9d7900a89a7200a1956f009a8c6a +00968b6b0095876700908466008c826800898067008c7c6600887e6600857c61 +00877b5e00897b60008c7b5e008e7e6200927d6300968865009d916600a4926b +00ac967900ac9c7e00b49c7b00c4a47700cfab7800d0ae8000d4b58800d2bb89 +00d1b58300cea88100cba97f00c4ab7900b8a67a00b19c7500a49269009c835d +00887959007970520069684b0066664d005e5a4a00474c3e00494d39005e5a41 +006c6042006f6247006e635100736f560079725f007b725e0081755e0082785a +0082795a0082775600827551007d6744006b583800605435004a3e2800373024 +00291f1d0028221800252619002a271c0038311c003b392400454933005e503f +00635f4f006a635000766f55007e715c00857b5f0084805f0089845f008c8567 +008d8468008e876a0090876d00948b7000948e710097927600979079009c917c +0098978200939c8200969f86009e9d8400a29e8800a4a08900ada58f00b3ab9a +00bdb39b00c2bba100c0baa400bcba9e00bcb49500b9b19200b3a78b00aaa484 +00a79d8100a29b7e009b9578009e8e77009c8e73009d9372009f947300a49873 +00a7997b00a99b8100ada08300b0a38200b9ac8700bfb58e00c5b99500c6bc9f +00cabba000cfbe9c00d4c49800d4c29b00cfc1a400d1c4a500d5c5a500dac2a0 +00d7bd9800cfb99800c8b39600c5b19100bcaa8900aea08300a99d7f00a6a277 +009b99740093916c00918a72008b8672008a8473008185710081806d007f8266 +0077765d007770570072654d0072664800756a4a00756f4d007b74570078735b +007e795c0086805c0091805a00958a61009a8c6800a28a6700a3896600a78f6c +00a7906f00ac957600af9d7900b1a37a00b4a67700baa78000bfae8200c8ad83 +00c9ad8400c0b08800bcae8d00bdb18f00bfac8800b9a68000b5a17e00bb9d7a +00c2957100b68c5e00a6764c0083643d00655138004a46340047382600423723 +003a312000453f31004d4938005e5447006261500067675800657562006d8f7d +008a8e7a008a8e7900918f7b009b988000a19e8500ac9f8900b8a98f00c5b295 +00c9bb9200cebc9800d7bd9300d5bc8700deb57b00d5b57c00cba37000c0996e +00b9916300b18e6a00a88e6900a28e69009a8b6a0097876d0095886e00968972 +00978f78009e927a00a79b8200b5a88600c2b68f00d0ba8f00d2c89100e0c691 +00e1c49600e5cda100f3dfae00f5deb700e8d3b100e1d0ab00e0dbbd00e0d9c8 +00decdba00cfcba900cbc49c00c4ba9d00bdb29500afa48500a39d8100979778 +008d8d70008481680079806a00646e5e0054584b0049453c0032382a0012130d +"/> +<palette number="83" name="yngpaint.ppm" data="00140f0a00342f2d00146968003f827b005b907200688c7b007e8d8200899783 +00a09d8000aaa57e00b6ad8000bcba8100bec09000c8cc9d00cccda300d3d1a6 +00d4d5a700d8daab00dbdcae00dddfad00dee0b000dee0b100e0e0ae00dedeab +00dddda700dcdca400dbdca000d9db9a00d7da9900d4d39400cacb9900c2c298 +00b9b68d00aba78100a5a77900a6997100a28662009e8c6600ab9e6900aca374 +00a5a37500afab6b00b3a96f00bba68200c0bb8300c5c18c00cac99b00cdcf9e +00d2d69b00d3dfa200dcdea300e2e0a600e1deab00e0e0ac00e0e0ae00e0e2b0 +00e1e2b600e1e7b900e1e3b100e3e3af00e4e3b400e5e7b800e4eabc00e2e8bc +00e4eabe00e5e7c000e4e9bf00e3e8c000e5eac200e4e9c400e5e9c800e7ebca +00e9f2d600f4f7db00ecf1d200eeebcc00eaeec900e5ecc900e5eaca00e7ecc7 +00eaeac400e9e7bf00e9e7be00e5e6bc00e5e5bc00dce0bd00dadebd00dbdfbe +00dce0bc00dce0bb00dee6b700e0e1b500dce2b400dce2b200dbe2b200d9e2ae +00dae2ac00dcdeac00ddddab00dfdda900e0dda800e0dba900dedaaa00d9dba9 +00d8dba500d8d8a200d5d5a100cdd09d00c9c79200b8b88100a5a46d00989261 +008f915900898f5f0091956f007e8265006b8956005973650074735300757361 +007a837300737a69006c7c7d00858f68008b9074008e9a7800a6ac7600b6bb79 +00c3c67700ced09200d4d29100d4db9a00d6da9d00d7d99d00d8d99d00d8d99f +00d7d59f00d4d4a200cdcea200cbc7a200c8c89d00b8b99000ada68b008d9b85 +007294840063938c005a8e92006e958e007d9d910081929300a4a58900b7ba8c +00c8caa100cbcbaa00ccd2ad00cdd0b100d3d2b400d4d7b800d4d6be00d9d9bd +00dbdabb00d9ddbd00dddcbe00ddddc300dbdebf00dde1c000daddc300dadec6 +00dadec500d7e2c200dae0be00dadfb700dae0b400dae0b100d9e0b400d8ddb5 +00d8dcb700d5dab700d5d8b900d5d8b800d6d5b700d5d2b400d1d5af00d5d7a8 +00d8d7a800d8d8a600d7d4a500d6d4a300d6d6a000d9d9a300d9d9a700d8daaa +00dadcad00dddcae00deddaf00dddeb300d9e0b400d9ddbb00d6dcba00d8dbbc +00d8dbbc00dadabe00dcdac000d6dabe00d8dbbc00d7dabb00d9d8b900d8d7b8 +00d8d7b800d9d6b800d8d8b800d9d9b700dcddb600dbdbb800dcdcb800d9deb7 +00d9dfb300d7ddb000d5dbaf00d7ddad00d7deab00d5dea900d7dead00d8dead +00dbddae00d8deae00d7ddaf00d7deb200d7dcb400dbdbb500d9d8b700d7d6b7 +00d3d6b500ced5ad00c9cfa100cacd9400bbba7c00b5ac6b00a69e5600a68a51 +00a28e5700968c4b0088854400847b42007a752d00775c090085713800666034 +0063373200746c42004a3d07004b321800372933002e2b140054090800200305 +"/> +<palette number="84" name="cl-gold-orange-green from classlady1.ugr" data="00004000002c40000042400000584000006f490000875200008a5b00008e6400 +009d890000a3990000aaaa0000b8b80300c7c70600d5d50900e4e40c00ebeb0d +00f3f30f00e9d30e00d3a70b00be7c0800a85005009224020089120100800000 +00ac582c00c1834200d7af5800ebd76c00ffff8000f4f47500e9e96a00d3d354 +00bebe3e00808000008a8a0000949400009d9d0000a7a70000acac0000b1b100 +0099a40000798f00005a7b00003a6600001a5100000d480000004000002c6118 +0058822f00afc35f00d7e17400ffff8a00e9de7200d3bd5b00c8ad4f00be9d43 +00925b1300865009007b460000764c0000725300006f5600006d590000685f00 +0064640000818100008f8f00009d9d0000aaaa0000b7b70000b7b70000b7b700 +00b7b70000b7b70000b7b70000ada20000a48e00009f8400009b7a0000916500 +008851000096611800ab812f00c1a24700ccb25300d7c35f00ede47700ffff8a +00d3d35b00bdbd4300a8a82b009d9d1f00929213008080000096961600acac2c +00c1c14200ffff8000fff48000ffe98000ffe48000ffdf8100ffd48100ffc981 +00ffcb6c00ffd55500ffe03f00ffe53400ffeb2900fff61200ffff0000e9d300 +00d3a70000a85000009d3a000092240000800000006a0b0000541600003e2100 +00123700001f4c0b002c6116004271210058822c0083a24200afc35800ffff80 +00e9de6a00be9d3e00b38c3300a87c2800925b12008040000080400000804000 +008040000080400000804000008b4c0e0096591c00ac723800c18b5500d7a471 +00edbd8d00e4be8800d6b47a00c9ab6c00ae984f009385330078721700626200 +0098982600a5a52f00b3b33900cece4c00e9e95f00ffff6f00ffff6f00ffff6f +00ffff6f00ffff6f00f4ee6500e9de5c00d3bd4900be9d3600a87c2300925b10 +00905b000098690000a1770000b1920000c1ad0000d2c90000dfdf0000cfb900 +00be920000ae6c00009e4600008d1f00008000000090260000a14d0000b17300 +00d2c00000d8cf0000dfdf0000cfcf0000bebe0000aeae00009e9e0000808000 +0096960000acac0000c1c10000d7d70000eded0000ffff0000f4f40000eaea00 +00dfdf0000d4d40000caca0000c1c10000b0a800009f8f00008e7600007d5d00 +006c4400005e2f00007a53160095762c00b19a4200cdbe5800e8e26e00ffff80 +00f2f27100e6e46200d9d75300ccc94400bfbc3400b5b12800b5b12800b5b128 +00b5b12800b5b12800b5b12800969e2100778a1a005877130039630c00195006 +0000400000265b00004d7700007392000099ad0000c0c90000dfdf0000cfc400 +00bea80000ae8d00009e7200008d560000804000008040000080400000804000 +00804000008040000080400000905b0000a0760000b0910000c0ac0000dddd00 +"/> +<palette number="85" name="cl-gold-rose" data="0000000000fcc00000fabe0200f8bc0400f8ba0400f8b80400f8b80400f8b804 +00f4b40400f4b20600f4b00800f2ae0800f0ac0800f0aa0800f0a80800eea80a +00eca80c00eca40c00eaa20c00e8a00c00e89e0e00e89c1000e89c1000e89c10 +00e4981000e4961000e4941000e2941200e0941400e0921400e0901400e09014 +00dc8c1400dc8c1800da8a1800d8881800d8861800d8841800d8841800d88418 +00d4801c00d47e1c00d47c1c00d27a1c00d0781c00d0781e00d0782000d07420 +00cc742000cc702000ca6e2200c86c2400c86a2400c8682400c8682400c86824 +00c4642400c4622600c4602800c2602800c0602800c05e2800c05c2800c05c2c +00c0582c00bc582c00bc562c00bc542c00ba522e00b8503000b8503000b85030 +00b44c3000b44a3200b4483400b2463400b0443400b0443400b0443400b04034 +00b0403400ac3c3800ac3a3800ac383800aa383800a8383800a8343800a8343c +00a4303c00a42e3c00a42c3c00a42c3c00a42c3c00a02c4000a0284000a02840 +00a02440009c2440009c2242009c2044009a1e4400981c4400981c4400981c44 +0094184800941648009414480094124800941048009010480090104800900c4c +00900c4c008c084c008c084c008c084c008c044c008804500088005000880050 +008800500086005000840050008400500084005000840050008000500080004c +0080004c007c004c007c004c007c004c007c004c007c00480078004800780048 +0078004800760048007400480074004600740044007400440070004400700044 +00700044006c0044006c0042006c0040006c0040006c00400068004000680040 +0068003c0066003c0064003c0064003c0064003c0064003c0060003c0060003c +00600038005c0038005c0038005c0038005c0038005c00380058003400580034 +0058003400560034005400340054003400540034005400300050003000500030 +0050003000500030004c0030004c0030004c002c004c002c0048002c0048002c +0048002c0046002a004400280044002800440028004400280040002800400028 +0040002800400024003c0024003c0024003c0024003c00240038002400380020 +0038002000380020003400200034002000340020003400200030001c0030001c +0030001c0030001c002c001c002c001c002c001c002c00180028001800280018 +0028001800280018002400180024001400240014002400140020001400200014 +0020001400200014001c0010001c0010001c0010001c00100018001000180010 +0018000c0018000c0014000c0014000c0014000c0014000c0010000c00100008 +0010000800100008000c0008000c0008000c0008000c00080008000400080004 +0008000400080004000400040004000400040000000400000000000000000000 +"/> +<palette number="86" name="cl-lavender-purple-blues-black" data="00676966004b1d7f00371a630023174700191434000f1221000c121f000a121d +001d291f0029362c0036433900514742006d4b4c006a5d57006870630063675a +005e5e520054535b0046467800383995003637920035358f0034348e0034348e +0034298500451f810057167e0059167f005b16800057157e0054157d0053127a +00501277004c2c5100362c3d00202c2a001e2b21001c2b18001e2c1e00212e25 +00474246005451510062615c006f4878007d2f94007f2c9300812a93007d2792 +007b2892003a318e00332f8c002d2e8a002d2d89002d2c89002c2b88002c2b88 +002f2e8b002f2e8b00302f8c00332c88003629850036278300372682003e1b77 +004b1376005d1883005a17800057167e0051157a004b1577002d1d4e00261945 +0021193e001a17300014162200111421000f1221000f1220000f131f000b121a +0008111600040b1100030b1200030c1300050e14000710150007111300081214 +0009121700091118000a1119000b1219000c1319000a131a000a131c0009121b +0009121900091217000a1319000b141b000d151c0010171d0016201f00233026 +003a42330040473b00474d4300484e4200494f4100465b3c003e513d003d4c35 +00444a3c004142440038413d0030403600213327001d2b1e0017241d00161e21 +001522190016241d0017262100192425001c23290021173a00211940002e2737 +00383931003148340032493200334a3000384c330038503600354d350037443b +004a475000403f6b003637870037368c00393691003b3c9600513e98005a419c +0060429c00563995004d349000442f8c0055167e00501277004f1377003b2556 +00323c31002f3b2f002c3a2d00242f2b0023322b002a3c2c002d402a00384732 +00474e3c0050505a004c3f7200492e8b0050369100503994003a3f9a00393e99 +00463c95004c3d9500533f9600646963007e6662009064610091725e008f6966 +008b676700822b9300802b9300723487004f465b00454152004137500032224f +001d16490029196000361c770037268400322d87002e25820037207b00392d51 +002e2a4500292a2e0015221900121d17000d1716000e151b00091315000b1016 +000b1016000912170008111a000a131a000c131b000f141a0011191c00192420 +00242f270033452f003e523900495049004a4e4d0057575500514d5b00562286 +0056319000523994005541980054419a004d38930038318e00362d8a00332886 +004c16780056157b005c178100621b8500633190006b499d00564aa000554c9f +004d479d0041419900373b9600393993004d389300523e97005c379400743093 +007b2d93006e4196007553a000645ca7006968ae006a6fb3006468b100615aa7 +005556a6004b4ba100414a9700535b5d00535e50004b554d00415a3d004a5942 +"/> +<palette number="87" name="cl-yellow_mixed-brown-gold" data="00c1806400f5b18000f8b78000fbbd8000fdd18900ffe69200ffe89000ffeb8e +00fcffaa00fbffb900fbffc800fdffe100fffffa00fffffc00ffffff00ffffff +00ffffff00ffffdf00ffffc400ffffaa00fbfda200f8fc9b00f7fb9400f7fb8d +00fff35900ffd94a00ffc03c00f0a75500e18e6e00df8f7200dd907600e1a082 +00e8a68600f1b18300f0b08900f0af8f00e7a88c00dfa18a00d69a8600ce9383 +008b70810082687b007a6176007663770073667800716779006f687a005f607e +005a5d7e0049577c00293e610009264600151a2a00220e0f002e1514003a1d19 +0084422c00904e36009d5a4000b0684b00c3775700c0785c00bd79620099767d +00886d7e00625e7f00555a7e0048567d00294670000a3663000c2239003f1d1b +008c4f3d00a05e4900b46e5500c0785e00cc826700d2866c00d88b7100df916d +00f19c6600f9b15f00f2a05700ec904f00e1895400d7825900d5805900e18e70 +00d38a7700bd847900a77e7c00a0797d0099757f009c787c00b06d5300ce753d +00dca12100ffde4100ffeb6400fff88800fffb8b00ffff8f00fbf88f00ffe68c +00d7998200b6878100967580008b707d00806b7a006b6581005e5f7e00575a7d +0053597d0047557c002c446a0011335900111a2300100708000d0208001a0701 +004e2f1b00683b230083472b00904c2f009d523300a4592f00ab5a2d00af6341 +00cd774800c8846d00b47e7400a1787c00906c78008a584d007b3d2e004d2724 +00200b0a00250a08002b09070031141400381f220078473800804f4100a7827c +00d3957c00feee8e00fdf6a100fdffb400ffffe800fffef200fbfaf500f4f7dc +00ffec8d00fbe37d00f7db6e00f19e6800d67c4800b6632f00ac552000a24a0b +00ac510000621c00005d1e060058210c00491d12002d232400264468004a567c +004c597c004d597c004f597d004f597c004c597c004c597c004f577c0050587c +0050587c004f597d00525a7e00545a7c0055597e0064617c006f503c00736876 +00877487008f778800977b8900b3878400dea28800f6b98300fae96700ffef68 +00ffff7d00ffff9000feff9d00ffffa900fffda200ffff9d00ffff8e00ffff80 +00ffff6d00fffe6c00fefb7a00feff8500fffc8c00fffd8f00ffff9800fcff9a +00fafe8f00ffff8100fffa7800fef57600fff16400fff05a00f3c63500e4c934 +00c9836900a57b7d008a718400837181007f6c7f00846d7d00866e7e00866e7c +007a677d0076687f0073657e00716677006d637e0066677c006d657c0073677f +0078688200806d800088737a0097758300a57a8100bf847e00c98b8000e09173 +00d58b6e00c97c6000a9695000a0543400853c1b005b2815005b2b1d00624734 +00575a7b00595e7e00606a850073698200877082009b7a8300f0b08a00ca9285 +"/> +<palette number="88" name="cl-dark_reds-white-grays" data="007f28170030070f001a040d0005020b0002010b0000000c0000020c0000050d +00090810002a0d0e004c130c0057130700621302004e1208003a110f002e0f0e +00230e0d00342623004b1d150063150800631405006413020063130100621400 +0062150100631300006512000065120000651200006512000065120000651200 +00641302006415040066170700691a0b0064221d005f2b2f0059303200533535 +004b4247004a42480049424900473e4600453b4400403a43003b3a420034323d +0032323e002e2d350031303700343339003e333700483435004f313100572f2d +0067190c00651e1b0064232b0052262f00412a3400382b33002f2c330028292e +00342d270060130900621406006415040064150400641504005b180700471c16 +0022222a002d2d340039383e00443f43004f46490054484b005a4a4d006a514c +007553520097554500ab533c00bf523300ba4d2f00b6492c00b0543b009b4a35 +008a3d2d00862916008216000079170200701804006815030067110200661305 +006c1703006e180900882a1700a23c2500ac482e00b6543700d5744a00f3f3f3 +00ffffff00fffffb00fffff800fdfcf100fcfaeb00e1774f00b2584f00934946 +006e4845005a414400553a3c005033350054231c0066180c0066140800631606 +00340807001e040600080006000600060005000700060006001b010a003a0d0a +00601a0e00813e2d007a403300744239006a4743006e505000685559005a535b +00644f5600684f52006c504f006d514f006f534f00893f4000953d3100943b2d +009a33240071190b006e170b006c150b006a1b0c00782e25006e383800653f4a +005335350058302e005e2b28005f1c0c00671a0a006516070061150700471b1c +003a2e2e003a3438003c3437003f35360041363a004b3736005a3836006e2e2c +00691c0c0067190a00661708006516070067180900681a0e005b393700584944 +00504448004d4145004d363c004e2631005e1912006415060064150400651200 +0065120000651200006512000065120000651200006512000065120000651200 +006512000063140300641506006415060065180800691c0c0074271d006d403b +006f4d4e007c5e5c00a8614d00ad604c00b35d4400a9513d009a443500834038 +006b4947005b474600514048004c3839004d3938004b3635004c2f2b005e1e12 +006417070064170500641506006516070066160b006a1b0c0080332100933b27 +0095423000884f4400725253005f5057004c4a4f003d414c00403e4900413f44 +003b3a4000353a4000353944003734470041384d0047444b0053464d00675354 +007c696500a0837f00fcfdf800ffffff00ffffff00fffef900fffaf700e27851 +00b85a40009a3f2c008f382700772a1a006a1c0f0062211f00544445005a3836 +"/> +<palette number="89" name="cl-gold-dark_reds-browns-blues" data="00ef8d7000ffbd9600ffcc9300ffdb9100ffeba000fffcaf00fefdb300fefeb8 +00ffe29200ffd88d00ffce8900ffc98700ffc58600fcb58300faa68100f8a37b +00f7a07500a0616a0082465000642c37004b242c00331c2200301926002d162a +001914280017173200151b3d00171c44001a1e4b001c1f4d001e2050001d2053 +001c204f001c204500191d4100171b3e00171a3b00171a3900171b3a00171c3c +0021245100362e53004b385600764b6100a15f6d00a35f6c00a6606b00ac6470 +00ae5c600087343c006c273100521a27004f1b25004c1d23004b1920004a151d +00341e2b00261e3400191e3e00191d3f001a1d4000181c3f00171b3e00121a41 +00121a3f00181a3100201f3000282530002f242e0037232c003b212c00402433 +0049223f0058304800683f510084434d00a1474900a5484500aa494200a23c38 +00762f370026254f00202251001a205400191e4f00191d4a00181d4300151b3b +000f14310012182d00161c2a001b1d2b00211f2c00341c2a004f152400561513 +0073141200bf535000db646200f8767400eb6c7800de627c009c546a006f3947 +004c243f00632d3d007b363b00963e4000b2464600d0655f00fa726600fe7c6f +00fd7b6d00b15d5d00954c50007a3b430053262d004f1f2b0048213c00432c3c +0037283d002e27440026264c0026265000262755002426590021245b00202356 +00212555001f244e0021224b0023214800201d38001c172d0027142800290d1b +00181422001616270014192c0013182e001317300013173000161c3400131b3f +00151a44001d2043001f1f3f00211e3b00322a37003e2239004126370039212f +00301623002e121e002d0f1900280c1a00271018001c0c16001315240013152a +0012142d0019182800201626002715250037181e0047192400471d29004a222b +0035314000322d3a002f2935001f1f37001a1c33001f212e0027212f002f1a29 +002f18220029141b0023131d0018152000121327000f16290011162a0012172a +00141b2e00181c30001c1d3200302233004321420052274500752f3a00883e4d +00b8696f00f6917300ffa47800fec28400ffc68600ffb78000f2997b00b06f77 +00985b6a006a42650053344300492d39004c2f4100603c56007344640096586f +00b1646a00c86e6300fe777300f6927200fa9e7700f8967100f2947000b96d71 +008752660061424a004b3340003b30400026264c00242659001e235a001a2260 +0018205e00192259001d225900181f56001b224e001b1f44001e1f3e00191631 +0016122300160a14000e040c0019040d001b0a1200270d160032131b002e0d20 +0039132c00371c2d0031192f0026192a001c192a0020142800230e1700240d15 +001d091400170a140023091400280d14003e0c0d00611114008f322b00bb635f +"/> +<palette number="90" name="cl-golds-browns" data="0080540d008c5c1000946312009d6b1400a9791d00b6882600be902200c7991f +00c2901f00b9801a00b1701600b36d1300b66b1000b66d1200b7701400b47114 +00b1721500c2922600bd841f00b8761800b2721700ac6e1700ac6d1300ac6d10 +00ab6d0800a4680c009d63110096610e0090600c0091620c0092640c009e7010 +00a5790e00a76f12009c6412009259120084521100764c10006e480f0067440e +005a3b0f00643f0c006e440a0072490d00774e1000784f1100795012007c4f14 +007e5012008852160084561b00815a21007b541f00754f1e006e4a1b00674619 +0054370d0052350800503404004f3206004e31090051320a0054340b0058390d +005f3b0b0071490e00734a0d00754c0c00754b0d00754b0f00754d10006e4914 +0075491c007b4e1a00815318008c5a150097621200a0641200a9671300af6e14 +00b26c1600b8721200be811700c5901c00c6941f00c8992300c7992900b4b3a1 +0087622d007f572200784d1800734916006e46150064421200624012006b4611 +00754d10008c5b0e0092621100986a14009b6d13009f7113009b691200986313 +008b5f1e00845818007e521300794c11007447100061380c005b360c00593610 +005b3a0f006c4210006a420f0068430e0067440e005e400e00593a0e0051350d +00472f0b00462e0d00462d0f0048300e004a340d0051391500543813004f3510 +0047310c00452f0a00462f0800482f060050330700563708006a4109007b4a0f +008e5917008c591b008b5a1f00865b2600825c2d0070532b0071512200664816 +00674613006e4213006f45120071481200764c10007b4d11007e511000815411 +00875d1500895b14008c5a130088581000805010007a4c0e0072480e006a4510 +00644212005f3c1400613c1500643d16006d3e140067420d005e3c0c0055350f +004d2f09004c2e07004b2e0600492c0a00472a0800432b0900442c0800442c06 +00472b0600452a00003e270500412809003d2a1900432c0c00432c0a00412a08 +00442c0a00462d0a00482e0b00503309005c370b0066410c00724a0d007a510f +0083531100865312008556100084550f00854f0f00814f10007e5110007e5110 +007b4d11007e4c0f007c4b1000774a0f0076470f0076450a00744a0e00724a0f +00724a0d00714b0c006e45030067420b005e3a080057360b0051340a004c3008 +00452d0900442c0800482c0700492b0500492d06004d2d06004c2f0700513408 +0057340a0056370b005c3e0c006a450e00754b0f007f520f008d5c0f00a05b00 +00a3660900ac6c1200a36f1b00926428008b5d2c006a523000644b2200674c1f +0078541a007c521600815411008657110087570f0087570f0085580700845608 +007e4c0d007d470700794300007f490900905c1000a6681300cb9f2600b4831c +"/> +<palette number="91" name="cl-purples-browns-blues-tans" data="003d31490031285300362c51003b305000362b48003127400031243e0032223d +002d1e330037283e00413249004933530051355e004e3a60004b40620051405e +0057405a0043334d004b304900542e45005d3a4300674641006b4943006f4c46 +007c5256007a585e00795e6700825f65008b616300936567009b696c00ac706f +00bb706b00cb827c00cd806d00cf7f5e00d5866a00dc8e7700d1897c00c68581 +009a56650079486100583a5e00422a43002d1b290021142100160e190008060b +00010000000000000008060b00100d1600261c2e003c2c4700433356004b3a66 +006d5184006b4c79006a476f0065456c006143690062466800634a67006d545a +00765455008b5d6000915e5f0098605f0099605e009b615d00a15b5300a16658 +009f676800996c7e009371940091669100905b8f00965b7e009c5c6d00986466 +009d67650093625e00895a56007f524f00794e4a00734a4600703d2800553131 +00402c4f0049325b0052386800553d67005943670075586a0089636e008a5991 +00986c9f009e6cab00a973b300b57abc00bc80c400c386cc00c58aca00c488c6 +00ba8da1009a687e007a445c00703d5100663646004329440031213c0024152a +0021182900321f35003e253c004b2b43005a4446006b384b006d3b5800794f50 +0097564200a75d3a00b7643200af633c00a8634600ac6e6300b6758d00bf86a6 +00d398ac00c8849900cc899500d08e9200db9ea600e8a5ae00f4c7cc00f6c6d4 +00ffffff00f9fede00f3fdbe00f6f0ad00fae39d00dedce700f8bee400d190d2 +00b276b200946972008e646d0088606800845f660089636e00976469009b696c +00c3878900c88a8c00ce8e8f00cc969600cf8e8a00c78b8b00b28187009e6e6c +0086666b008859610089595b008b5a55008a584d0089594b0085594e007c5254 +0079504e0076504f0074505000704d49006e4f4c00694e55005e496800614669 +0067435d006b5258006d4c43006b4a4100614748005b454800604953005d4662 +007e606a0090697100a2737900bf8a9c00db8f9900f2a7a100f2d68300f1bd67 +00d1918800bb717000955e5b006f4b4b004d3739003b2e280036232700241728 +001a131b00110f12000b0811000d0a1300160b190032182300391f2a00412740 +004a2e4500432944003f28450043304300493445004e354a004f354e005d4346 +005c4241006a3748005d415000533c560049344700372638002e212a00301b2c +00351b2800311a2c002a18260027182d0028202f002618290025162b00211227 +00180e1900170e0f00170d160015121b001f1422002f1f3a00352540003f2d53 +00483869004b3a6e00553c7600574172004e3b690048315d004b2f570040304a +0038263600241625001a1221000310210013101b001a1221002e1c32003f2747 +"/> +<palette number="92" name="cl-oranges-browns-whites" data="00ff933900ff7b3d00fe7e3d00fe813e00fe873d00ff8e3d00ff9b3b00ffa93a +00fdb93c00feb73900ffb63700ffac3500ffa33400fea13700fd9f3b00fda03a +00fda23900ffb63600ffcd3b00ffe54000fff15900fffe7300fff66c00ffee65 +00feb93a00fea33800ff8d3700ff813900ff763b00ff733b00ff703b00ff6a3f +00ff6d3e00fe784300fe7a4000ff7d3d00fe7a3a00fd783700fe7c3800ff8039 +00fe833d00fe8e3c00ff9a3b00ff8e3900ff833700ff813700ff7f3700fd7f35 +00fa982b00ffbe3600ffd64b00ffef6100fff56700fffb6d00fdfb5800fcfc44 +00ffd03d00ffc03900ffb13500fd9a3300fb843200fa7b3500fa733900f46739 +00e55d3700ca513c00b84c3d00a6483e00aa4a3b00af4c3900c44f3b00d55636 +00f1673800f5693a00f96b3d00f2653c00ec603c00e45e3b00dc5d3a00cf5637 +00c14a3200b14b3400bc4d3700c7503a00d1563900db5c3900eb673600fc7734 +00f8ca4100f9e48300fbfec500fdfdd000fffddb00ffffff00ffffff00ffffff +00ffffff00fffff600ffffe800ffffda00ffffd700ffffd400ffffd100fffba4 +00febe4200fe9f3d00ff803900fd7b3500fc773200ff722a00fe733200fe6c39 +00fe6a3a00fe6c3d00fb6e3f00f8714100fa744100fb734300f4694200ea5e3a +00d4573900c04f3800ad473800a346390099453b0095403d009f473b00a84830 +00bd513700d4523800d8533800dc553800de5c3800ea5e3b00f2603900ef663a +00d3563600c44b3100b6412d00af3d2a00a93a27009a3930008f3a3300893c34 +0089413300a64b3900af523a00b95a3c00bbb23d00f1ff9000ffffa700ffff98 +00fdc44300feb73e00ffab3a00fe893a00f8723d00ee644000db5c3c00cb5233 +00bf472e00ae351a00ac341c00aa331f00a8382400a83b26009a3928009a3926 +00842c2000813124007e36280088412b00903e30009e433000a7423000b45132 +00d1563700e35d3700f5683a00fd693b00ff6d3a00ff733800fc743600fd7537 +00ff753a00ff733a00ff723a00fe6c3900ff683900f6683a00f0673300fd6631 +00f76f3300f7702c00f87b2700ff9c2f00fdae3800ffbc3a00fecf3b00fee83d +00fffe3d00ffec4100ffe34000ffd44000ffbf3d00ffb63600f0ab2200dda824 +00ee7c1c00ff762800f76c3500f2683700e65e3800da573b00c2503800a6462d +00893f32007f3f3d0075433c006a344200754038007840330079472e00783f34 +00703c31006a3c2f00612c2400703a3000753e2a00813e35009b3e2d00ae3927 +00c03d2100cc462900d64a2700dc532f00d6533700cf472f00cf482b00b8432f +00b23c2e009c4534008f453c00844540007f4a46008b527300bf675900d2563a +00d8593600e45c3600f2572900f75f2e00fd5c3000ed563b00df593c00c34e3a +"/> +<palette number="93" name="cl-blues-greens-whites" data="00ffffff00bed0f800a3baed0088a4e300849fdc00809ad5007e97d5007c95d5 +007091d4006d88c4006a7fb40061719c00596484005e626c0064605500636652 +00636c4f005959350055561d00525305004c4f0800464c0c003c480800324505 +002c3b0000293b0500263c0b0033432300404b3b004449440048474d00464447 +0045483500404725003b423100373d3d002630430015234a001c294f00232f55 +00484d6a00414657003a3f4500343f2d002f4016002d3f0d002b3f0400293e05 +002b3d0d004952370052563f005b5a48005d5d4f006060560062634e00656647 +0055533e004c4a460044424f004b4b4300525538005156330051582e004e4d1f +00505833005b5b6300595f7900576490005b6a970060719f007989bc00a0a9d0 +00e8eff900f3f7fc00ffffff00e8f3ff00d2e7ff00c8d4f200bec2e500a1afd4 +009fa4c4008f9dc40095a3c8009ba9cc0097a2c700939cc3008b99c0007587af +005b5b67005155410047501b00454f1500434f0f003749150046512700555f3d +006d6d5500656f93006474a400647ab6006278b2006176af00596ea700576a95 +003a486f002b3b62001c2e56001c2c54001d2b52001b2d5500243563002f406e +00304073001b2d55001b2d55001b2d5500293a680037477a0042589400556ba7 +007c95d500869fdd0090aae50095afea009ab4ef00a0baf5009bb8f2008caeeb +008daae400a3adc600a9b1cb00b0b6d000aeb3d3009daad4008b97bd006a7aad +0069695f006060650057586c00525778004e5684004b5b8e004661a6004c67ae +00506eb6005c7dca005f81cb006385cc006881c4006881c4006a82c0006b84bd +0063769e005f729b005b6e9900575f6c006867620077765a00747c53007e806a +007b767200505d87004d5b8a004a5a8d0040517f003343760029396c00233462 +00353442003635400038373f00413f4c004f4e53005a555100524d53004d4b61 +004a537a004d5e8a00506093004e629f004059990041568f003f4f82003a436e +0019253b001c283d001f2c3f00323b4c004b536a005765880066749b007482a9 +007687b3008495c10096a8d00097a8d40091a7d8008499ce007e93c8007484b7 +007586b4007384b2006b80b9006478b5006074b100506ab4005169af005069ac +004c67ae005068ae00506ab4005374bb00677db9007086c200758ec6008093be +008496be008197c8008397cc007c92ce006d89d200708ac7006c86c1006b81bd +00657bb7005f74ad00556aa9004d66a6004b66ab00415ca1003f589800435995 +003c518a003647730032437100394a7800495b8300475d99005167a3006c7caf +007787ba008c9dcb00a0acd200b5bad700bcc7e500bdcdf100b7c8f400a9c0ec +00adbeea00acbadf00b8c3e100bdc4d600bcc7e500ced4ea00dce3f300e3e7f3 +"/> +<palette number="94" name="cl-tans-yellows-browns" data="00a88b6d009f938700a2978d00a69c9300aaa49e00aeada900b2b1b000b6b6b8 +00c7c6c400d3d0cf00dfdbda00ebeae400f7f9ee00eeece500e5e0dd00ddd8d5 +00d6d1ce00c4b9b700c4bbb400c5bdb200cac1b900cfc6c100d8cbbe00e1d0bc +00e5d2b400eed2a500f7d39700f7d38b00f7d48000eccd8200e2c68500e6bf88 +00e0c68d00cdbfa500ddcdb400eedcc400f3e6c900f9f0cf00f5eece00f2edcd +00e5d7ca00d7cabb00cabdad00c1b8a600b8b3a000b5b0a500b3aeaa00b2ada9 +00b1adaa00b3a49d00b5a59700b7a69200b4a49500b1a39800afa39900ada49b +00b8b3b000c0bbb700c8c3bf00d8cec200e9dac500eddec500f1e2c500fbebb7 +00fdecb600fafa8a00fbfb8700fdfd8500fdfd8400fdfd8300fcfc8200fcfc78 +00fce68100f2d38000e9c08000deb27c00d4a57900e0aa7800edb07700f7c370 +00f7d57b00e3d9a400d5c8a300c7b8a300c6b4a300c6b0a300b7a99e00a8a19b +00a0969500a19b9800a3a09b00a5a19c00a8a39d00adabac00bbb7b600c7c6c4 +00d5d1ce00f4e2cc00f6ddb100f8d99600f9d59400fad19300f1b38000caa076 +00b8a38800b49c8600b0968500af968100ae967e00aa998700a3978b0097928c +00958c83007d706700786f5600746f45006f6154006d6660007a726700969080 +00c1b29f00e0c69d00ffda9b00fdd89200fbd78900fbe18d00fff78200fdfd8b +00fdfb9400f4dfb400eedcb400e8dab500e3d2b800e2ccb400cbc5b700c4b8ac +00c2a79c00bdaaa400b9aeac00b9b0ae00bab2b000b5b1b200bab6b300beb4ab +00bbb1a800b5aba100b4a89f00b3a69e00b0a19a00b39f9400b1a19100b19c89 +00a9978300ab9f8100ada88000ada46b00af996700b6906b00b9957100b79a7c +00b6a48c00c0b7b000c2bbb500c5c0ba00cec0bd00d0c3bb00dfccae00d9c087 +00b1946a00978065007d6d600076685d007b6f63007d7a710092898400ac937d +00c6976b00d0a37c00ebbd7200f9cb6900fbd96e00f9e76b00fcf17100fad773 +00ffe69c00fde6a600fce7b000fae5ae00f7db9c00fbde8e00fdf27e00f8f781 +00ffe49300efe9ab00e5deb000d5c2b100ccbaac00bdb5a800b5a6a300ada2a0 +00aea49b00aea19900aea29600a89c8e009f918e009e918b0097939000a19393 +00a89e9c00b5aca700bbb2ab00c1b8a900c6b9a800cebeae00cac3b000c9bfb5 +00c6bcb300c7bbad00c5b8b000c4b9b500c1b6b200bcb7b300bdb8b400c1b8b3 +00c0bbb700c1beb700c4c0bd00c6c1be00c5c4c000c7c7c700c8c7c500ccc7c3 +00d1c8c100e2d1bd00e5d7b200e9d6b800e6d0c300d9d0cb00d2cdc900ccc8c7 +00d3d2cd00dcd9d000e1e0de00e1e0de00e1dcd900d9d9cf00d0cbc700c9c0bb +00bbb7b400b6acaa00aba7a400a99f9d00aa9f9b00a99a9500a6988b00a59482 +"/> +<palette number="95" name="cl-golds-browns2" data="00a6511800834919007e481e00794724007a4929007b4c2e007a512f007a5731 +009b562c009b5728009c59250094521d008c4b150088480e0085450700824208 +00803f09007d40130081461a00864d220099542400ad5c2700b75d2500c25f24 +00d06d2a00de722d00ec773100e97a3c00e67e4700e27c4600df7a4600d6825d +00c97f5c00b17960009b6c5b0085605700895f4e008e5f4500895d4000855c3c +009c5623009c5222009c4f21009e4e1c00a14e1800a04f18009f501800954d1b +00934d1100a24e1200b0581300bf621400d3691f00e7712b00e9752f00eb7a34 +00ff893900ff944900ff9f5a00ffce7800fffe9700fffea800ffffb900fffecf +00feffc300fff88f00ffcc6c00ffa14900ffa04900ff9f4a00fd9a4700ff9146 +00e2732b00c3672800a55c250093532300824b22007e4821007a4621006c4323 +0067442e006b4835006d4833006f49320072482b0075472500764826007a4d30 +0074524600785243007c5341007f51380082502f00905327009f572500a4571f +00ac572000be581600d15f1d00e4672400e96c2600ee722800fe7f2e00fb8434 +00fd813900fb7b3f00fa764500f9793c00f87c3400ff742f00fe712c00ff732b +00fe783100ff8a3600ff883700ff873900fd864200fe824400fd895000ff8957 +00f1864e00eb7c4900e5724500dd744400d6764400c2713c00a16b3c00996540 +0095663c00995a2f0093562d008e532b007f4d2a00744622006f412000674021 +006d3f1b006d3e17006e3d14006d3c13006c3b120063360c0055310f00633c1d +00674017006f522a0077562f00805a350093603100b2663500c0794b00d18053 +00b6683800b3663500b0643300ac623100b26b3700c37c4e00d3856100d78b6b +00fea06300febb6200feb25c00ffa95600ffa34f00f89e3e00f8884000e7803b +00c86a2c00c0672b00b9642b00a55d3500a15a2e009d5a2f009c5a2a00a05e2c +00a4612a00b1612c00b3613100b8613400ad603400a8602e00a25a2800995c25 +0093573200975c34009c613700a9644300ba6a5100c7725d00c3815f00c6825d +00cb815c00de794100db753500d56e2c00cc6c3000c86f3300ca6d3000b66321 +00ad591900a7581500a45417009c4f1900944e1b00914e1700914e1a008d4d1d +00874f20008b512300854e27007d492400724420006b431f00683f1f00683f1f +006a421f0073411c0073421900703e190072401b00764814007b4916007e481c +007c491e00804b2300834d2900854f2b00815226007f5024007a46210072401d +0076451c007d4a15007f4a140089471300904f17009f582400bd673400d9803c +00fe9a5c00ffb27000feda8400ffd27d00ffc05f00ff9a5800ea874600d07336 +00bd6c2b00b26122009f5c2500925a2900845d36007e5e38007f56400085573d +"/> +<palette number="96" name="cl-pastels" data="00ecceb000e7ceae00e5cead00e3ceac00e0cdab00decdaa00ddcda900dccda9 +00d7cda700d4cda600d2cda500cfcca400cdcca300cbcca200c9cca100c7cca0 +00c6cca000c1cb9e00c3caa000c5c9a300c7c8a500c9c8a800cac7a900cbc7aa +00cfc6af00d1c5b100d3c4b400d5c3b600d7c3b800d8c2b900d9c2bb00dbc1bd +00ddc0c000e1bfc400e3bec700e6bdca00e2bfcd00dfc1d000ddc2d100dcc3d3 +00d4c7d800d1c9db00cecbde00cacde100c6cfe400c4d0e500c3d1e700c0d3ea +00bcd5ed00b5d9f300b1dbf500aeddf800aadffb00a6e2ff00a8e1fd00aae1fb +00b1dff200b5deed00b9dde900bddbe500c1dae100c3d9de00c5d9dc00c8d8d8 +00ccd7d400d4d5cb00d8d4c700dcd3c300ddd2c000dfd2be00e3d0ba00e7cfb6 +00ecceb000eccdb100ecccb300ebcbb400ebcab600ebc9b600ebc9b700eac8b9 +00eac7ba00e9c5bd00e9c4be00e9c3c000e8c3c000e8c3c100e8c2c200e8c1c4 +00e7bfc700e6bec800e6bdca00e5bdc900e4bec800e2bec500e0bfc300dec0c0 +00dcc1be00d8c2b900d6c3b600d4c4b400d3c4b300d2c5b200d0c5b000cec6ad +00cac8a800c8c8a600c6c9a400c5c9a200c4caa100c1cb9e00c3cba000c5caa3 +00c7c9a500cbc7aa00ccc7ab00cdc7ac00cfc6af00d1c5b100d3c4b400d5c4b6 +00d9c2bb00dbc1bd00ddc1c000dec0c100dfc0c200e1bfc400e3bec700e6bdca +00e2bfcd00dcc3d300dac4d400d8c5d600d4c7d800d1c9db00cecbde00cacde1 +00c3d1e700bfd3ea00bcd5ed00bad6ee00b8d7f000b5d9f300b2dbf500aeddf8 +00aadffb00a6e2ff00a6e1fc00a7e1fa00a9dff400aadeef00acddea00addce4 +00b0d9da00b1d8d700b2d8d500b3d7cf00b5d5ca00b6d4c500b8d3bf00b9d2ba +00bbd0b500beceaa00becda700bfcda500c1cb9e00c3cb9f00c6cba000c8cba1 +00cdcba300cecba300cfcca400d1cca500d4cca600d6cca700d9cca800dbcca9 +00ddcdaa00e0cdab00e2cdac00e4cdad00e7cdae00e9cdaf00ecceb000e8cfb4 +00e1d1bd00dfd1bf00ddd2c100d9d3c600d5d5ca00d1d6ce00cdd7d300cad8d7 +00c6d9db00c2dae000bedbe400badce800b6ddec00b3def100afe0f500abe1f9 +00a7e2fe00a6e2ff00a7e1fa00a9dff400aadeef00acddea00addce400afdadf +00b0d9da00b2d8d500b3d7cf00b5d5ca00b6d4c500b8d3bf00b9d2ba00bbd0b5 +00bccfaf00beceaa00bfcda500c1cb9e00c3caa000c5caa300c7c9a500c9c8a8 +00cbc7aa00cdc6ac00cfc6af00d1c5b100d3c4b400d5c3b600d7c3b800d9c2bb +00dbc1bd00ddc0c000dfc0c200e1bfc400e3bec700e6bdca00e6bec900e6bfc7 +00e7c0c600e7c0c400e7c1c300e8c2c100e8c3c000e8c4bf00e9c5bd00e9c6bc +00e9c7ba00eac8b900eac9b800eacab600ebcbb500ebccb300ebcdb200ecceb0 +"/> +<palette number="97" name="multi_color_1 from ron1.ugr (classylady and ron)" data="00ff000000ad00370076005b004000800032379b00246eb7001d89c40017a4d2 +0000ffff0000ffc80000ff910000ff480000ff000037ff1b006eff370089ff44 +00a4ff5200ffff8000ffe39b00ffc8b700ffadd200ff92ed00ff89f600ff80ff +009180e4004880d2000080c0001b64970037496e00443b5900522e44006e121b +0080000000b7373700d2525200ed6e6e00da847700c89b8000aca9800091b780 +0000ff800037e372006ec86400a4ad5600db924900ed894400ff804000c89b32 +0091b7240024ed090012e1120000d61c0000ad37000084520000626900004080 +00375cb7005269d2006e77ed00776de1008064d6008056c1008049ad00802e84 +0080125b009b004e00b6005b00d2006900e8007400ff008000ff1c6400ff3749 +00ff6e1200e3770900c8800000918000005b8000003f80000024800000008000 +0000800e0000802900007249000064690000567d0000499200002ebb000012e4 +000000eb000000d6000000c2000000b7000000ad000000a0001c009900370092 +0052008b0080009b008000b6008000d2008000df008000ed008000ff00801cc8 +0080525b0080692d00808000008080070080800e0080801c0080802900808040 +009b806900d280bb00df80cf00ed80e400ff80ff00e49bc800c8b79100add25b +0080ff00009bff0000b7ff0000c4ff0000d2ff0000ffff0000c8e41c0091c837 +005bad5200008080001b727200376464006e494900a42e2e00ff000000ff1c0e +00ff522900ff693400ff804000e38d4000c89b400091b740005bd2400024ed40 +0000ff400037c8920044baa60052adbb008080ff009b64e400b749c800d22ead +00ff008000ff0e8700ff1c8e00ff379c00ff52a900ff6eb700ff80c000c880b2 +009180a400008080000e8d8d001c9b9b0037b7b70052d2d2006eeded0080ffff +0080c8c80080baba0080adad008092920080808000649b640049b749002ed22e +0000ff00002ff50b005fea15008ee02000bdd62b00dccf3200d6af5500d18e78 +00c64dbf00c442ca00c238d600ce5bc600da7db700e6a0a700fad98d00eec871 +00e3b75400d7a73800cc961c00c48b0900ba9f2300b0b33d00a6c757009cdb71 +0096e8820081d66c006bc3560056b1400033931c00578a48007b8174009f779f +00c36ecb00db68e800d258e000ca48d900c138d100b928c900b31ec400ab4bce +00a377d8009ba4e2008deef30082e9dd0078e5c7006de0b10062dc9b005bd98d +0078c27a0096ab6800b3955500d17e4200e46f3600df7e3b00db8d3f00d69c44 +00cfb54b00c2b84d00b4bc5000a7bf52009ac3540091c5560085c4660079c476 +006cc3860060c3960058c2a0005ab8a5005caeab005ea4b0006294b9006483c0 +006671c6006860cd006b4ed4006c43d8007848d300844cce008f51c900a359c1 +"/> +<palette number="98" name="oranges" data="00ff000000fd0a0200fb0f0300fa140400f9190500f81e0600f7200600f72307 +00f42d0800f3320900f2370a00f13c0b00f0410c00ee460d00ed4b0e00ec4d0e +00ec500e00ea5a1000e85f1100e7641200e6691300e56e1400e4701400e47315 +00e17d1600e0821700df871800de8c1900dd911a00dc931a00db961b00da9b1c +00d9a01c00d89d1e00d89b1f00d89a2000d7982000d7972100d7962100d79622 +00d6922400d5912500d5902600d58e2600d58c2700d48b2700d48b2800d48a29 +00d4882a00d3852c00d2832c00d2822d00d2802e00d27f2f00d17e2f00d17e30 +00d17a3100d0793200d0783300cf763400cf743500cf733500cf733600ce7237 +00ce703700d1713400d2713200d4723000d5722f00d6722e00d7732d00d9732b +00dc742800dd742600df752400e0752200e2762100e2762000e3771f00e5771d +00e6781c00ea791800eb791600ed7a1500ed7a1400ee7a1300f07b1100f17b0f +00f47c0c00f57c0a00f77d0900f87d0800f97e0700fa7e0500fc7f0300fd7f02 +00ff800000fa7e0000f77c0000f57b0000f47a0000f37a0000f0780000ee7700 +00e9750000e6730000e4720000e2710000e1710000df700000dc6e0000da6d00 +00d86c0000d36a0000d1690000d0680000ce670000cb660000c9640000c66300 +00c1610000be5f0000bc5e0000bb5d0000ba5d0000b75c0000b55a0000b25900 +00b0580000b55f0800b6600a00b7620c00ba651000bc681500bf6c1900c16f1d +00c6762500c8792900cb7c2d00cc7d2f00ce7f3200d0833600d3863a00d5893e +00d88c4200dc934a00dd944c00df964e00e19a5200e49d5700e6a05b00e9a35f +00eeaa6700efab6900f0ad6b00f3b16f00f5b47400f8b77800faba7c00fdbe80 +00ffc18400ffba8000ffb87f00ffb67f00ffb27d00ffae7b00ffab7900ffa777 +00ffa07400ff9e7300ff9c7200ff987000ff946e00ff916c00ff8d6b00ff8969 +00ff866700ff826500ff7e6300ff7a6200ff776000ff735e00ff6f5c00ff6b5a +00ff645700ff625600ff605500ff5d5300ff595100ff554f00ff514e00ff4e4c +00ff4a4a00fe4d4b00fc4f4c00fb524c00fa544d00f8574e00f75a4f00f55c4f +00f45f5000f3615100f1645100f0675200ee695300ed6c5400ec6e5400ea7155 +00e9745600e8765600e6795700e57b5800e47e5900e2805900e1835a00df865b +00de885b00dd8b5c00db8d5d00da905e00d8935e00d7955f00d6986000d49a60 +00d39d6100d39e6300d49f6400d4a06600d5a16800d5a26900d6a36b00d6a46c +00d6a56e00d7a67000d7a77100d8a87300d8a97400d9aa7600d9ab7800daac79 +00daad7b00daae7d00dbaf7e00dbb08000dcb18200dcb28300ddb38500ddb486 +00ddb58800deb68a00deb78b00dfb88d00dfb98e00e0ba9000e0bb9200e1bd95 +"/> +<palette number="99" name="multi_color_2" data="00ff000000d3161600bd212100a72c2c00913737007c42420071474700664d4d +003a6363001d71710000808000008b8b000096960000a1a10000acac0000b1b1 +0000b7b70000cccc0000d7d70000e2e20000eded0000f8f80000fbfb0000ffff +002cf0ff0042e8ff0058e0ff006dd8ff0083d1ff008ecdff0099c9ff00afc2ff +00c5baff00ffa6ff00e9a2ff00d39fff00bd9cff00a799ff009c97ff009196ff +00668fff00508cff003a89ff002485ff000e82ff000781ff000080ff000b80ff +001680ff002c80ff003780ff004280ff004d80ff005880ff005d80ff006380ff +007980ff007785f400758be9006a96d3005fa1bd0059a6b20054aca70049b791 +003ec17c0028d750001de23a0012ed240009f6120000ff000016e900002cd300 +0058a700006d910000837c000099660000af500000ba450000c53a0000db2400 +00f10e0000e90b0000d3160000bd210000b2260000a72c0000913700007c4200 +00505800003a630000246e0000197300000e790000008000000a750000146a00 +001e5f0000324900003c3e0000463300004b2d0000502800005a1d0000651200 +00810000008c000000980000009e000000a4000000af000000bb000000c70000 +00d2000000ea000000f0000000f6000000fd000000f2160b00e82c1600dd4221 +00c76e3700bc834200b2994d00aca45200a7af58009cc5630092db6e0087f179 +0080ff800080e9960080e39b0080dea10080d3ac0080c8b70080bec10080b3cc +00809de200808ef0008080ff007a80f4007580e9006a80d3005f80bd005480a7 +0049809100338066002d805b00288050001d803a001280240007800e00008000 +002c841a003784200042852600588733006e894000838b4d00998d5a00af8e66 +00c5907300ff959500ff939300ff929200ff909000ff8d8d00ff8b8b00ff8888 +00ff838300ff818100ff808000ff7e7e00ff7b7b00ff797900ff777700ff7783 +00ff768e00ff769a00ff75a600ff75b100ff74bd00ff74c900ff73d400ff73e0 +00ff72f800ff71fb00ff71ff00ff6bed00ff65db00ff5fc900ff5ab700ff54a5 +00ff4e9300ff488100ff426f00ff3c5d00ff374b00ff2d2d00fa293a00f62548 +00f1215500ed1e6300e81a7000e4167e00df128b00db0e9900d60aa600d106b4 +00cd02c100ca00ca00cc00b900ce00a700cf009600d1008500d3007300d50062 +00d7005000d8003f00da002e00dc001c00de000b00df000000d90c0600d4180c +00ce241300c82f1900c33b1f00bd472500b7532b00b25f3200ac6b3800a6773e +009d8a48009d7e42009e723c009e6635009f5b2f00a04f2900a0432300a1371d +00a12b1600a21f1000a3130a00a3080400a4000000a00000009c000000980000 +0094000000900000008c0000008800000084000000800000007c000000750000 +"/> +<palette number="100" name="rw-yellow-orange" data="00ff800000ff860000ff890000ff8c0000ff8f0000ff920000ff930000ff9500 +00ff9b0000ff9e0000ffa10000ffa40000ffa70000ffaa0000ffad0000ffae00 +00ffb00000ffb60000ffb90000ffbc0000ffbe0000ffc10000ffc20000ffc400 +00ffca0000ffcd0000ffd00000ffd30000ffd60000ffd70000ffd90000ffdc00 +00ffdf0000ffe50000ffe80000ffeb0000ffee0000fff10000fff20000fff400 +00fffa0000fffb0100fffc0200fff90300fff60400fff40500fff30600fff008 +00ffed0900ffe70c00ffe40d00ffe10f00ffde1000ffdb1200ffd91300ffd814 +00ffd21600ffcf1800ffcc1a00ffc91b00ffc61c00ffc41d00ffc31e00ffc020 +00ffbe2100ffb82400ffb52500ffb22700ffb02700ffaf2800ffac2a00ffa92c +00ffa32e00ffa03000ff9d3200ff9a3300ff973400ff953500ff943600ff9138 +00ff8e3900ff883c00ff853d00ff823f00ff813f00ff804000ff834200ff8643 +00ff8c4600ff8f4700ff924900ff934900ff954a00ff984c00ff9b4e00ff9e4f +00ffa15000ffa75400ffaa5500ffad5600ffae5700ffb05800ffb35a00ffb65b +00ffbc5e00ffbe5f00ffc16100ffc26100ffc46200ffc76400ffca6600ffcd67 +00ffd06800ffd66c00ffd76c00ffd96d00ffdc6e00ffdf7000ffe27200ffe573 +00ffeb7600ffee7700fff17900fff27900fff47a00fff77c00fffa7e00fffd7f +00ffff8000fffb7e00fffa7d00fff97d00fff77c00fff57b00fff37a00fff179 +00ffed7700ffeb7500ffe97400ffe87300ffe77300ffe57200ffe37100ffe170 +00ffdf6f00ffdb6d00ffda6c00ffd96c00ffd76b00ffd56a00ffd36900ffd168 +00ffcd6600ffcc6500ffcb6500ffc96400ffc76200ffc56100ffc36000ffc15f +00ffbe5e00ffba5c00ffb95b00ffb85b00ffb65a00ffb45900ffb25800ffb057 +00ffac5500ffaa5400ffa95300feaa5100fdab4f00fcab4d00faac4b00f9ad49 +00f8ae4700f7af4500f6b04300f5b14100f4b14000f2b23e00f1b33c00f0b43a +00eeb63600edb63500edb73400ebb83200eab83000e9b92e00e8ba2c00e7bb2a +00e6bc2800e5bd2600e3be2400e2be2200e1bf2000e0c01e00dfc11d00dec21b +00ddc31900dbc41700dac51500d9c51300d8c61100d7c70f00d6c80d00d5c90b +00d3ca0900d2cb0700d1cb0500d0cc0300cfcd0100cece0000cecb0000cec700 +00cec40000cec10000cdbd0000cdba0000cdb70000cdb30000cdb00000cdad00 +00cca90000cca60000cca30000cc9f0000cc9c0000cb990000cb950000cb9200 +00cb8f0000cb8b0000ca880000ca850000ca810000ca7e0000ca7b0000ca7700 +00c9740000c9710000c96d0000c96a0000c9670000c8640000c8600000c85d00 +00c85a0000c8560000c7530000c7500000c74c0000c7490000c7460000c64000 +"/> +<palette number="101" name="rw-multi-color-2" data="008040400099343400a52d2d00b2272700be202000ca1a1a00d0171700d71414 +00f0080800f70a0400ff0c0000ff190000ff260000ff320000ff3e0000ff4400 +00ff4b0000ff640000ff720000ff800000f27a0000e6740000e0700000da6d00 +00c1610000b45a0000a85400009b4e00008f4800008744000080400000744600 +00674c00004e590000415f000035660000286c00001c72000016750000107800 +0000800c0000801900008026000080320000803e000080440000804b00008058 +000080640000807d0000868400008c8c000098980000a5a50000abab0000b2b2 +0000caca0000d6d60000e3e30000f1f10000ffff0006fff9000cfff30019ffe6 +0026ffda003effc1004bffb40058ffa8005effa20064ff9c0070ff8f0080ff80 +0067ff99005affa5004effb20041ffbe0035ffca002effd00028ffd7001cffe3 +0010fff00000f3ff0000e6ff0000daff0000d3ff0000cdff0000c1ff0000b5ff +00009cff00008fff000083ff000081ff000080ff000c80ff001980ff002680ff +003280ff004b80ff005780ff006480ff006a80ff007080ff008080ff008074ec +00805ac700804eb4008042a200803b980080358f0080287c00801c6a00801057 +0080004000991959009f1f5f00a5266600b2327200be3e7e00ca4b8b00d75898 +00f070b000f772b500ff74ba00ff6db700ff67b400ff5aad00ff4ea700ff42a1 +00ff359a00ff1c8e00ff168b00ff108800ff038200ff008000f3008c00e60099 +00cd00b200c100be00b500ca00ae00d000a800d7009c00e3008f00f0008000ff +00740cec005a26c700542cbd004e32b400423ea200354b8f0028587c001c646a +00008040000c80400019804000328040004b804000648040007d804000958040 +00ae804000e0804000ef804000ff804000f3743a00e6673400da5a2d00cd4e27 +00b5351a00ae2e1700a82814009c1c0e008f10080083030200800000008c1919 +0099323200a54b4b00b2646400be7d7d00ca959500d7aeae00e3c7c700f0e0e0 +00fafafa00f7f7f700f5f5f500f1f1f100ececec00e7e7e700e2e2e200dedede +00d9d9d900d4d4d400cecece00babad300a6a6d8009292dc007e7ee1006969e6 +005555eb004141ef002d2df4001919f9000000ff000c06e600190ccd002613b4 +0032199b003e1f82004b266a00582c51006432380070381f007d3e0600804000 +0074460c00674c19005a5326004e593200425f3e0035664b00286c58001c7264 +0010787000008080000080860000808c00008093000080990000809f000080a6 +000080ac000080b2000080b8000080c000198cad0032999a004ba5880064b275 +007dbe620095ca5000aed73d00c7e32a00e0f01700ffff0000fff30c00ffe619 +00ffda2600ffcd3200ffc13e00ffb54b00ffa85800ff9c6400ff8f7000ff8080 +"/> +<palette number="102" name="rw-blue-with-red" data="000000ff000000f3000000ed000000e7000000e1000000db000000d8000000d5 +000000ca000000c4000000be000000b8000000b2000000ac000000a6000000a3 +000000a0001000ac001800b2002000b8002800be003000c4003400c7003800ca +004800d5005000db005800e1006000e7006800ed006c00f0007000f3007800f9 +008000ff008010ff008018ff008020ff008028ff008030ff008034ff008038ff +008048ff008050ff008058ff008060ff008068ff00806cff008070ff008078ff +008080ff007080f7006880f3006080ef005880eb005080e7004c80e5004880e3 +003880dc003080d8002880d4002080d0001880cc001480ca001080c8000880c4 +000080c0000080c8000080cc000080d0000080d2000080d4000080d8000080dc +000080e3000080e7000080eb000080ef000080f3000080f5000080f7000080fb +000080ff001080f7001880f3002080ef002480ed002880eb003080e7003880e3 +004880dc005080d8005880d4005c80d2006080d0006880cc007080c8007880c4 +008080c0009080c0009880c000a080c000a480c000a880c000b080c000b880c0 +00c780c000cf80c000d780c000db80c000df80c000e780c000ef80c000f780c0 +00ff80c000ff80c800ff80ca00ff80cc00ff80d000ff80d400ff80d800ff80dc +00ff80e300ff80e700ff80eb00ff80ed00ff80ef00ff80f300ff80f700ff80fb +00ff80ff00ff70ff00ff6cff00ff68ff00ff60ff00ff58ff00ff50ff00ff48ff +00ff38ff00ff30ff00ff28ff00ff24ff00ff20ff00ff18ff00ff10ff00ff08ff +00ff00ff00ff00ef00ff00eb00ff00e700ff00df00ff00d700ff00cf00ff00c7 +00ff00b800ff00b400ff00b000ff00a800ff00a000ff009800ff009000ff0088 +00ff008000df109000d7149400cf189800bf20a000af28a8009f30b0008f38b8 +007048c700684ccb006050cf005058d7004060df003068e7002070ef001078f7 +000080ff000080fb000080f7000080f3000080ef000080eb000080e7000080e3 +000080dc000080da000080d8000080d4000080d0000080cc000080c8000080c4 +000080c0000880c4001080c8001880cc002080d0002880d4003080d8003880dc +004080e0004880e3005080e7005880eb006080ef006880f3007080f7007880fb +008080ff007878ff007070ff006868ff006060ff005858ff005050ff004848ff +004040ff003838ff003030ff002828ff002020ff001818ff001010ff000808ff +000000ff000000f9000000f3000000ed000000e7000000e1000000db000000d5 +000000d0000000ca000000c4000000be000000b8000000b2000000ac000000a6 +000000a0000800a6001000ac001800b2002000b8002800be003000c4003800ca +004000d0004800d5005000db005800e1006000e7006800ed007000f3008000ff +"/> +<palette number="103" name="rw-blue-with-red-2" data="000080ff001277ed001b72e400246edb002d69d2003665c9003a62c4003f60c0 +005158ae005a53a500634e9c006c4a930075468a007d418100863c79008a3a74 +008f387000a12f5e00aa2a5500b3264c00bc214300c51d3a00c91a3500ce1831 +00e0101f00e90b1600f2060d00f6050b00fb040900f8060d00f6091200f20e1b +00ed122400e41b3600df1f3f00db244800d6285100d22d5a00d02f5e00ce3263 +00c53a7500c03f7d00bc448600b7488f00b34c9800b14e9c00af51a100aa56aa +00a65ab3009d63c5009867ce00946cd7008f70e0008b75e9008877ed00867af2 +008480fb008880f6008d80f2009180ed009680e9009880e6009b80e4009f80e0 +00a480db00ad80d200b180cd00b680c900b880c700ba80c500bf80c000c380bc +00cc80b300d080ae00d580aa00d980a500de80a100e0809f00e2809d00e78098 +00eb809400f4808b00f8808600fd808200fe808100ff808000ff808400ff8089 +00ff809200ff809600ff809b00ff809d00ff809f00ff80a400ff80a800ff80ad +00ff80b100ff80ba00ff80be00ff80c300ff80c500ff80c700ff80cc00ff80d0 +00ff80d900ff80dd00ff80e200ff80e400ff80e700ff80eb00ff80f000ff80f4 +00ff80f900f67cff00f179ff00ed77ff00e472ff00db6eff00d26aff00c965ff +00b75cff00ae57ff00a553ff00a050ff009c4eff00934aff008a46ff008141ff +00793cff006734ff006231ff005e2fff00552aff004c26ff004322ff003a1dff +002814ff001f0fff00160bff001108ff000d06ff000402ff000000ff000900fb +001200f6002400ed002800eb002d00e9003600e4003f00e0004800db005100d7 +006300ce006700cb006c00c9007500c5007e00c0008600bc008f00b8009800b3 +00a100af00b300a600b700a300bc00a100c5009d00ce009800d7009400e0008f +00f2008600f8008300ff008000f6048400ed098900e40e8d00db129200d21696 +00c91b9b00c0209f00b724a400ae28a800a52dad009c32b1009336b6008a3aba +007944c3007446c5007048c700674ccc005e51d0005556d5004c5ad900435ede +003a63e2003168e700286ceb001f70f0001675f4000d7af900047efd000080ff +000981fb001282f8001b83f4002484f1002d85ed003686ea003f87e6004888e3 +005189df005a8adc00638bd8006c8cd500758dd1007e8ece00868fca008f90c7 +009890c300a191c000aa92bc00b393b900bc94b500c595b200ce96ae00d797ab +00e098a700e999a400f29aa000ff9b9b00fc9b9f00f89ba200f59ba600f29ba9 +00ee9bad00eb9bb000e79cb400e49cb700e19cbb00dd9cbe00da9cc200d69cc5 +00d39cc900d09dcc00cc9dd000c99dd300c69dd700c29dda00bf9dde00bc9de1 +00b89ee500b59ee800b19eec00ae9eef00ab9ef300a79ef600a49efa009f9fff +"/> +<palette number="104" name="rw-blues-3" data="000000ff000909ff000d0dff001212ff001616ff001b1bff001d1dff002020ff +002828ff002d2dff003232ff003636ff003a3aff003f3fff004444ff004646ff +004848ff005151ff005555ff005a5aff005e5eff006363ff006565ff006868ff +007070ff007575ff007a7aff007b7bfd007c7cfc007979fa007777f8007272f5 +006e6ef2006565eb006060e7005c5ce4005757e1005353de005050dc004e4eda +004646d4004141d0003c3ccd003838c9003434c6003131c4002f2fc3002a2ac0 +002626bc001d1db6001818b2001414af000f0fab000b0ba8000808a6000606a5 +000009a3000012a600001baa000024ad00002db1000031b2000036b400003fb7 +000048bb00005ac1000063c400006cc8000070c9000075cb00007ecf000086d2 +000098d90000a1dc0000aadf0000b3e20000bce60000c0e70000c5e90000ceed +0000d7f00000e9f70000f2fa0000fbfe0000fdfe0000ffff0000f8fb0000f2f6 +0000e4ed0000dde80000d7e40000d3e20000d0e00000c9db0000c3d70000bcd2 +0000b5ce0000a8c50000a1c000009abc000097ba000094b800008db3000086af +000079a6000072a100006b9d0000689a0000659800005e940000578f0000508b +00004a86000042820000438300004484000047870000498900004b8b00004e8e +000052920000549400005696000057970000599900005b9b00005d9d000060a0 +000062a2000066a6000067a7000068a800006bab00006dad00006faf000072b2 +000076b6000078b800007aba00007bbb00007dbd00007fbf000080c0000080c2 +000080c4000080c9000080ca000080cb000080cd000080d0000080d2000080d4 +000080d8000080d9000080db000080dd000080df000080e1000080e3000080e6 +000080e8000080ec000080ed000080ef000080f1000080f3000080f5000080f7 +000080fc000080fd000080ff000484ff000989ff000e8dff001292ff001696ff +001b9bff00209fff0024a4ff0028a8ff002dadff0032b1ff0036b6ff003abaff +0044c3ff0046c5ff0048c7ff004cccff0051d0ff0056d5ff005ad9ff005edeff +0063e2ff0068e7ff006cebff0070f0ff0075f4ff007af9ff007efdff0080ffff +0080f6ff0080edff0080e4ff0080dbff0080d2ff0080c9ff0080c0ff0080b7ff +0080aeff0080a5ff00809cff008093ff00808aff008081ff008079ff008070ff +008067ff00805eff008055ff00804cff008043ff00803aff008031ff008028ff +00801fff008016ff00800dff008000ff008004fd008009fb00800ef8008012f6 +008016f400801bf2008020ef008024ed008028eb00802de9008032e7008036e4 +00803ae200803fe0008044de008048dc00804cd9008051d7008056d500805ad3 +00805ed0008063ce008068cc00806cca008070c8008075c500807ac3008080c0 +"/> +<palette number="105" name="rw-reds-pinks-blues" data="00ff000000ff003700ff005b00ff008000ff1b8e00ff379c00ff44a200ff52a9 +00ff80c000ff80b200ff80a400ff809200ff808000ff808e00ff809c00ff80a2 +00ff80a900ff80c000c89b970091b76e005ad2440024ed1b0012f60d0000ff00 +006ec86e00b6a4b600ff80ff00fe86e500fd8ccb00fc8fbd00fc92b000fb9896 +00fa9c8500fc594c00fd372f00fe161300fe192500ff1c3700ff295200ff376e +00ff80ff00ff80e300ff80c800ff80ad00ff809200ff808900ff808000ff6480 +00ff498000ff128000ff177900ff1c7200ff376400ff525700ff694b00ff8040 +00ff495c00ff2d6900ff127700e3098900c8009b00ac00a9009100b7005b00d2 +002400ed00371ce4006d37c800a452ad00d1699600ff808000ff648000ff4980 +00ff128000ff097200ff006400ff004900ff002e00ff002000ff001200ff0000 +00ff1c0e00ff522900ff693b00ff804e00ff805500ff805c00ff806900ff8077 +00ff809b00ff80b600ff80d200ff80df00ff80ed00ff80ff00ff9be400ffb7c8 +00ffd2ad00ffc86400ff914900ff5b2e00ff3f2000ff241200ff000000ff1c37 +00ff52a400ff69d100ff80ff00ff80f100ff80e400ff80c800ff80ad00ff8080 +00ff648000ff2e8000ff208000ff128000ff008000ff1c7200ff376400ff5257 +00ff804000ff806900ff809200ff80a600ff80bb00ff80ff00c89bff0091b7ff +005bd2ff0000ffff001bf1f10037e4e4006ec8c800a4adad00ff808000ff809b +00ff80d200ff80e800ff80ff00ff72f100ff64e400ff49c800ff2ead00ff1292 +00ff008000ff379c00ff44a200ff52a900ff80c000ff80b200ff80a400ff8097 +00ff808000ff807900ff807200ff806400ff805700ff804900ff804000d77468 +00ae6891004347fc00574de8006b53d400945fab00bc6c8300e5785a00ff8040 +00ff809200ff80a600ff80bb00ff80e400ff80ff00ff64e400ff49c800ff2ead +00ff008000ff1c8000ff378000ff528000ff6e8000ff808000ff809b00ff80b7 +00ff80ed00ff80f600ff80ff00ff80f100ff80e400ff80d600ff80c000ea9bb5 +00d4b6aa00bfd19f00a9ec94009bfe8d00b0c76f00c6915000db5a3200f12414 +00ff000000ff001c00ff003700ff005200ff008000ff1c8000ff378000ff5280 +00ff6e8000ff808000ff809b00ff80b700ff80d200ff80ed00ff80ff00ff64e4 +00ff49c800ff2ead00ff008000ff1c6400ff374900ff522e00ff6e1200ff8000 +00e4720000c8640000ad57000092490000804000009b4e1c00b75c3700d26952 +00ff808000ff648000ff498000ff2e8000ff128000ff008000ff1c8e00ff379c +00ff52a900ff6eb700ff80c000ff80b200ff80a400ff809700ff808000ff6464 +00ff494900ff2e2e00ff121200ff000000ff1c3700ff376e00ff52a400ff80ff +"/> +<palette number="106" name="rw-browns-greens-reds-bule" data="0080ff000049c81c0024a42e0000804000378d5b006e9b770089a28400a4a992 +00ffbfbf00ff999900ff737300ff414100ff0f0f00ff272700ff404000ff4c4c +00ff585800ff808000c8807200918064005a8056002480490012804400008040 +006e807700b6809b00ff80c000ff65b200ff4ba500ff3d9e00ff309800ff158b +00ff048200c8026600ad015700920149007b1c44006437400056524000496e40 +0000ff400020c8420040914400605a4600802449008a12490095004a0093153b +00922a2d008f5410009a5e2500a6683b00be6e7000d775a600eb7ad200ff80ff +00d0759300b8705c00a16b2600986316008f5b06008d5507008c4f090088430d +0085371000803815007d4017007b491a0078501c0076571f008d6e3500a3844b +00d0b17800dba47000e6976900ed6d4c00f4443000f72f2100fa1b1300ff0000 +00ff1c0000ff520000f65b0000ed640000e3560000da490000c82e0000b61200 +00bc050500ce0a0a00e10f0f00ea111100f3141400ff171700f9301d00f34923 +00ee622800e6944100e89c5000eaa55f00eba96600ecad6e00edb37800dc9f63 +00b9783800aa6826009c5814009d501a009e482100a0372e00a2273b00a50c51 +00b7296800da629700e270a300eb7eaf00f791be00ef7fba00e76cb700df5ab3 +00d23cad00c23cb400b33cbc00ab3cc000a43cc4008b3dd1009d46af00ae508c +00c0596a00dd693100d4634300cb5d5600ba517b00a844a1008b30de009d30cd +00c030ab00ce309d00dd318f00e0349400e3389900e93fa300ee46ad00f44db7 +00f852bd00fb668700fc6b7900fd706c00ff804000ff8e5500ff9c6b00ffaa80 +00ffc1a400f8b39200f2a58100e68a5e00d96e3a00cc521700c4400000cb520f +00d3651d00e6954400e8924a00eb905100f18c5e00f6876b00fb837800ff8080 +0091b7b70076c4c4005bd2d20024eded0000ffff0037ffe4006effc800a4ffad +00ffff8000e4ff9200c9ffa500aefeb70094fec90082fdd50097e3de00acc8e6 +00d693f700dd8afa00e482fd00cf9de800b9b7d400a4d2bf0081fe9d009cf097 +00b7e29100d2d38b00ecc58500febc8100faca8100f6d88100f2e78100eef581 +00ebfe8100d4fe8500bdfe8900a7fe8d0081fe940081fea70081feb90081fecc +0081fedf0081feeb009bf4d500b6ebbe00d0e1a800ebd79200fcd18300e3da84 +00c9e28600b0eb870086f9890091f37e009ded7300a8e76700b4e15c00bbdd55 +00a5d472008fca900079c1ad0062b7cb0054b1de005da6e500679cec007091f3 +008080ff007995d30072aaa8006bbf7c0064d4510060e2340077d936008fd039 +00a6c73b00bebe3d00cdb83f00d5b64b00deb35800e6b16400f4ad7900c0bf6d +008bd0610057e2540022f3480000ff400000ff690000ff920000ffbb0000ffff +"/> +<palette number="107" name="rw-browns-pinks-reds-blues" data="0080000000930000009c000000a6000000af000000b9000000bd000000c20000 +00d4171700da2e2e00e0454500e65c5c00ec747400f28b8b00f8a2a200fbb0b0 +00ffbfbf00ff949400ff7f7f00ff6a6a00ff545400ff3f3f00ff343400ff2a2a +00ff1d1d00ff2a2a00ff383800ff454500ff535300ff5a5a00ff616100ff6f6f +00ff7c7c00ff808f00ff809e00ff80ae00ff80bd00ff80cd00ff80d400ff80dc +00ff80ff00ff80f700ff80f000ff80e800ff80e000ff80dc00ff80d900ff80d1 +00ff80ca00ff71b800ff62b000ff53a900ff44a100ff359a00ff2d9600ff2693 +00ff048200ef037a00e0037200d0026a00c1026200b9025e00b2025a00a30252 +0093014a00800040008f1251009f256200a62e6a00ae377200be498300cd5b94 +00ec80b600ef82b800f285bb00e572ab00d8609c00d2579400cc4e8d00bf3c7d +00b2296d0095004a00940c420093183a00931e350093243100922f2900913b21 +008f5310008e570b008d5c07008c5908008c5709008a510a00894b0b0088460d +0087400e00843411008536100086390f00863c0e0087400e0089460c008b4c0a +008e590700906005009267030091630400906005008e5907008d5308008b4c0a +0089450c008538100084331100832f120081341400803915007e3e17007d4218 +007a4c1b0078511d0076571f007c5d250083642b008f7038009c7d4400a98a51 +00b6975d00cfb07600d5b67c00dcbd8300dfc08600e3a97600e7926600eb7a55 +00f24c3500f6342400fa1d1400fc0e0a00ff000000ff151500ff2b2b00ff4040 +00ff555500ff808000ff8a8a00ff959500ffb0b000f59b9b00ea858500e07070 +00cc454500c63a3a00c1303000b71b1b00aa000000b4030300bf060600c90808 +00d30b0b00e8111100ed121200f2131300fc161600ff171700fc251a00f8331e +00f24f2400f0562500ef5d2700eb6b2b00e8792e00e48b3200e5903a00e69543 +00e79a4b00e89e5400e9a35c00eba86500ecad6d00edb37800e3a86c00d99d60 +00c6874800c1814100bc7c3b00b2712f00a86623009c5814009d4f1b009e4623 +009f3c2a00a0333200a12a3900a3214000a4184800a50e4f00a50c5100af1c5e +00b92c6b00c33c7900cd4c8600d75d9300e16da000eb7dad00f791be00f387bc +00ee7cba00ea72b800e568b600e15eb400dc53b200d849b000d23cad00c93cb1 +00c13cb600b83cba00b03cbe00a73cc3009e3cc700963ccc008b3dd1009542be +009f48aa00a94d9700b3528400bd587000c75d5d00d1624900da683600dd6931 +00d3624600c95b5b00bf547000b54d8500ab469a00a140af009739c4008b30de +009530d4009f30cb00a930c100b330b800bd30ae00c730a500d1309b00dd318f +00e0359500e4399a00e73da000ea41a500ed45ab00f149b000f44db600f852bd +"/> +<palette number="108" name="rw-reds-greens-blues-pinks-yellows-browns" data="00ff000000d7280a00c33c0f00af5014009b64190087781e007d812000748b23 +004cb32d0038c7320024db370012e8400000f54a0000eb540000e15e0000dc63 +0000d7680000c37c0000b9860000b0900000a69a00009ca4000097a9000092ae +000080c0001480c5002880ca003c80cf005080d4005a80d6006480d9007880de +008b80e200b380ec00c780f100db80f600ed80fa00ff80ff00f580ff00eb80ff +00c380ff00af80ff009b80ff008780ff007480ff006a80ff006080ff004c80ff +003880ff001080ff000885f500008aeb000094d700009ec30000a3b90000a8af +0000bc870000c5730000cf600000d94c0000e3380000e82e0000ed240000f710 +0000ff000028ff14003cff1e0050ff28005aff2d0064ff320078ff3c008bff46 +00b3ff5a00c7ff6400dbff6e00edfa7700fff58000fff08000ffeb8000ffe180 +00ffd78000ffc38000ffb98000ffb08000ffab8000ffa68000ff9c8000ff9280 +00ff808000eb807b00d7807600cd807300c3807100af806c009b806700878062 +0074805d004c80530038804e00248049001a80460010804400008040000a7b3b +001e713100286c2c0032672700376424003c622200465d1d00505818005a5313 +00644e0e00784404007c4202008040000080450f00804a1e00804f2d0080543c +00805e5a008063690080687800806a7f00806d8700807296008077a500807cb9 +008080c000946ca20099679a009e629300a8588400b24e7500bc446600c53a57 +00d9263900e31c2a00ed121b00f6090d00ff000000ff0a0000ff140000ff1e00 +00ff280000ff3c0000ff410000ff460000ff500000ff5a0000ff640000ff6e00 +00ff800000fa800a00f5801400eb802800e1803c00d7805000cd806400c38078 +00ba808b00a680b300a180bd009c80c7009280db008880ef008080ff008989f6 +009a9be4009e9fdf00a3a4da00abadd100b4b6c800bdbfbf00c5c8b600ced2ad +00d7dba400dfe49a00e8ed9100eff48a00f0eb7f00f2e27400f3d96a00f4d05f +00f6be4900f7b94400f8b53f00f9ac3400faa22900fc991e00fd901300fe8709 +00ff800000eb8a0500d7940a00c39e0f00afa814009bb2190087bc1e0074c523 +0060cf28004cd92d0038e3320024ed370000ff400014ff450028ff4a003cff4f +0050ff540064ff590078ff5e008bff63009fff6800b3ff6d00c7ff7200dbff77 +00efff7c00ffff8000fff57b00ffeb7600ffe17100ffd76c00ffcd6700ffc362 +00ffba5d00ffb05800ffa65300ff9c4e00ff924900ff884400ff804000ff804a +00ff805400ff805e00ff806800ff807200ff807c00ff808600ff809000ff809a +00ff80a400ff80ae00ff80b800ff80c000ff76bb00ff6cb600ff62b100ff58ac +00ff4ea700ff44a200ff3a9d00ff309800ff269300ff1c8e00ff128900ff0080 +"/> +<palette number="109" name="rw-greens-light-to-dark" data="0000ff000000ed120000e41b0000db240000d22d0000c9360000c43a0000c03f +0000af510000a65a00009d630000946c00008b7500048a7600098977000d8d72 +0012926e0024a45c002dad530036b64a003fbe410048c738004ccb330051d02f +0063e21d006ceb140075f40b0076f5070077f6040072f106006eed090065e40e +005cdb12004ac91b0041c01f0038b824002faf280026a62d0021a12f001d9d32 +000b8b3a000a8a3f0009894400129249001b9b4e001f9f500024a452002dad56 +0036b65b0048c7640051d068005ad96d0063e271006ceb760070ef780075f47a +0077f877006ef16e0065ea65005ce35c0053dd53004ed94e004ad64a0041cf41 +0038c8380026ba26001db31d0014ac14000fa80f000ba50b00029f0200009d00 +0013a705001dac070027b20a0030b70c003abc0e003ebe0f0043c111004dc613 +0057cb16006ad51a0073da1c007de01f0083e3200089e6220089e325008ae028 +008ada2d008ad730008bd533008bd334008cd236008ccf38008dcc3b008dc93e +008dc641008ec147008bc0470088c0470084c1460081c245007ac5420073c740 +0065cc3b005ece380057d1360053d2340050d4330049d6310042d92e003bdb2c +0034de29002ddf2c002edd2f002fdc320031da380033d83e0035d5450037d34b +003bce57003dcc5d003fca630040c8660041c7690043c56f0045c3760047c17c +0047c07d0050c5710052c66e0055c76b0059c965005ecc5e0062ce580067d052 +0070d5460074d7400079da3a007bdb37007edc340082de2d0088e1260082e324 +007ce5230070e81f006ce91e0069ea1e0063ec1c005ded1a0057ef180051f117 +0045f4130042f512003ff6120038f8100031fa0e0034f5170037ef20003aea29 +003de4320042da440043d7480045d44d0048cf56004bc95f004ec4680051be71 +0056b4830058b088005aad8e0054aa89004da7830047a47e0041a078003a9d73 +00349a6d002e9768002794620021915d001b8d5700148a52000e874c00088447 +0000884400008c46000090480000984c0000a1500000a9540000b1580000b95d +0000c1610000c9650000d2690000da6d0000e2710000ea750000f2790000f47a +0008f57e000ff6820017f787001ef78b0026f88f002ef9930035fa98003dfa9c +0044fba0004cfca40054fda8005bfdad0063feb1006cffb6006cf9b1006cf3ac +006ceda7006ce7a2006ce19d006cdb98006cd593006ccf8e006cc989006cc384 +006cbc7f006cb67a006cb075006da96f0072ae6a0077b266007bb7610080bb5c +0085c058008ac453008ec94f0093ce4a0098d245009dd74100a2db3c00a6e037 +00abe43300b1ea2d00a5eb2a0098ed27008cee24007ff0200073f11d0066f31a +005af417004df6140041f7110035f90d0028fa0a001cfc07000ffd040000ff00 +"/> +<palette number="110" name="rw-blues-reds-purples" data="000080ff002090ff00359aff004aa5ff0059acff0069b4ff0071b8ff0079bcff +0093c9ff009dceff00a7d3ff00b4d9ff00c1e0ff0097cbf1006eb7e40059acdd +0045a2d6000080c0002794cd004fa8db0077bbe8009fcff600acd5fa00b9dcff +00a5d2ff0097cbff008ac5ff0081c0ff0079bcff0074b9ff0070b7ff0068b3ff +0062b0ff0053a9ff004ca5ff0045a1ff003f9eff003a9cff00379aff003499ff +002492ff001c8eff00158aff000d86ff000583ff000281ff000080ff00007bf5 +000076ec00006cd8000068d1000065ca000061c200005dbb00005ab4000057ae +001874d1002382e2002f91f400399af70044a3fb004ba7f90052acf7005fb4f3 +006cbdef0061b4e1004da6d6003a99cc002a8ec3001a83bb001e8ebd002398be +002badc10032b3c4003abac70045bfcc0051c5d10057c7d4005dcad70065ceda +0057c2cd003ca9b4003ea7b10040a5af004dadb7005ab5bf0075c6cf008fd6df +0086d2db006bc3cd0051b4bf0044acb80037a5b100269ba80045a4b40064adc0 +0083b6cc009fb3d60087a0cb00708ec1006484bc00597bb7004a6fb0005578b5 +006a8ac0007391c4007c99c9007693c400708ec0006383b7005777ae0042659f +00617fb0009fb2d100aebed900becbe100d2dcec00b1c8d60090b4c0006f9faa +00397e8600529198006ba5ab0077aeb40084b8bd00add8dc0096c8cd007eb8bd +0067a8ae00408e950051989f0062a3a90085b8bd00a7cdd000e0f0f100b9d0d1 +006b9092004b7578002b5b5e00346669003e72750051888b00649fa20077b5b8 +0083c4c700729cd7006e92db006a88df005c67ed006771ee00717bef007c85f0 +008e96f2008189eb00747de5005a64d800404bcb002631be001521b5003338bd +00524fc400a28cd9009f88d8009c85d700977fd5009178d3008c71d000886dcf +007155ba006b4eb4006548af005a3ca50052349e006f55af008c77c100a898d2 +00d8cfef00d5c8e900d2c1e300cebadc00cbb3d600c9aed200ba9ac500ab86b7 +008e5f9d00895898008452940092697b00a1806200af984900c7be1f00abaf3b +008ea158007292740056849000437aa3005789ae006b98ba007fa7c50093b6d1 +00a0c0d800b497aa00c96e7b00dd444d00ff000000e9063100d30c6200bd1292 +00a718c300991ce300a93fe800b962ec00c986f100d9a9f500e3c0f800d39cf3 +00c379ef00b355ea00981ae3009b27d2009e35c000a042af00a34f9d00a55892 +00b26fa100be87b100cb9ec000d8b6d000e0c5da00d4cce200c8d3e900bcdaf1 +00a8e6fd0085d4f10062c1e5003eafda001b9dce000491c6000b95bc00129ab2 +00199ea80020a29e0025a598001fab8d0019b1820013b7770009c165000aad78 +000a998b000b869e000c72b1000d65bd00416bbe007571be00a976bf00ff80c0 +"/> +<palette number="111" name="rw-multi-5" data="0000ff800000c8800000a48000008080001b9b9b0037b7b70044c4c40052d2d2 +0080ffff0064d6e30049adc8002476a40000408000374e8e006e5c9c008962a2 +00a469a900ff80c000e380c000c880c000ad80c0009280c0008980c0008080c0 +00b780db00db80ed00ff80ff00ff64e300ff49c800ff3bba00ff2ead00ff1292 +00ff008000c81c6400ad2956009237490089503d0080693200807d2b00809224 +0080ff000064e30e0049c81c002dad29001292370009893b0000804000006469 +00004992000012e4000e10d6001c0ec800371b910052295b0069342d00804000 +00805c6e008069a4008077db008d89ed009b9bff00a9a9ff00b7b7ff00d2d2ff +00ededff00fbeed200f7dca500f3cb7900efbc5400ecae2f00deae3300d0ae37 +00b3ae3e00a5b24f0097b7600083be7f0070c69f0066caae005dcebe0050d3d3 +0069bace009c88c500af82b300c27ca200c08a9400be998600bab76a00b7d54e +00baea4c00c0eb5c00c6ed6c00c9ee7400ccef7c00d0f08600a3d8850077c083 +004aa88200378282006d838300a4858500bf868600db878700ff888800e29885 +00a9b77e0091c47b007ad178007ace81007acb8b007ac59d007abeb0007ab4cf +008ab2bf00aaaea000b2ad9800baac9000c4ab8600acac9e0093aeb7007bafcf +0052b1f80059bdd70061c9b70065cfa70069d5970075e9610075e5700075e17f +0075dd8e0074d6a70083cd9c0092c49100b0b17b00ce9f6500ff804000f58749 +00e2965c00da9c6400d2a26c00d49a7900d6938600d9839f00dd74b900e165d2 +00e35be300d141d100cc3acc00c734c700b81fb800c645c600d46bd400e192e1 +00f8d1f800eacddf00ddc9c700c2c19600a7b965008cb034007aab1400699f2f +0059934b002d7293002a788600287e790024895f001f9546001aa02c0017a81b +00176e5800175f670017517700173495001621a900353e8900545b6a0073794a +00a6a91600a6892a00a7693e00a84a5200a92a6600aa1573008a357f006a558a +002b94a100209ea50016a9a9001f9ca000288e970031818f00406b80004e6d72 +005c6e64006970570077714900807240006f7847005e7e4f004c8556003b8b5d +00308f6200437a6c005666760069518000892f91006e4899005361a000387aa8 +001d94b0000ba4b5002d81b7004f5eb800713cba009419bc00aa02bd00ad2a95 +00b1536c00b47b4400babe0100babc0200baba0400b9b80500b9b50600b8b407 +00c7c33300d6d36000e4e28c00f3f2b800fdfcd500f4fcde00ecfce600e3fcef +00d5fdfd00d5fdf400d5fdeb00d5fde200d5fdd900d5fed300d5f5dc00d4ece5 +00d4e2ef00d4d9f800d3d3fe00dcd5f500e6d7eb00efd9e200ffdcd200ffc6cc +00ffb0c500ff9abf00ff83b800ff75b400e281c400c58dd300a798e30077acfd +"/> +<palette number="112" name="rw-blues-black-purple" data="0080ffff0067cdda005ab4c7004e9bb4004182a100356a8f002e5d850028517c +00101f570008124e0000064600000c4c000013530000195900001f5f00002262 +000026660000327200003979000040800004488c00085199000a559f000d59a5 +00156abe001972ca001d7ad7002182e300268bf0002890f7002b95ff002786ff +002378ff001a5bff00164cff00123eff000d2fff000921ff000719ff000512ff +000c0cff001919ff002626ff003232ff003e3eff004444ff004b4bff005858ff +006464ff007d7dff00787eff007480ff006780ff005a80ff005480ff004e80ff +003580ff002880ff001c80ff000e80ff000080ff00067aff000c74ff001967ff +00265aff003e42ff004b35ff005828ff005e22ff00641cff007010ff008000ff +008032ff00804bff008064ff00807cff008095ff0080a1ff0080aeff0080c7ff +0080e0ff0074ffff0067ffff005affff0054ffff004effff0042ffff0035ffff +001cffff000fffff0003ffff0001ffff0000ffff0000f5f50000ebeb0000e1e1 +0000d6d60000c2c20000b8b80000aeae0000a9a90000a4a40000979700009d9d +0000aaaa0000b0b00000b6b60000b9b90000bcbc0000c3c30000c9c90000cfcf +0000d7d70000c3c30000bebe0000b9b90000afaf0000a5a500009b9b00009191 +00007d7d0004757e00086e7f000c6c8600106b8d0018689b002065a8002962b6 +00315fc400415ae0004558e7004957ee005154fc005353ff004b4bf6004343ed +003333db002a2ad2002222ca001e1ec5001a1ac1001212b8000a0aaf000000a4 +001313ad003838bf004141c3004b4bc8005d5dd0007070d9008383e2009595eb +00bfbfff00b5b5fe00acacfd009a9afb008787f8007474f6006262f4004f4ff2 +003c3cef001717eb000b0be9000000e8000000ea000000ec000000ef000000f1 +000000f5000000f6000000f8000000fa000000fc000000fe000000ff000000f6 +000000ec000000e3000000da000000d1000000c7000000be000000b5000000ac +0000069d0000099b00000c9a000013970000199400001f900000268d00002c8a +0000328700003884000040800000468600004c8c000053930000599900005f9f +000066a600006cac000072b2000078b8000080c000008cc6000099cc0000a5d2 +0000b2d90000bedf0000cae50000d7eb0000e3f10000f0f70000fcfe0000ffff +000cf3f90019e6f30026daed0032cde6003ec1e0004bb5da0058a8d400649cce +00708fc8008080c000808cc6008099cc0080a5d20080b2d90080bedf0080cae5 +0080d7eb0080e3f10080f0f70080ffff0080e6ff0080cdff0080b4ff00809bff +008082ff00806aff008051ff008038ff00801fff008000ff007a00f3007400e6 +006d00da006700cd006100c1005a00b5005400a8004e009c0048008f00400080 +"/> +<palette number="113" name="rw-multi-colors-6" data="00ff804000ff9c6c00ffaf8900ffc2a600e3a69000c88a7a00ba7c6f00ad6e64 +008040400090545400a1686800b7828200cd9c9c00a1b1880075c774005fd16a +0049dc610000ff400025ff5c004bff780070ff940096ffb000a2ffb900aeffc2 +009aad6f008d763700804000009b581500b7712b00c47d3500d2894000eda156 +00ffb164009165a7005a3fc8002419e900241ef4002424ff003636ff004848ff +00a8a8ff00ba9fff00cd97ff00e08eff00f386ff00f983ff00ff80ff00f664f6 +00ee49ee00dd12dd00d509d500cd00cd00c300c300b900b900b000b000a800a8 +006037b2003c52b700186ebd00177fc5001791ce002299d4002ea2db0046b3e9 +005dc4f60055b7e6003d9ecd002686b40013729f00005e8a00217aa3004395bc +0085ccef007fcbdb007acac80058b5910037a15b0026973f00168d2400008000 +00039b030008d2080018e8180028ff280035ff350043ff43005eff5e0078ff78 +006ce26c004ec54e0031a93100229a2200138c130000790000377b0e006e7c1c +00a47e2900ff773400ff6e2700ff661b00ff611400ff5d0e00ff570600ff6d26 +00ff986600ffaa8000ffbc9b00f8ae8a00f1a17a00e4865800d66b3700bf3f00 +00cd612b00e8a48200efb49800f6c5ae00ffdbca00eab79f00d5937300c06f48 +009d330000a3480b00aa5d1700ad671d00b1722300bc943600c29c4400c8a452 +00ceac5f00d8ba7600dabf7f00ddc48900e3cd9b00e8d7ae00f1e7cd00f4d1ca +00faa5c500fc92c200ff80c000ff7abd00ff74ba00ff67b400ff5bad00ff4ea7 +00ff46a300ff2e9700ff289400ff239100ff0f8700f40c8000e9097900de0572 +00cc006600c7006300c2006100b8005c00ae005700a40052009d004f0096004c +008f0048007d003f008b1b460099374d00b56e5b00d1a46900eddb7700ffff80 +0091d28a0076c78c005bbc8f0024a69400009797000092ad00008dc4000088da +000080ff002a8fc800549d91007eac5b00a8ba2400c4c40000bdbd0000b6b600 +00a8a80000a6a60000a4a400009b9b0000929200008888000079790000918536 +00a9916c00c19da200d8a9d900e8b1fc00df96fb00d77afa00ce5ef900c643f8 +00c031f700aa28dd00951ec2007f15a8005b057c007a2c98009954b300b87bce +00d7a2ea00ebbcfc00b9b7d70086b2b30054ad8e0021a76a0000a4520022b86d +0043cb870065dfa2009dffce007bfaba005af4a70038ef930016ea800000e673 +000aeb7b0014f182001ef68a0028fb92002fff970025e183001bc46f0011a65b +0000753a0029935e0053b081007ccea500a6ecc900c1ffe000b3c8be00a5919b +00975b7900892456008000400096086400ad0f8800c317ac00e824e800e527d2 +00e329bc00e02ca600de2e9000dc308200e3589a00ea7fb200f1a7ca00fce9f2 +"/> +<palette number="114" name="rw-multi-reds-oranges" data="00ff000000ff373700ff5b5b00ff808000fb938400f7a78800f5b18a00f3bb8c +00eddb9200e8b97c00e4986700de6b4a00d83f2e00db4d3d00de5c4d00df6355 +00e16a5d00e6827700da766b00ce6b6000c25f5400b6544900b2504500ae4d42 +00b56f3b00ba853600bf9c3100c87c3000d15c3000d64b3000db3b3000e41b2f +00ea062e00e50b6a00e20d8800e010a600dd12a600db15a600d9179c00d71993 +00ce225f00ce346900ce467400ce587f00ce6a8a00ce708d00cf769100d589a0 +00dc9baf00e9c1cd00e9b1cb00e9a2ca00e577bd00e24cb000df28a500dc059b +00dd17a300dd20a700de29ab00e2299b00e6298c00e9257b00ed226b00f41c49 +00fa152700fc2b1400f9441700f65e1a00f3731c00f1881f00ec7c2400e86f28 +00de563200da5a3500d75f3900d2703d00ce824200cc8a4400ca934600c79e49 +00c1944f00b6805a00ba7e5600be7d5200c6844900cf8b4100e19a2f00f2a81e +00f8a81800f29f1d00ed972300ea922500e88e2800e4882c00de8d3200d99237 +00d3973d00c6a14a00c2a34e00bea55200bca65400baa85600b7a95900be915e +00cb616800d04d6c00d63a7100d43c7600d23e7b00cd438500c9478f00c24e9f +00ca469900d9378e00dd338b00e1308800e62b8400ea277900ee226e00f21e62 +00f9175000ea255800dc346000d53b6400ce426800b65a7600c0708900ca879b +00d49dae00e4c2cd00dfb0bf00db9fb100d27b9500c9587900ba1d4b00c42c59 +00d74a7400df567f00e7638a00e05b8200da547b00cd446d00c0355e00b32550 +00ab1b46008b163900831435007b133200600f270082275500a4408400c658b2 +00ff80ff00fb76ee00f86cde00f158bd00ea459c00e4317c00df246600dd3e5a +00dc574d00d89b2c00d4982b00d0962a00c9902800c18b2600ba862300b58222 +00be6e1900c0691600c3641400c85a0f00cb540c00c64e1100c1471600bc411b +00b3362400c2572900d2782d00e1993200f1b93600fbcf3900f4c44000ecba48 +00dea45600dba05800d99d5b00d5a05f00d1a26400cda56800c6a96f00a8b88d +0089c8ab006bd7c9004de7e70039f1fb005fc4e3008697cb00ac6ab300d33d9b +00ec208b00e6268500e02c7f00da327a00d03c7000cf3d8300cf3d9600ce3ea9 +00cd3fbc00cc40c900d735ae00e12b9200ec207700f7155c00fe0e4a00fa2b41 +00f6483800f2653000eb952100e4832800dc723000d5603700ce4f3e00c94343 +00d05e3c00d87a3400df952d00e6b02600ebc22100efb91d00f2b01a00f6a716 +00fc981000ec922000db8c3000cb854000bb7f5000b07b5b00ba8b6f00c39c83 +00cdac9800d7bcac00ddc7b900deb3b000dfa0a700e08c9e00e16c8f00e6678b +00eb638800f05e8400f5598000f8567e00fa7a9a00fb9fb500fdc3d100ffffff +"/> +<palette number="115" name="rw-yellows-browns-goldish" data="00ffff8000f6f67100f1f16900eced6100e7e85900e3e45200e0e24e00dee04a +00d5d73a00d0d23200cbce2b00c6c92300c2c51b00c0c41800bfc31500c0c416 +00c2c61800c9cd1f00ccd02200cfd32500d2d62800d5d92b00d6da2c00d8dc2e +00dfe33500e2e63800e5e93b00e6e93c00e7e93e00e6e73e00e5e63e00e4e23d +00e2de3c00ded73b00dcd33a00dbd03900d9cc3800d7c83800d6c63700d6c537 +00d2bd3600cfb93500cdb63500cab33500c8b13600c7af3600c6ae3700c3ac37 +00c1a93800bca43900b9a13900b79e3a00b49b3a00b2993b00b0973b00af963b +00ac9a3a00ada13800aea93700aeb03500afb83300afbb3200b0bf3100b0c730 +00b1ce2e00b3dd2a00b3e42800b4ec2700b4ef2600b5f32500b5fa2300b6fc23 +00b0e72700addd2900aad32b00a7c82d00a5be3000a3b93100a2b432009fa934 +009c9f3600968a3a0093803c0091763e008f6f3f008d694100946d3f009b723c +00a87a3800af7e3500b6833300b9853200bd873100c48b2e00ca902c00d1942a +00d8982700e6a12300eaa62500eeab2700eead2b00eeb02f00eeb53600edbb3e +00edc54c00ecca5300eccf5b00ecd15e00ecd46200ecd96a00ebde7100ebe479 +00ebe98000e6eb8500e3e88300e1e68200dde27e00d9dd7a00d4d97700d0d473 +00c7cc6c00c2c76800bec36400bcc06200babe6100b6ba5d00b1b55900adb156 +00acb05500b7b55c00bab65d00bdb85f00c2bb6200c8be6600cdc06900d3c36c +00dec97300e3cb7600e9ce7900eccf7b00efd17d00f4d48000fbd78400fad37f +00f9d07a00f7c97000f7c76d00f7c56b00f6c16600f5be6100f4ba5c00f3b757 +00f2b04d00f1ae4a00f1ac4800f0a84300efa43d00eda23c00eb9f3c00e99d3b +00e79b3a00e3963800e2953800e1943800df913700dd8f3600db8d3500d98a35 +00d5863300d4843200d3833200d2893200d08f3200cf943200ce9a3200cca032 +00cba63200caab3200c8b13200c7b73200c6bd3200c4c23200c3c83200c2ce32 +00c3d82e00c5d92d00c7da2c00cadd2900cee02600d1e32300d4e52100d8e81e +00dbeb1b00deee1800e2f01600e5f31300e8f61000ecf90d00effb0b00f0fc0a +00edf80900e9f50900e6f10800e2ee0800dfea0700dce70700d8e30600d5e006 +00d2dc0500ced90400cbd50400c8d20300c4ce0300c0ca0200c0c40500c0bf08 +00c0b90c00c0b30f00c0ae1200c0a81500c1a21900c19c1c00c1971f00c19122 +00c18b2600c1862900c1802c00c2793000c4792e00c7792b00c9792900cc7926 +00ce792400d0792200d3791f00d5791d00d8791a00da791800dc791600df7913 +00e1791100e4790e00e07f0f00dc851100d98c1200d5921300d1981500cd9e16 +00c9a41700c6aa1900c2b11a00beb71b00babd1d00b6c31e00b3c91f00aed121 +"/> +<palette number="116" name="rw-multi-blues-with-gray" data="000000a0001111a9001a1aad002323b2002b2bb6003434bb003838bd003d3dbf +004e4ec8005656cc005f5fd1006868d5007171da007979de008282e3008686e5 +008b8be7009c9cf000a4a4f400adadf900aeb1fa00b0b6fc00acb5fa00a8b4f9 +0096aef3008dabf00085a9ed007ca6ea0074a4e7006fa2e5006ba1e400629ee1 +005a9cdf004896d9003f93d6003791d3002e8ed000268ccd00218acb001d89ca +000c84c4000a83c2000882c1001084c2001886c3001c87c3002088c4002789c5 +002f8bc6003f8fc8004791c9004f93ca005694cb005e96cc006297cc006698cd +00769ccf007e9ed00086a0d1008ea2d20096a4d3009aa5d3009ea6d400a5a7d5 +00a8a8d500a5aad800a4aad900a3abda00a2abda00a1acdb00a0addd009faede +009cafe0009bb0e1009ab1e30098b2e40097b3e50096b3e60096b3e70094b4e8 +0093b5e90090b7ec008fb7ed008eb8ee008db8ef008cb9f00086b4ed0081b0e9 +0076a6e20070a1de006b9ddb00689bd9006599d8005f94d4005a8fd100548bcd +004f86ca00437dc3003d78bf003873bc003571ba00336fb8002d6ab5002865b2 +001c5cab00195ba800175aa600185ca600195fa7001c63a7001e68a800206ca8 +002271a900277aaa00287caa00297eaa002b83ab002d87ab002f8bac003290ac +003699ad00389dad003aa2ae003ba4ae003da6af003fabaf0041afb0002babab +0044b5b1004aaeb5004bacb6004daab70050a6b90053a3bb00569fbd00599bbe +005f94c2006290c400658dc600668bc7006889c8006b85ca006e82cc00717ece +00747ad0007a73d4007b71d5007d70d600806cd7008467da008166dc007e65dd +007863e0007662e1007562e2007261e4006f60e5006c5fe700695ee800665dea +00645dec005e5bef005c5aef005b5af0005859f2005558f4005257f5004f56f7 +004954fa004753fb004553fc004554f7004555f1004456ec004458e6004459e1 +00435adb00435bd600425cd000425dcb00425ec500415fc0004160ba004062b5 +004064aa003f64a7003f65a4003f669f003f6799003e6894003e6a8e003d6b89 +003d6b870043708b0048748f004e799300547e98005a839c005f87a000658ca4 +006b91a8007096ac00769ab0007c9fb40082a4b80087a9bd008dadc10093b2c5 +0098b7c9009ebbcd00a4c0d100aac5d500afcada00b7d0df00b0cfdc00a9ceda +00a2ccd7009bcbd40094cad2008dc9cf0086c7cd0080c6ca0079c5c70072c4c5 +006bc3c20064c1c0005dc0bd0056bfba004fbeb80048bcb50041bbb2003abab0 +0033b9ad002cb8aa0023b6a70021adab0020a5af001e9cb3001c94b8001b8bbc +001983c000187ac4001672c8001469cc001361d0001158d4000f50d8000e47dd +000c3fe1000a36e500092ee9000725ed00051cf1000414f500020bfa000000ff +"/> +<palette number="117" name="rw-greens-multi" data="00008040000098400000a4400000b0400000bb400000c7400000cd400000d340 +0000eb400006ef3d000cf33a0018e7340024db2e0030cf28003cc3220042bd1f +0048b81c0060a010006c940a0078880400768a0800748c0c006e921200689818 +0050b0300044bb3c0038c748002cd3540020df60001ae5660014eb6c0008f778 +0000ff800015ff8a001fff8f002aff950034ff9a003eff9f0043ffa10049ffa4 +005effae0064fcad006afaac0066f4a10062ef96005fec90005dea8b0058e580 +0054e075004bd55f0046cf540042ca490043c7460044c5440046c4450049c347 +0052c04b0057be4d005cbc500060ba520065b8550067b756006ab657004bd560 +0072b35b0084c166008cc86b0095cf700099d272009ed67500a7dd7a00b0e480 +00c1f18a00c6f48800ccf78700c8f17a00c4ec6e00c2e96800c0e66200bce055 +00b8da4900b0ce3000acc82300a8c31700a6c11300a5bf0f00a4c51000a4ca12 +00a2d61500a1db1600a0e11700a0e31800a0e619009fec1a009ef21c009df71d +009dfb1e0097f4190094f0160091ed14008feb12008eea11008ae60f0087e30c +0081dc07007dd705007ad2030079d0030078ce030076cb030073c7030071c303 +006fc003006bb803006ab6030069b4030066b0030065ae020062a902005fa402 +00599a02005695020053900200518d0200508b02004d8602004a800200477b02 +0045780100578b0c005b8f0e0060941100699e160072a71c007ab0210083ba26 +0095cc310096d5390098de410091df45008be049007fe2500072e4570066e65f +0059e8660040ec74003aed780034ee7c0027f083001ff1880020f0820022ee7d +0024ec720025eb6f0026ea6c0027e9670028e861002ae65c002be556002de664 +002de34d004ade4c0051dc4c0058db4c0066d94b0074d64b0082d44a0091d14a +00adcc4900b9ca4800c5c84800b3c14d00a0ba52008eb458007bad5d0069a662 +0056a0680044996d00319272001f8b77000c847c00008080000c8c8000189880 +0030b0800036b680003cbc800048c7800054d3800060df80006ceb800080ff80 +0080f37a0080e7740080db6e0080cf680080c3620080b85c0080ac560080a050 +0080944a00808844008080400089894d0093935a009c9c6700a6a67400afaf81 +00b8b88e00c2c29b00cbcba800d4d4b500dedec200e4e4cb00cfe0b800b9dca5 +00a4d792008ed37f0079cf6c0064cb59004ec6460039c2330024be200000b700 +0000be000000c4000000cb000000d1000000d8000000de000000e5000000ec00 +0000f2000000f9000000fd000000f10c0000e6180000da240000ce300000c23c +0000b7480000ab5400009f600000946c000088780000808000108c8400209888 +002fa48b003fb08f004fbc93005ec796006ed39a007edf9e008eeba200a8ffa8 +"/> +<palette number="118" name="rw-browns-orange-yellow-with-blues" data="00804040008c4c4c0092515100995757009f5d5d00a5636300a8666600ac6969 +00bb777700c2787100c9796b00d07a6500d87b6000df7c5a00e67d5400e97d51 +00ed7e4e00ff804000ff834500ff874b00ff8a5000ff8e5600ff905900ff925c +00ff996700ff9c6c00ffa07200fe9c6d00fe996900fd946200fc905c00fb8850 +00fa7f4400f76d2b00f5641e00f45c1200ef540900ea4c0000e64b0000e24a00 +00d2440000ca410000c23f0000ba3c0000b23a0000ae380000aa370000a63600 +00a33d03009d4a09009a500c0097570f00945d1200916415008f6716008e6a18 +0090791d00957d1e009b821f00a0862000a68b2100a98d2100ac902200b19423 +00b7992400bfa02600c3a63200c8ac3e00caaf4400cdb24a00d2b85600d6bf62 +00dfcb7a00e5d28900ebda9800ecdb9000eedc8900efdc8500f0dd8100f1de7a +00f3df7200f6e16300f7e25b00f9e35400f9e35200fae45000f5de4800efd940 +00e4cd3000dfc72800dac22100d7bf1d00d4bc1900cfb61100c7ae0500cd9c05 +00d3890400df650300e4520200ea400200ed370200f02e0200f61b0100fc0901 +00f0000000e1000000d3000000cc000000c5000000b6000000a8000000990000 +008b000000841414008b1e1e0092292900a13d3d00af515100be666600cc7a7a +00e9a3a300f4b2b200ffc1c100fbc1bc00f8c1b700f0c2ad00e9c2a400e2c39a +00dbc49000ccc57c00c8c57700c5c57300bac66400bdc86b00c0cb7100c3cd78 +00c9d28500ccd48b00cfd79200d0d89500d2d99800d5dc9f00d6dda200dad1ac +00dfc5b600e7acc900e9a6ce00eca0d300f094dd00f488e700f97cf000ff6aff +00ed79f200e87cee00e380eb00da87e500d18ede00c896d800bf9dd100b6a4cb +00acabc400a99dba00aa94b600ab8bb300ac79ac00ad67a600af559f00b04398 +00b31f8a00b4118500b5048000b6147a00b8237300b9336d00ba436600bc5360 +00bd625900bf725300c0824d00c1914600c2994300c69f4e00caa65a00cdac65 +00d5b97c00d7bc8200d9bf8800ddc59300e0cc9f00e6d5b000e0d0a700dbcb9d +00d5c69400d0c18a00cabc8100c4b77700bfb26e00b9ad6400b4a85b00b1a656 +00b89d4d00be934400c58a3b00cc813200d2782900d96e2000e0651700e65c0d +00f04e0000f2550a00f35c1300f5631d00f66a2600f8713000f9783a00fb7f43 +00fd874d00fe8e5600ff915b00ff976400ff9d6e00ffa47700feaa8100feb08a +00feb69400febd9d00fec3a700fdccb500f0bda900e3ae9c00d5a09000c89184 +00bb827700ae736b00a1655f00945652008647460080404000874747008d4e4e +00945454009b5b5b00a1626200a8686800af6f6f00b5767600bf808000c38787 +00c68f8f00ca969600ce9e9e00d1a5a500d5adad00d9b4b400ddbcbc00e2c7c7 +"/> +<palette number="119" name="rw-reds-blues-greens-pinks" data="00ff000000d3161600bd212100a72c2c00913737007c42420071474700664d4d +003a6363001d71710000808000008b8b000096960000a1a10000acac0000b1b1 +0000b7b70000cccc0000d7d70000e2e20000eded0000f8f80000fbfb0000ffff +002cf0ff0042e8ff0058e0ff006dd8ff0083d1ff008ecdff0099c9ff00afc2ff +00c5baff00ffa6ff00e9a2ff00d39fff00bd9cff00a799ff009c97ff009196ff +00668fff00508cff003a89ff002485ff000e82ff000781ff000080ff000b80ff +001680ff002c80ff003780ff004280ff004d80ff005880ff005d80ff006380ff +007980ff007785f400758be9006a96d3005fa1bd0059a6b20054aca70049b791 +003ec17c0028d750001de23a0012ed240009f6120000ff000016e900002cd300 +0058a700006d910000837c000099660000af500000ba450000c53a0000db2400 +00f10e0000e90b0000d3160000bd210000b2260000a72c0000913700007c4200 +00505800003a630000246e0000197300000e790000008000000a750000146a00 +001e5f0000324900003c3e0000463300004b2d0000502800005a1d0000651200 +00810000008c000000980000009e000000a4000000af000000bb000000c70000 +00d2000000ea000000f0000000f6000000fd000000f2160b00e82c1600dd4221 +00c76e3700bc834200b2994d00aca45200a7af58009cc5630092db6e0087f179 +0080ff800080e9960080e39b0080dea10080d3ac0080c8b70080bec10080b3cc +00809de200808ef0008080ff007a80f4007580e9006a80d3005f80bd005480a7 +0049809100338066002d805b00288050001d803a001280240007800e00008000 +002c841a003784200042852600588733006e894000838b4d00998d5a00af8e66 +00c5907300ff959500ff939300ff929200ff909000ff8d8d00ff8b8b00ff8888 +00ff838300ff818100ff808000ff7e7e00ff7b7b00ff797900ff777700ff7783 +00ff768e00ff769a00ff75a600ff75b100ff74bd00ff74c900ff73d400ff73e0 +00ff72f800ff71fb00ff71ff00ff6bed00ff65db00ff5fc900ff5ab700ff54a5 +00ff4e9300ff488100ff426f00ff3c5d00ff374b00ff2d2d00fa293a00f62548 +00f1215500ed1e6300e81a7000e4167e00df128b00db0e9900d60aa600d106b4 +00cd02c100ca00ca00cc00b900ce00a700cf009600d1008500d3007300d50062 +00d7005000d8003f00da002e00dc001c00de000b00df000000d90c0600d4180c +00ce241300c82f1900c33b1f00bd472500b7532b00b25f3200ac6b3800a6773e +009d8a48009d7e42009e723c009e6635009f5b2f00a04f2900a0432300a1371d +00a12b1600a21f1000a3130a00a3080400a4000000a00000009c000000980000 +0094000000900000008c0000008800000084000000800000007c000000750000 +"/> +<palette number="120" name="rw-reds-browns-golds-tans" data="00ff000000fd0a0200fb0f0300fa140400f9190500f81e0600f7200600f72307 +00f42d0800f3320900f2370a00f13c0b00f0410c00ee460d00ed4b0e00ec4d0e +00ec500e00ea5a1000e85f1100e7641200e6691300e56e1400e4701400e47315 +00e17d1600e0821700df871800de8c1900dd911a00dc931a00db961b00da9b1c +00d9a01c00d89d1e00d89b1f00d89a2000d7982000d7972100d7962100d79622 +00d6922400d5912500d5902600d58e2600d58c2700d48b2700d48b2800d48a29 +00d4882a00d3852c00d2832c00d2822d00d2802e00d27f2f00d17e2f00d17e30 +00d17a3100d0793200d0783300cf763400cf743500cf733500cf733600ce7237 +00ce703700d1713400d2713200d4723000d5722f00d6722e00d7732d00d9732b +00dc742800dd742600df752400e0752200e2762100e2762000e3771f00e5771d +00e6781c00ea791800eb791600ed7a1500ed7a1400ee7a1300f07b1100f17b0f +00f47c0c00f57c0a00f77d0900f87d0800f97e0700fa7e0500fc7f0300fd7f02 +00ff800000fa7e0000f77c0000f57b0000f47a0000f37a0000f0780000ee7700 +00e9750000e6730000e4720000e2710000e1710000df700000dc6e0000da6d00 +00d86c0000d36a0000d1690000d0680000ce670000cb660000c9640000c66300 +00c1610000be5f0000bc5e0000bb5d0000ba5d0000b75c0000b55a0000b25900 +00b0580000b55f0800b6600a00b7620c00ba651000bc681500bf6c1900c16f1d +00c6762500c8792900cb7c2d00cc7d2f00ce7f3200d0833600d3863a00d5893e +00d88c4200dc934a00dd944c00df964e00e19a5200e49d5700e6a05b00e9a35f +00eeaa6700efab6900f0ad6b00f3b16f00f5b47400f8b77800faba7c00fdbe80 +00ffc18400ffba8000ffb87f00ffb67f00ffb27d00ffae7b00ffab7900ffa777 +00ffa07400ff9e7300ff9c7200ff987000ff946e00ff916c00ff8d6b00ff8969 +00ff866700ff826500ff7e6300ff7a6200ff776000ff735e00ff6f5c00ff6b5a +00ff645700ff625600ff605500ff5d5300ff595100ff554f00ff514e00ff4e4c +00ff4a4a00fe4d4b00fc4f4c00fb524c00fa544d00f8574e00f75a4f00f55c4f +00f45f5000f3615100f1645100f0675200ee695300ed6c5400ec6e5400ea7155 +00e9745600e8765600e6795700e57b5800e47e5900e2805900e1835a00df865b +00de885b00dd8b5c00db8d5d00da905e00d8935e00d7955f00d6986000d49a60 +00d39d6100d39e6300d49f6400d4a06600d5a16800d5a26900d6a36b00d6a46c +00d6a56e00d7a67000d7a77100d8a87300d8a97400d9aa7600d9ab7800daac79 +00daad7b00daae7d00dbaf7e00dbb08000dcb18200dcb28300ddb38500ddb486 +00ddb58800deb68a00deb78b00dfb88d00dfb98e00e0ba9000e0bb9200e1bd95 +"/> +<palette number="121" name="dg009" data="00130b170027182f00361a2f00461d2f00511b2c005c192a00650c26006e0023 +00711c31005d1c2d004a1c29004821320047263b004d3a5e00534f82005a5d8b +00626b94007366ab00625c8d00515270004e4f6c004b4c68004a4b6700494a66 +006138600059294700521b2e003e1c32002a1e3600271b310025192d00221a29 +001d192800191b2800171b2800151b290011222f000d29350013363d001a4345 +002b464f002c3c4c002d3349002c293b002b202e00331d2b003c1a2800351928 +0029113100251d3200251f35002622390025203700241f3600241c320025192f +00251a2b0025192a0026192a0025192900251a280024192700241927001f1927 +001d1425001a1f32001b2739001d304100222f4600282f4b0031305a00313e5e +0042436100454663004849650046486200454760004547600045476000444561 +00413f6700434a7400464e7a004a5281004f59880054609000556f8600526e72 +00494a66003d4a5a00324b4f00324843003345370026293a002c294600323151 +003d3b62002e5d6300365b69003e5a700043606f0048666e00516f7900747ca1 +00707ba9005f6491004e4d7900494d7800454e770049676f00586e8600747ea1 +006e8bab007080bb00737fb100777ea8007b6fa100916298008b5c9200624887 +004a4b6700444465003f3d640039375d0033315600272646001b183700151a30 +0010163000151b2b00161e2c0017212d0019232f0018222e00191f2d001c1b2d +00231b2a00241a2a00251a2a00251a2a00251a2a00251a2a00251a2a00251a2a +00251a2a00241c2900241d2a00241e2c001b2c360017343c0019383d001a373d +0022283e0019293e00112a3e000a2735000f172e000000190000001900000019 +000f1521001c1b2b001e1c2c00211d2e00201e33001a1f32001322350014212a +00161c2a0017192900181729001a152b001e152a0020192b00231b2a00251a2a +0026192a002b14260032121f004c012000500f250057182900541f3300631e31 +00b53c5d00b13f5c00ae425c009d4e6d00c5668e00c97d9b007e899f00777c9a +00585280004c4d69004c4d69004a4b6700494a660046476300444561003d3f65 +003c3e64003f3d64004445610044465f0046476300484965004a4b6700474864 +00474864004549620042435f0056294600762138008c1e270095263700841c41 +00872b440098465d0093476500864950006d364b004f506c006b789800878bbb +008d8cc500d6dcff00cad6ff008893cb00727dab00546b8d004d4e6a00434760 +002e375600212f4c00293d46002a454e00314452003f405c00424361003f3f61 +0038375900312b4f0026263e0027253b0026243c0025273e0028324b00353a57 +003a3a5e003d316100352853002a2b4a00242841002423450033355b0028255a +"/> +<palette number="122" name="dg016" data="00191e2200333d46002e353e002a2d3600222c2b001b2b20001b2a1e001c2a1d +001627170014211500121c130012181200121411001113100010120f0010120f +0010120f00101511000e1712000d1a1300132218001a2a1d00182c1f00172f22 +000b2e2a000b3528000c3c2600063d2c00003e3300074135000f45370019403f +00222f4000282b3c00282b3b00292c3b00292c3b002a2d3c00292c3b00292c3b +0021353e001a403b00144b38000f583d000a6542000a6945000a6e4800126b4f +000d5a3a00263b3e0027333a00282c370023272e001e2225001c2225001a2225 +0015243700123240000f414a000c595d000a72710009796200098153000d6847 +000b52340000250e0005180a000b0c0700090d0700070e0700000e0400001105 +0013161b00161c25001a222f0021263500282b3c0029333f002b3c4300354b3e +00305f550046675c003d574d0034483f002f4137002a3a2f0024362600212d1f +0022272300262a30002b2e3d002d303f002f324100353c56003d4a6c00454d72 +00454c6900232c4b0014254100051f38000620330007212e0007242a000a2826 +00091c23000410200000041d00000517000006120002121200061711000b150d +0011170900121411001114110010151100101518000e2022000d2a30000d2c27 +000f3b200010422300124a27000f4c2b000c4f30000a4a32000b472d00104124 +001c3b2b00282b3a00282b3a00282b3a00292c3b00292c3b00282b3a00282b3a +0026293800192b37000c2d36000b2c38000a2b3a000c2a3400112d3100202d33 +00272a3900292c3b00292c3b002a2d3c002a2d3c002a2d3c002b2e3d002e2f41 +00292a3e00292a3d00292a3c00292c3b002a2d3c002a2d3c002a2d3c002c2f3e +002e353f002c3e64002f3f690032406f002c4073001c4362001f334b0018324d +000e2f3800162c3a001e293d0026293a00272a3900282b3a002b2c4000222e44 +000e384400094760000a5f84000c6992000975b3000f9cad0033c6920038a681 +000a5536000b492f000d3e280014251d000c1b180010191800161f1a00151d20 +001c2124001a25290017222800141c2f00131c2d0016151b001e100d00121411 +001115140012161900171a1f001e23270025242c00292b3700282b3a00282b3a +00282b3a00272a3900272a3900282b3a00282b3a00282b3a00282b3a00272a39 +0026293800232935001f242800152a25000b3430000a364300133d4d00104a62 +000b536b00194e70001c5465001b4253001a3546002a303e002a2d3c002b2e3d +002d3a4b003443640037466d0035497c0049517f00374d86002c898e00558b74 +005e76680057616000434c550035425500293a4a002b2e3d00242a36001f2a26 +0014251f00161a1b0015161a00161a1b001a211a001e2724002d3f330028352e +"/> +<palette number="123" name="dg031" data="00040908000a1312000c1314000e1316000e1516000e1716000f161700101518 +000b161c000a1225000a0f2f00101e3700172e4000294c5a003b6b7500497987 +005887990075a9be0079a7bf007ea6c000949fa200aa998500b7a27b00c4ab72 +00ac965a008676540061574e004c4d48003743430047414100573f3f007c5c36 +00b0914e00c1dff900c4e4fa00c8e9fc00bee1f400b5daed00b2d8ed00b0d6ed +005398a700386d78001d424a001b3b420019343b001b383e001d3c41001d3b46 +00215562003d7c8b0046747f004f6c740063645400785c350084663e00917047 +00bea46700cea86a00deac6d00c5975e00ac834f00916e4100765a33005f3d21 +00431f2100241625001f202b001a2b32001a2d32001b3033001b323a00162836 +000e1d22000e1d21000f1d2000101c1f00111c1e00111d1e00121e1e002b2115 +003b2b1b007254320085542c00985427009b6336009f734600ad7c3a00b2763a +00b18f4f00b3945300b6995700b99b5600bc9e5600c1965100cb934600ab6a2a +00985125004e341d002f261b0010181a000e1516000c1212000d1112000a1010 +000d0d0d000c0e0e000b0f10000b1012000c1114000f191a00101f2200182933 +001a373b001e3d52001a405500174459001d55640020424c001e3b43001d3c41 +00112c330010232800101b1d0010191e0011182000101d230011242a001b3337 +001b3a3f00276476003e637d0055628400545f7d00775935005c4126001b3029 +000e1618000b0f0f000908060004050300000201000a0e0f0012171a001c1b2b +0017343c003c748100467f8f00508a9e00528fa2003e819200376972002e6977 +00224851002b545e0035616c0068858900807f8500939fb500abd6e600b3d6ea +0089b7ce005891a400467e9200356c8100194a6b001a373f00132c31000e1c1f +000504090002020500000002000000000001010100080000000b000000170a00 +000d0d0d000d1110000f0e1400100f14001f110800261908002f190400210f05 +0011171700101919000f1b1b00101f2200182c2b00252e2b00282d31001b2e32 +001a2e2f00162e3000132527000e191b000f131400190d0f002e121100461a27 +0055222700612723006c303a0056213d00303338001c34360019343b0015383e +00193a43001a4e5c003a7887005998aa005e9dac0078b1c200599bab0036798a +00225260001b343800182327000d121500080705000101010000000000000002 +00080a09000a0809000c070d000b090a00030406000101010000000000000000 +0000000000000000000a0000000b0a08000e121300101b1f002120280030243a +00673735007a3c310086442400643a2200452f18003825140027190e001c1208 +000e0f11000e1213001014150021101800372010005d320f00a0531f00914418 +"/> +<palette number="124" name="dg085" data="0052320800a6651100885213006b4016005c3818004d311b00442e1d003c2c1f +003b2b1e003a2a1d003a2a1d0039291d0039281e003c281d003f291c00442715 +004a260e004f2d11004a2b120045291400412817003e281a003c281a003b291b +003b2b1e003b2b1e003b2b1e003a2a1d003a2a1d0039291b0039291a00392919 +00391e0b00311c09003422120038281b0038281b0038281b0038271a00392719 +00281504002f1302003711000037170400381d08003a1f09003d210b0048260d +005534130072421e007f4c23008c562800a75d2500c2652200ca6a1a00d37012 +00b6621a00a7602000995e260092551f008c4d18008c4c1c008c4c20008c5628 +0093542b00995c2d00854d2300713f1a006e3d1a006c3b1a0058381f003f2f22 +003c2c1f003c2b20003c2b210048322200553923005c3d210064421f00764f28 +009d5f3800e4975300f1ad5400ffc35500ffcd6f00ffd78900e8cd5a00e6bc50 +00e49b5600ed974900f6943d00ee933700e6923200d28a4200cc7e3c00c06b2a +00a86a410081552e0084522600874f1e00824c21007e4a25006e491d00834619 +0092521500a2541b00b2572200ad5a1800a95d0f0097480d00723f1000683e14 +00673b1400823b0700863c08008b3e0a0099581400a5731e00ba741500cf7713 +00b77129009e64320085583b007d54370075503300704e33007f5a3d00a67145 +00c6955a00cfac9000ba947500a57d5a008d5b3a00744e2a006b401e0053341f +003b2b1e003f2918004327120045281100482a10004d2c00004828000043240f +003d190b004127100041271100422712003a281a0039291a0038281b0039291c +003a2921003a2920003b2a20003b2a20003c2b21003e2c2000402e220055351e +005b391e00522c1500502b13004f2b11004b1d0e004821000067250000792800 +00864400007e400000763d0000652c000053280000421b00003b0a0000390b00 +003c1400004d2909005e37100082450600924703009340000097480300a25304 +0086552c00825331007e52370071585100675748006e54430064493e0061402d +0067442400683c1f005a381f0047321f003e2e21003c2923003c2821003b2a20 +003c2b21003a2c2100382c200039301f0038301900392b1e0037291e00352820 +0036292000392b2000392b220038292400362c22003c2e23003f2e2400402b28 +00553c3500543f2c00623d230070432200794d2800805c3c0091694600966844 +009570550096755200a4735200a77b4c00ae723e00b16c3300a7642d00bb671f +00c9691300c7660800ac620900854a06007a4205006c360a00552e07004d250b +0041200d00431f09004e2801005e2a00006a350b00753b09005b3715005b3a1b +004b3013003f2c1d003c2c1f003d2a1b005230170067381c0082421200a04f17 +"/> +<palette number="125" name="dg086" data="006c686300dad1c800e0d4cf00e6d8d700e2d4d300ded0d000dacdcd00d7cbcb +00d0beba00d1b3b500d3a8b100d5b2b800d7bdc000d7c3c400d7c9c800d8ccc9 +00d9d0cb00e1d3d200e3d2d300e6d2d400e4d3d400e3d5d400e3d5d300e3d5d2 +00dfdbd000e0d3cf00e2cccf00e0c7ca00dfc2c600dcc1c500dac1c400dabfb6 +00d3b8af00cda2ab00c99ca500c6979f00bd7a8600b45d6d00ab536500a34a5e +00954256008a3e51007f3a4c00863d50008e4155008d4155008d4256007a6760 +007a726700857b6f008479730083777700847c7600858175008b867a00918b7f +00afa6a700c1abae00d3b0b600d8b7bd00debfc400dfc2c600e0c6c900e0cccd +00e5d7d700f4e5e200f9ece500fff3e800fff5f100fff7fa00faf2f000f3f0eb +00eddfde00eee5e300f0ece900f1e6e400f3e1df00f1dfdf00f0dddf00f2e0d6 +00f6dbd000e3d0cc00d3c7c300c4bfbb00c0b9b400bdb4ad00b3aba0009f978a +00817b7b008a7c7f00937e83009a848400a28b8500ab9a9000b7b0a800cdb4ad +00d8bdb400d9c5be00d8c6c300d8c8c900d8c8cb00d8c9ce00d9cbcb00d9cbc8 +00d6bbb200cdaaa800c49a9e00c0889200bd768600ad526400a8475a00aa4a58 +00b0576900c5819000c0889200bc8f9400b99a9500b59a9300ae968c00a39b90 +00928a7f0097877f009d848000a3818000a97f8100aa7b83009f7d73008d7867 +00907061007d3d4e006942460056483f0057585000695d5d00716c66007d7568 +00a1959500b9a6a200d2b7b000d7bcb500dcc1ba00e0c3c700e3d3d300f1dbd0 +00eed6cc00e2c7be00dec4bc00dac1ba00d5bab100d1b6ad00d0b5ae00c6aa9f +00b79c9500b2979000ae938c00a38b8700a4868400a3888100a58f7700a69e93 +00c2a7a000ceb3ac00d2b7b500d6bcbf00d6c0c200d7c1c300d9c5c600dfcbcc +00e4d2d200e4d4d300e4d6d500e4d6d500e2d0d000dccecd00d8d1c700d3c4c1 +00d4b9b000c8ada600b89f9a00ae938c00a78a8600b08d7a00aca08a00b9ab9e +00bebca700bdb8ad00bdb5b300cbb0a900c6aba400baa69b00b2979000ac908c +00a2868200a3878300ae8f8c00c699a000d4a6b000e6b9b600e9cec500edd2c9 +00f0d5ca00ecd1c600dbc7c800ccc7c300c6c6be00c5bbb200b7aea500b89d96 +00ae938c00b1968f00b99e9700bca19a00c4a7a100cda8af00dbaeb300d7bfb5 +00cbc9bc00c8c7b500aca39c009b858700826d6a00674d500057463e00332c22 +002c231a00523e3f00585c4e006b625d0076685f00796f65007a706f00736767 +007361610094435600984358009b435900a0415500ac516300b96a7d00c58d98 +00c99aa400c79ca300c4959b00b9848c00b35f6f00a84c6300a5465a00a14d5a +00a8566400b0807400977e7a0090837d0087797600888075008c887c008e8478 +"/> +<palette number="126" name="dg089" data="0039393900747474006f7174006a6f7500636a78005d657c0058627700536073 +004e5c690041607a0034648c00486780005c6a750067717a0072797f00767c7f +007b7f800082858c00858586008986810087877a0086897400888779008a857f +0085898a00a6a1a000c8bab700c8bebf00c8c3c700ccc3ca00d0c3cd00d4c5c8 +00d6c3b400bbbb9f00a39d8d008b807c007f7b7a00737778006e737700697076 +005f6676005a617000555d6a0054586100535458005b4d5000644749007d3a43 +00892f2e00952c2600912b29008d2b2c00723b3b00574c4a0055535700545b65 +00636e7400666c7100696a6f00746a6400806b5a00825f4f00855445008d4a2d +0087342e00812824005b2c280035302d002f31340029323b0030334600333945 +0045515d00595550006e59440081614e00956a5900a3706200b2766b00c3ab91 +00c6b6a9008a89870080807e0076787500707272006b6c700059636d004d5b68 +003b485000273a5300142d560013264100131f2d00101125001c1c1c001e1a1b +001f1b1c002b211700242328001d253a00212b3800263137002632420026364f +00393e42004f3e3500653f2800733426008229250084272200812726007a2f36 +005a2e3b003e475000464f58004e586100545c69005d677100616f7200616e77 +00586170004e5a6a00445464003f5663003a5863002d446400354f6000465663 +00595d6600757671007a787300807b7500817e79007f7f7d007e7f7a0076777b +006670790070777f007a7f8500848487008e8a8900c1b0a600d3b9ba00d2c2c2 +00d3c3c300d1b7a800c6b4a800bcb2a9008c8d88008887830085827d0080817b +007874710076746f0075756d006c774d006a7940005f7a47005e7837004a713c +00515c62006162670062676500636d640079746e007e807d00888d8700969c9c +00d1bcb900d0bfbf00cfc3c500d3c7c700d5c9c900d6cccd00d0c8d300c4b9c7 +00b1a6b400868a8d007b7b7b006a6d7200585e6a004b526500435265003c4c63 +00434f5d0046546100495966005e5b62007b624e00934d41009c453c008c4849 +007568570067656600696a6f006c707100746f73006c6b7100676a6f0059626b +00525c68005258640054495100534b3e00565d3e007a463b0092383700963928 +009b3d3e00914b49009c837f00bfa5b200cdadb800bda3b0008c8b8600808686 +007b7b79006b6f72005f6273005b627400575d6d00545b6b00555c6c00566270 +00585e6c005e63690060636a0061646b005c6272005961740057607100585d70 +0059616e0061666a006f7072007b7b790087868b00bda4aa00ccbcaf00cdc3c2 +00c2c2cc00b1aebf00868a8d008085880075817f006e7776006a7378006c7175 +007371740077746b0076786d00797a750080837c008a878000d6b09b00a89a99 +"/> +<palette number="127" name="Apophysis-040426-1crabgrass from pat phillips patrx.deviantart.com" data="00ed846d0094494c0070374b004c264a002f174e00130952000f0654000c0457 +00000554000025470000463a0000622900007f180000790f00007306000d4003 +001b0e0000472304003d1e1800341a2c001a471d0000740e0000770900007b05 +00007e080000790b0000750e00006d190000652400005a330000504200003c5b +002211560062323700773c2f008c46270046622100007e1c00007e1c00007f1c +00006148002b456400562a810063327d00713a7a007b3f7f0085448400954a84 +009b498000af576e00a9547c00a4518b009d4e9000974c95008d46910084418d +00572a4f00492447003c1e3f003f1f2f004321200052282900613033007f404c +00a7524600db6c5300df6e5e00e4706a00e4706a00e4716b00ec756900fd6f69 +00dc6d8f00e06fa900e572c300c764ae00aa569900925286007b4e74003f693a +0000792f0049732b007b642d00ad552f00bb5c2b00c9642700e47b5000f17752 +00fd7e4a00f3794e00ea745300dc6d5300ce665400b35b4f0088445700643052 +002f4a4c0000763100006e29000067220000612800005c2e0000425900003e59 +002e353e004e3659006e3775008140820095498f00ba5ca700db6cbd00e771c4 +00ed77c800f57ed300ee79cb00e774c400d369b700c9638e00cd548a00b95b97 +00b0589d00a3519600964b8f00884387007a3c80006434840033196c00321862 +002d143b0013082a00110830001008360003005100000f580000215a0000145a +000402330002011900000000000b050b00170b17002211160014092000002046 +0000413600007f1b00007f1e00007f2100006f43006a6077008d4689009b4c93 +00b75ba400b85ba300ba5ca300a451980091488f00723773005a2a5500502b54 +005329500066343c00773c420088444900b1585000b95c6c00b65a7a00b45a9e +00a854b400b75cbf00c764ca00e371c200ee76c800f47acc00e4c3b700ff8b95 +00ff8b6800ff8d5c00fd7e5600fd7e4500f67a3500f5802e00d1681d009d4d18 +00763b1c006d3621006431270047221a005a2c230063303a00823f4c009a4c5e +00c1615200c8645400c9645300c4615300bf6452009a4b630080406d009b4d68 +00a3518d00a04fa100a552a5009f4ea100954da7008f489f006b3598004a2475 +00231063000905580000075500001f5b00002f5b0000335b0000465c00005254 +00005c4f00005b52000047520032162c003c1e1c005324270092492100c5633c +00d8605a00d2696200d1686500c7648a00ce6a8d00de6dbe00e272ce00e46be2 +00dc6ecf00b95ba8009d4c9a00804182006b35640066335a00673353007a3c65 +007c3d6d0088455200a4572b00be5e2d00d0683800d9725400f17b6e00fc7e8f +00fd7e9800f379ca00fc7ed200fb7dd000f076cd00db6dbf00ac558000c060a1 +"/> +<palette number="128" name="Apophysis-040426-12bs1fl" data="00eef2d700105b2c003b731b00678c0b007ba2160090b8210094bf270098c72d +00b5cc2d00afbf4e00a9b37000b1b39e00bab3cc00cbcdd000dce7d400deead9 +00e0eede00f4ede900eff0e400ebf3df00e1eede00d7e9dd00d3e4d900d0e0d5 +00bac4bb00b3c99800adcf7500a089480094431b008544170077451300602e01 +00492324003d6c8800528e9b0068b1af0089b2a900abb4a300c1b59500d8b787 +00f4d08800f7e17f00faf37700faf47800faf57a00f4eb7f00efe28500efdaad +00e2e5cb00e8edd700d8e2b000c8d78a00a8cca10089c1b9008ebbbc0094b5c0 +00a8adc400a7aac200a6a7c1009c5c990093127200812a64006f4356006f5a2a +00656722005f656d00667e8b006e97a90080a5b30092b4bd00b1cdcf00d1ccda +00dfd29f00dabe8300d6ab6800a57b6a00744b6c006540680056366400362a56 +00171540000c224800133350001b45590026446100324369004a37630048325d +00788b6d009ba17400bfb87b00c3af7800c8a67500c6a57700b6938200a9887c +00a47981006b93a6005682980042718b00396f8000316e760038668300507992 +008c89ad00b9959b00e6a28a00e8a68200eaaa7a00f5a87800fc7e7700fb8785 +00fbaa8000ecd8a700e8e0ad00e4e9b400cfdbcc00bed7d400adcbcd0090b3be +006a93a6004f7c940034658200236a7f0013707d000c6b770007697500126877 +00285576003d5074004f59780062637d00a5717c00c3998700dec09000e5e6a9 +00fcf2ce00efe3ab00e3d58900ecde8700f6e88600fceec200fcf3d000fafad5 +00f4f7df00f8f9e700f1f6e400ebf4e100e8f2e000deede000cde5d500c2d9d7 +00a3adc3009a9fbb009192b3008e80750091774c00796c53008e6247009f703c +00a3744000c0c38100c8cda300d0d7c500d7e2c800e8ecd700f1f1d800f4f9ce +00d7d19100c4c97900b2c262008aab260093932300a2860d007f4f1c0062631f +0031310e0029311100000000000000000000000000000000000b0c0b0022342f +00598099006c93a70080a7b5009dbec500a5c3c900b1c2cd00a6c4ca00a2bfc7 +00a6a99300928b5b00958e3e0080813c0066674000302d54000c182900000000 +00000000000000000002023a000a1d470020345e002b2f6400433a7200543966 +004b3c5400313c4d00475727006a61200054372d00484b2e002740450018482c +00024f340016482d001e3333001b2421001d24310012113b000d0c3b00050337 +00060e430026204a003e396f003f6174006b6e970090808e008f8d7d009b9975 +009fac6c00c8dc3d00e4ea4d00f0f66000d7e26a00d3ba8000cd9b6600be5a45 +00c73e2d00ab7f4a00b69d7000c9c78100d7e38a00eef47800f7f27100f9f871 +00fbf96f00f8f57100fcf07e00f2e5c000f3e3d700f2f5dc00f4f3d900e4e6b1 +"/> +<palette number="129" name="Apophysis-040426-1cometnuc" data="00cd071200cd071200c9091300c60b1500c60c1500c60d1600c40d1600c20d17 +00ca091300cb081200cd071200cd071200cd071200b0151b00942424007e2f26 +00693a29006fa623005a9c2300469224005d6325007434260096242100b9151d +00ca091300cb081200cd071200cb091300ca0b1400c60d1600c21018007f2e27 +004c482a007bac77008ab497009abcb80070a7980047927900589a4d0069a322 +0099bb2600b1c72d00c9d43400cdd53500d1d73700cbd43400c6d23200bece2f +00a8c32a006fa623004e9623002e8624001e7e25000f7626000e6e25000e6725 +00156426001e5f2600275a270055432600842c2500a31c1e00c20d1700c60b15 +00ca091300c60b1500af631e0099bb2700afc62c00c6d23200f5e95b00fded80 +00d5d9b200b7cab5009abcb9005e9e9800228077001b7c4e0015792500086a26 +00026d2500097325000f76240015792300186d24001b612500275a2900464b29 +00b5131c00bf0e1700ca091300ca091300ca091300ca0b1400c60d1600992122 +005d3f28001b61270011652600086a2600056b2600026d2700026d2700086a26 +00156426001e73240028832200318723003a8c24004c9523007faf230085b278 +00b6cab900f5ea9600f9eb8500fded7400f9eb6200f2e85400e1df4300d1d737 +009ebe270086b224006fa62200609f2300529824003489230021802500157925 +000f76240015792300217f22002e862200469222006fa623008ab4240099bb26 +0074a923005a9c2400408f25003d8d23003a8c22004c95210074a923009ebe27 +00ced66600dbddb000e1dfad00e7e2aa00fdee7700e6e24700acc52b00c60d16 +00ca0b1400ca0b1400ca0b1400c60d16009e282c00693a2700464b2700215d26 +00215d26003a512a004b482a005d3f2a007f2e2700c60d1600ca091300cd0712 +00cd071200cd071200cd071200c60d1600992123006e372700633c2a003a5128 +0034892300408f23005e9e21007faf24009ebe2800c2d03100dbdc3e00f2e854 +00e1df4200d7da3c00cdd63600b5c92c008ab426005e9e210034892300288322 +002180230015792500157925001c7d81002f868d002f8678002e8626001b7d24 +0015792500097325000270240002702400026d2500086a260015642800215d28 +00464b29006e372900793127009424250074342900633c2700464b29002d5726 +00335429005742290094242400c60d1600ca091300ca091300ca091300ca0913 +00ca091300cd071200cd071200cd071200cd071200cd071200cd071200cd0712 +00ca091300c60d1600b11c2200bece2f00f0e74f00f7ea5d00fded7000fdee7b +00f9ec8e00f9ec9000faec8d00f7ea9300f8eb9400f4e99a00dedeae00cad4b6 +00a4c1b900cd0a7b00c60d1600ca091300cd071200cd071200cd071200cd0712 +"/> +<palette number="130" name="Apophysis-040426-1passionscross" data="00347d1800ac5da4008d3b90006e197d0057166e0040145f00361c59002d2554 +003b5b7b00674e870094429400a2529d00b163a600b568a900b96dac00b96dac +00b96dac00a3529e009341940084308b00792484006e197d0068137900630d76 +0057026e0051056a004c086700490b6500460e6300490b65004c0867005d0872 +00741f8000a3529e00aa5aa200b163a700b568a900b96dac00bb6fad00be72ae +00d18bbb00d28dbd00d490bf00d08bbc00cd86b900c981b600c67db300be72ae +00b96dac00a3529e009341940084308a00701c7e005d0872005d0872005d0872 +0052026a00550268005802670082304400ad5e2200bd722b00ce873400fd9039 +00db9a3e00be72ae00c277b100c67db400c87fb500ca82b600d895bf00f2be4c +00f8ed5300f7da5100f7c84f00da9d7e00be72ae00b567a900ac5da4009e4d9a +009442940084308a00766b470069a6050066a4030063a202004c900a00216d23 +002d2554003c165d004c08670051056a0057026e005d08720069137900741f80 +007f2b870094429400a4559e00b568a900bb70ad00c278b100ca82b600d490be +00cd86b900c57cb300be72ae00b96dab00b568a900b568a900b96dac00b96dac +00b96dac00c278b100c47ab200c67db300ca82b600cd86b900d490be00db99c2 +00e7abc900f0bcbe00f9ceb400e1d9a000cae48d00cae48d00f7c8b100fdddb4 +00fde75500f7ed5300f5ed5200f3ee5100f0ef5000dbeb4500b9db3200a3ce26 +0063a202003f8514001b6827001b4f38001b374900331f5800331f5800331f58 +00272b500002533600025336000253360009583200095832000f5d2f0015632b +00095832000555340002533600024d3a0021314d003a1a5c00460e6300630d76 +00741f800084308a00792483006e197d004c08670040146000272b50000e4241 +00287320003d841300529507005e9e000069a6050069a6050069a6050074af0c +00a3ce26006faa080069a60500347d180015632b0021314d00331f58003a1a5c +00272b50001e334a00153c4500025336000958320015632b00216d2300408711 +005899030069a605007ab20f00badc3300d4e84100e6ee4b00deec4700d1e73f +00bedd350090c26400a8d17600d490be00d895bf00de9ec300de9ec400d895bf +00d490be00cd86b900b96dac009e4d9a008f3c910079258300630d7600460e63 +003a1a5c00272b5000153c45001c5804007b5b17005e4060006e197d00691379 +005d08720057026e0057026e0052026a0052026a0052026a004c086700460e63 +003a1a5c00272b50000e424100216d2300468b0e005899030069a60500b66927 +009e4d9a00ac5da400b163a700b96dac00b96dac00be72ae009ac86c00c2e037 +00deec4700f0ef5000f3ee5100e9ee4c00d1e73f00a3ce26006faa080008473e +"/> +<palette number="131" name="Apophysis-040426-1butterflyflower" data="001b1342001b1342001b1342001b1342001b1342001b1342001b1342001b1342 +001b1342001b1342001b1342001b1342001b1342001b1342001b1342001b1342 +001b134200352832003528320035283200352832003528320035283100362931 +005e5315004d461f003d3a2a002c2636001b1342001b1342001b1342001b1342 +001b1342001b1342001b1342001b1342001b1342001b1342001b1342001b1342 +00352832004c402100645910006d640a0076700400807508008a7a0d00847523 +006c69300071773f00736f3800766832006c60210062581100605512005e5314 +005e5314005f55130061571200675b0f006d5f0d0078670a00836f08008b8a0d +00a1a42b00d0c95100cdc54e00cbc14b00cac34900c9c54700b3a84300787524 +0063581100605513005e5315005e5315005e5315005e5315005e5315005e5315 +005e5315005e5315005e5315005e5315005e5315005e5315005e5315005e5315 +00544a1c003c342a00241f39001f193d001b1342001b1342001b1342001b1342 +001b1342001b1342001b1342001b1342001b1342001b1342001b1342001b1342 +0021164000392e310051472300574d1c005e5315005e5315005e5315005e5315 +005e53150035283200281d3a001c1342001b1342001b1342001b1342001b1342 +001b1342001b1342001b1342001b1342001b1342001b1342001b1342001b1342 +002125390050441e00574b19005e531500655b0e00695d0d00685d0d005f6411 +003f4427002e2f30001d1b3a001c173e001b1342001b134200352832003c302e +005c4c16005e5315005e5315005e5315005e5315005e5315005e5315005e5315 +005e531500493d230035283200352832003528320053442d005c632900715b2a +0082771600afa72e00b8b43500c1c13d00b6ad3400ad9c2e009d941d007e7804 +006f6406006e6107006e5f0800726505007f72020083730700837109007a790c +0079900800848b08007e7f370074766d00666d4d00554c370036293200352832 +00543f210059491b005e5315005e53140068420d00432f2a00352832001c1342 +001b1342001b1342001b1342001b1342001d1342003528320043342b005e5315 +005e5315005e5315005e5315005e5315005e5315005e5315005e5315005e5315 +005e5315004d432500352832001b1342001b1342001b1342001b1342001b1342 +001b1342001b13420035283200403e390060523400665e2c005b5530003b2f2f +003528320035283200352832001b1342001b1342001b1342001b1342001b1342 +001b1342001b1342001b1342001b1342001b1342001b1342001b1342001b1342 +001b1342001b1342001b1342001b1342001b1342001b1342001b1342001b1342 +001b1342001b1342001b1342001b1342001b1342001b1342001b1342001b1342 +"/> +<palette number="132" name="Apophysis-040426-1Watcher" data="0041070000160a160013131d00101c2400102a3400103944000d4041000a483f +002e573d004c492e006a3c1f007c3816008f340e00b32a0c00d8200b00e6260f +00f52c1400f4401d00e45f1d00d57f1d00a89c1e007bb920006f8b1900645e13 +00c6502e00ca372d00ce1f2d00a42a1f007a3512006f35150064351900583a1d +003a3a27001c4b4200155748000f634f000c6a56000a715d000c7a55000f834e +001c622800344f26004c3c24006038190075340f0082320e0090300d00c9420e +00f24d3500db4b3200b0432500853b1900802b1c007b1b20007d291b00803716 +00753e1f00673f2f0059403f003739470016334f00131e4c0010094a003a0440 +0040033b002e1c16002b28200028352a0025392f00223e340022544800216b53 +00286a5500316554003b6153003d5a45004054380049503400524d3000594e42 +006448450047502300614720007b3e1d00783a18007537140075301200852005 +009a0b0400b9051a00d8003100e1023000eb053000f7052900fd033600fd0137 +00fb053700ed072c00c31a1b009a2e0b00952f130090311b00853c1d007f3b18 +007a2804007a1d04007a1304007a1106007a0f0800800b090085031700740925 +006a060e005e090000580d040053110800410f0b002910080022070d001c0d17 +002f1e1a003b1d0d00471c0000581700006a1301007510040094210200b11d09 +00d4250000ed0a0100e0080700d4060d00cd181300b1210800ac260000be1914 +00d51a3800cd286600c6369500dc62a200f38eb000a8b7c60063b0ae004d9e72 +0074a65e00851d25008c1a200094171b00c91a0d00d8130f00d80d0e00d1100a +00b1250100b1230300b1220600c9170900db0d1400e9072000f7062700fd0040 +00fe036200f7143500ed113400e40f3300b8222f008a391c00801d1500ac081c +00e10e2000e70a2600ed072c00f0022400e90d1b00cd040700a3120d007b0907 +006a0e010070030b008b031700b9012500de043700e90a2600e1161500f72b0f +00f7160500f9100300fc0a0200f90f2900f0223400f8353400f9483400f94e36 +00f56d3900f3c49000f3f8f100fee4ca00e7c58c00d8a63b00fc6e3300fc6433 +00fa4c2300fa433400f8423500f83f3600fd323000fc283300fa253300fd1933 +00fd102f00f7092700e7023600be0a310095061c009014250075332c00535136 +0063472c00162d2b0047452e004d442b005e45260064272500531f1000472003 +005322040070391a0075412200948a2a00a3b66900fed27f00f2f78200fdf85f +00f9d74700fa763300fd682e00e9673100d5663400926257006a475500595237 +0046593e003a604600345b4000294759000a576900155062004346810059504e +0059464600533a3400402b35003531300034251b0040130b0041070d004d0011 +"/> +<palette number="133" name="Apophysis-040426-1knotted" data="00972c4e0088344a008834490088354900883549008835490088354900883549 +0088354900883549008836490088354900883549008834480088334700883347 +008833470088344a008034650079348100882f6f00972a5e00972b5700972d51 +0088314700823529007d390c0082372a00883649008836490088364900883347 +008830480088114e008f204f00972f5000a52c5600b3295d00c44f4100d57526 +00fdfc5900b6d733006fb30e00618e120053691600395e17001f5419000c1f23 +000a4c0a00216a000029630e00315c1c004c50250067442f006f403800773d41 +0088384800883748008836490088354900883549008835490088354900883549 +00883549008834460088354700883649008837480088394800883a48007d3e4a +00555332003d715b00258f8500406f61005b503e00614d3c00674a3b00774040 +008839480097325300972f5200972d51009e2c5500a62b5a00a6285b00b32461 +00b3246100b31f5f00b31b5d00b41c6000b51d6400c41b6600e9037d00fe0280 +00fe008300e3097900cb166d00b3246100ac275d00a62b5a00972c4e00972e4d +00883247008832470088334700883448008835490088354600773c42005b474f +0055395600883a4b0088394900883948008839480088394800883a4800774240 +00555228004c502500434f23003a561d00315e1800315f1f00554c2e00773e41 +00883a4800883549008834480088334700883147008831470088314700973248 +00972d4e008f304c0088334a0088334a0088344a0088344a0088354900883549 +00883649008836490088364900883649008835490088344a0088344a0088344a +0088344a0088344a0088344a0088344a00883549008835490088354900883549 +008836490088394b008839490088394800773d3e00692c180031300800253c04 +00464b250056452c00673f340088344600972b4e00a61f5300a6215700a62157 +00b3215b00b31e5c008835490088354900883549008835490088354900883549 +008834460088344600883446008835460088354900883549008835490088344a +0088344a0088344a0088344a0088344a0088344a008833470088334700883347 +0088324700883247008832470088314700883247008833470088354600883948 +0077424300674a3b0055532f0031642100288e0900007e0800007128000e6828 +001f6c1100256a1b004358240055482f0067463500773f410088384800883a4b +00883a4b00883a480077424300773f4400883a4800883a4b0088394b00883649 +0088344a0097305000972e5100972b4e0097284f00a6275400a62a5700a62459 +00a6215700a7245d00b3245d00b3245d00b31e5c00b31a5d00b3175b00d01655 +00f3000000eb3421009c2d4400972e4d00972d4e00972c4e00972b4e00972c4e +"/> +<palette number="134" name="Apophysis-040426-1artdeco" data="009e8e1100f93c6100fb3d8400fd3ea800fd3ea800fd3ea800fd3ea800fd3ea8 +00fd3ea800fd3ea800fd3ea800f83b8100f4395a00f83b8100fd3ea800fd3ea8 +00fd3ea800fdd5e200fdd5e200fdd5e200fdbf9400fdaa4600fd873400fd6423 +00fd492700fd436700fd3ea800fd3ea800fd3ea800fd3ea800fd3ea800fdd5e2 +00fdd5e200fdd7e500fdd6e300fdd5e200fdd5e200fdd5e200fdd3e100fdd2e0 +00fd3ea800fd3ea800fd3ea800fd3ea800fd3ea800fd3ea800fd3ea800fd3ea8 +00fd3ea800fd3e6d00f0775500e4b13d00dcad3700d4aa3100d4aa3100d4aa31 +00fdad4900fd757800fd3ea800fd3ea800fd3ea800fd3ea800fd3ea800fd3ea8 +00b91c7900461b560054145b00630d610085106b00a8137500cd267c00fd3ea8 +00fd3ea800fd3ea800fd3ea800f83b8000f4395800e4314700d52a3600a84c14 +0063710c00cab94300e3cf6e00fde59900fdefb200fdf9cc00fdf8c800fddf8b +00998c0e008e8708008482030093890b00a3911300d1a82f00fd892e00f73b5d +00db2d7d007f006a005a12540035243e002f274100292a45002e284d003a2152 +00a8137500d2288e00fd3ea800fd3ea800fd3ea800fd3ea800fd3ea800fd3ea8 +00fd3ea800fd3ea800fd3ea800fd3ea800fd3ea800fd3ea800fd3ea800fd3ea8 +00fd3ea800fd3ea800fd3ea800fd3ea800fd3ea800fd3ea800fd3ea800fd3ea8 +00fd3ea800f0375400f63a3c00fd3e2500fd3e2500fd462700ec4f2b00757712 +00576b1200366c1800156e1e001e68230027622800335923003a5831009e1967 +00be1e7900c6230400cb250200d1280100de2f0900f2381700fd522400fd8f31 +00fdc15e00f7ce5d00f2dc5c00fdb85500e4b13d00dbad3600fd5a2400de2f41 +00c2207b0058135c00401e5000292a4500093a3e0021502b00576b12008ac432 +00fdf3b600fdf8cc00fdfde200fdfde900fdd9e600fddfec00fdf3f700fdf9f4 +00fdfdec00fdfbd500fdedaa00fdcd7000e4b13d00d1a8300069740a004c6518 +000a3a59000d38560010375400222d490053152a007b012a008b052300900700 +008b0502007b010f007b012a00591225002f431500335923003a5c20006a3f03 +00a8141200ba1d0b00ba1d0b00b1181000a41117009a0c1c009a0c1c00ad1616 +00b61a0d00ca250200db2d3e00e6337d00fd3ea800fd3ea800fd3ea800fd3ea8 +00fd3ea800fd3ea800fd3ea800fd3ea800fd3ea800fd3ea800fd3ea800fd3ea8 +00fd3ea800fd3ea800fd3ea800fd3ea800ed367d00e9344c00f93c1f00c22106 +006a6f0b00405f1d0029401800223a1c0035243e006f076400b51a7700e41b90 +00fd3ea800fd3ea800fd3ea800fd3ea800fd3ea800fd3ea800fd3ea800fd3ea8 +00db148b00b90577008a046c005e0f3700471b3200354911005268150069740a +"/> +<palette number="135" name="Apophysis-040426-1expl_orange2a" data="009ecd2c009e8414009e7e12009e7810009e7810009e7810009e7810009e7810 +009e7e12009e7c11009e7b11009e7b11009e7b11009e7c11009e7e12009e7e12 +009e7e12009e7e12009e7e12009e7e12009e8113009e8414009e8514009e8715 +009e8c16009e8c16009e8c16009e8815009e8414009e8414009e8414009e8113 +009e7b11009e750f009e6d0c009e660a009e5d07009e5404009e4404009e3504 +009e0f11009e0a17009e051d00c21e2300e7372a00e9482000eb5a1700b97515 +009e6f0d009e6008009e6309009e660a009e6a0b009e6f0d009e720e009e750f +009e7810009e7910009e7b11009e7b11009e7b11009e7910009e7810009e7810 +009e720e009e660a009e6108009e5d07009e5b06009e5a06009e5d07009e5d07 +009e660a009e6a0b009e6f0d009e720e009e750f009e760f009e7810009e7b11 +009e8113009e8c16009e9d1c009eae220080ad3c0063ac56004ca08b00349258 +009e8f21009e7c16009e690b009e6008009e5705009e3e02009e2723009e1d29 +00cc1127009e0c01009e1008009e150f009e2509009e3504009e5404009e5d07 +009e6c0c009e6f0d009e720e009e700d009e6f0d009e690b009e5a06009e4700 +009e2723006f1e7c00543a6b003a575b009c8b3e009e8f20009e8a16009e8a16 +009e8f17009e8d16009e8c16009e8c16009e8c16009e8a16009e8414009e8a16 +009e8a16009e8414009e8414009e8414009e8715009e8a16009e8f17009e9419 +009ec02300b3b33e00c8a65900dcb56300f0c56d00f3d9d600fddbe600f74186 +009e722c009e7b28009e7e1d009e8113009e7e12009e7810009e750f009e750f +009e750f009e730e009e720e009e720e009e720e009e720e009e6f0d009e6c0c +009e690b009e690b009e6a0b009e6c0c009e720e009e750f009e7b11009e7e12 +009e7810009e750f009e720e009e690b009e6008009e5d07009e5d07009e6008 +009e6008009e6309009e690b009e720e009e7b11009e8113009e8715009e8c16 +009e9121006c9337003a954d002e953f0021873a00253e2300081d4000210756 +002d2038008d371a009e4202009e5705009e5705009e5a02009e5a06009e5d07 +009e6008009e660a009e690b009e6c0c009e6c0c009e6c0c009e6c0c009e6f0d +009e720e009e720e009e720e009e750f009e7810009e7b11009e7e12009e8414 +009e8414009e8414009e8414009e8715009e8c16009e9218009ea11d009eb420 +009ec321009ebf22009eae22009e9c1b009e9218009e8f17009e8a16009e8715 +009e8414009e8414009e8414009e8715009e8715009e8715009e8414009e8414 +009e7e12009e7e12009e7e12009e7e12009e8113009e8414009e8a16009e8f17 +009e9218009e9419009e9419009e9419009ea71d009eb022009ec922009ec92a +"/> +<palette number="136" name="Apophysis-040426-1heartFlowers" data="0062a04c00cff72c00d4f93200dafb3800defa4400e3fa5100e0fa4b00ddfa45 +00dace2d00e3b12400ec941c00f5771600ff5a1100f0590800e2590000dd5700 +00d9560000e24f0000d84b0000cf480000b235050096230a00871a0a0078110b +00541b0300522e140051412500523d1500543a050053370200533400006f1900 +007f1f1a00b82d0000c33a0000cf480000c17c0d00b3b01b009fba1a008cc519 +00d5fb2e00d6fb2f00d7fb3000b9db48009cbc600098b37a0094aa9500c5b8c7 +00f5ced700f5ddca00dde99d00c6f67100b3ec5b00a0e346009de245009ae245 +0083c1200073ba120064b405005c810300544f02007449080095430e00a64400 +00ca460000cb320000bc1b0000ad040000ad040000ad0400008b110c00543c03 +00247f03002689060028940a002c7505003156000032560000335700003f4d00 +003a571400514f000075450200993c05009f400200a6440000a4410000873c0f +00363a49001d3a5800043b6700044a5600045a450006611800228802001a9e02 +0019a8150046887700698a81008d8c8c008d8c8c008d8c8c0045838a00449488 +002ea93a002f9a3300318c2d003476250038611e005141250061372a00771d18 +00980e0c00ae000000ae000000ae000000ae000000ae000000ad04000095120a +00514125004d462e00494b380045563b0042613f002d7c7b00438e9d00449b80 +008eb55f0065b017004f871800395f1a00514125006b480c0099410c00ad4a00 +00ad4a0000ab470300aa44060092400f007b3c180051412500502d3000561b45 +00650b5800e5004a00f2084600ff114200ff114100f9002000fc001000e2001c +00b5060400b70a0700ba0e0a00bd290000b9430000ad4a000098624900978c74 +008d8c8c00dac4ca00e6cfca00f3dacb00f0d8c900beb4c5008e9ca400b1797e +00a429220093391f0083491d006ab218005db8240052b8210031940c0008651d +00185a2f0033424400403c420062305600681b710060337f0047698700458393 +0077726200635e50004f4a3e00494b36003f501a0038570c003f501a00514125 +007a231a009f272100a4292200a4292200ad040000ae000000ae000000ae0000 +00ae000000ae000000c9001e00f1001200ff231100ff2d0e00f9410000f43700 +00ff240a00f6300000e6330000a82a230061372a004c4a46004a6c5900398081 +004385a500438da5004286a600476e8700681b710060135200521c2f0054031d +00701c1700701c17007f1f1a008e231d00a4292200a82a2300a92a2300a92a23 +00ad040000ae000000ae000000cf001b00ee002100ff131000ff190e00e2382f +00c7555200cb828000dc808000e5445900d9375100cb002300aa0027009c1c23 +00621656006622750046438b001d4b6200045e4b00405f37003f643b003b6456 +"/> +<palette number="137" name="Apophysis-040426-1H-bird1g" data="0099cb30003a57410054764e006e965b008b7d3f00a8642400b0621c00b96114 +00a84c0200a82b0600a80a0b00a8130e00a81c12009e351400944e1600945420 +00945b2a00b97a3500c1813500c9883600d0823000d87d2b00d07f2d00c9822f +00b97a35007c85330040903100307f2500216e1a0021651c00215c1e00214018 +000e5003003a5705003a5723003a57410030624700276e4e00306149003a5544 +0069375f0081276d0099177b008e147e0084128200791270006e125f00401b72 +003a7c80000e625c000b5b4e0009554100096720000979000018860000279300 +006eb61b0076891f007f5d23006853380052494d003c545700275f61000e7665 +00278c4a0084bf190098ca2600acd53300c2b53b00d8954300c97c4600a82a36 +00ac388d0098348d0084308e0084398e0084438f0084528d0084628c006e5186 +00693d560094343200a61b6000b9028f00c8079100d80d9300d8105a00d81154 +00c9121300c91a0c00c9220500c93f0a00c95d1000d8642e00c96f1e00a85e18 +00943c05006935160045422c002150430024564e00275d5900407f5000579c3d +006ea54700938f4300b97a4000b9804200b98644007f9165006e965b00578654 +00408a4100278c2100278b1b00278b15000e8417000e7f150027861800278017 +0052520600306614000e7a23000e7b22000e7d210009771c0009652900096135 +002155270069450f007e491200944e1600a8521400944e1b007f3c1600693511 +00691a1f006b0f20006e0521006b06260069072c004008460040084700270843 +0027033f00270e4500180b480009094b00210249002704420027083e00210248 +00270e5300271156002714590021204c00273f4a00275f5c00275f6400276055 +0040554a00a8642e00b0723200b9803700b9a72000acd53100accc4700acac70 +0069b2a10076ab7e0084a55b006eb527006eb5270057aa200040933200409037 +00408a41007f6e2400a85e1d00944e160069481d0057351b0057301e00270432 +00271130002714260027181d00270f010027142f0027043200270e4100092056 +00092c52000e322c0009790400097900000e7d200027813000408d3c006e9e51 +0084a15f0099ab6300aca76f00ac829100ac3e7c00942d5a0084224400570e4b +00401445002726410027354000403375006e637c00577d5d006e9a500099ca33 +0084c120006eb51000409e0000278f1200278b1500278e1c00278c2100278c21 +00278e1c00278916003a6c230069631900695d0d00694406007f2b0f007f2a09 +00942b04007f2b08006944060069380c0069311a00691728006e051d007f0723 +0084181800941c0a0094180e0094121a00990b5800b9079100b90b9400c9189d +00ac268e00ac3e9200ac44a300ac3e8b00ac447f00b98f5900acc45400acd044 +"/> +<palette number="138" name="Apophysis-040426-1Emergence2" data="00d29f7400af978b009f857800907365007c69680068606b00625e6c005d5c6e +0063546b0065466900673968007a4175008d4982007c5d84006b7187005e6a84 +0051648200576274005b6059005f5e3f003c3920001a1502001a1502001a1502 +00151402001513010016130000181402001b1505004114180068142b009e1c24 +00c5152200c71a20008e19210056182300361613001714030018150400191605 +0076453e007f484c00884b5b00704e6a0059517a002e498a0004419a002f708e +004a8c9800059afe002a94cd004f8e9d0064886d0079833e00817f2700897b10 +00b3ab0200c8ba0500deca0900ddc80900dcc70a00dcb31900dca02800cf9c0d +00a4801f008153460079535400725363006c64560066764900737a2c00887330 +00be2c2d00982e4b00723169006d249c006818cf008337a9009e578300be944a +00cf9c0f00d09b0d00ceb30d00cccb0e00a1e0080076f603005ee7110019e43b +00707f08006a69040065530100534b0100424301001a1502001a1502001a1502 +001b1603007a343e008d2d4400a0264b00b61b3d00cc113000d40f2a00bc0730 +004f172000341611001a1502001a1502001a1502001a1502001a150200523a0c +0083561300e3760d00eb660e00f4571000f6541300fe551400f7541100f65511 +00c09c2400c0a14000c1a75d00caa56c00d4a37b00beb37100978057007b6558 +00635552007b4c5c007b5260007c586400905a7100aa445900b01a4a00d41950 +00d4051500e41c1400f5341300f5341200f5351100e9241400e11a1500d0162d +00a2232c008b2648008e363d0091463300835114007b630d006f6621006b6541 +00685a51006e60550075675a00b3ae760076a47500a42328008a4572007d6682 +00697a8c004f8180003d8680002c8c8100388f7c004e8c7d00658c4b00887516 +00bfa40b00cac80a00d6ed0900dbf10800dcef0a00d6ed0b00ccd00a00b9ad03 +009a8b0e0062a9430000a15d000fe9af0006e3c20019e7e7001cf9d80013fac4 +008d9a880098946600a48e4500b3883900bc761e00ac611d00684f0f001a1502 +001a1502001a1502001a1502005c4f25007c60310091925000c0bb5d00f2d344 +00e6de3d00cebc3400ac8b24008d8f4e00639c3e0075a53f0089ac3600cdcd0b +00d8ed0c00dbed0b00deef0a00f7e80900f9e70b00f8e30c00f1e20b00e5e002 +00dbc80a00ccb61500af7b2f009179310062705f005d7f6f0050797b00477d59 +003b7159001e1d08001a1502001a1502004313110072193700b62b2800e73d0c +00f5541000f6550f00f45b0b00e4770e00e4770e00e37a1100e17b0f00d2990c +00ce9b0c00bf782000c6703700a858330094453400801b5f00b2186e00dc1951 +00e1432000e3780e00d09c0b00ddcb0900ddef0d00e7e93d00d4bb6100d8b36f +"/> +<palette number="139" name="Apophysis-040426-1Egg" data="00742f3c006f32190071302a00742f3c00742f3c00742f3c00742f3c00742f3c +00742f3c00742f3c00742f3c00742f3c00742f3c005a4f6400406f8d00497792 +00527f980079a2b1007ea7b40084acb800aabfc600d1d3d500b0c2c9008fb2bd +006ea1ad005d98a3004c909a00605f6b00742f3c00742f3c00742f3c00941f04 +0085270700742f3c00742f3c00742f3c00685c6e005d89a0006590a5006e98aa +0084abb80087adb9008aafbb008aafbb008aafbb008aafbb008aafbb008aa8b9 +0084acb8007fa6b4006e97aa005d89a0003f6e8d0021537a001b386800151d56 +00340041003a053d00400b390037083f002e054500240e4b001b1752000f235a +000e416e00336485004e7b96006993a7006993a7006993a7005d89a000467491 +00742f3c00742f3c00742f3c00742f3c00742f3c00742f3c00742f3c00742f3c +00742f3c00742f3c006629330058242a00521e2d004c183100400b3900400b39 +00280b4a0015205800023566000b3e6c001547720015477200154772001b4d76 +001547720009295e001b1751002e05450037083f00400b390046123500521e2d +00742f3c00742f3c00742f3c00742f3c00742f3c00742f3c00742f3c00742f3c +00742f3c00742f3c00742f3c00742f3c00742f3c00742f3c00742f3c00742f3c +00742f3c00742f3c00742f3c00742f3c00742f3c005e2a260058242a0058242a +00521e2d0046123500491533004c18310028554e00406f8d005d89a000749dae +0084acb80087adb9008aafbb008aa9b9008aa4b7008a96b000742f3c00ac131a +00be0a2b00db024a00ec0a6800fd138700ee0c93008a5280004c7a9500467491 +00157579001b64790021537a0021537a0027587e003a698900467491004c7a95 +0046749100277e8400277e8400277e8400468d9700638ea3006993a700699faa +00468d970036858d00277e84000e717400026b6c001b4d76001b5c5700464638 +00742f3c00742f3c00742f3c0058242a00521e2d004612350021114e0009295e +0021585300394c410052402f005e2a26005e2a26005e2a26005e2a26005e2a26 +0058242a00521e2d004c18310046123500400b3900400b39003a053d003a053d +00400b390046123500521e2d0058242a005e2a2600742f3c00742f3c00742f3c +00742f3c00742f3c00742f3c00742f3c008a6e9500749dae007fa6b4007faab6 +007fa6b400699faa004c909a002d5e8200344f4600742f3c00742f3c00742f3c +00742f3c00742f3c00742f3c00742f3c00742f3c00742f3c00742f3c00742f3c +00742f3c00742f3c00742f3c00742f3c00742f3c00742f3c00742f3c00742f3c +00742f3c005e2a260058242a00344f460027587e003a6989004c7a9500527f98 +004c7a9500406f8d003364850047465100742f3c00742f3c00742f3c00742f3c +"/> +<palette number="140" name="Apophysis-040426-1PenEgg" data="0080235600802356008023560080235600802356008023560080235600802356 +00802356007e2553007c2851007d5d52007f9353009ead6300bdc77300acbb83 +009bb093007f80a7007f6481007f495b007f3658008023560080235600802356 +008023560080235600802356007f2443007f25300095241e00ac240c00ce1601 +00de000000b622090099190f007c101600741625006d1d34006d1c34006e1b35 +0080235600802356008023560080235600802356008023560080235600802356 +00be1e3c00fe693c00f88c4500f2af4f00b4af690076af8400649f8f0052909b +007f2457007f2356008023560080235600802356008023560080235600802356 +0080235600802356008023560080235600802356008023560080235600802356 +007f2b4d0073443c00685d2c005e762300558f1b00477020003a512600126f76 +0018737a0006635500083346000a0337000a0439000a063b00100a3f00281648 +007c224f007e225200802356008322590086215d00d2007200f543bb00e5007f +007f017a00802356008023560080235600802356008023560080235600802356 +0080235600802356008023560080235600802356006c2d4a0041214500221548 +00160d42001f1145002d1746003b1d4800512644005c284000722e31007f3b14 +007f3d1300772d2a00701d410078204b00802356008023560080235600802356 +007c255600370c4700370a380038092a002301170020011700350306004d1116 +006a1b3800751f47008023560080235600802356008023560080235600802356 +007f4276001a78840019767f0019747b0009615300364a48004b3640007b2851 +0080235600802356008023560080235600802356008023560080235600802356 +00801f53007f0f1300851d11008c2c0f00a02c0200a52b1200822e3900802356 +0080235600802356008023560080235600802356007f2455005e293f005a3c29 +002e5a0800364a140046232d0053141d00593e20005e6120005b911400639a1a +0065403e0069363a006d2d3700735e440081783200a5974b007f8b3c00fbe483 +00f1b44e00e3d74a00d4d45100d2d6520090ac4a007f954d007f7e60004d8d99 +0057929d00669ba0009fb7bd00c5c69e00eadec700d9d59300fce68500f0b34f +00fa934800fd884600fd673a00fb533100f5262200b0240c00592d1400464200 +001d3e1b000d27200010042f00120042001b00430042114b0066205300802356 +0080235600802356007b204e00451649002f184800211245002c18330053141f +005e162a007f1c080085301b008d2f1500b3250b00c7331d00aa2a14007f0524 +007f0429007f0339008023560080235600802356008023560080235600802356 +0080235600802356008023560080235600802356008023560080235600802356 +"/> +<palette number="141" name="Apophysis-040426-1kaosGothic" data="00991a1600e9dda400abbe86006ea0680052524400370421001e042100060421 +00257b4300257b4300257b43001a6d3500106028001f5820002f5019002f5019 +002f5019002f5019002f5019002f5019002f5019002f5019002f5019002f5019 +005e38010046440d002f5019002f5019002f50190046440d005e3801008b2213 +008f2015008b2213008b2213008b221300742d0a005e38010067340300703005 +008b2213008b2213008b221300852510007f280d006e3007005e3801005e3801 +005e3801005e3801005e3801005e3801005e3801005e3801005e3801005e3801 +005e3801005e3801005e3801005e3801005e380100742d0a008b2213008b2213 +008f201500b10f2600c2082e00d4013700d4013700d4013700e4083f00e4083f +00f9134900e60a4000d4013700af1125008b221300742d0a005e3801005e3801 +008b2213008b221300852510007f280d006e3007005e3801005e3801008b2213 +008b221300742d0a005e38010049430b00344e16002f5019002f5019002f5019 +002f501900257b430057945c008aad75009db77e00b1c18800e9dda400f0e1a8 +008aad75006098600037844c0037844c0037844c005d4e39008b221300b50d28 +00d4013700fb144a00fb144a00fb144a00fd154b00dbd69d00f0e1a800fce6ae +00f0e1a800f67b7900fd154b00fb144a00f9134900eb0c4200d4013700b50d28 +00b10f26008b221300742d0a005e3801005e3801002f5019002f5019002f5019 +00106028000b652e00066b3400066b3400066b3400106028002f5019005e3801 +005e3801005e3801005e3801005e3801005e3801005e3801005e3801005e3801 +002f5019002f5019002f5019002f5019002f501900414710005e3801008b2213 +00b10f2600b50d2800b30e2700b10f26008f2015008b2213008b2213005e3801 +008b2213009e181c00b10f2600b50d2800b50d2800b50d2800b10f26008f2015 +008b2213005e3801005e3801002f5019002f5019002f5019005e380100703005 +008b2213008b2213008b2213007f280d005e3801005e3801008b2213008f2015 +00b10f2600b50d2800d4013700d4013700c9033200b10f26008b2213005e3801 +00414710002f5019002f501900106028000e703800066b3400106028002f5019 +005e3801005e3801008b221300b50d2800d4013700d4013700d4013700be082c +00b50d2800b50d2800b10f26008f2015008b2213005e3801002f5019002f5019 +002f5019001060280002662f0010602800106028002f5019005e3801008b2213 +008b221300633600005e3801005e3801002f5019002f5019002f5019005e3801 +008b2213008f201500a8142100b10f2600b50d2800d4013700e4083f00f91349 +00fd154b00fd154b00fd154b00f9134900eb0c4200db043a00b50d28008b2213 +"/> +<palette number="142" name="Apophysis-040426-1KQNova" data="0052532700c65c6000c85b4d00cb5a3a0094521f005e4a0500554610004c431c +00022c2a000e2e36001a31430039243500581828005b232b005f2f2f0056302c +004d3229007db3150091b62100a5ba2d00b3b83300c1b63a00bdad3700baa435 +00a7993000b98a2400cc7c1900e5571700ff321500ed1e1200dc0b1000b2050b +00a7170e00c21f0000de370d00fa4f1b00f4633200ee784a00ef754900f17249 +00a82d0c00a32210009e171400a00d0a00a3040100a50a0200a7110300c51b02 +00d80d090099121800971c370095275600bc135d00e4006400e6045a00e80851 +00eb2c1000f22d1b00f92e2700f93f2d00f9503300fb5c5b00fe688300ec797c +00f56d6100f69b3000e99a4000dd995000eb9d9500f9a1db00e6cfd500dacbb4 +00dedcc700dee0d700dfe4e700eceee100faf9db00f8f7d900f7f6d800fdeab2 +00fbcfa200fd83bc00f7947e00f1a64100f2b23f00f4bf3d00fbee5200fcfd73 +0095bfbd0064a5a500348c8d00308884002d847c0062af450064b010004aa404 +00348a0d0020643300306b400040724d005d7144007b713c0081753b005c6139 +007a334100954c4500b1664900a8773700a088260099570000805300008a3e00 +00862f1c006f392f006b512200686a16008b9f2c00cc834e00e6545400f71374 +00e50b9600bc227500933955007548610057586d004c5a6300455e5a003a2b4c +00152e42000e5e7500146e7c001b7e83001a8784004a6d5900345f4c0056414a +007f1023007b121f0078141c00750e1700730812004c021d0021013200071343 +001a3b5a0098489d00ab48a200be48a800b92d9600b11d7b00a42677007e2263 +005610560050135b004b1761007a428b009a4d9f00857091008da3b000a8c7c1 +00d4e1b600fcd2a200f0e29b00e5f39400e1ef4400e8c14000e6b23800e1b83a +00d1c34900c3ce7000b5da9700e2edb100e1eabd00f5f7d200fcf4f200fcc2e8 +00fab5e200eebcdf00e7bad700dbaec500aba1a9007e8d7a0084892b00696c15 +00a87c1900ad811c00b3861f00cd651000e78b2600f8953000f4ba3c00ecc441 +00f6db5000f7f64e00eccd4100f8ab3500f8734600fd125d00e8077100d80578 +00d50d9400db0f9200df55b400fd84ba00fd91cf00f3a5cd00cc9ec30091adae +006fa2a600749b6f008e9b31007aaf2300649923003fa01b000f671900034718 +00033a27001a541900335813002944010034250400401b010056070a00641b36 +008a3d5100838438009fb3500092a13c0062703300274f440009362f00022d24 +0009361f0016291500161a19001c001b0056070d005608080069010c007a2423 +0084363400701443005c0235005d0919006910020074350c004f440c00574c1f +002f751d00449d07005ca50000568900002f6d22001e572c004c3b4100988c28 +"/> +<palette number="143" name="Apophysis-040426-1kaosframe" data="00f9fab9009ecca800728d7900464f4a003e434700373844003e434500464f46 +005da7900068ae940074b698009bcb9e00c2e0a400d2e08b00e3e17300d5d766 +00c8ce5900e3006300cd066200b80c6200cd766a00e3e17300e8e57900ede97f +00fbf5a000fbf5a000fbf5a000efeb8900e3e17300d5d96600c8d15a00a6115f +00a6115f00b1230400b1230400b123040092301800743d2d00684134005d463c +0037334600324753002d5b6000458278005da990005da892005da7940074b49c +009eccb100d1e8bd00e1f0bc00f2f8bc00f8f9b500fefbaf00fefbaf00fefbaf +00fdfaae00f7f9af00f2f8b000e1f0ae00d1e8ac00c9e4a800c2e0a400b1d69c +008ac098005da4930068706000743d2d00743d2d00743d2d00743d2d005d4638 +002d5932003e423f004f2b4c00662451007d1e570087185c0092136200c80769 +00ed016100e9092b00dd0f1f00d1151400d1151400d1151400d1151400de0f20 +00fd004700e70a2d00d1151400b72012009e2b1100c8ce5900e3e17300ede97f +00ede97f00d7d55600b0ca71008ac08d0094c69a009ecca800c2e0b000d1e8b2 +00e9f4b200f3f7b000fdfaae00fdfbaf00fefcb000fdfbb500f2f8bc00deeebe +00deeebe00f2f8bc00f5f9ba00f9fab900fdfbb500fdfbb500fdfbb500fdfbb5 +00deeebe00d0e7bc00c2e0ba00b9dbb300b1d6ac008ac0a20074b49c0074b497 +0074b49c009ecdad00b0d6ae00c2e0b000d1e8b700d1e8bd00d1e8b200c2e0b0 +0074b49c00508669002d593600336223003a6c1000464f09005d4638005d4638 +005d463c005d4638005d463a005d463c00464f46005da4930074b49c009ecca8 +00deeebe00e3f1be00e9f4be00f2f8bc00f9fab900fdfbb500fdfcb500fdfcb5 +00fdfbb500f2f8b600edf6b400e9f4b200deeeb200deeeb200deeeb200e9f4b2 +00f2f8b000f5f9ae00f9faad00fef8a800f9f9a600fbf7a000fefba300fefba9 +00fef8a800fbf5a000fef89c00f5f28b00f5f08a00ede97400d7d86700f50364 +00fd004700f3043900e9092b00d1151a00f2c84900ede97900f5f08a00f5f096 +00deeeb200deeebe00deeebe00deeebe00deeebe00e9f4be00f2f8bc00f9fab9 +00fdfbb500fdfbb500fefbaf00fef8a800fbf59900f5f07900e3e17300d7d861 +00b8c24b008a341f00b1230400c21c0800c21c0800d1151400d1151400de0f20 +00e9092b00f2043c00fe024f00fe035500fd004700de0f2000d1151400c21c0d +009e2b1100743d2900743d2d00743d2d0092175c00a6115f00c8076300ed0161 +00fb035a00fe035500fe024f00fb035a00fb036000ed016100b80c6200a6115f +00672452004f2b4c006724560092176000b80c6700e3006900f5035e00fe024f +00fe035b00ed016100b80c62007d1e57004f2b50004f2b50006724520092175c +"/> +<palette number="144" name="Apophysis-040426-147KaosRing" data="0052510400524c060052341700521d2900521e290052202a0052302f00524135 +00525e3f00526140005264410052573c00524a38005236310052232b0052202a +00521d2900521d2900521b2800521a2800521a2700521a2700521a2700521a28 +00521a2800521d290052202b00523d3d00525a4f005257460052553d0052292d +00521d290052142600520d24005207220052061f0052051d0052041f00520421 +00520a2300520b2300520c2300520e1e0052111a005212190052141900521819 +0052270f00525204005252040052520400524a070052420a0052311a0052202a +00521d2900521b2800521a280052182700521727005217270052172700521727 +0052172700521526005216260052172700521727005217270052142600521426 +00521426005212250052102500520e2400520d2400520d2400520d2400520a23 +00520a2300520e1a0052151700521d150052320e005247080052510400525403 +0052550300525503005255030052550300525503005255030052500500494c2c +0052232b0052202a00521d2900521a2800521a2800521a2800521d290052202a +0052553c00525e3f005268420052694300526b44005264400052503900754533 +0052232b0052172700521526005214260052102500520b2200520b1b00520e1a +0052081c0052091f00520a2300520b2300520d2400520d2400520d2400520d24 +00520d2400520d2400520e2500520f2600521025005214260052182800521d29 +00524e050052490700524409005232190052202a00521d2900521a2800521727 +0052142600520d2400520b2300520a230052072200520421005201200052001f +0052001f0052001f0052001f0052001f0052001f00520120005201200052051d +0052081c005214190048180c003f1d0000524807005251040052540300525503 +0052520400524b0600524408005219190052111a00520b1b0052051d0052051d +0052051d0052051d0052052000520a2300521025005217270052202a00524737 +0052774700527a4700527d48005293500052a3530052ad580052b45e0052ad59 +0052a5560052925000526d440052613c005246370052202a00521d2900521d29 +0052202a00523a3400525d3e00527c4800528d4f00529d4e0052814a00526d44 +005e571500525304005255030052550300525503005254030052510400524209 +0052202a00521d2900521a2800521727005214260052102500520a2300520421 +0052031e0052031e0052031d0052051d0052081c0052081c0052081c00520b1b +00520e1a00520e1a00520b1b0052081c0052081c00520a2300520d2400521025 +005214260052172700521a2800521b27005229140052470800524e0500524e05 +0052420a0052232a0052232b0052533b00526d4400528d4f00af9a6b00af774f +"/> +<palette number="145" name="Apophysis-040426-147Fighting_Fish" data="00acd4c800d4e25c00d4d34800d4c53500b2c5350090c6360062af220035980f +003b722d00769a5a00b1c38800aecba800acd4c800acd4c800acd4c800acd4c8 +00acd4c800acd4c800acd4c800acd4c800c0dc9800d4e46800d4de5800d4d849 +00d4c53500d4d24500d4e05600c0da8f00acd4c800acd4c800acd4c800acd4c8 +00acd4c800acd4c80070b66b0035980f0035980e0035980d0035980d0035980d +002f95100032822000356f3000356f2700356f1e00328218002f95120035980f +00d4be3100d4be3100d4be3100d4be3100d4bf3100d4c13200d4c33300d4c535 +00d4d63c00d4dc4500d4e34e00d4e04a00d4dd4700d4dc4400d4db4100d4d33a +00d4d43c00d4e35f00c0db9300acd4c800acd4c800acd4c800acd4c800acd4c8 +00acd4c800acd4c800acd4c800acd4c800acd4c800acd4c800acd4c800acd4c8 +00acd4c800acd4c800acd4c800acd4c800acd4c800acd4c800acd4c800acd4c8 +00b6c78b0093af6b0070974b0055843f003b723300477a340090ad5d00acd4c8 +00acd4c800acd4c800acd4c800acd4c8009ec09e0090ad7500356f49002f6933 +002f692d002f7f1f002f9512002f9510002f950f002f950f002f9510002f9511 +00356f1e00356f4f006c946100a4ba7400acd4c800acd4c800acd4c800acd4c8 +00acd4c800c0d98e00d4df5400d4d84900d4d13f00d4c73700d4c13200d4c132 +00d4c13100d4be3100d4bf3100d4c13200d4c13400d4cd3c00bac97400acd4c8 +00acd4c800acd4c800acd4c800cee2ad00f0f09300e9f36500d4e75c00d4e555 +00d4e15b00d4e55d00d4e66300d4e86a00e4e79800acd4c800acd4c800acd4c8 +00cad49600cfd88000d4dd6a00d4cb3d00d4be31006a923b003b722d00356f30 +003b723300acd4c800acd4c800acd4c800acd4c800acd4c800acd4c800acd4c8 +00acd4c800acd4c800acd4c800acd4c800acd4c800acd4c800acd4c800acd4c8 +00acd4c800acd4c800f5f99e00fcf9a600fdfb9b00f4f39500d4e25d00d4c334 +005e8a4100497c3c00356f3700356f3000356f3000356f3000356f3000356f30 +00356f3000356f3000417731009fb66500acd4c800acd4c800acd4c800acd4c8 +00acd4c800356f6000356f4900356f3700356f3700356f37002f694500356f65 +00acd4c800acd4c800acd4c800acd4c800acd4c800acd4c800acd4c800acd4c8 +00acd4c800acd4c800acd4c800acd4c800acd4c800acd4c800acd4c800f3f8a3 +00fdfbad00fdfca700fafb9a00f2f8a200acd4c800acd4c800acd4c800c2cf73 +007b9e3f00477a17002f691400356f0800356f03002f95000035980100359804 +002f9508002f950f0035980e0035980c003598040035980c0035980c0035980d +0035980f00d4be3100d4c93b00d4e25d00dbe19300acd4c800acd4c800acd4c8 +"/> +<palette number="146" name="Apophysis-040426-147ReachingMoon" data="00271164002e2b2d003d2c29004c2d2500432f26003a3128002d2b2c00212531 +00080250000b0151000e0053000e0053000e0053000e0053000e0053000e0053 +000e0053000e0053000e0053000e0053000b015100080250000b0b48000f1540 +00524317008f6d2800cd983900d7a64c00e1b55f00e7bb6600edc16d00edc16d +00f5bf5e00f7c86a00facd7100fdd27800f7cf7800f2cd7800f7d17800fdd578 +00fdf8f600dfe5c900c2d39d00b2a85d00a37d1d0096771a008a7118006f5406 +00584c0c0069520800836511009e781a00ae882700be993500cca34400dbad53 +00b5892b00896c1b005e4f0b0042303700271163002711630027116300271164 +0027116400271163001a085b000e0053000b0151000802500002094b00091242 +002125310027282f002e2b2d00343126003a37200037322500342e2a002e2b2d +00212531000f1540000c1341000912420009124200091242000f1540000f1540 +0028282f00212135001b1b3b0015183d000f1540000f15400009124200091242 +000912420002054e0005034f0008025000080250000802500002054e00091242 +001b1b3b0012163e000912420009124200091242000912420002054e0002054e +0002094b001b1b3a00242333002e2b2d003a372100463d1c00584316005e4f0a +006f5d03007a650b00856e14008f761c00997e24007baf6d00ac969f0075b6b4 +006ab49b00592b3a00401e4e0027116300271164002711640027116400271163 +000e0053001a085b002711630027116300271163002711640027116400271164 +00271164000e0053000e0053000e005300080250000f1540002125310034282d +006f57050086670f009e781a00b1903700cda146009abd7a0063af900035998f +00108774001b1b3a001e2035002125310021253100342e2a00463d1c00524018 +00695b0100695b0100695b0100584c0c00584316003a31280028282f00211e38 +001b1b3a0009124200091242000912420002054d0002054e0008025000080250 +000e0053000e0053000e0053000e0053000e0053000f15400021253100342e2a +00463d1b006f5705008f6b0d00a37a1b00c2681300de641600f2772300f9973a +00f89c4200fda54a00f9973d00f78f3700ce7b2300a37d1c00745a0300584c0c +00463d1c00411216000f1540000802500008025000080250000802500002054e +0002054e00080250000802500008025000080250000802500008025000080250 +000e0053000e0054002711630027116300210e61000e0053000e0053000e0053 +000e0053000e00530008025000080250000e0053000e005300080250000e0053 +000e005400210e610027116300271163002711630027116300210046001b1b3b +0028282f003a312800463d1b00584316006f57050099761900d16a1700f72918 +"/> +<palette number="147" name="Apophysis-040426-163KaosScepter" data="00e6822400d95d2900c4601d00af641100a25e2200965833007f4d2f0069432c +0069432c0069432b0069442a008a541e00ac641200bc6c1700cd751c00d97b1f +00e5812300e6822400f0782600fb6e2900fa6d2400fa6c2000fb6d2300fd6f27 +00f6882700f2862f00ef853700ed757600eb66b500eb66b600eb66b700d35bb4 +008b526300392e2c00202121000715160004101400010c1200020c1100030c11 +000a07100018140a002722040030180e00390e18003a0d17003b0d1700350b0c +002a070e00390e18003a1d1f003b2c2700623f4500895363009d5c7500b16687 +00ea81bc00eb837a00ec853800e2713100d95d2a00c9562900ba502800ac6412 +009458340069432c0069432c0069432c0069432c0069432c0069432c0069432c +0069432e0068342800672622007d3e2a00935732009457320096583300bb6b36 +00b2678800eb84cd00f287d000f98bd400f287d000eb84cd00eb84cd00f98bd4 +00ff70cc00e966c000d45cb500c3539a00b34b80008e3660005d3d3e00335a25 +00376e1a0036980f00707f1100aa661300bb6d1700cd751c00d95d2a00ba4e2a +00945833007e4d2f0069432c007f4d300096573400ac641200ad651300cd731b +00cd751c00d87b3800b78d6100969f8a00e6e1bb00eef1c400fcfcca00fcfbcb +00f78acb00c260a4008d377e00772c5c0061213b00352844003a2c29003b2c27 +002e2516003d2c25005337280069432c0085500a00a9651200ae621400965833 +0069261e00622212005c1e07004b2517003b2c270035442d00345b240069432c +0096583300e5812100e5812200e6822400e6822400f68a2800e6822400e68224 +00d35a9d00d469ad00d578be00eb84cd00eb84cd00d37abe00b1668700bb6b36 +00cd751c00e6822400e6822400e6822400f7892a00f78a2f00fa8a3400fb8b35 +00fb8b3500fc8c3300fe8d3100f7892a00e6822200cd751c00ac641200883503 +00883501005839000035241200352414003a0f1900320b3800320b38000c1323 +00000e1500000e1300000e1100010c1000030c11000c121e00251c3b00271c3e +0034274300342d34003b2c27002d26160028230500282208002e2516003b2c27 +005f3d3e0090568900d378be00eb84cd00f98bd400fa8cd500f98bd400f98bd4 +00f98bd400fb8bd500fd8ed300fd8ed300ff8dd300fd8ed300fb8acc00f96ec1 +00eb66b500ec853800ef853700f7892a00e6822400cd751c00ac641200865006 +00593a03003b2c270033294400653f6800b44da000d45cb500d578be00eb84cd +00ff70cf00ff6fce00ff70cc00fa6dcb00ec67c400d35bb400b34c8300895363 +005f3d3e0035442d002d26160027230600090911000b081100320903005b1d06 +00593a0100583a0000573a0000342512003024140027220500272306003a4606 +"/> +<palette number="148" name="Apophysis-040426-163KSphere" data="00b6ba8c0080bb4e005aa7530035945900387959003b5f59004760590053615a +00955f57007c534d00644743005b45370053442c0053421c0053410d005b3f0b +00643d0900533b0b00372a15001c1920001c1718001c1611001c1c09001c2201 +000a250000132303001c2207001c2717001c2c27001c2c27001c2c2700223519 +000a3d1e000a4226000a3c1b000a3710000a340f000a310e0016341300223818 +00227a1d002b7e150035830d0044730900536406005b5e130064592100804e3e +0095656500a4cea200adc99f00b6c59c00beb57b00c6a65a00c6a65a00c6a65a +00c6a05900958d5100647a4a004c6e470035624500385b44003b55430053615a +0053675c00646a380067552c006a4020005e4229005344320053442c004d531d +008075190094951e00a8b52300a8b12400a8ad2600a8a62a00a89f2f00958a22 +00806f1c007b480600724112006a3a1e006a3d1f006a40200080572f00955542 +00a8724500a8803c00a88f3300b7932a00c6982100b6781100b66f2000c66819 +00c6712200e18e2500d3943800c69b4c00be944700b68d4200a87e3e00a46c22 +007b450300674f0200535902005b6f0100648601004d8b03004d6c15004d693d +0053615400535b4d00475b4e003b5b50003b554900534a45003b381a003b381a +003b220100472e0600533b0b00473912003b381a0035471d00354c1f00354717 +0035471d002268450022654d0022635600225e54001c5639000a523d000a523d +00224328003a3a1e00533114005e351c006a3a240080483c0095655f00956b6d +006a7ca000358173002b766d00226c68000a6057000a5d31000a622e00225126 +003b503b003b523f003b554300355d370022493600224022003b410d00534705 +006a6a090080bf34008ac22d0095c52600a4c45100a8d24d00e1c94700e1a34d +00e1be6b00e1cc8500e1dba000e1efda00d5c5db00d5deb900b6d47400d5cb55 +00d5c75300d5a85500e1913600a8833a00a4783500b6691e00a46015007b5215 +007b4e0000725607006a5e0f008063220095683600a47e3c0090804200a86f75 +00a8625f00954f4000906222007b4b0e00643707004d310c0035350500353b0d +001c4621002249360022594d003b655900537f7800649c940090c6c000c6b5d0 +00a8bbb90095a58a0064b14e004d6e4500534a34006a432d0080483600b61c43 +00a8198000a4467000a44d78006a676400537682003b497b00224361000a4d35 +000a2228000a1024000a1024001c1c0f002219080022250000352808003b2201 +003b2c0a00353505001c2f0100224210001c4621001c4b29001c672600226845 +00225e540022596000225e4f00225948003558350035651f004d531d006a461c +006a4c1f0080632200806f1c00957f280095683600908b4b00909a6300d5e390 +"/> +<palette number="149" name="Apophysis-040426-163KInterseed" data="0005050500020202000101010000000000000000000000000000000000000000 +0001010100010101000202020002020200030303000404040006060600060606 +0007070700080808000707070006060600040404000202020002020200020202 +0002020200020202000202020002020200020202000202020002020200020202 +0002020200040404000505050007070700070707000808080008080800080808 +0006060600040404000303030002020200020202000202020002020200010101 +0000000000000000000000000001010100020202000404040005050500070707 +00250510006c313500b45d5b00d9a85400fff44e00fff94c00ffff4b00ffff53 +00ffff5b00e2e159008ff040003dff270079d73c00b5b05200f4e35f00a39153 +0043351700251e0f000707070004040400020202000101010001010100000000 +0000000000000000000000000000000000000000000000000000000000010101 +000404040006060600090909000a0a0a000b0b0b0030301f0074663b0073b988 +00ffffb400d5cc430077bc2a0019ac1100188d2c00186e4700272f2a000b0b0b +0004040400020202000101010000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000101010002020200060606 +000b0b0b00a3079c00ac4f9300b5978a0097a6a200b7ffff00fff2fc00ffffbb +00f6ef5100b79a3c007846270056391900342c0c000a0a0a0006060600030303 +0001010100000000000000000000000000000000000202020003030300050505 +0006100000094405000c790a0015ac110037fc20001cb4180014950d00164d21 +0003140900030303000202020002020200010101000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000010101 +0002020200050505000808080009090900110a2300294c460042725100128768 +00014b3a0012091e000909090007070700040404000202020001010100000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000001010100020202 +"/> +<palette number="150" name="Apophysis-040426-163XmasFlwers" data="00dcfd2e00fe8e2200fd611100fc350000fd250800ff151100fd0a2200fc0034 +00f0003600f3002c00f6002200d1001500ac000900711217003724260042292c +004d2e33001f4f4f002b59360037641e00345d0f003156000033580100365a03 +004e4026006d3e1b008c3d1100b4310800dd260000ee160700ff060e00ff000b +00f0001600ac0009007d1504004f2b00004f3e02004f5105004f4e0900504c0d +004e1f33004f0f2a00510022005119110052330100413b040031430700284605 +000058130044a0100034a51f0025ab2f00339f670041949f004195940041978a +00465246003f59300038611b003b5814003f500d0048420b0051340a00500d0f +004b001000ac000900c3152e00da2a5300dd355a00e1416100ed4c6800ff114f +00ef003900d3004500b7005200940f4900721f40005f2639004d2e3300464c37 +0045513d004e4026004f421700514509005f430b006e420d00ab420000ab4200 +00ac000900ac000900ac000900af000c00b2000f00ac00090092360b004e4026 +004e43250038611b0028810d0018a100001b9700001f8e00002f6e0b00385e16 +004e4026004e4026004e4026004e4026004e4026004e402600414f2b0038601d +00385e16003f4f000048450500513b0a0052260000ab000500ab00050051001a +0051002200731d1100953a0000a7320000ba2b0000cf002200e4002f00e01a00 +00dc1c0000ab4200008a3e0f006a3b1e004b483c002d38510000374e00024d4f +00023d6c00322c6700621c63005e2c73005a3c84008493b800bcb9c200ceff62 +00e0f35f00e4ff3a00ddfa3a00d6f63a00d2f72e00cbf12b00b9e42a0095c824 +00449f13003d821a003765220037631f0037631f0044684c0057965f005ba048 +006fa75600d2d89700dddda100e9e2ac00d2ebc300f3e4b900f5e0cc00f0d0da +00b1b0c600a7a9c3009da3c0007a8db300408da8004087a1001d797600107570 +00035e6e00044c5a00265267003c394e00444f3700534e29008c3d1200ab4200 +00e7480000f34b0800ff4f1000ff6a7a00c38c8d00d0d69500cac1c700a8aeb6 +0068798100494b49004b4a42004b453b0045503b0065a25b00a4c16500b7e229 +00acda280094aa2300ba5a0200b23c0400a61829006700610042458e004086a3 +00408fa7004087a3004373860049515400533652005b295b0056315600526575 +004387840043898a00447d7400485655006a3f3500a43d0000d5400000f62100 +00ff151100ff160f00f12f0000e2340000d1400000ab420000703b190058322e +00373d42002b403600025130000078000016a80b0017a90e00348e0000505100 +00933c0000ab420000b85000009ba319008fc7230084b0610085b064004f8d8a +00548a9000498a8d00437c8b0042498e00631964008b113900c2002400ac0009 +"/> +<palette number="151" name="Apophysis-040426-163Shield" data="007f7401007f740200847605008a790800a1770f00b8761600d35f1600ef4816 +00f0431500ec441400e9451300b95f0c008a790500847603007f740100797400 +007474000074740000746e0300746906007469060074690600746e0300747400 +0074740000796e01007f6803007468050069690800636909005d690a005d5d11 +00525d140052521d0057511a005d5117006e5c0d007f6803007f6b01007f6e00 +008a7303008a7303008a7303008a7303008a730300847302007f7401007f7401 +007f7401007f7401007974000074740000747400007474000074740000747400 +00747400007476010074790200797601007f7401007f7401007f7401007f7401 +007f7401007f7401007f7100007f6e0000796b030074690600695d020052461f +00153338000b393600024034001e3d2f003a3a2b004841240057481d005d5145 +00525d4100695d87003f456500152e44000b30510002335f0002335f005d578f +00fa3db200fb46b800fd4fbe00f551bd00ed53bc00d82ca100f7461800f74c1a +00db781c0094840f0094810d00947e0b00947e0b00947e0b00947e0b00947e0b +00947e0b00897b07007f7904007f7904007f7904007f7904007f7904007f7904 +007f7906008a840b008a840c008a840d008a840d007f7f0a007f7f08007f7906 +0074790200747601007474000074740000747400006974010069740100747400 +0074740000697401006974010069740100697401006974010069740100697401 +007f740100847302008a7303008a7303008a7304008a7906008a7f0a0094840d +0094840d008a840b008a810a008a7f0a007f7f08007f7904007f7903007f7903 +008a7905008a7906008a7908008a7f0a007f840a007f840a007f7f08007f7906 +008a7905007f7f08007f7f09007f7f0a008a7f0b00947e0b00947e0b00947e0b +0094840f008f840e008a840d008a7f0b008a7f0a008a7f0a008a7906008a7304 +008a7303008a7303007f7401007f740100747400007474000074740000747400 +0074740000747400007474000074740000747400007474000074740000697401 +0069740100696908006969080069690800696e050069740100747400007f7401 +007f7401008a7303008a7303008a7303008a7303008a7304008a790800947e0b +00947e0b00947e0b00947e0b008a7906007f7402007f7401007f7401007f6e00 +0074630900745d0c005d5117005b11340046113e005d056d0061012e00971615 +00aa250a007f6803008a730300c62d0000cd310400c43201008a7303008a7303 +007f7401007f7401007f7401007f7401007f7401007f7401007f7401007f7401 +008a7303008a7303008a7303008a7303008a7303008a7304008a790600947e0b +00947e0b00947e0b00947e0b008a7906008a7303007f7402007f7401007f7401 +"/> +<palette number="152" name="Apophysis-040426-163AlienFlwers" data="0088acdc00b3fc1d00c9f21f00dfe92200c5e33200acdd43009fd7460093d24a +002aa13700168b2b0003751f0001ba540000ff890022d57e0044ac74005f9178 +007b777c00a66f5200b4604100c2513100b3342e00a4182c00a6272400a8371c +00e0320e00cd1c2f00ba07510086227100523d920044419e003746ab002147c2 +001d49c900016abe000062bf00005bc0001a5ccf00355ede003983de003ea9df +007fcae3006bbee20057b2e2004f74ec004737f7003937ef002b38e8001a41cb +00173cc5000634e6000c36d7001238c8001d48c9002958cb002d6ed0003285d6 +00a4b19700babb7a00d0c65d00bfda5400aeee4b00a8e94900a3e5480087cf48 +0095d9480093cebe0049e3de0000f9ff0000fcff0000ffff003de8e30076c5c4 +00ffee7300f3ee6600e7ef5a00cec05600b6925200b0b24300aad2340099e620 +0081d62f0044b611002e900a00186b03002a6015003c562700a5670d00e09627 +00ffea0000fff40000ffff0000ffff0000ffff0000ffff0000ffff0000edfd00 +00d3ff0400d6fd6e00c5efb400b5e1fb00a4ccf50094b7f0003f84e9002f49e2 +000920c6000f16cd00160dd500100cd3000a0bd1000c09cd002807a5003a0b94 +005f0d7500874b5f00c05c6d00f96e7b00dda33500ffae0700e6ec1e00e3f45a +00a0a17f00727c93004558a8004652a300474c9f00384aac00244ac200224bc4 +002349c5001d4ecc001e4dcb00204cca002b5bc6001375bf0023a0d0004cf793 +008dd64d009bde5400aae65b00a0d26b0096bf7c003f8dbc003260c6003e3899 +003e149200000000000000000000000000000000000000000037524d006f6d84 +00951b5700b9226000de2a6900d91ab300761ede002323dc001333c5001231c5 +001c1cb300450a88002205440000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000007d331c00f15b7b +00eb628a009dae9f009cc1d20067baec005586cb003c63c000224fc9001645cd +001c45c6002a47b800384aab004a41970050378e00553e8c00693273005b4183 +004348a100202cd700220bf9000000ff000000ff000000ff000000ff00001dce +001032c8001639c4002142bd001f6377003c5527000000000000000000000000 +0001786100056b9900047bb1001e66a4001065950003876800088d40002a5f10 +000000000000000000000000003b0293002206a8000a20c5000c26c6000920c6 +00000ecc00010cc900071dc6000f2bc500193cc4001151b9001a6184001f7d48 +00338c51002872650069678f0091847300a0986600d2bf6600fbc88100ffff86 +00fdf0d800fff5df00e4f7e000b8e6ea00e3e6d500d5c98100a1826200315919 +00000000000000000000000000000000000000000032594e00596194009ee2ff +"/> +<palette number="153" name="Apophysis-040426-163AlienFlwers4" data="00c18e1d007212e6007131d9007150cc009b56a400c65c7d00c3577800c05374 +00c48e3000db9f3b00f3b14600e1cc7a00d0e8ae00a5f3a0007bfe93007ee488 +0081cb7e0047d699003cdab20031dfcb0056efc5007cffc00088f4c10095eac3 +00a1ff3b008bdd520076bc69007fa1750089868200af8d9b00d694b400f18bb6 +00ff8d9400ff835800e28c3500c59513009aa217006faf1c006190240053712c +001c740f0018a1210014ce33002ebc2b0048aa24005eb11a0074b81100b89502 +00c77e0100c48818009e99320078aa4d00639f56004e94600050826200537164 +00a8244f00ce1a5900f4116400ef325600ea544900cc633f00af733500965b28 +00828c4e0051af520053b2330055b514005cb3110063b20f0080c30d009bc343 +00e8cacd00e0b7dc00d8a5eb00e697ec00f58aed00f88bea00fb8de700f290d1 +00dc85d300d2368500d6408900da4a8d00de5a9900e26aa500de95cd00cc98e7 +00d0bbb300c89d7a00c17f4200ac864200988d42008184670080648d009358d0 +00c75cde00c951da00922b9d005c0561002e0230000000000000000000000000 +0000000000223d2b00447a560057715f006a686900732b6c009e127e00d522a7 +00ff20c400cd76d200cc78da00cb7ae200ba98d900b3a5c100c6c2b40098bfb3 +007bb68700728ba2006a60be005955d400494bea004d1bfa005a27ee00983ef9 +00c97eff00c07dff00a17afd008377fc008647e5008838f0008d4cea00ae6cdf +00e480d000e26db200e15b9400dc378700d8147b00e0007100fc116500f30b5d +00de005700951c49004a0e240000000000000000000000000000000000000000 +000d4779002e5388004f609700776cd100c780e200d682fc00d885f000c298e0 +00bf98bf00884a28009f4b2200b64c1c00f35f0400e76c0200ec863900ea8d64 +009579eb007663e300584edb003106fb001f20eb000739ea004e9ad0003ec2cf +0051a69a002d8e9c0007cda0001498b7002d83e1000317c2001403a000000000 +0000000000000000000000000000000000000000000000000000000000003692 +000f52a9002890a90030c185005eb082005bb35d0075b66100cd953100f69543 +00d3b77d00f2c19f00e29ca400e973ac00e079c300d076ca00cb49a700d14b90 +00ca2f8800d4247f00c8328b00b82098009908aa006317a300360dd7002f17ef +004d1ab600653b98006b31760036587900375c58004c796700795ea9008b4bcb +00ac21d400af16dd00af22f700c157e700c17aff00da95fd00de97fd00e19afb +00e896fa00e99ff700e5a6f900f0abfc00f4e3c700edf59800f3ec7300face5b +00fdc22700fda94500f2d47200e1ee9500edf59800ebf69800ddfdaa00d5ebd0 +00e0dedf00e9cdf400ecd1ca00e3f39a00dff68c00b5e73200b5d42200bdcb0f +"/> +<palette number="154" name="Apophysis-040426-163butterflyflwer1" data="009e8bee009e8bee009e8bee009e8bee009e8bee009e8cee009e8dee009e8eee +00a191f100a294f200a398f300a195f1009f92ef009f91ef00a090f0009f8fef +009f8fef009f8eef009f8def009f8def009f8def009f8def009e8cee009e8cee +009e8cee009e8bee009e8bee009e8bee009e8bee00a078f000a365f3009d52ed +009d2ded00b556fa00aa72f500a08ef0009f8def009e8cee009e8bee009e8bee +009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee +009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee009e8cee +00518ca1003a92660024982b0031ac1d003fc110003fc60f0040cc0f0070f420 +009db4ed009f93ef009e90ee009e8dee009e8cee009e8cee009e8bee009e8bee +009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee009e8cee009f8eef +00a191f100aba1fb00b2b2f800b9c3f600bdd1f100c2dfed00ffffff00ffffff +00ffffff00ffffff00ffffff00ffffff00ffffff00ced8e100bfbcf000a59df5 +009e8bee009e06ee009e20ee009e3aee009e62ee009e8bee009e8bee009e8bee +009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee +009e8bee009e8bee009e8bee009e8bee009e8cee009e8dee009f8eef00a091f0 +00a89bf800b0abf700b9bcf600bfc3ef00c6cbe900ddead200ffffff00ffffff +00ffffff00bfe1f000b4d2f500aac4fa00a1a6f1009e97ee009f97ef00a19ef1 +00a2b2f200a6c2f600abd2fb00b0cffa00b6cdf900b6c8f900afcaff00a6bbf6 +00a2a6f2009f93ef009e91ee009e8fee009e8dee009e8cee009e8bee009e8bee +009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee +009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee +009e8dee009e8eee009f90ef009f94ef00a19ef1009ebbee009ecfee009edbee +00afcdff00b4c7fb00b5b5fa00a69ff600a090f0009e7aee007947c9005620a6 +00231c7300242f7400254375006a54ba009e8bee009e8bee009e8bee009e8bee +009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee +009e8bee009e8bee00675cb7003657860020317000252975006147b1009e8bee +009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee009e8cee009f8eef +00a091f000a093f000a399f300a5a9f500aec5fe00b4d0fb00baedf500ffffff +00ffffff00ffffff00c7dfe800bcbff300b1a8fe00ab9ffb00a798f700a799f7 +00abacfb00b3bffc00b4c6fb00b7c3f800b1b9fe00aaa2fa00a599f500a291f2 +009f8eef009e8cee009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee +009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee009e8bee +"/> +<palette number="155" name="Apophysis-040426-163ButterflySherbert" data="00db782b00fcc68d00fcb46b00fda24a00fc973b00fc8c2d00eb872b00db822a +00b9712300704f1a00282e110014170800000000000000000000000000000000 +000000000000000000542f1300a85f2700ba652b00cd6b2f00cf6d3300d17038 +00cd6e2d00d2712e00d8742f00d9773700db7b3f00d7783e00d4753d00c67727 +00a868200047180400230c02000000000020481100419023006d9d30009aaa3e +00e1824500ef853d00fd893600fc893100fc892c00fb852b00fa822b00e67b2f +00c97329005e5806002f2c030000000000000000000000000000000000000000 +00000000001d0807003a110f0073372200ac5e3500b2663c00b96e4400be7955 +00b575590064b09a0072b68f0080bd85008dc289009ac78d0075b780005ead71 +006a9f32007f9c210094991000ad8e1500c6841a00c27b1f00be732400ac771b +00708a0f00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000341c160069392c00a85f2700b16627 +005e4617002f230b00000000001d0a08003a1410008a6b1000b9742100d18027 +00d4812800e1783800de7b3d00db7f4200d4885900e4c46a00eed28800fcd49c +00fdd39c00f6be8800f0aa7500ee9c5f00ed8e4a00ed853f00f9883000fc8331 +00f27e3300de743400de773000de7a2d00db782d00db752e00d8713000d87130 +00cd6b2f00ab5d35008a503c00553a2900212516000000000000000000000000 +000000000028095c0060335100995e4600cd6e3700ce992c00e1b83900f5cc7f +00fde9d000fdedda00fdf1e400f9f9e200d8ead900add4b80075b5b100357b8a +001b224b00000000000000000000000000000000000000000009340c005e921e +00ada36c00c49e6d00db9a6f00fdc17c00fdcc8f00fdd09d00f3c7a900e1bbac +00b1a0af004d7d9600402e430000000000000000000000000000000000000000 +006a012700862b2d00a3563300cd6b3200db722f00e67b2f00e67e2f00ed7b30 +00ed7f3700ed853e00f0894300fd933d00fc953a00fd963f00fd9c4700fda24d +00f2c16800f9ca7d00f4ce8100fdc78900f5d18a00fdf98e00e9da9a00fdd5a9 +00fdd19b00fdc17a00f39d5b00ed8b4600e9823e00de7d3f00db783b00db7b3f +00de804400de8f5d00e4986600f7c19400fddcb100fde7cd00f8f2e000f5f0dd +00eeddbe00d8e3b800cedba900cedaa100d1ce8100d1d59000adbfb500d5add0 +00cdc4cf00c6e1dc00e1eadf00ebebee00f0f0f100f7f8f300fbe8dd00fcddaf +00fbc67a00f8a56000fc983e00fd8a2e00fc8f3500ed8e4800d8956d00f079bd +00d590c700ba77ab00be73a9008f717300a3664c00b5622b00cd722b00e6842d +"/> +<palette number="156" name="Apophysis-040426-163BFlyGate4" data="001315100000000000270116004e022d00801b5f00b3359200aa5caa00a283c3 +00969896006a6c7f003f4168002e3153001e213f0010172e00030e1d0001070e +0000000000000000000000000000000000000000000000000000000000000000 +000c0e100008171b0005212600102131001b213c001f214000242144003d211d +003921180040211f0041172000430e2200240a4a000607730018045f002a024b +001f123f0013192c00072119000a2115000e2112000e2111000f2111000d0b10 +0000000000000000000000000000000000000000000000000000000000000000 +00000000000808080011101000202118003032210042442100545621008c8a4b +00f4b76100b1810600a96a1500a1542400823a3300632142002d0e4e001e023f +0001021000000108000000000000000000000000000000000000000000000000 +00170e09003230210019512000007320001e661e003d5a1c00414310002f210e +002d210c003b340e0049471000653a0e00822e0d00a0571f00a05a1c00716f02 +005f5d1000562935005d253c00642143006421430065214400692148006a2149 +0061ef810067ccbd006ea9fa005b7af200494beb002c2eea00946ab500dd79bc +00efa4ce00e8e6f600e6e6e700e4e6d900f7d8d600ebb9a7009f757e006c244b +00222421001d211400181f070022260b002c2e10003c4b1b0054521000676502 +00985e0000a3631500a15c1b00a056210058562900562135004e212d00462125 +003621150026212600162137001b21400020224a00044c74001a7d80003a3c98 +006062ad00cd83ed00d67ef600df7aff00dfd0ff00f8facf001c1e10002d2f10 +005f5d020062600200656302005f5d0200514f1000444510002f340e00262105 +001a1c020000000000000000000000000000000000000000001f0e01003f211e +0062214100682147006e214d00772b9800846aa5006f5a8f00585a690045473e +00552135004d212c003721160028210800180e08000000000000000000000000 +00000000000000000000000000000000000000000000000000260e05004d212c +006f214f008c6aad00b199d100a9f1ca00aaedf20090c9d8007c999d00747795 +007b7d89007476790049776a0049776a00474979001e5a3f00145a3500274d33 +002d2b21001e1d21001a182100150e3600150e3600090b210002041000000000 +000000000000000000200e00002921080033350200494b10004d4b10004c4a10 +0048461000462125002b214c002c214d002e214f0057113600570e360050012f +00420e2100350e1400250e040020120000202100001f2102001821070011210f +000d21130001211f00062127000821290004063e000e109800201ea200322153 +0062214100692148006a214900642143005c213b004f212e00412120002e210d +"/> +<palette number="157" name="Apophysis-040426-163BFlyGate4Inv" data="00d1def200ffffff00f1f8fd00e3f1fb00baf5d70092fab3006fe290004cca6d +00464469006f6d770098968600b2ba9900cddeac00dfe6c500f1efde00f6f0e0 +00fcf1e200ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff +00ffffff00feeeef00fedee000f5ded600eddecc00e8dec700e4dec300dbdebb +00c2dee200c5dee600c1dee200bddede00cae7ca00d7f1b600e8f4a100f9f88c +00d9f1b800e1e7c000eadec900eddedb00f1deed00f1deed00f1deed00f0deee +00f2f4ef00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff +00ffffff00fefffe00fdfffd00eef0f600e0e2ef00d7d7e600cfcdde00aba9de +007375b4004e93d6005192de005592e600599ee0005eabdb009cdebd00d2f1b1 +00f1f1d000f8f8e700ffffff00ffffff00ffffff00ffffff00ffffff00ffffff +00ffffff00dedcef00e6bfde00eea3cd00f697d600ff8cdf00c2a5e300bebcef +00d4def500ccd2f800c5c7fc00bdbff500b6b8ef007dd1f2005fa8e0005fa5e3 +008e90fd00b9b7ce00abcac6009edebf009cdebd009bdebc009adebb0096deb7 +008580a60095577800a52e4b009b42280091560500b6b41400d3d115006b954a +0022864300002920000b211400171909001b1926000827290014465800608a81 +00b1ded100cfdee100eddef100eadff400e7e0f800d3d1ef00c3b4e400abadef +00989afd005b98ec005b9aeb005c9cea005fa9de00a7a9d600a9deca00b1ded2 +00c6dee700d2dde200dedcde00e3ddd300e9dec800dfddb500fbb38b00e5827f +00c5c36700678847004c822c00327c120020850000202f000007053000e3e1ef +00b6b4ef00ababf600a0a2fd009a9cfd00a0a2fd00aeb0ef00bbbaef00d0cbf1 +00d9defa00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00e0f1fe +00a6dec700a1dec2009ddebe0091deb20088d467007b955a0090a57000a7a596 +00bab8c100aadeca00b2ded300c8dee900d7def700e7f1f700ffffff00ffffff +00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00d9f1fa +00b2ded30090deb000739552004e662e00560e350055120d006f362700836662 +008b886a00848276008b898600b6889500b6889500b8b68600e1a5c000eba5ca +00d8b2cc00d2d4de00e1e2de00e5e7de00eaf1c900eaf1c900f6f4de00fdfbef +00ffffff00ffffff00ffffff00dff1ff00d6def700cccafd00b6b4ef00b2b4ef +00b3b5ef00b7b9ef00b9deda00d4deb300d3deb200d1deb000a8eec900a8f1c9 +00affed000bdf1de00caf1eb00daf1fb00dfedff00dfdeff00e0defd00e7def8 +00eedef000f2deec00fedee000f9ded800f7ded600fbf9c100f1ef6700dfe15d +00cddeac009ddebe0096deb70095deb6009bdebc00a3dec400b0ded100bededf +"/> +<palette number="158" name="Apophysis-040426-163CeltCross" data="00ada74600fa8f4000ee7b3c00e3673900b5392100880b090044050400000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +00000000001d2300003a4700006f632600a57f4c00c6774500e7703e00fa7833 +00f1824200c39f4000a28e3a00827d3500606a36003e5838001f2c1c00000000 +0000000000000000000000000000000000000000000000000000000000000000 +000000000000000000290c1e0053183d0080213600ae2a2f00b52b2b00da683b +00d2b43e00c1bd3000b1c72200649c270018712d000c38160000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000002d7b240086ab0b +00c6d03700b8c33200abb62d008e9f1a00728907003650060000000000000000 +0000000000000000000000000000000000000000000000000000000000156001 +0075af59009fa35400c9975000d5894d00e27b4b00c4504300a82e3600603343 +001b17450054310800785621009c7b3a00da683b00e9753f00f78c4100fb8d3c +00fc923e00fc953e00fd993f00fb9c3900f5b94100d5d63900dbe14000dfe43b +00e8e54300e7e42f00dee12d00d6de2c00e1d23200f5b94100f5b64000f5ba41 +00d3d43900dbc13b00e4ae3d00e1875a00cc755100c5867400888f4900459816 +001f5f0300000000000000000000000000000000000c82120057ab240083af52 +00e8b13c00efb53f00f7b94200fcaa4800fab45b00e6cf6200ecc37a00d4b466 +0074888b00414e42000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000601f0100a3132300c50715 +00c50715008e0001000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000275701003a791900768341 +"/> +<palette number="159" name="Apophysis-040426-163Egg4d" data="00a8804e00fcf7dc00fcf4d700fcf2d300fbeecd00fbebc800faebc800faebc9 +00e3efd800e5efd800e8f0d800f1ecce00fbe8c400f1dcb600e8d1a800e7c89d +00e6bf9300c9996a00c48e5e00c0835300ac91630099a0740092b08e008bc1a8 +0097cabc00b3d8c900cfe6d700e3dec100f7d6ac00f7cfa300f7c89b00e4b98b +00c1a87b0099a0740099a0740099a0740099a0740099a0740099a0740099a074 +0099a074009b8d5e009e7a4800a06b3a00a35c2d00b2322700c2092200b50826 +006d0125008a4f21009b643400ac794700be976700d0b58700d8bd9100e1c59b +00f8e7c300f0ebce00e9f0d900e2ebd200dce7cb00dfdbb900e3cfa700d4bc8f +00b99c6e006f4718004b271e0028082400310f1a003a17110046230600512f03 +008f4c1d00aa592a00c6673700dc865600f3a57500f7ad7d00fcb68600f7c999 +00fad1a700edd8b100f2dab200f7ddb400f9e1ba00fce5c000fae7c200fcecc8 +00f7f9e200f1f5e600ebf2ea00e4efe400deedde00daece100cee3da00c0dbd7 +0099c4c50085b5bb0096c1c300a8cecb00b4d5d100c1ddd800cae3d800cae3d8 +0095c5c10083b4b80071a3af0085a1910099a0740099a07400bea47600da996a +00ef946200d48d5b00c9956400be9e6e00bfa47600d8ab7d00ebb08000faac7d +00de734500ed392800fc000c00f4011100ec021600de021900d3011e00b9051e +008d481a00855023007f52230079542300795f3100617347003f4819003e3204 +00794716006b6e42005d956f00469475002f937b004b6f430026281d00020823 +000d0825008b6b3b00a2825200b9996a00d0b08200e0c59a00ebd8b100f7e8c4 +00f0f6e200f1f5df00f2f5dd00fcefce00fce6c000f2d9b100e8c99e00d8c297 +00cdb6890099a074007ba27d005ea4870047999c003a9395004c8a9b005799a3 +0064a7ab005ea4a80059a1a50054a6a0006ba27e0099a07400b9a47600cdb689 +00dec79e00e6d2ab00f2deb600fbe3bc00faefcf00fcf2d000fcf2d400fcf5d7 +00fcf2d500fcf2d400fcf2d300fcf0d000faeccb00fceac700fce0b900f8d8af +00f2d2a800e3c39700d4b98c00c9af8000c6aa7d00bea47600be9c6c00c98553 +00d8815000da996a00e1b08000f5c59900fcd4a800f2d9b200f5e0ba00f7e0b9 +00fadab000fad3a700fbbb8a00f2b38200f8ab7900fab48500e8bf9100dac399 +00d0bc9000c9b48700a4af850099a0740099a07400ac8a5b00b97d4b00b57447 +00b9764700c97f4f00be7f5000b9815000b1875800b18f6000a6785f009c6154 +008f6b3b00745425006942130074421400795a28008f673700b1764600c68f5f +00cdae8000e1b58500e8bc8e00d7bf9300cdb88d0090b8970059a58a002e9588 +00105227000000000000000000000000001e201700583606008f67370099a074 +"/> +<palette number="160" name="Apophysis-040426-163FlowerFerns" data="0093e74b008cdf44008fe5390093ec2e0096f428009afd23009bfc27009cfb2c +008cfa390089f4290087ee190080d0140079b310005b892a003e5f4400275146 +0011444900014c770006448e000c3da600194f890027616d00306268003a6463 +00694a5800a34a5200dd4b4d00d37f5400cab35c00c7bd5f00c4c8630095e84d +0089dc420067d21b0073cb220080c42a0081c82e0083cd33007ede3f007af04b +0078ca31005b9839003e674100395d450034534900284a59001d426900164c6a +000a625c003c98230051901300668904006c651500724226007f3527008c2928 +0053670b004b6e0600437501003b770400337908003275060032720400446f03 +0035561000374c28003f32160047180400301505001912060035021300530403 +006112230042183100241f3f00213939001e54330020672f00237a2b003fa832 +0065cd4100369a3900287f4c001a655f000d796500018e6c00004d7500084d69 +00083e5f000b2f5a000e20560008224f0003254900141b4100221a4200152f4a +000e4c67003f50c9006346cf00873cd5008038dc007a34e4007e10dd004927d2 +0004218c000c377700144d62001e4f5a002851520048713f005d9f2c007bb625 +0092ce33006fbe12006ac50d0066cd09005dd1090061be04005fba04006eb50d +0065b01f0067a514006a9a0900639306005c8d0300508a1000718e12006bad13 +0070a82000555fda00675ae4007955ee008457f200925af900b54bf700b05dda +008fcb98008bde770088f157009fe36600b7d67600c8dca4008fb4b10078a5bf +0050a8a1006a9a770066a94f0062b8280085c92f0094dc4100afb16600beae72 +00669809005e8c070057810600497808003576240033463f00253626000d3f09 +00072e2500000000000000000000000000021d2e000d36240015343700254840 +0025702f002a8523002f9a17004193180076b52f007ec930008cc52b0089dc41 +0076f0560081de8500629d8500236a620001524c0002303b000d203a00001440 +00160a3600190b30001c0c2b0019001a001b0a1a00351731004e1d1d00751e1b +007c0313007c090500760f03004c030800190211001600190005061f0004041f +000a0431001c105b000a0769000f0777000427ad001b1aa6001d0d9800130b6c +000f174c000c0c2c0005052b001010350022254d00265257003f817900527866 +00ac6a6400d4536400782d6d00251d6600231a5c001f404700415d48007b6b4a +007eb72f0087da400084f0560087f258008deb530090e3480095dd34008bdf21 +0083f43a0087fc600080e2820087b7ac00707cf5008488fb0061eff900c9f9eb +00e4e5b500d894cd0086a1c400536ff3002e4bb90026179a0038034b005a0036 +0087174f007d4045008b6a5e00a7bf44008cdf430091e74c0096ea4f0095e94d +"/> +<palette number="161" name="Apophysis-040426-163FlowerFernsInv" data="006a16b2006e1bb5006a20be006626c800681acb006a0ecf006708d5006502dc +006f03bf007004cd007106db007712e1007d1ee7009454e400ab8be100b695ce +00c1a0bb00fcb8ae00f6bf8900f1c66500deb47300cba28200d1a08a00d89e92 +00b491a1007e9fae0048adbb002d9c9500128c6f00236c8900354ca3003b379c +006a17b2009510df009420e8009431f2008c33e0008436cf008034cd007c32cc +008122bb00954ec400aa7bcd00b089bd00b797ad00c1a1b100cbacb600e2bd96 +00e9b39500e185c200c480d600a77bea009877ed008974f1008b98e5008dbdd9 +0092beee009da7f500a991fc00b48bf800bf85f400c585f500cc86f700cd8dfb +00bb90fc00ceaef400c1c3e400b5d8d500b6dfe800b8e7fb00e6edf900cafdec +009df3f600b0f9d500c4ffb500cbdabe00d2b6c800d9b0ca00e1abcc00dc85d4 +00c057cd00a448d800b071c600bd9bb500d19aaa00e59aa000fe719300ffb28a +00f4bba000f0c6a600ecd2ad00eed8ab00f1dfa900fcdab600ebe4be00dde5bd +00ead0b500eaad6700b8b0400087b319007fbb210078c32a0085cb1b0081ef22 +00e2d76000eecb7800fac09000f2b99600ebb29d00d7aead00b78ec000a260d3 +008449da007b42dc008541e4009041ed009932f600a22ef6009e41fb00a045fb +00834be4008d4fec009853f500965cf5009565f600a372fc00af75ef008e71ed +009452ec008d818b009b905800aaa0250086aa11007ba80d006da506004ab408 +00626123006f3a5e007d1399007a10a000770ea8004829890037235b00704b4e +00875a4000bf748700aa6c8700956588009d47d7007a36d0006b23be00504e99 +004c4ea100725acb009967f600a87ef900b687f700ca89db00ccb9c000dac9d9 +00f2c0f600ffffff00ffffff00ffffff00ffffff00fde2d100f2c9db00eacbc8 +00d2b3c300d6a1c900da8fd000d065e800be6ce700894ad0008136cf00733ad4 +007623be00890fa9007e217a009d627a00dc959d00feadb300fdcfc400f2dfc5 +00f6f8a700eff6b800e9f5c900e3f3d400e6ffe500e4f5e500cae8ce00b1e2e2 +008ae1e40083fcec0083f6fa0089f0fc00b3fcf700e6fdee00e9ffe600faf9e0 +00fbfbe000f5fbce00e3efa400f5f89600f0f88800fbd85200e4e55900e2f267 +00ecf49300f0e8b300f3f3d300fafad400efefca00dddab200d9ada800c07e86 +00ad87990053959b002bac9b0087d29200dae29900dce5a300e0bfb800bea2b7 +008494b5008148d0007825bf007b0fa900780da7007214ac006f1cb7006a22cb +007420de007c0bc50078039f007f1d7d00784853008f830a007b7704009e1006 +00360614001b1a4a00276b3200795e3b00ac900c00d1b44600d9e86500c7fcb4 +00a5ffc90078e8b00082bfba007495a1005840bb007320bc006e18b3006915b0 +"/> +<palette number="162" name="Apophysis-040426-163FlwrFernsInv" data="00841a24009a3e1700945a21008e772b00a2823100b78d3700c0903500ca9434 +00e58c2400f07a2d00fb693600e3613500cb5935007b544d002c50660017576b +00025f710004023300240d2d0045192800601927007c1a270077172600731525 +0061072d005d062e005a052f006b0d29007c162400851a1e008e1f1800b12b06 +00f03c2d00fd5b4600fc5b4200fc5b3f00f4523200ec492600e1552c00d76133 +00ac753f00b86c3a00c4633600d7354c00eb086200ef056500f4026800f8016a +00f00e72009f0b63008a263a00754112004f680b002a8f050024880d001f8216 +0086823800959c3400a5b7310090913f007b6c4d004b6a66001c687f00146b7e +00337f8d006eafb10080bcbb0092c9c6009acbc800a3cdcb00b0d4d200d2e3db +00fce89200fcd26900fcbc4100e4c14e00cdc65c00c0ce6a00b4d77900cbe290 +00f3f39b00e4ebd900e0ebe000dcebe800d6d1d700d0b8c600b1968f00b77b61 +00428796005a96a00073a6aa0073acaf0073b3b5007fbbbb0089b4ba009acbc8 +00a2d0ce00b0b4a500a5907b009a6c52007f634800655a3e00533e2300641727 +0081384300a4585700c7796c00e0ac8c00fae0ad00fdf7e900f5f2ed00f2e3aa +00fcf58000e9c43f00e0ae3300d8992700ee555a00ec107400f50d7300fd0870 +00fc097300fb0a7300fa0b7300f30d7200ec107200e0137000bf136900911b58 +0069042c00540439004e0a3d00481041004c0e3d004c15280056083000790e2c +009f450600b56c2600cc934600c8994000c59f3a00c3ab3d009da03500f63138 +00ec076200fc026e00fc016e00fc006f00fd036f00fa0b7300fb0c7400f01073 +00e0106e00d4146b00c8196800a68db400acd3d000d2e7e200dfc6c900bd966d +00bd7e5200ec7b3900f46d3f00fd5f4600fe594600fd474600e1156e00d4136c +00b61a6300b8176400ba146600c80a6c00c90b6f00be116a00ba1466008e085d +00920e1c00a70f0e009917170093231700a32a0d00b11a0700c5280700e33421 +00fe5e4400fd5e4500fd5f4600fa564d00dd156d00b916670081175500532542 +003e0e40001f271a000a2f03001635370018465e0011617800216f83004d939b +006fa4ac0080a9af0071616e006f3430006d1732008b062100b1166400d10f70 +00e7176d00fb584f00de8a4400fbb33d00eab93800cca63700c9a43c00b6af3d +00b2cf3500aec45800cee47f00c4e08900b5da8d0097c36a00a06f6100813752 +003b41610029395d002a295100501e4100791c5300b9166700cb156a00ef0566 +00fa0e7300eb117000dc146d00ba474e009574410078ae6200519ca2004e9fa2 +0034848b0037698200685e29009f520200cd5c0e00e84d2100ed3e2900f64533 +00fb553b00fc583f00fc494400eb086200ef056600cc0e6e00a01e5c00841b54 +"/> +<palette number="163" name="Apophysis-040426-163FloralCascade2" data="0081591e00c19e8000baae8600b4be8c0087a493005b8a9a005f9aa30064abad +00acc9c500caded500e9f4e600eddbce00f1c3b600d5aa7b00ba914100aa7c2d +009b681900593c1c00612224006a092c0069092c00680a2c0065092d0063092f +003e0238007b085000b90f6800cb116b00de136f00e3126f00e8116f00eb0663 +00cd091f0096311300c0571b00ea7e2300f1963200f8ae4100fa994200fc8543 +00f6423300ee3e2a00e63b2100da5d3400cf804700d08e3f00d19d3700f0c63e +00dcca3800b2792000b83d1200be010500c5130c00cd261300da2d1c00e83425 +00a7404300902c370079182c0060273f004737520037425700284d5d0015506e +001b677e002f838e0051969e0074a9af007fb3b5008bbdbc00d1d4c100f0f1cf +00adc7ae007aa8a100478995002b6c8200104f700009466900023e63000a2f59 +001e3809002792080038701d00494f33004a403d004b32470072175200b91166 +00e00c7300e60e7200ed117100ed117200ed117300f40f7400f40c7200f30368 +00f4026800fd077200fc087200fb0a7300fb057100fb016f00f4026800f30368 +00e8274200e8323300e93e2400f2453000fc4c3d00e9813800ce904700b09c3d +00aa9d3500409e0a0037970b002f900d004748260035372a00341a4900282a51 +002f436600463862005e2e5e0086326300af366900c2146900a4020d008d021f +007d16290064727f00627c8a00618696005c96a10046959c005ca97500659f62 +00918a80008b9a990086abb300a2b0b300beb6b400e0c29e00cb9b8400bc5f58 +00c7156900d50d7000dc106f00e3146e00d54e4800dd945000e7cc7d00faf98f +00cce37b00bed26600b0c151006695370027535e00146078000f6c7d0007556c +0008546c00434c51004d4b5700584b5d007d59670080736d0099695b00756b38 +009c3f1d00953117008f241200851d1c006e0a2c005d173b0061433900648f3d +00a0a42c00adb74700e6ed6c00fcfc7600e8f17400e9ac7500e3804700fb604e +00fd5c4000fc674300fc734700e2983500fbb03900e9d03f00dfd94500b6ca5b +00a2c42f0099af280081961d005b971d006669220064462e007b503d0090676b +009e6e4a00b0753100c9754600f7645000fc564a00fd573f00fe554000fd5147 +00fc473c00eb117000e7117100d8166d00be116a006d155100361740002c3056 +0019496d00154b65001a385e00062d58001728540033174700520a3a00660634 +0050033900360940002c05340010134800121c4d00261a4a00271e210013220f +00332022003d1c25004041080069650c007b893400afab3000b8963400b17f2a +009e4a4000955b4300b4844600c6a65d00fbcd9c00f3ebbd00fdfad100f5f8e3 +00f9f6ef00f8f8d600d6b0c700d15b7d00e0137000eb117000f8413900ea4623 +"/> +<palette number="164" name="Apophysis-040426-163FlowerBurst" data="000000000077091800b8050f00fa010700c20e07008a1b08006e1c0800521e09 +00000000000000000000000000580f0300b11f0600b1210500b1230500842914 +0057302300000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000003a3f29 +007a826900d5b0d000e8bda400fcca7800f2d15d00e9d94300ead64100ebd33f +00e8db6c00e8d2a700e8cae300f2cde700fcd0eb00fcb1d800fd93c500d15db8 +009e1c8f00ac28440060424100155d3f000a2e1f000000000000000000000000 +00000000000000000000000000000000000000000039050d00720b1b00c43b06 +00db751d00deb43200a7a63f0070994c0048903200218719001c7a1f00127822 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +000000000000000000310d3400631a69007e187b0099178e00ca0b9400e945a9 +00e77bbb008a6381002d4b470016252300000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +00000000001b160100372d0300523602006e400100d7972900fdc44300000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000003a28060074380000d4621300fe6e26 +00bc590b00000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +00025c0700027e260021871900288c150058981f007f96200097a22900a3a627 +00a6b523008fc642007fbc2d0067aa270053a7220075b91100c9d93800cdda4e +00d0bc3400b9a229008085440034670e00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000004c3247 +008f026f00991a8e00e77e9c00e982aa00b93fa3005d2267001b583d00000000 +"/> +<palette number="165" name="Apophysis-040426-163MaltesePurple" data="009a5e9400c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00d02cf600de31ee00de3cd8 +00df47c2009a5e94009a5e94009a5e94009b5d95009d5d9600af57a200c151ae +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c629fe +00e734e800f73fd200f53bd900f338e000e734e800db30f000c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c428fe00c629fe00d32df500e132ec00eb43ca00e545c6 +00f141ce00e739de00de31ee00d02cf600c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00b854a800aa589f009d5d960091618e00946090009d5d9600c74fb2 +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00d22df6 +00d34bba00a05c98009d5d9600d04cb800cc2bfa00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff +00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00c328ff00b256a4 +"/> +<palette number="166" name="Apophysis-040426-163Mycelialg" data="00eca4d10031021c0018010e0000000000000000000000000000000000000000 +00003877004d2f6a009b275e00aa294400b92b2a00841e1c004f120e00360920 +001e00320000005500050e42000b1d2f00050e17000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000005120f000b241e00334537005c6750008eb389 +00c5d3d400ffc6ff00ffb3ff00ffa0ff00fea7e900feafd400fab0d400f6b2d4 +00eebbd400e6bfd400dfc4d400e4c1d400e9bed400f4c7d600ffd0d800ffdbb5 +00cdd0d300b5d6ff008ea0b700676a6f005c5b7200524c750028088700230988 +00783fb300a762c700d786dc00b877c4009969ad008f64a60086609f008863a3 +00a76bc800de93d400e89ad400f2a2d400f8a6d400feaad400f8a6d400e792f0 +00d484e400d68bdc00d892d400d78ed400d68bd400a6849200567f5a00006750 +00002c310000000000050a00000b1500001b1500002b16000070783e00a8b167 +00fcabd400e89ad400d58ad400b77db7009a719b005f527b00313e5100003724 +0004272d0060517e00715e9700826bb000ad7fff00c27cf900c85bff00d15bf3 +004528910022148e0000008c00000170000002550000065600060c60001c1a68 +003e2e8100593d91005c468a005f4f84003c4852002c39500000292600000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000001f043000412551005e2e59 +00765b9100ff3e8200fd377000fc315f00fb150000c52f00008a130c00581f0e +00130c0000090600000000000000000000000000000000000000000000000000 +00000000000000000000000000101432000c105e003f2d8000704a8f009166a5 +00de96d400e399d400e99dd400f2a3d400e89bd400de92d400cd8cc900b56969 +0050515d001529490006143f00000a4e000a085800303b56007a5b6900af81a3 +00d48cd400da91d400e195d400e09ad400e79dd300ff7c7600ff676e00ff6877 +00ff5b9900e396d400f587f200ff97ff00ff9fff00d9b6ff00e1a5e900cb88d4 +008262a1004c476f00142e3c001f1b0a00000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000001d0338 +00271f72004a358c006b489f006c46a0006f4aa0009064a700d28ad400dd95d4 +00f5a9d400ffc6d400ffe3d500ffffff00ffebff00ffc6ff00eebbd400f2b5d4 +"/> +<palette number="167" name="Apophysis-040426-163MyceliaInv" data="00135b2e00cefde300e6fef100ffffff00ffffff00ffffff00ffffff00ffffff +00ffc78800b1cf940064d8a10055d6bb0046d4d5007be0e300b0edf100c8f6df +00e1ffcd00ffffaa00f9f0bd00f4e2d000f9f0e700ffffff00ffffff00ffffff +00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff +00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff +00ffffff00ffffff00ffffff00f9edf000f4dbe100cbb9c800a398af00714c76 +003a2c2b0000390000004c0000005f00000057150001502b00054e2b00094d2b +0011442b00183f2b00203b2b001b3e2b0016412b000b382900002f270000244a +00322f2c004a290000715f480098959000a2a48d00adb38a00d7f77800dcf677 +0087c04c00579c37002879230047873a00669652006f9a5900799f6000779c5c +0058943700216c2b0017642b000d5d2b0007592b0001552b0007592b00186d0f +002b7b1b0029742300276d2b0028702b0029742b00597b6d00a980a500ff98af +00ffd3ce00ffffff00f9f4ff00f4eaff00e4e9ff00d4e9ff008f87c100574e98 +0003542b0016642b002a752b0047814700658e6400a0ad8400cec1ae00ffc8db +00fbd8d2009fae81008ea168007d944f00528000003d83060037a400002ea40c +00bad76e00dceb7000ffff7300fffe8e00fffdaa00fff9a900f9f39f00e3e597 +00c1d17e00a6c26e00a3b97400a0b07b00c3b7ad00d3c6af00ffd6d900ffffff +00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff +00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff +00ffffff00ffffff00ffffff00ffffff00ffffff00e0fbcf00bedaae00a1d1a6 +0089a46e0000c17d0001c78e0003cea00004eaff003ad0ff0075ecf300a7e0f1 +00ecf3ff00f5f9ff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff +00ffffff00ffffff00ffffff00efebcd00f3efa100c0d27f008fb570006e995a +0021692b001b652b0016622b000d5c2b0017642b00216d2b00327336004a9696 +00afaea200ead6b600f9ebc000fff5b100f5f7a700cfc4a90085a49600507e5c +002b732b00256e2b001e6a2b001f652b0018622c000083890000989100009788 +0000a466001c692b000a780d000068000000600000264900001e5a160034772b +007d9d5e00b3b89000ebd1c300e0e4f500ffffff00ffffff00ffffff00ffffff +00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff +00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00e2fcc7 +00d8e08d00b5ca730094b7600093b95f0090b55f006f9b58002d752b00226a2b +000a562b0000392b00001c2a0000000000001400000039000011442b000d4a2b +"/> +<palette number="168" name="Apophysis-040426-163MrryGRnd" data="0006401700064017000640170006401700064017000640170006401700064017 +000c370c000e360d0010360f003b4e18006667210084641e00a2621b009a5716 +00924d12004c3219002939180006401700064017000640170006401700064017 +0006401700064017000640170006401700064017000640170006401700064017 +0006401700064017000640170006401700064017000640170006401700064017 +000640170006401700064017000b3b130010360f0010360f0010360f00192a0a +00301800004f0e08003b160b00281f0e00191511000b0b1500220d1e00390f27 +00921f6200ae0f5500cb004800d6152700e22a0600cf522300bd7b4100c6af51 +00d1ce8700deceb400c4c6bd00aabec700afbc9700b5ba6800a4786f00635554 +00392f3a005f2c4b00862a5d00a0455400bb604b00d2527700e944a300d7037c +00a2285b002c2207001e2c090010370b0010360d0010360f002a2e1f00422a28 +006d7d700087867800a28f81008c867300767e6600676d53003a5a6700145944 +00025d32000a323400484f3300876d3200a47e2c00c28f2600d6a32d00d5b13f +007a9a1f0048891d0016791c000b76230001732b0000732a000d6f2400125f19 +0005421800508e0700618f0c00739012007c9a180099581600c6334600064017 +0006401700064017000640170006401700064017000640170006401700064017 +000640170010360f0013310e00172c0d005d2f1700833a1100981d15008e1d0f +005e241800511214004400110045020a0046050300421100002924060010360f +00064017001c34340015283a000e1c41001c323d00493a2500806f2100c99b2b +00bad65d00a4c35a008eb15700968f5b00b78f2f00c48a2900af772000a8681e +00c0413200953d56009648500097544b00896454009374550090715200797051 +00193b16001438120010360f0010360f0010360f000640170006401700064017 +0006401700064017000640170006401700064017000640170006401700064017 +0006401700064017000640170006401700064017000640170010360f0056300c +00791f1e00a5000600d7030000c20018009e1414006a1f080035190400112f09 +000d360e00064017000640170006401700064017000640170006401700064017 +0006401700064017000640170006401700064017000640170006401700064017 +0006401700064017000640170006401700064017000640170006401700064017 +0006401700064017000640170010360f0010360f0010360f0006401700064017 +0006401700064017000640170006401700064017000640170006401700064017 +0006401700064017000640170006401700064017000640170006401700064017 +0006401700024116000640170006401700064017000640170006401700064017 +"/> +<palette number="169" name="Apophysis-040426-163SprngFlwrs" data="00b1845200ba4ea700a04d8f00874c77008651700086566900885868008b5a67 +00935f69008b596800845468007d516500764e6200694b59005d485100594650 +00564450004c3c510049395200463653003a2f50002e284e0031275200342756 +0053306300563a5b005a4553006b4b5b007c5164008154650087576700986269 +00bc786f00f88ca000f2918a00ed977500d4916300bb8c5100b7895100b38651 +00c4925100bb8c5000b2865000ab805100a47b52009b76500093714e008b6b4f +007e605100785c5100775b5100775b5200725751006d5450006c5351006c5252 +006c5252007151580076505f00805463008a5967008f5c680095606900ab5b87 +00bb609100ee61c200eb4bd000e836df00df2bee00d620fe00db25fc00e242e7 +00ff68c900e970a800d4798700be6f7d00a8667300a0646e0099636900966169 +0096616900af618200c36b8700d7768d00e0779500e9789d00fe81aa00fe6fc0 +00de70e200da79d900d682d100cd73b200c4649300b76289009e6270009b6569 +0097626800925e6900885e5d007e5f52007e5f52007e60520080615100836352 +00945f6900935f6900935f6900905d69008e5b6900875866007e5462007a545e +007a516300754d6300734c6200714b62006d496000623b68005a3766003e1d6c +00371471004a266d005e38690069406900744869009430a700c630a500d330b3 +00f130d400fd4af400f15aea00e56be100bf87e100c894c700c896c300da93b6 +00e1966900d18b6900c1806900be7f6700bb7f6500a078510091704e0080634e +007a5e5000785d4f007a5d50007c5e52007d575c007c4e69007d309000b633c6 +00dc13ec00d821ec00d530ed00ad74f2009593fc007f8be3008f97fc00a08bfb +00be82e900dd4acf00c842c400b33bba009e30b200743086007a4d68007a575a +007f61510081625100846452008c6a520093704f008f6d51007b604e005f5343 +004f404f002830380003301300003010001f302f0045374f00513f52005c4851 +00685051006a5151006c5252006c544f006a5151006a495d006d39760079308b +00b335c100d830f000ff42fc00ff3cfc00f430f100e020f800dd30f600f05ce9 +00cc6bfa00cd7edf00da87c600b5519e008b458400734967006f515800644d51 +00614b510065504e0069534e006b544f006f565100765c4e007e615000886850 +0098725100b0687a00dc759400f070b000f868d200e574d400e57dc900f374ae +00e8779f00c6708400b66e77009d666800925f67007e5f5200775b5200725752 +00705652007559510078565a00785b53007c5e52008262520094705000aa7462 +00bc7f6600be7f6700bf6e8100ba6d7d00a1656e0098626900956069008e5b68 +00805563007b5a56007d5f52007e5f52007f62500084664e0095734f00c89451 +"/> +<palette number="170" name="Apophysis-040426-163SprngFlwersInv" data="0093adad0093adad008eaea60089afa0007faa9c0075a698006fa297006a9f96 +00449f6e002a9e5500119e3d0014b32e0017c920001dd1110024da030020cb0d +001dbd180000973600158e57002b867800418f820057998c005e9a9100669c96 +00699e96005c9e8900509e7d003c937700288972001f886a0016876200017e55 +0001903f00218f1d0025862500297d2e00388d5200489d7600549d8200619d8f +00689d97006a9f96006da1960077a0a10081a0ad00819fad00819fad007f9eae +007c9cad006ba096006ba096006ca0960072a3970078a799007ca99b0081ab9d +0085ae9c0087b09c008ab29c008eb49d0092b69f0097bd9b009dc49700a5c899 +00c1e29300c8eb8e00b4d99200a1c7960096bf96008bb796006bcf580039cf5a +000ecf2b0008c21b0002b50b002196140040781e003b712b00376b380037693c +00256c49001e6996002e7496003e7f9600417f980044809a005f87ae006e8fb1 +0085a1af0086a1af0087a2b00085a1ae0083a1ad0082a8a30083b1960082cf6f +0049cc390023ec13003abb1000528b0d005e7b08006a6c030080741c00706803 +00417d16003199230022b5300037bc3a004cc4450061cf4d008bcf790085b297 +0085a8a500809eae007d9cad007b9bad007395ad006c8fb0007092ae00849fb1 +00b0bfb000d6c7ce00fccfec00fdcfed00ffcfef00e0cfd000bac8b000aec0ad +00a3b7ae0097afae0095aead0093adad0093abb00095aeae0095b6a20092c689 +004cca3e0026c3200000bd030000c0030000c303000bcf0e001fdf070022cf09 +000fa31600328120002b7c2c00257839004aae610074ba7b008cb6980090aea7 +009eb4ae009cb1af009aafb10096acb10094abb00090a9ae0089a3b100819eaf +007797af004f97850039907800238a6b000f8f4f0007972d001a8b2b001a8236 +0017886000288b6d00398f7b0049918800629997006da0980081a0ad0088a4ad +008da8ad008fa9ad008aa6ae0087a9a50087a4ac0083a1ad007d9dad006b8faf +0043809900428098004180980040917e00459282005e9a9100679d96006a9f96 +0071a497007faa9c0084a5a90082a0ad0081a0ad00809daf007b99b1006a8cb0 +00376bae004e7bad002e8c150045b158005dba640078b3880079aa960079a996 +0074a5980071a496006ca096006da196007bab97007fae960089b19d0098b0ae +00a2b7ae00a9bbaf00b2c3ad00b3c3ae00b4c7ab00b9c9ac00c4d0ad00d1d7b1 +00cbd8a900c0de9600accf9c00aacc9800a5baac0093b4a20083ae9b0078a898 +00679d9600438790001d787f0007735f000870730012688a00276e96004473ae +004c79ae004877ad003b6dae004473ae004d79af00537eae005b84ad006c8eb1 +007494b000819fae0085a2ae0087a3ae0087a3ae0088a4ad008fa8b00092abaf +"/> +<palette number="171" name="Apophysis-040426-163DemMask" data="0001010100000000000000000000000000000000000000000000000000000000 +00050704003f4a3100798e5f00a6917400d4958a00886863003c3c3c0020201f +0004050200000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000060503000c0b070031261700574128 +00cdb74200dfd04700f2ea4c00f7f35800fcfd6500fafa6300f9f86100faed4c +00f2df4600faaa5e00e8c96b00d6e97800dee38c00e6dea100e1ebc700fadab5 +00fdfc8300f2f26700e7e94b00b7ba4700878b44006868300049451d000a0a05 +00010100000707040061121e00bc1d3800d7243100f22b2a00ff561900fc5b28 +00b0ad3600b2ad5e00b5ad8600b59f8f00b59298008776760022618100021d11 +0000010100000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0003010200c1193000d91f3400f2263800f20a6700f2028900f2049100f23b96 +00cea94c00d3c34400d8dd3c00b0cc380088bb34005959300021211200030302 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +000101010004040200080703002d2e2e00a2485000ee2d3f00e0395700b85167 +008f535e0033261a00040302000e0005005106360072426300995d7300523f50 +0002020100010100000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000101000006060400303246000f5b76 +00163b5f000a0a09000101010000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000030101001707020072483600bc954a00e4c27400ebe18900e1beac +00d8819800fc629800ee39a800e9019500d80c5c00b51a6700000000001c332b +"/> +<palette number="172" name="Apophysis-040426-163ResurectTree" data="006786ff005f7ef8005978f2005372ec004867e1003e5dd7003554ce002d4cc6 +0006189200142ca6002241bb003150ca004160da005b7ae5007695f0007f9ee7 +0088a7de00a1c0c500a4c3c100a8c7be00aecdb700b5d4b100b9d8ac00bedda8 +00ceed9800e4e98200fae66c00f8df6500f7d85e00f6d75d00f6d75d00f4d55b +00f4d55b00d7b83e00e1c24800eccd5300efdd6300f2ee7400ecf37900e7f97f +00cfee9700d7f68f00dffe8700ddfc8800dcfb8a00d9f88c00d7f68f00d6f590 +00c7e69f00bcdbaa00b8d7ae00b4d3b200aac9bb00a1c0c50098b7cd0090afd6 +007695f000708ff5006b8afb006685fb006281fb006584fc006988fd007291f4 +007d9ce90096b5d000a4c3c200b2d1b400b8d7ad00bfdea700c1e0a500bddca9 +00b2d1b400a7c6be009dbcc90098b7cd0094b3d20098b7ce009cbbca00a9c8bd +00b8d7ae00c6e5a000cbea9b00d0ef9600cceb9900c9e89d00c7e69f00c6e5a0 +00b9d8ad00b5d4b100b1d0b500adccb800aac9bc00a4c3c20099b8cd008baadb +00809fe6006d8cf9005c7bef004c6be5004766e0004362dc00405fd9003352cc +002c4bc5003857d1004564de004f6ee8005978f2007695f0008cabda00a4c3c2 +00b7d6af00cdec9900e1eb8400f6ea7000a6870d00a182080097780100907108 +00553643003c3c80002443bd002948c2002e4dc7003d5cd6004160da004463dd +004766e0004b6ae4004d6ce6004f6ee800506fe9005675ef005776f0005a79f3 +005d7cf6005877f1005372ec005170ea00506fe9004a69e3004564de004160da +003655cf003352cc003756d0003c5bd5004362dc004b6ae4005372ec005b7af4 +005a79f3005776f0005574ee005170ea00506fe9004f6ee800506fe9005574ee +005c7bf5006a89fc006b8afa006d8cf9006f8ef7007190f5007291f4007392f3 +007695f0007796ef007897ee007d9ce9007c9bea007897ee007695f0007695f0 +007695f0007695f0007a99ec007e9de800809fe6008aa9dc0097b6cf009ebdc8 +00afceb700b1d0b400b4d3b200b8d7ae00bad9ac00bddca900bfdea700c4e3a2 +00c7e69f00cdec9900dbfa8b00e7f97f00f2ee7400f9e76d00ffe16700fbdc62 +00fbdc6200fae66c00eaf67c00e9f77d00e6fa8000ceed9800c2e1a400b4d3b2 +00a4c3c20092b1d4007f9ee7007695f0006f8ef7006c8bfa006786ff006584fe +006786ff006988fd006a89fc006b8afb006988fd006685ff006685ff006685ff +006584fe006584fe006584fe006887fe006b8afb006e8df8007291f4007594f1 +007594f1007695f0007695f0007695f0007695f0007b9aeb007e9de80087a6df +008eadd80091b0d50096b5d0008faed70087a6df0081a0e5007f9ee7007e9de8 +007e9de8007e9de80083a2e30091b0d500a0bfc600a8c7be00d0ef9600bad9ac +"/> +<palette number="173" name="Apophysis-040426-163GldBlue" data="0098790000a0810700a6870d00ac8d1300b6971d00c1a22800c9aa3000d2b339 +00f9e76d00ebd25800ddbe4400cdae3400be9f2500a3841a00896a0f00806118 +00775821005e3f3a005a3b3d0057384100503147004a2b4e0045265200412257 +00311267001b157d000519930006209a000827a1000827a1000928a2000b2aa4 +000b2aa4002847c1001d3cb6001332ac0010219b000d118b00120b8500180680 +0030116800280970002001780021027600230475002506720028097000290a6f +003819600043245500472851004b2c4d00543543005e3f3a00664731006f5029 +00896a0f008e6f090094750400987904009d7e0400997a0300967702008d6e0b +0082631600694a2f005b3c3d004d2e4b0046275100402158003e1f5a00422356 +004d2e4b005738400062433600664731006b4c2d006748310063443500563742 +0047285100391a5f00341564002f106900321365003617620038196000391a5f +00462752004a2b4e004e2f4a0051324600553643005b3c3d0066473200745524 +007f60190092730600a2831000b3941a00b7981e00bc9d2300bfa02600ccad33 +00d3b43a00c6a72d00ba9b2100b0911700a6870d00896a0f00735425005b3c3d +0048295000321366001d147a0009158f005978f2005e7df7006887fe006f8ef7 +00aac9bc00c2c27f00dbbc4200d6b73d00d1b23800c2a32900be9f2500bb9c22 +00b8991f00b4951b00b2931900b0911700af901600a98a1000a8890f00a5860c +00a2830900a7880e00ac8d1300ad8e1400af901600b5961c00ba9b2100be9f25 +00c9aa3000ccad3300c7a82e00c3a42a00bc9d2300b4951b00ac8d1300a4850b +00a5860c00a7880e00aa8b1100ae8f1500af901600b0911700af901600aa8b11 +00a3840a00957603009374040092730600907108008e6f0a008d6e0b008c6d0c +00896a0f008869100087681100826316008364150087681100896a0f00896a0f +00896a0f00896a0f0085661300816217007f6019007556230068493000614237 +00503148004d2e4a004b2c4d00472851004526530042235600402158003b1c5d +00381960003213660024057400180680000d118b0006189200001e980004239d +0004239d0005199300150983001608820019057f00311267003d1e5b004b2c4d +005b3c3d006d4e2b0080611800896a0f009071080093740500987900009a7b01 +009879000096770200957603009475040096770200997a0000997a0000997a00 +009a7b01009a7b01009a7b01009778010094750400917207008d6e0b008a6b0e +008a6b0e00896a0f00896a0f00896a0f00896a0f008465140081621700785920 +00715227006e4f2a00694a2f0070512800785920007e5f1a0080611800816217 +0081621700816217007c5d1c006e4f2a005f403900573841002f106900452653 +"/> +<palette number="174" name="Apophysis-040426-163WrldBndr" data="00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700370c0900360b0900360b0a004c21150062372100a57a6400e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00623721006237210062372100a57a6400e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700623721 +006237210049494900305b71003d687e005e899f00b7e2f800e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700623721 +00623721005f341e00592e1800592e1800592e18005c311b005f341e00623721 +00e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda700e8bda7 +"/> +<palette number="175" name="Apophysis-040426-163GrnPrpl" data="00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b52004d134a00450b42003d033a +00251422000534020005340200053402001d1c1a0035043200390336003d033a +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00854b8200854b8200854b82006d336a00551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b52002a642d +001a541d001a541d001a541d00225c25002a642d002a642d002a642d00551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200652b6200793f76008d538a009d639a00ad73aa00bd83ba00dda3da +0092cc95007ab47d00629c65005a945d002a642d001a541d000a440d00053402 +0015241200350432003d033a004d134a00551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200551b52004d134a003d033a001d1c1a0015241200152412001d1c1a +003d033a00450b4200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +00551b5200551b5200551b5200551b5200551b5200551b5200551b5200551b52 +"/> +<palette number="176" name="Apophysis-040426-163SphPart2" data="0051531a0048501400434e11003f4d0e003d4c0d003c4c0c003c4c0c003c4c0c +00394b0a00394b0a00394b0a00394b0a00394b0a00374a0900364a0800364a08 +00364a0800364a08003a4b0b003f4d0e00454f12004b5116004c5117004e5218 +0054541c0055541d0057551e0057551e0057551e0055541d0054541c004e5218 +00485014004b5116004e52180051531a0052531b0054541c0054541c0054541c +0054541c0051531a004e5218004b51160048501400464f1300454f1200424e10 +00424e100048501400495015004b5116004c5117004e5218004e5218004e5218 +004b511600495015004850140048501400485014004850140048501400485014 +0048501400485014004850140048501400485014004850140048501400485014 +004b5116004e52180051531a004e5218004b5116004b5116004b5116004e5218 +0051531a0051531a0052531b0054541c0054541c0054541c0054541c0051531a +0051531a0052531b0054541c0057551e005a5620006c5c2c0090684400ba7660 +00bea3ba0049caf70077bae000a6abca00afa8c400b8a5be00d09dae00fd8e90 +00ed878200b5745d007e623800725e3000665a280057551e0051531a004b5116 +004850140048501400485014004850140048501400454f1200424e10003f4d0e +003c4c0c003f4d0e00424e1000434e1100454f1200454f1200454f1200485014 +00485014004850140048501400485014004850140048501400485014004b5116 +0051531a0057551e005d5722006a5b2b00786034008d674200ba766000d09dae +00c7a0b400fa8f9200fb8e9100fd8e9000f1929800c1a2b800aca9c600a3accc +00b5a6c000bea3ba00c7a0b400e1837a009f6d4e00786034006058240057551e +0057551e00635926006d5c2d007860340025d6df0022d7dd001fd8db001cd9d9 +0022d7dd002bd4e30034d1e9009369460081633a00ae725800db817600f08884 +00f68a8800c7a0b400bea3ba00bba4bc00c1a2b800b4745c0084643c006f5d2e +005d572200645927006c5c2c0087653e00b4745c00ea868000ea868000ab7156 +0084643c006c5c2c005a56200051531a0048501400424e10003c4c0c003c4c0c +003c4c0c003c4c0c003c4c0c003f4d0e003f4d0e003f4d0e003f4d0e003f4d0e +00424e1000454f12004850140048501400454f1200424e10003f4d0e00424e10 +00454f1200454f1200454f120048501400485014004850140048501400485014 +00454f1200424e10003f4d0e003f4d0e003f4d0e003f4d0e003f4d0e00424e10 +00454f1200454f1200454f1200454f120048501400485014004b5116004e5218 +0051531a0054541c0054541c0054541c0051531a004e5218004b511600485014 +00485014004b51160051531a0057551e00695b2a007b613600d8807400966a48 +"/> +<palette number="177" name="Apophysis-040426-163StAmF" data="0000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000004224080085481000736054006279980064849e +006790a50072b2be0076bac7007ac2d10075bdc90071b9c20063abae00569e9b +0079851e007d7d140082760a00826c15008263210084682000866e20008c6f25 +009278970081a8c4008ab8d10094c9df0077aabb005a8b97006b7f5d007c7424 +008d582200895e63008664a400836ca9008174ae00836ba8008563a2007b5c98 +008a4b2400000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000008d3d1f008d4828 +006d719e006980a1006690a4005e949f0057989a00599d9e005ba3a30059a6a3 +005eaaa9006aa6b10069a0ae00699bab006c97ac007093ae006c92aa006891a6 +00588c960030714b0009570000042b000000000000000000008c461c00885527 +006a6c9900608099005c7f9500597e92008266270087511f0000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +00873d1500a9698e00b6729900c37ca400966fb40096779f009c859d008b9333 +00864e160043270b000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000777b220065825a00548a92005b929b005c929c00617f9a00696f9a +008b421a0045210d0000000000000000000000000000000000903c2300903d24 +008a4f2700755a94007d6ca700956eb300a67ac400aa79c000b88fbe00b99eb7 +00bac49d00b5c19800b1bf9300739db5007181a8006169910037222600000000 +000000000055671400747313007f7d1e00acac9c0099a3d200a9c2fe00b0e0fc +009fc3fb00a5c3fe00b4b3f600cd99d500bb98c400b49cb100b5ada900b5b7a3 +00c7b99b00cbc09900d9b3b400d8cab600d7d3b700d6e1de00e1eaed00dacefd +00d5cbfd00d8a2de00b68abf008c73b4008277b0006781a0007d87b300979dce +00aeb8e600bcd7f600d1e5f100eedfe100f1b6f400fdb1fe00e49df300d396df +009ba2d30077a5bb005f9ca300578e9600738524007d711e007d7327006a729c +007a67a2007a5b97008d452700903c2300000000000000000000000000000000 +00000000000000000000000000000000000000000043262600705a93008a6999 +"/> +<palette number="178" name="Apophysis-040426-163StCosOwl" data="005a8f81002b5d45002d454d00302d560035316b003a358000332a97002c20af +0019145700170a390016001c000e02130006050b00150c0800251405002d1302 +00351300004b1e0800463125004144420049486900514c91005e57b5006c62d9 +00b8acff00d6c8ff00f4e4ff00f1e1ff00eedeff00eadaff00e7d7ff00d3c4ff +00b1a5ff00695bff005e54ca00544e9600625baf007169c9008278df009387f6 +00b9acff00d1c2ff00e9d9ff00f3e2ff00fdecff00feeeff00fff1ff00fff9ff +00fffeff00ffffff00fffdff00fffbff00fff5ff00fff0ff00fbebff00f7e6ff +00b8abff008d83d600625bae0084749b00a78d8900bf9e9000d7b09800f5c4a2 +00eceae900c9bbff00a398ee007d75de00625caf004843800028254f00171a1f +0004040700180a07002d1107004c220c006b341200673b2300644235004c433f +003d4a4b0044407a003c386c0035315e002c294e0023213f0019172d000f0e1a +0015060000210904002e0d09001e0615000f00210008034f0003035000060050 +000c065000251a1c00421f22005f252900643233006a403d005c464300705f5b +0047437f00494482004b4685004f498c00534d9300c518ad00d01ebb00998aff +00ada1ff00b6a9ff00b7aaff00b8acff00b9acff00bdb0ff00d3c5ff00e5d5ff +00e1d7ff00c2b9fc00a49cfa00817ad1005f58a80047437f002a265a001a192f +0003011500000000000000000000000000000000000000000000000000000000 +00000001000400130009002600130039001d004c002900480025005d002a005b +00480087008279e7009c91f300b6aaff00dccdff00ecdbff00edddff00dfdce7 +008481a10065628e0047437c00221f3c00100f1d000000010000000000000000 +0000000000000000000000000000000000030201001d151100362720003b3130 +00211f3b00201e39001f1d37001413240005050a000000000000000000020202 +00030b080007171b00194733002f6213004b7011006b790f0088563f00986f5a +0073503600684e3e005e4d46003b3634001b1b1b000109030000000000000000 +00000000000101070013122200302d5600504b8f008279e700a9a0ff00cec0ff +00ecdcff00ffeeff00fff7ff00fffeff00ffffff00ffffff00ffffff00ffffff +00ffffff00ffffff00fffaf800ffffdb00ffed8a00da9e7700d2a461008a7e54 +00766a41007e6227004c4d1f004a362f002c2943001d1b34002926490045404e +00826a5300aa8d7a00dba18600e9ba9700fffdd600dcffff00edeaff00dedee7 +008cf59d006cac71007f7f4f008b757100676671005454810059539f008279e7 +00a196ff00bdb0ff00d0c2ff00f2e2ff00fbeaff00ffefff00fff0ff00fff1ff +00fff6ff00fffaff00fffbff00fffbff00fff3ff00f5e4ff00decfff00b7abff +"/> +<palette number="179" name="Apophysis-040426-163StGenie" data="004032240017528e000d447c0003376b00202d3b003d240c0047270700512a03 +00592c000069340000793c0000964b0000b35a0000c9650100e0710200e67403 +00ec780400fe8b1900fe8f2000fe932700fe8d1c00fe871100fd861000fd860f +00f5881c00e98e3400dd954d00e4a15f00ebae7200f3af6c00fbb06600f9a551 +00f2953800fc8a1700fb871200fa840e00fc810700fe7f0000fc7e0000fb7d00 +00e2730300dd700200d96e0200c3630300ad590400a1530500964e0700884503 +0087440000954d0500ad580200c6630000d0680000db6e0000df700000e47301 +00fa7e0100fb7f0100fd800200f57e0600ed7c0a00e7780800e1740700cc6b0a +00a9550100773c000064330000522a01004e2d0c004b3117001e283200133454 +00316fad003f5973004e443a0085522000bd610600c8660500d36b0400d96f05 +00d26a0200914b0400723a0200532a00004b2b0a00442d150013273b0005305c +00034485000a355f0011263a001e262e002b272300522a020067340000804408 +0092551800d3ad8700cea98400c9a68200a795820086848300905a230085480c +00894604008845030087450300854403008443030080420300793d0200763b00 +007c3f02008d480400934c050099500700bb6e2200cb9e7200ccab8a00debc9b +00fbca9900f9bc7f00f7af6600e79b4f00d8883800d6710c00c46403009c4e00 +008142020063330200683502006e3803007f410300954b0100bb5e0000ca6500 +00c1610100a9560300924b05008946030080410200743a010062320100503111 +00494745005a98d5004e9be700439ef9005eaaf50098c7f600c8daed00e8eaec +007994b000567fa800346aa000162c42005a463100623a1100763c0100984c00 +00c8650100e5954400ea9d5000f0a65c00fcaf6100fe993400fd8c1b00fc850e +00ec770200e4730100dd6f0000cf670000b95c0000985007008a4805007c4712 +0082572c00527aa2002f8deb00157ce200086ed500017af400017ffd003793ef +00bbd8f600bcd8f400bed8f30082bcf600379bfe000481fe000276ea00046bd2 +000569cd000669cc000059b1000057ad000865c3004f8dcb00829db9008d97a0 +00d0ac8900d9af8400dba56f00e5934100e57f1900e5760700e1710100e77504 +00ec790500ee790400ef7b0700f8820c00fc840b00fb820900f17c0700ec7a08 +00df720400de6f0100c6640200a1520400954c0400904a04008e490500934b02 +00a0510200be5f0100d36a0100d96f0500d76d0300c6630000a0510200964d03 +00934c05008e4a0600924e0a0095561800c2782d00d1a06e00dbb79300eac199 +00fed9b500e1d3c500e3e1de00fcdec000efd0b200d8b38e00eab27b00faaa59 +00fc983400fd8f2000f3841400eb790700e5770800d7843200c4946500ae8a66 +"/> +<palette number="180" name="Apophysis-040426-163St" data="004f7a7400669891005a8982004e7a7400596c5f00655f4a0068624c006c664f +009e977800b7af8e00d0c8a500d0c8a500d1c9a600c3bc9900b6af8c00a69f7f +0097907200538079004d79720048726c002f4c4900162727000d171700040808 +00050a0500050a0500050a0500050a0500050a0500050a0500050a0500050a05 +00050a0500050a0500050a0500050a0500050a0500050a0500050a0500050a05 +00050a0500050a0500050a0500050a0500050a0500050a0500050a0500050a05 +00050a0500050a0500050a0500050a0500050a0500050a0500050a0500050a05 +00050a0500050a0500050a050010110c001c181300322d230049433400807a60 +00aba58300e3ace300edc5ee00f8dff900f5e7f500f2eff100eceeee00fef0df +00e6dcbb00a6baa600679891004b736e00304e4b001f3332000e191900050a05 +00050a0500050a0500050a0500050a0500050a0500050a0500050a0500050a05 +00050a0500050a0500050a0500050a0500050a0500050a0500050a0500050a05 +00050a05000204050002050300020602000207030003090400040a0400050a05 +00050a0500050a0500050a0500050a0500050a0500050a0500050a0500050a05 +00050a0500050a0500050a0500050a0500050a0500050a0500201c1600433d30 +009c957600b8b08f00d4cca900d4cca900d5cda900d3cba700a19b7b007b755b +005c5643000a121300070e0c00050a05000b14150028241c002f4e4a0042635d +0064958e006b9c950072a49d0078aaa3007eb1aa008fb7ac007cafa800679891 +007f795e002e2920001f1b1500110e0b00050a05000207020001020100000200 +00000200000002000000020100000202000204040003060700050a0500040809 +0015252500375a55004f5e500068624c00787259008b8568008d876a007b755b +00615b4700605a4600605a460048534600302b210015120e00050a0500050a05 +00050a0500050a0500050a0500050a0500050a0500050a0500050a0500040a04 +00050a0500050a0500050a0500050a0500050a05000b0907002e292000554f3d +00706a5300938c6e009d967700948d6f0080795f00706a52005f594500342f24 +0017130f00050a0500050a0500050a0500050a0500050a0500050a0500050a05 +00050a0500050a0500050a0500050a0500122020002e4d4a0042696400466e69 +0036585400312c220013100d00050a0500050a0500050a0500050a0500050a05 +00050a0500050a0500050a0500050a0500050a0500050a0500050a0500050a05 +00050a0500050a0500050a05000c0a08000f1b1b00233c3a002b484500284441 +001b2e2d000f1a1b00050a0500050a0500040904000605040004040300010201 +000104010003070200050a050012202000103070003d635e00527e78005f5945 +"/> +<palette number="181" name="Apophysis-040426-163StSatAngel" data="00a99fbb00c899ed00d2a9f000dcbaf400e4b9ed00edb8e700f4b8d800fcb8c9 +00ee88b600e782bc00e17cc300df7cc600de7dc900dd7ac800dc77c700dd76c4 +00df76c200f17ea500f2808c00f3837400ef8a7300ec917300e9906e00e79069 +00ccb65700cacd6a00c8e47d00c8f18b00c8ff9900c8fc9d00c9f9a100cff198 +00b3e984009bc57900a2ba9200a9b0ab00b6a8c400c4a1dd00c7a3e000caa5e4 +00dbaafd00e6b7f500f1c5ed00f2c0e500f4bcdd00f5bedc00f7c0db00fbcfe1 +00fed7dd00fed3e000fdcdd500fdc7cb00fdb6c000fda6b500fda1af00fe9daa +00dabc7900b5ba740090b96f0089b8620083b8550087bf56008bc658009cf24e +00a0fe4a00a7e13800abda3900afd33b00b0d23b00b1d13c00b6c43800b8ca44 +00e6936800ea896800ef806900f5887d00fb919100fa9d9d00faaaa900ffbec6 +00f6bcd800e5c6fa00edd1fa00f6dcfa00f4e3fa00f3ebfb00faf5f700fffef3 +00e0d9ef00ddd0e900dac7e300dfd1e400e5dbe500cdd4cf00d1e7c300d3f2bc +00c2fe8e0091c26700acd67500c8eb8400ceea8f00d4e99b00d4ffb000e6f6de +00f5f5e900ece9ed00e3ddf200ece3e900f6eae000f6d9d000eac9a700dbcb8a +00d6cd8200caee8c00c2e59600bbdca100c2d1bb00baaad300c79fe500cb9cf0 +00cb97f400c686f800c276fc00c777f300cc79ea00d277dd00de79c600f686a4 +00f4958800d3bb6b00c8c15b00bec84c00bac84500bebf4400ce9e4300d98c48 +00e7896100e7916a00e8997300e79b7400e79e7500e6a17600e6a47900deb47a +00dac17e00daca8800cacd9b00bbd0ae00cecdd700d2b6e300d2aaef00cb9af1 +00a59cb6009d9ba700969b990093ac82007e9f640078aa4d0079af4a0080a95d +0079a8500078c92d008adb2e009cee2f009bf332009fe82e00a8db3300b1d641 +00c9cb6700c6d46b00c4dd6f00c9d77300cfd27900d6c67b00d7c27900dfb880 +00efa48d00e988be00df93dd00c796ed00bf93e100bd91df00cd78e700d376d9 +00ed80af00ec80b200eb81b5009d9da500a39bb300e378ba00f07ba300fd8392 +00fd8a8f00fc909200f57e9e00eb7baf00e678b500da77cb00d077e100cc79eb +00cc79ea00d076df00d776d100e177be00f27da200f8858000ec917400e6996f +00e4a17300e3ad7c00ebb59500f5a4c300db8bdf00d792ed00d78de700d67ddb +00d477d900d776d200dd76c400e177bf00e778b300ff979f00fb9bae00f9b6b2 +00edc8ad00e9e2be00e3e6b500dbfec100e9ebc800edece300d3e6c900c9ccce +00a8bd9b0092b8730088c4540083dc310097f144009cf34c00a0e66100b2fb69 +00bcf57500bfeb7200b2f57700b7f58000a9cd8d00abb8a600f28eb300f887a0 +00fd899800ff879100ff859000fe878e00fa878600f78f8700f3938300f09e88 +"/> +<palette number="182" name="Apophysis-040427-1knotted" data="0092781b0092611e0093502d00943f3c008b38380082323500772e27006d2a19 +005f38110050351c00413328005b4a2f0075623700887129009c801c00988b1a +009597180092781b00a2623200b24c4a00be2d6f00ca0f9400db0cb300ed09d2 +00ff00dd00ff00e000ff00e400ff00e700ff00ea00f700f400ef00fe00fb0ce3 +00f603db00db0fac00bb139a009c188800a0188500a4188300a4188300a41883 +00a3196f00951b5000871d3100891f2f008b212d0086212a00812228007f2525 +006f2e2800473c4d00304c7300195d9a00195d9a00195d9a001b777d001d9160 +002c7d540041554c00572d45006b253b007f1e3200831d3000881d2f008a1e2e +00962845009b188a00951896008f19a300911a9f00941b9c00941c8800a31a84 +00a21981009a2b5f00933d3e0095383d0097333d00893241007c3146006d3653 +006a374a00409a66005c9d410079a11c007f9e1b00869b1a00869b1a0081954e +007c723f006b822d005b921b005b921b005b921b00606f2a004b583c004e2e55 +00531c70006d188f00721f850077277c0079295d007b2c3f0073121d004e0925 +003b090c002a301f001a5833001c7340001e8f4d001c9b4e001c9c51001c9c51 +003a725900a4188300ba129000d00c9e00df10c000ee08ca00d609b000af1494 +00961a9c00573b9b00195d9a00195d9a00195d9a001c5e9b0066648b00905780 +0098357800b9164500a92b3d009a40350092611e005b921b001b9c4c001d9e4b +008c601500654520003e2a2c003b212800391924003b3f4a0042494f004a5760 +0078357c0076199b00831a9d00911ca000903a83008d4745009f4a2100ff3c33 +00be184a00b7135400b00f5f0093383f00893d3d00865d3d007d673800857541 +0090663e00b6183900c0194c00cb1a6000d8449800f9c7d300ca93a800807e89 +001c9c51001c9b4f001c9b4e002b5b4d004e4936005c342800712a26008c2a1f +009b351e009b4921009f582e00a05631009a413300952f3d00a8126c00a11472 +007e1e39006919340055152f00480a2f0026151b001f0f0000010a1b00271a23 +004a1b3d0068076e007c086900b8144700bc113b00af122f009d2322008a211b +00820b050075011600770a03006d2904007d24140081232300802425007f2326 +00812226008a1f27008b2322008b2b1f009f3616009c471e009d641f00bc751d +009c7440009d685600a14c6b00de279d00ff04c100f408d700ec06db00ca10c9 +00961f9f00991d8d00962e7b0083354b007c334600823b2900923e1c008c3c17 +008b2b1f008f271e00971f20008a1f29008c202d008a1f29008a1f29008a1f29 +008424250080262600802826008b322000923e1c009259140092611e0092611e +009d641f0092781b0092781b0092781b0092781b0092781b0092611e0092611e +"/> +<palette number="183" name="Apophysis-040427-4AlngSpder" data="0058230300451a07004319060041180600471b06004d1f07004f1f0500511f04 +00522103004d1e0300481b0400431804003f1604003e1606003e170800431806 +0048190500642104006b270400732e0500782f08007e300c007a2d0c00762b0c +00642810005c260b0055240600562303005822000057200000571f0000532001 +00532204004d2108004d1e07004e1b0600501c0700521e0800521f0800532108 +0066300a0073361200813c1b00833e160085411200863f1100883e1100833d0c +0079390b00712e0000742c0000772b00007b2f00007f340000853700008c3a00 +007f310d00742f0c00692d0b00652d0b00622d0b00602907005e260300662400 +006d2400006d290600662908005f2a0a005b2908005729070051240300491d02 +003c1705003b1503003a1302003d1403004015040040150400401505003a1407 +0039150500281b00002a1502002d0f05002f0e0200310d0000381102003d150b +0052220b00632f1300753d1c007f411b0089461b0081582000854a100084460d +00853c07007c3904007c3907007d390a00833b0a008a3e0a00924b0d00a15911 +00fb312700d75a3300b3844000ae702900aa5c1200915b1100934c0e009a4407 +009b3b1300803c0d007d3a0d007b380e0074340800692d080066270600642400 +00571b00004f1b0300481b0600471b0600461c0600491f09004e250500522c08 +00612b0f006e32100070330c0073340900732f0a006b300800632e0200562800 +00451c000042190200401705003f1705003e1805003b1805003d180500401705 +0046150400480f040047130600471709004b1c0a0048220b004a27070056290c +00693510006f390a00753e0500753a02007a350b007c320b00742e0a00672c0a +00562507004a2007004a1f07004b1e07004d1f050052250600562804005d2904 +00612300005d220000592100004a1c0500441b05003d1a060038180100321205 +002d1217002c100f00360b0000421100004b1d03005d2904006e3309007e320e +008748130093490f009f4b0b00a3530000b44b0a009d2e0000892a0a00832809 +007c320b0078360200753600007532070070300a006a2f1100672c0c0062260a +005e2507005a2601005c24000059230000522400004c20030048190000471902 +00481c0300501d02005b1f0300602402006428030068270000692a0100762f00 +006f2e0400682d05006023070059210600521c04004d17000051170000560c01 +006a1d00006c230200702b0a0077310f00732f1c00763610007e3a1500793510 +006e2c0c006a25060065210000661d0a00601d14006f240d00813110008e3f14 +0096411a009f5224009e4f14009e5510009e4e0f009948130094470f0091440e +00893e040080430000863c0000853706007f340c00832f0d00a5301e00ac440d +"/> +<palette number="184" name="Apophysis-040427-4AlienFlwerBwl" data="009b8844008a6135008769340085713400826733007f5e3300784f3300714133 +0000000000181312003126240053483900766b4f0078674b007b6347007f5f4d +00835b530097663d00906b3a008a71380094773c009e7e41009c8342009b8844 +009089550096865b009d836200a3815f00aa7f5c00a7825c00a5855c00a88754 +00ab855600a68e5e009b8c5000918a4200897d480081714f00876f4b008d6d47 +00a0825000a78d5900ae996200b3916200b9896300b6856800b4816e00ba8871 +00af907100ad937000ac8b6a00ac836500a1816b009680720093816f0091826d +007d845a00777a560072715300767558007b7a5e00817b6700887c70009c8b71 +00b6a38300d4c59e00dbcfb000e2dac300e2d8c500e2d6c800e4d8c800e6dbc5 +00e3dbc400e2d9bf00e2d7bb00ddcdb000d9c4a500d4c5a100d0c79e00d6c99f +00d9ceae00e0d5b900d7cbac00cfc2a000cfbf9900d0bd9300c1b38600bfa276 +00b9a17100b6a17200b3a27400b4a47500b5a77600bbb57b00c1b68800c9bc92 +00d2b89700cfbc9c00d0bf9b00d1c29b00cfc19a00cec09900cdb6a400bab4a4 +00afa29a00a8948800a2877600a6867100aa866c00ab876d00bd916c00bc9574 +00c4a08000d4bfa000d5bfa600d6bfad00d6c8ae00d0c4ae00d4bfa000d3b694 +00cfb18f00c9aa8b00c3a48700bda48600b7a48600ae9a7f00a1a37400a09665 +008d895c008184590084855c0088865f008f87600098856700a5987500af9c72 +00ae956c00a285600096755400926f4f008e6a4a00955f45008f5e35008f6334 +008d6132008e563f0087523b00814f38008661340083623500776235007a5a33 +0000020000000100000000000000000000000000000002010071402000844b2e +007c453000000000000000000000000000000000002e241b006b5032007e6141 +00886a46008c6e400090733b00937a4400a48e5500b79d6c00c3a87900c9b88d +00cdbc9100cfbb9a00b7ab9300a480800096807200826e6f0085775d0094794e +00a07d5300a07e5400a1805500a8884d00a9824b00ab6f5500ac705800a47e5a +009d825300927e59008c8e690095997800a29d7500aa8e6900a5835d009c7652 +0095764a008f6c440099654d00a1654d00af725d00b3826400bc967200c3ac80 +00c9bc9000d2c39c00d9caa900ded0b500d6c8ae00cec1ae00c8b49300c2ad8e +00c0ad8200c0a47d00c39e8100bea18100b4977700a87f6b0097736300836b53 +008c724f009d836200b5987600bda58b00cfc39d00d8d3b500e4dabf00dcd4bf +00cecabe00d1d0b200c7c49b00c9be9100c3bb9700b8a98000b0a27100a89d65 +009d824d008c683600724f29001b161200000000000000000000000000000000 +00000000000000000000010000423429006f684c0090785600b29478009d9856 +"/> +<palette number="185" name="Apophysis-040427-4AlienFlwrBwl_inv" data="0036436d002c4267002d4263002e4360002f416300313f66003144600032495b +0043545b004e596800595f7500576c8400557993004b739300426e9300426c8f +00436a8b00325a74002d4d6300294052002c3d51002f3b51002d3d58002b405f +0028457100314e72003a58740041597600485b79004c607c00516580005e5c8b +005f699a007a77a2007878a1007779a0006f799c00677a9800607091005a678a +0050679100577196005e7b9b006788a8007195b5006d9ab7006aa0ba0070a1ca +00709ccb0078a2c8007ba9c7007eb0c7007da6c8007c9dca00829dca00889dca +0099b1dd00ccd8ee00ffffff00ffffff00ffffff00fffefe00fffdfe008ebfdf +007bb4d100aed3ee00d6e9f600ffffff00ffffff00ffffff00d1dbe40094afcd +008494b5007990bc006f8cc400657eb7005b71aa0051699e00486293003c5786 +003647720030446500456172005b7f7f00627f8600697f8d007d9190007a88a2 +006587ac006183ab005e7faa005a7bae005777b200567db4005490aa00538fa7 +005b81a5006d81a6006b7396006a668700636488005d628a00557196005a7ca2 +006a89b5006891b300669ab200629ab2005e9ab200508da2004c7d9b0043698d +003c537f002d3c630029385c0026355600212f4a0029375100313e5100374b6c +003f527d003d597d003c617e003e5f7e00415e7e004b68880057809400688c9c +007c94ac00627c9d00567193004a678900425a7400303c6200272c4a001b2540 +003135410034385200383b6400373e690036416e003c44680047567f004f5d8e +0057629a007397c90080a3cf008db0d600e4e9ed00ffffff00ffffff00ffffff +00ffffff00ffffff00ffffff00fffeff00bdcbd6009097b3006f87a9004d6b87 +006267a9007397c900749ac900759eca007e9aca007a8ecb007c96bb0080a1cc +00fefefc00fefefd00ffffff00ffffff00ced9db0094b0b3008994b0007f94af +00849cb8007ca4ac006f98b8006899c2007196c200758ec7006989c4006181be +00696cb3006c71ae006f76aa00637aac00627c9d005e80a3005580a3005a7aa3 +005778ab00547aa9005276a6005971a1006172a8006e75bd007b88bd007e8eb0 +007292b8006388b5005f7daf006068a90051669d005067930046769c004b7e91 +0045778e00506f8e0052668b00526c8f004c759500537c9a0056919900697f8d +006e7d920075789b00827ba5008189b0008d8eac008690ab008485a10077838f +0063748e00495c7c00384a6e002b3a6100222b4a001d253c001d2937001b2737 +0019243a0019243a001c243b001a243d001d28440022315000263b5a002f3861 +002936600026315100202b47001f2a4600222d4b00303d5f002f426c003e4c79 +00405d8900425d8c00465e8e0049608a004c5d8b004a588900444a84003e4977 +"/> +<palette number="186" name="Apophysis-040427-4AmusePrk" data="00810e5b001b00450044004d006d005500992c3400c5581300d36c1000e1800d +00f3bd2900f8d32d00feea3100feea3000ffea2f00f0c12400e2991900d39524 +00c4922f00f9b27400f3c07f00edce8b00efcf6d00f2d15000f3e35600f4f55c +00f8f63200fae72e00fdd92b00e0d24100c3cc5700b3c66000a4c06900c47066 +00fc432e00a228010082140d00630019005509230048132d004d293a00533f48 +00b2839500b7467500bc0a5600dc064100fc032d00fb012400fa001b00ee0000 +00e000120081010e0050062d001f0c4c000f09290000070600001c0300003100 +0075a70600aaa00d00df991500e6842600ee6f3800d96e4600c46e5500a34128 +00a24100001a3b28000d4a1500005a0200005902000159020002311f00000d2c +00000024000000210000001f0000011c000002190000031c0000041f00000022 +000100240000092c0000142f00001f3300002c3700003a3b0000483d00015643 +0002363400032c1a0005230100021e0a000019130000222400022a3600003638 +00005643001165670056848a009ba4ad00c298b300e98cb900c0968a00aba38c +008ab88a0077aa6000649d36006ca22b0075a720008bb40e00a4be1c0094bd09 +0092b503007b87010079610f00773c1e00632a1f002d2711001b113300010a2b +0001002200000424000009270000182500002824001c641000436e0300907734 +00da946000dac38000d5c18100d0c082009cb25f009b976a0095a98600d47e97 +00ff055c00ff057c00ff059d00ed34a300dc63aa00ec779200f3a49d00f4a59e +00fd9b8200fd055900fd055900fe055900f3004000e8002800df040000c50f02 +0045002300311b1a001e361200025c0200007402000176040000641400016622 +0000654500024325000154210001651d002a8303004a8803002f820000007502 +0000560500003f120000282000000a2a00000b2b000021310029472f00799429 +0092b62000c5bd1d00feeb2d00fdfb3700faf44400f4f45e00f8fa9500bcd39d +006daa9b006aa6920068a28900327e72000360560002554500023538002d1b31 +006d005600b8005800d7013d00f0003d00ee0e1900ee0e0c00e8500400c56f00 +009eaa0c00b1b64200c4a43300fc744000f0674500fa433100fb291a00fa3f14 +00fa3f1600ed572400c7861e008b88410089905c0089674e0058313600404407 +00414401006482000088a70c00a2bf2f00d6e62100f2f33300faf17000f3f89a +00dbdfbe00d1dcb400b0cdaf00b7c2bc00f2cbe000f5eae800faf6d100e5efe7 +00ece1e700dbe6d600bfd3b800a4c49500829e88006ea399006ea79e006a9790 +00347d6a002945460000453d000038390001323600011e2e0000243200013437 +000f3e2c00015410002b480e00403508002b2b0f00350d010042012300ec0089 +"/> +<palette number="187" name="Apophysis-040427-4AmusePrkInv" data="0013ff7600caf2fe00c4defa00bfcaf700debaf300feabef00f7b6e100f0c1d3 +00ffdbcd00fed4cb00fecdc900fec3c500ffbac200e59eab00cb829500b07582 +0095686f00915c6600764b68005b3b6a003f2a4900241929001b1b2000131e18 +0005092e00091e26000d341f002e3337004f3250003e2a4d002e234b00242041 +000c0765000d0ccc003526ce005d40d0007c5ee7009b7dff00ac9cfe00bebbfe +00a7cec9008e9eb600766fa3005774c2003879e1002590de0012a8db0005c0e9 +0005c0eb0005bcce0004a3c600038bbf00286abe004e49bd00574fd8006155f3 +0017affb0014d0f00011f1e6001cf7d40028fec20037feb40047ffa70092ffa9 +00d2e4ce00fdaaba00e595a300cd818d00b26f8100975d7600925564006c4758 +0007056a0006089200050bbb00030fc6000114d2001d2bda003a42e2006d49df +00866bd600ffdece00ffe9d100fff5d500ffe6da00ffd7df00ffa9fa00fc9aff +00d07dff00d27cfd00d57cfc00e98bef00fe9ae200fdbcda00fea9c000ff9aba +00fe99dd00fe89fb00fd96fc00fda3fd00efb6f500e1c9ed00baffdc0071f8fe +0020fbff0016fddf000cffbf0006fcb20001faa60002faa60025998e0002647d +000b5a610013886d001b926100239c550000fa620001ff810000faa30013db6e +006a56790066518c00634da00049468e002f3f7d00253c7f00142a9700256b9f +006f88cb00e39bef00f1b9e500ffd7db00fff6d800fefdde00feffdd00fffad6 +00e4eecc00c0e1d6009cd5e00092cce00088c3e1008478fe007854fe006d4afc +006b42f600744bf1007f51e8008a58df009b62c9009758830075477500665c74 +003f6975002a6e5d0016734600645b5200957b6e00ee9a9800ff99b600ffa9bc +00ffc9c700ffdddb00ffe1e300ffe6ec00fadcfe00fedfe500fdc9cb00feb5c0 +00ffb7c200ffbec300ffc5c400ffe0cc00fff4d400fff6d300ffffd300feffdb +00ffffdd00fffbe000fffde600ffffe000ffffe000ffffdd00ffffdb00fff6d7 +00fdcee000fdbaee00fea6fd00ffa5fd00fea7eb00e5c4d70082d9c6005dbeff +005cbed7003b91aa001190c7002067e5002066ea002d5ce6008a58f900d597f8 +00ffceff00fff8f900d5ffd100e0f3b300a5e7cc007efef1005ae8ec001fffed +0011ffff0005ffe40003fcd20024fbcf0043f5a900259b67004d7c6a0065838d +00acc0b700b7ecd2009bffe2009cffe6008ce6fe005dd7fe001eeefa0003bcd1 +003b8f99005b3f96003c33a8002e24d2000226d4000020cb000709cd000101b7 +000b0aa3000d2eaf0002239400123174000a3f5f00064d8b001e48ae003b6dd0 +001d66e6000d42cc000015d0000113cb000115ce000226d4000c42d6002067e7 +001e7ff2003aa7ec0086d4c60092ffaa00d1e7a700e4ffba00c7eba5007ef1a4 +"/> +<palette number="188" name="Apophysis-040427-4AmythIceInv" data="006d7232004b503c0055583e006061410074744300888746008d914700939c49 +00b1af5800b7b45b00beba5f00c3bf6500c8c46b00c9c36e00cac37200c8c671 +00c7ca7100c7c36800c2bf6400bdbc6000b5b45900adad5300a1a24b00959744 +0040a4300040a4320040a43400558645006a6957006b6d4c006c72420080863e +00838b3e00acac5200b3b15a00bbb66200bebb6400c1c16700c1be6500c2bc64 +00bbbc5e00acac53009d9c490088883d0074753100605e2a004c482300464225 +00373c260055614b007b815600a2a26200b1b06400c0be6700c5c26a00cac66d +00dadc7900e3de8c00ece19f00f5e7b000feedc100f7e6b800f0e0af00ead5aa +00e1d58300ccc86f00d2cd7600d9d37d00ddd58400e1d88b00ead9a500ffeddf +00ffe9e100f1e0ba00e4d79300d6ce7f00c9c56c00c1bd6500b9b55e009b9e4d +00747e420013311900122b220012252b001d2d30002935350045543f005baa5b +0094db8d00a9cc7a00bebe6800c1c06700c4c36700c4c36700c5c46700c5c467 +00c5c46700c6c66600c7c76700c8c86800c7c86700c7c96600c7c76700c7c767 +00c4c36700c2c06400c1bd6200c0b95e00c0b55b00b6b55b00b3b25800a6a64e +00979945009e9d4a00a6a55100aeae5800b9ba5c00bcbe5d00c3bf6400c4c366 +00c1c16700c3c16600c5c16600c4c16500c3c26500c4c36700c4c36700c5c467 +00c5c46700cbc76e00ccc67100cec67500d4c67f00d8cb8700e6d5a100f8e0c4 +00f2f7fd00f8fbfa00fffff700fefff500fdfff400fdfff200f6f2e600ead5aa +00dbd38800cbc86b00ccca6a00cdcd6900cdcf6c00bedb6d00d8f17900dee57b +00d5dc7500d0d67200ccd06f00ccd06f00dee57b00e9db9000eadba200e5d49e +00e2d18b00cec47f00cec37c00cfc37900c4bd6c00c1ba6900c0b76a00a0a378 +008b9155008e976200929e70007e8b790065c16a005cbf6d0052b3480041a833 +00359e2700359c26003f5b3200474f38004c4f34004a5533004c592d002e9319 +00399e28003ea22d0043a7330091984800a5a54f00b4b35900b6bb5f00bdbe61 +00c3bc6b00bdc4800090d5a60095dbc300ade6e000c5ddab00b7c69b00cbc281 +00cdc47500cbc77000cbc86900c8c86800c7c76700c6c56800c9c56c00c9c56c +00cec57600d0c47a00d8c58100d9ce9000e5d0b100dbeedb00fbffee00effce0 +00ddebad00e3eb9800e5db8400dbd68200d4ce7a00ccc37400aca87b00979c7c +00758062005e614c004b533e00494e4700535458006966610085885b00979a4d +00a3a24f00a8ad490094bc590048b3410033a631002b991e0025971e0020961e +0013810e0013800d001d8b12001a851300364d23003d4b28002c312d001f2c22 +001c180f00182104002e2a04003738190039401e00575e340066643400737136 +"/> +<palette number="189" name="Apophysis-040427-4AmythIce" data="00928dcd00b4afc300a9a6c0009f9ebe008b8bbb007778b900716db7006c63b6 +004e50a700474aa3004145a0003c409a00373b9400363b9000353c8d0036388d +0038358e00383c97003d3f9b0042439f004a4aa5005252ac005e5db3006a68bb +00bf5bcf00bf5bcd00bf5bcb00aa78b9009596a8009491b200938dbd007f79c1 +007c74c1005353ad004b4ea50044499d0041439a003e3e98003d4099003d439b +004443a1005353ab006263b6007676c2008b8ace009fa0d500b3b7dc00b9bdda +00c8c3d900aa9eb400837da8005d5d9d004e4f9a003f4198003a3d9500353992 +00252386001c207300131e60000a184f0001123e00081847000f1f5000152a55 +001e2a7c00333790002c318900262c820022297b001e27740015265a00001220 +0000161e000d1f45001b286c0028317f00363a93003e429a00464aa1006461b2 +008b81bd00eccee600ecd4dd00eddad400e1d2cf00d6caca00baabc000a455a4 +006b24720056328400414197003e3e97003b3c98003b3c98003a3b98003a3b98 +003a3b9800393999003838980037379700373698003836990038389800383898 +003b3c98003c3f9a003e429d003e46a0003f4aa400494aa4004c4da7005959b1 +006866ba006162b5005959ae005151a7004645a3004341a2003c409b003b3c99 +003e3e98003c3e98003a3e99003b3d99003c3d9a003b3c98003b3c98003a3b98 +003a3b98003438910032388d0031398a002b39800027347800192a5e00071f3b +000d08020006040500000008000100090002000b0002000d00090d1900152a55 +00242c77003437940033349500323296003230930041249200270e8600211a84 +002a238a002e298d00332f9000332f9000211a840016246f0015245d001a2b61 +001d2e7400313b8000303b8300303c86003b4293003e4596003f4895005f5c87 +00746eaa0070679c006d618f00817486009a3e9500a3409200ad4cb700be57cc +00ca61d800ca63d900c0a4cd00b8b0c700b3b0cb00b5aacc00b3a6d200d16ce6 +00c661d700c15cd100bc58cc006e67b7005a5ab0004b4ca6004944a00042419e +003c439400423b7f006f2a59006a243c0052191f003a22540048396400343d7e +00323b8a0034388f00343796003737970038389800393a9700363a9300363a93 +00313a89002f3b8500273a7e0026316f001a2f4e00241124000400110010031f +00221452001c1467001a247b0024297d002b318500333c8b0053578400686383 +008a7f9d00a19eb300b4acc100b6b1b800acaba70096999e007a77a4006865b2 +005c5db0005752b6006b43a600b74cbe00cc59ce00d466e100da68e100df69e1 +00ec7ef100ec7ff200e274ed00e57aec00c9b2dc00c2b4d700d3ced200e0d3dd +00e3e7f000e7defb00d1d5fb00c8c7e600c6bfe100a8a1cb00999bcb008c8ec9 +"/> +<palette number="190" name="Apophysis-040427-4AngOrchid" data="00ade5c800c0ccc800a79cc8008f6cc8007a58ac006545900065439100654292 +006749a100684aae00694bbb006246bd005c42bf005a3eaa00583b950054388b +00513582005b41bc005946c900574cd7004e5ccd00456dc4004777c0004981bc +0027635b0013383900000d180013383a0027645c0028645d0029645e0029665e +0029685f0029665e0028655d0027645c0028665d0029685f0029685f002a6960 +002b71660031866e00389c7600389e7b0038a18000369f7c00359d780039a17e +0039a2830046ad980054b7a90063c2ba0082d1c700a2e0d500a3e0d500a4e0d6 +006cbfab0056b39a0040a78a003ba4870037a2840037a2840038a3850038a588 +0040b09a006bb8c00089c6c500a7d5cb00afd7cd00b8d9d000bcdfd800bdecd8 +00b5e4dc00b4e3db00b3e2da00aedfd900a9ddd900a3d4d6009dccd40078b9b1 +0059968400336c65003e4e6f004a307a004b307a004c307b004d327f004f3483 +00665cbf006b58cb007055d8007765db007f76df0070a6cc0063bab1004daa8d +003a9a7e002a6c620029685f0028655d0027645c0027645c0027645c0029665e +002b6d630035857600409d8a00489e9a0050a0ab0067b5b70080c2be0098bdd7 +009ca6e1007459da006d53db00674edd005d52dd00594cd8005f53d1006b7ad5 +0041a2a90041a09900429e89003ca0890037a3890039a9910041ac980042af9c +0048b4a40041ad9d003fab93003da989003da280003ea27e0043a37e0044a582 +003aa3840039a3860039a4880038a4890038a48a003daa97004aa8b0005eacc0 +0069b5c5008fd8d10089cdcd0084c3ca0076bdad0058aba3003796900030796e +002b6d63002b6d63002b6d63002e7469003e9d7d0045ac910065bda70078cac4 +008fccbd00a9e3b100a1dabb0099d1c6009acbd0009cdbd300a6ebcc0099d0bd +00b7e0a800b8e2ac00bae5b000b5ebc700b6efce00b5ddd500bedcd400c6efcd +00c6f0cc00c2e4c900bfdebe00b1dea30098b2a5006eb6a8004eab8e0042a586 +005cb9a60065bdac006fc1b30086c9b800addda100b0dc9f00b5dd9e00b1db9c +00a2c38c00669c8e0050ab8c005db59c007fc3ac009fd0a300addd9f00afdb9e +00a5c48b0099b3830058927a004a83a1006a549d00886ab200b08fe600a7b8e3 +00b5d6db00c3e6e000d0f4d800d4f3e100ceefde00c2efd800c2efda00c3e6e2 +00cfe6de00ceeee100d0ebe600d3ede400d2ede400cae4e100bad8da00aebce1 +00b09be8009574dd008763cd006b52d2006850da007f67e1006f8bd50067a1c9 +005498bf00408897002d756a002b6d630029685f0028655d0029645e0029645e +004a307a004d317c0050348100563a8f0057398300346d66002a69600029685f +002a6c62002b716600438a7a005a939a007fc1b70084d5ce00a7edc900b5eecb +"/> +<palette number="191" name="Apophysis-040427-4Leaves" data="00bab2c10057624400403c2e002916180031161700391716004d28180062391b +009f5f2100ad7a4500bc966900b4a37f00acb09500a6aaa000a0a5ab009fa5ad +009fa6b000bcc6bb00c1c8bb00c6cabb00cac3b000cfbda500c5b89900bcb48d +00c0851d00c8891500d18d0e00da9c1000e3ac1300e3b61300e4c01400e4ac19 +00e2a21a00d28e1300c27d1d00b36d2700b0761a00ae7f0d00c08d0c00d39c0b +00ddbd5a00d9c48400d6cbaf00cfd4c800c9dee100c6dee500c4dfea00bcdcf3 +00c6d3f300d1d9ee00cdd5d900c9d1c400c4bfb100c0ad9e00c0ac8500c0ac6d +00e8d22e00e1d84400dbde5b00d6d58000d2cda500ceccab00cbcbb100c5c7b9 +00b3bdb500948d71007d67430067421500643d0d00613906004225000026150e +0015112200241e1800342b0e004a341500613d1d006b42220075482700846c4a +00ab876d009aa38e009aa19b009b9fa8009a9ea100999e9a00939c990096938c +00a8a48100a8b69a00a8c8b300afd0b700b7d8bb00d0d6d200dadfd900d6dfda +00cfdfd500d1c8b900cec09500cbb97100c8b76900c6b66100c8be5f00d2b25b +00cba54000ce893200d26d2500c6622300bb5821009e581300a36113009e7639 +00b07d6200a3a8bc00a8a8c500ada9ce00abc1d600adc8d900c4ccce00c9c8c6 +00d1cfc200d4cfc600d7d0ca00dad2d800ded5e600e7dddb00ddd7c700d9b9aa +00c88e6000bf822f00c17d2700c3792000c3922900bda35800b8ac8400babdb2 +00bbcac500b6c3c300b1bcc200afbcbb00adbcb500a5b4bb00a0b9c000a3c1cc +00b5c2c800ccd4df00d2dae100d8e0e300dee7f000e3e9e900e4e8da00dee2d4 +00d4c4ad00d4c29d00d4c08d00d4b07400db9c5500b17e3c007c562700743e1a +0052131b00121206000e1106000b110700110907000f0e0c0021161200234417 +00a45d7b00b17d9600bf9eb100cfc1be00cfcdd200d2d5dc00d8dcdf00cde0de +00bee1e300c4d1da00c9c9c900c9c3a900c7bf9100b2ae8100aea98100aeac86 +00afa7a500b3b0b600b8bac700c4c8d100d1d3e000cde3f100d4e9fa00dde8fa +00d1ecf500c5e0f100d4e2e200d8e5d100e4e9d500ecebab00eed09c00d9cd77 +00cdb95a00d5a93c00d7a93a00e9b43200e3c92e00ddcd2200e8ce1900ecda14 +00e7cb2200efbb1700e8b51e00eab11a00e8a41b00da8f0f00c17c030098560c +006c4e0e004f44300078725a00a79d9100b9bbba00d4d0df00ddd1e700d5d2e5 +00d1dfe800d1dbe400c5d3e000bdcbce00aebbc10099b2ae0064b0a300869286 +0078858d00627a84006f7887008c8d6500948e5a00b38a3200c56b0a00a64e07 +008f2d1400643716003e180f001f090b001c041100320c0b004a260600734c00 +0085561e009c602c0091835600927c6e008e9e5700878f5e006f767c00666867 +"/> +<palette number="192" name="Apophysis-040427-4Bdlnds" data="00413713002c221800281c0f002417070026160700281608002d2e090032460b +003f591a004e6134005d6a4e006e6f63007f747800a37a7300c8816f00c48e77 +00c19c7f00c3dfe200c1dde300bfdce400b9c0b700b4a48b00b7a18600ba9f81 +00bda89700c2c5bc00c8e2e100cfe7e600d7edeb00d9eeec00dcf0ee00def3ee +00dceeee00dce8e600dce8e500dde8e400d6e5e600cfe2e800d2e4e800d5e7e9 +00d2eaec00d1e7e900d1e5e600cee2e200cce0de00cbc4be00cba99f00af978d +0093807c00856864007f6d68007a736d00837978008c8084009d8f8800af9e8c +00b4dfe600b8dfe300bddfe100b3b8b300aa928600a2867b009b7b7000957357 +0089714b00635d23006258220061532200625b270064632d006f695100776861 +0080757d00856d69008a6656007d6a5000716e4b00606a46005066420050663f +005565380050572400555520005a531c0057521c0054511c00525f1000405a11 +003f420b0049490f0054501300665a1b00796423009f642a00936a4a009d634d +009e715a00afa37300b1a77800b4ac7e00baa98300c0a78800daad9a00d2e1de +00deeeee00e2f0ef00e6f2f000e6f2f000e7f3f100e4f3f000e4f2f300e2f1f4 +00e6f0f200f5fbf700f5fbf700f5fbf700f1fcf600ecf8f400e6f5f200dfefef +00d6e9ef00cbe3ec00c1dde900c0dde600bfdee300baa395009a8f89008a8486 +007c71810069797900728074007b876f0093916a0098847d00b09d9900a9d5e2 +00a7d7e30096afb300868883007c7b6c00736f56005f5d37006658290082644c +00b38b8b0075703000977b4a00b9876400cbaf9a00c0dde100bbdde600b6dee0 +0097866c00897b64007b705c0060573a005f4c2e005d45230068412200774c19 +005d5225007e5e4900856b5b008c786d00b4938400cba99d00cfdee100dfeaec +00f7fdf900fafdf800fdfef800f6feff00f7fbfc00f2fbf600e9f5f100e3efed +00d8e8e700cae1db00cbb79600c1ad7a00b2875d0091773e00795c3a00735a46 +005f6e71006a82880075969f00969eb300a3cde500b7daf000c2e3ec00d5e8ee +00dfedf000e4f2f200ddeff100d4e7ee00d3e7e600cde6e200d1e0e500d5c7bc +00c99a9000b18c8400907a6f008a6d4f00777046005e6d320054652e006c6642 +00816c670092808e00aba1a900b8dde300badfe700bde0e600c6e5e700c6e6e5 +00cee2e100d7c9be00ccae9400b4967c008b7641007269260067601c005c5c2a +005e5e3a00726e6200979e7f00b0bfbc00b6dce700c1dde800c9e0e800d3e5e9 +00d6e8ec00d9edeb00dcf0ef00d9eef100d5eef300d9ecf200d9ecf200d3e9f4 +00cee6f000bce1f300b7dbe900badde300c1a8a100be938300ab878700ad7e88 +009977870094798a008e7e88009177840083756c006b665300504740004f4c23 +"/> +<palette number="193" name="Apophysis-040427-4BnnySurp" data="00f69850007949d100a05bae00c86d8c00da7a7400ed885c00f18f5500f5974f +00fea34800fea54700ffa84700fea54700fea34800fea54700fea74600fea746 +00ffa84700ffa94800f5ba3e00ebcc3400e1c52800d8bf1d00dcb52c00e0ab3b +00df906700db896700d7836700cc7e7500c2798400b6719600ab69a9008c55bb +007546d0005233fd006039eb006f40da008b52c200a865aa00ad69a700b36ea5 +00cb796d00d17e6800d8836400d27d6800cc786d00c6777400c1767b00b87191 +0084579a006049530095604100ca782f00db854000ec935100f1955000f69850 +00ffa64600fea84900fdaa4c00f9a15c00f6996d00e6957700d7928200db7580 +00bc70a100bb728f00c97a7b00d8826700db856200df885d00e58e5800f1944f +00fda24700fc9f4900fb9c4c00f5984d00ef944e00ec925100ea905400e88c59 +00e68a5900de836800de856200df885d00dc885c00d9885b00dc885c00e2895f +00eb915300f4984c00fe9f4500f59e3d00ec9d3600e88f5300db866100c97376 +00b6709500ac6aaa00b06ba200b46c9a00bb708a00c2757b00ca756e00d27b67 +00cd7a6c00b36d88009960a500925aaf008b54b9006a2eb4004f24cb003e1aee +003220f2006d3fdd006d40de006d41e000553cf0005233fd005232ff005033ff +005131ff005431fd005732fc006138ee006b3ee1007d4ccc008e58b800b36aa2 +00c7767200e58b5900eb905400f1965000f89b4d00ffa94500fdbb4000f8ca14 +00fad20100fcbe2400feaa4700fea74800ffa44900fb9c4c00f3945000eb8d59 +00dc8b5e00c3777900b6728600a96d9300975ead007945cb00693ee500612dfb +004a35fe004935fd004836fc004633ff004a33ff004b32fd004c33ff005033ff +005233fd00693ee5006c3fde006f41d7007143d7007448d1007448d1007e4ec6 +007346d4007748cf007c4bcb00744cbf00604268004c3813004a35220005006e +000800b1000a00b5001404e1001b08fa00220efd00352cff00412efc003f21fb +001f09ff001e09fd001d0afc001f0cfe003018ff00432bff004431ff004633ff +004934ff004a35fe004a33ff005333ff006f43d8007f4dc600985aad00b16788 +00c7747000d8816300db856200e0875b00e98e5500eb915300ef915100eb9354 +00ea905400e08a5b00db856200cf796c00b8718f008f57b8007143d7005420f1 +002611ff001a07f7001b07f4002207b600422a9a007146b200a664a200bd7688 +00d7816800e38b5d00f0945100f99c4e00fea34800ffa44700fea44400ffa447 +00fea34800fea34800f69b4c00e59d5100cdab6300ac985d00a0737800a67092 +00b46d9500c3747700ca766b00d3806200de866000e48a5800ea905400f29550 +00f3965000f4965000ff925000ff964a00fd9d4900ffa14700fb9c4a00f39650 +"/> +<palette number="194" name="Apophysis-040427-4BorgEY" data="00887566008c7c65008b7f64008b8263008b8464008c8666008c8666008c8666 +008b8764008c8963008d8b62008c8a61008c8960008c8a61008d8b62008c8a62 +008c8a63008e8a65008c8264008a7b64008a7d64008b7f65008a7b6500897866 +00876e6700826467007e5a68007940630075265f00681a5b005c0f57004f0250 +001d00500002000100260815004a1029004f08350055004100510046004d014b +00761769007a306b007e4a6e0080546f00835e70008460700086627000876870 +00886a6a0085696800846868008467690086686b0088696e00876b6c00876e6a +008c736e008b756b008a776800897a6700897d6700897d65008a7e64008c8163 +008b8263008c8366008d8168008f806b008f816b008f836b008f8468008e8568 +008b8166008c8466008e8866008c8367008b7f69008a7e68008a7e68008a7e68 +008c7d68008a7b68008a7768008a74690089716a00886f6b00886c6900866c6b +0082616c0083626b0085646b0085666a0086686a00876b6800886f6a0088716b +0089726c00897769008a7a67008c7d66008b7e66008b7f67008b8064008a7e64 +008b7c65008a7a66008a79670089786600897866008978660088756700887267 +00897668008a7b68008a7b68008a7b68008b7c69008b7c6900897d6700877b63 +00877463008a7768008e7b6d00907e7000938173008f70750087607500835c6e +00805370007b4d6a0078466900763f6900763b69007439690075396f00742d71 +00753f6300703c54006c3a450069344700672f4a0060165500590855005a1453 +005d26450071554700775c4e007d635600826265008367630088675400745246 +0070504300754c4e007b485900825b5e00845e6b0082616c0085686d00876d6c +00876d6c0089716f008a726f008c7470008c756d008f7e6e00927c7100a08d6f +008d8c5e008c8d5d008b8f5c008c8b5f008b8960008b8960008c8863008c8066 +008a7b64008973680086696d00835c71008a477a00943a6e0099438400b45899 +008867720086666e0085666b00825e680078446a006f2d6a00670e680064195a +006d2e65007d4c690082725900888550008fa1550097a75e009397640092975f +008f8e5e008c895c008b885d008a8162008a7a63008877630084716300866e64 +008264660081606700794b680069345000481d3000481b2f00481923005a3b26 +006c4f3d007c5d58007e58630080546b007c4c72008051710082586e00845d6f +00886a6c008a7e64008f925b0090ac5500a7b85a00aad0630098ae6d009ca76d +00aab2a50095967400939566008d8b62008a8460008a84600089845e00857c5b +00897b61008875670089726a00876f6b00896c6e00896c6e00896c6e008b6e70 +008a736b0089756a0089756a0089766800887567008672690086736500887265 +"/> +<palette number="195" name="Apophysis-040427-4BB4" data="009c890800a1910a00a2920700a4930500a3920700a2920900a1900a00a08f0b +009d8f0c009e8f0c00a08f0d00a1900d00a3920e00a4920b00a5930900a59309 +00a6940a00a6950900a7930800a9920800a6930a00a4940d00a4930e00a4930f +00a7921200a5921100a4931100a2931000a1931000a2920f00a3920e00a6940e +00ab990f00b8a60800d9ca0700faee0600fcf30700fef90900fef60900fef409 +00bcab1300b09e1300a4921400967a2a0089624100a64f4000c43c4000c2292e +00b0252a00ae262a00aa242900a6232800a6232800a7242900a15523009b861d +00bcac1800dcc81100fde40b00fee30a00ffe30900fde30900fce30a00c6ae06 +00b6a613005cab2c00519f210047931700458f1700438c170075650600916d1f +0086790700908209009b8c0b009f8f0c00a3920e00a5950f00a8981100b3a216 +00b8a91a00c3b53a00c5b73b00c8ba3d00dcd22700f0ea1200fcfb0d00fbff08 +00ffff0600fff90400fff40200fdee0500fbe90900f1d61300b7a81100a9970d +009a8907007264030085720f0098801c009a8515009d8b0f009b8909009b8a08 +009f8d0d00a08d1200a28d1800a2862800a2803900bc645a00c6434900c84147 +00ce5a5d00c9bb4000d1c43300dacd2700fee70d00fffa0e00fff31600fde20c +00b2a73400b0962f00ae852b00a9843700a5834400946e57008080be007978be +006462b5004a53ae00464aa60042419f0042419f0041409e0041409e0041409d +003e3e980062516f008764460087644700876448003f3f9900403f9c003a388c +00408916007f830a0083800600877d02009a8905009b8a08009c8b09009e8d0b +00a1931000a2931000a4931100aa981200b7a71600bcb03800d1c86100d1c861 +00d8d29400eac6c800e4aeb000de969900ccbf4c00b7ac3800aa9e24009a8721 +008e7532006a842400479317004a9b1a004c9f1b0079ba520087bf640086be63 +005cab2e004ba11a00499a190047961900448f1800448f180088684200896c44 +00b1a11600bfab1400cdb51300fee30d00fff80900fffe0900ffff0e00fffb09 +00f9e50a00bda61c00977c39008d6b4500957055009a7a3d00af973700b6993d +00bc983800a7951700a5971400a7991200a4961100a3951200a5931500ac9e24 +00b2a636009ac57e00e7c9c900e4e3df00c7d8b80090bf6f009dba6a0091a536 +00a3941500a4931100a5941000a7971000a9991200aa991700b3a21400b5a416 +00af9d1500a8981100a2941100a2940f00a2910f009f910e009f901100a2910f +00a08d0c009e8c0c009c8a0c00a08d0c00a08e1000a18f1300a2901200a39210 +00a2910f00a4910e00a2910d00a2900a00a09005009d8d04009b8b04009c8906 +009c8b07009c8b09009f8e0c009f8e0c00a28f0c00a2910d00a08f0b00a08f0d +"/> +<palette number="196" name="Apophysis-040427-4BflyWindw2" data="00020202001c4b5d00225a6000296a64003d50640051376400643d7500784486 +00bc0c9300ac086f009c054c0069033a00360228002b04260021062500230827 +00250a2900601363007d2279009a31900096279100931e9300841d8000751c6e +0036113d00200822000b00080006010500020202000202020002020200020202 +0002020200101511002c230f0049310d00634413007e5819008a5e1b0097651e +00bc710b00d2701600e8702200d4882900c0a03100d8bc3a00f1d94300e4dc91 +00fefef600fffdfd00fffcfa00fffbf800fd99e900fc38da00e63ac900d13db9 +0092298600601a59002e0c2d001e081a000e05080017080a00210b0d0057350f +007b521e00b9c46800bebf8900c3baab00afa68c009b936e008e8b7a00744c80 +0035728400308669002b9b4f002f815d0033686c002c656c0026626d00256372 +002d668100416c73006d838d00999ba800b2b2b100ccc9ba00e4f6fa00ffffd9 +0082c3bf008c82b3009641a8009c43ad00a246b300f12cd100fe0fde00ff04f7 +00ff12ea00ae4ba8008a4694006642800064467d00634b7b0056564e007c663f +0075937100777378007954800071437a006a3374004e287b00422553002e0c27 +0018061600020202000202020002020200020202000202020002020200020202 +00010204000c0a180017132c001f162e002719300041253e00402643002f153c +00122631000c0f1e000607140000000b00020202000103000002020200020202 +0002000100010001000101010001010100010101000101010001010100020202 +00020202000202020002020200020202000202020002020200111713000e4525 +00449c0a004ba80a0052b50a0039db0b0046cd28003e94270030893900426a45 +0044681e0037411e00272b190017161400060e01000202020011150000414e09 +00655521006e622800776f30007d6537006b613000483b2b0017201f00091410 +000202020002020200190e0000302205003a280000373b00003851000031720e +009db71600a6ba0f00afbd0800a3ac2d00957e20005d55480064174f00540e32 +00371138001922330014444400244648002f565500454f4e00454359006a185a +00b50c7100db0d9400ff08d000f71adb00e9568000a5898500be9f6600cf8d39 +00b077280087561b00882331006d0542004e1d5e00233249002a4359002e3f53 +003d234800462049004e1341004a0c3d00400533002c011f0021081e001d031c +001a021800170a1e000f1c2500112c230016401800424c1000634c1800624d22 +00744a18006e431000724200007f4f0d008a4c1d009f6c4d00842d5a00902b87 +00ab1b970091339300523d7800434c7300424e4c003c2e3b004b2d3500463730 +00353626000e252b000c232900100d1600020202000202020002020200020202 +"/> +<palette number="197" name="Apophysis-040427-4BflyWndw3" data="003137510051286000521f5e0053165c0044114300350c2a001a061500000000 +0000000000000000000000000001010000020300000b1b23001534460021324b +002e3150004e295d005e2564006f216c00751c6f007b1872007e177300811674 +008c1f7800881a7600841574007d187200771b700072236c006d2b6900969374 +00c0bbb700f9f3d100fbebac00fde48700e2c17400c79f6200bf8d4800b77c2e +00896325006c4d1a0050370f00281b0700000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000321a0300643507009c672900d4994b00e8b35b00fcce6c00fcda80 +00b7be8a007da193006a745600584719005c461600604613005e500f00646311 +00b7470700ca2c4800dd118a00eb0f9100fa0d9900e4679400cfc19000fcd985 +00fcdb7a00bb901f008a6b14005a4609004f44130045431d0026333c001d3149 +00233a4c00304e34003d621d0042781a00478e180043a12f00549e2d006dac43 +00a78f5100f0ad4500e19a2f00d3871900bf771b00ac681d00884d0700714307 +001c3e30001c3b3c001c39490021364b0027334d00312b51004a275d00572761 +005f216400622767005f2966005d2b66005b2765004a2c5e0045355a003e3a55 +003932540034305200302f5100302b440030273800452d130053360e00554011 +005f671200607e02005f7706005f710b005f6c1000516317004c3c56005c2664 +006e1b6b006a1c6900661e6700671f67006821670075216f00801e7500841b77 +0089177600dd019900d1039500c6069100921b8100831f75006e256c00927361 +00a9c7ed00cce0ee00eff9f000fffefd00f7f4e100f6bfa100c6ad7700da0d8e +00f9039600f703a000f004a000ea05a000c60691008a1377008d05710086016a +0000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000001010100171e38002d2d4f002e3851 +0026314d001f294700192241001b092100000000000000000000000000000000 +00000000000000000000000000000000001d292700364f2800416d1400458402 +00358b10000a790300086b19000f5b2c00164c3f001438460016354700153d49 +00163e460006503700016624001d850c00408e170057941b0070941600626b0e +003f651a00413c53004b355c0057325e0053355b0082a1650087be6a0072ae94 +006e8980004d3a5800433157003321490018204e0002142a0000000000000000 +0000000000000000000000000039250a004965180051671500425a20004b3b55 +004f2a5e0058266300592f61004e365a00433a5500403c5300343c51002f434a +00284845002c342500432b1100383a2200242e26001e352d0021334b002e3a50 +"/> +<palette number="198" name="Apophysis-040427-4ChalLghtDrknss" data="005d628200e1cdc600e8d5c900f0ddcc00f1ddc800f3ddc500f4ddc400f6dec4 +00f0d8bc00e7d4c200ded1c9009d9eb2005d6b9c00555f8a004e547800565773 +005e5b6e00eed6b400f1dbbc00f5e0c500efdecc00eaddd400eaddd500ebded6 +00e4dadb00ded5db00d9d1dc00dfd6db00e6dcda00e6dcda00e6dcda00ebded6 +00ede1d500f4e2cc00f2e3d300f1e4db00f2e7de00f4eae100f2e8e100f0e7e2 +00f0e4d800e8ddd300e1d7ce009d98b9005a5aa4003d48a5002137a700141f92 +00172b7200292d4600333643003e3f4100444753004a4f65004c5371004f577e +006a6db2008789c800a5a6de00c5c0db00e5dad800e9dcd300eedecf00f4e2ce +00f7e2cd00f0d8bc00efcfa700eec69200c1a4760094825a0073675100514e45 +00454233004541300046412d00484834004b503c0051554200585b480077632e +00d59a3c00f1d4b200f1d5b500f2d7b900efd6b700ecd5b600d9c8b400717274 +004746440043413c003f3c35003e3c32003e3c30003e3a2f003a393400383733 +00333132001b1e27001012190005060b0003030a0002010900000324000a1630 +0039395d005655630074716a009d896b00c6a16c00f6c78f00eabc7e0079726a +00534f4e00111a1f000e151a000b101600110e23001f1e260031313100343530 +003b3a28003f3c2d00433f33004541310048432f004c4532004b44320048453c +0049475200464a6f00404471003b3e73003242b1005f68d1006c73de00b0b1dd +00e4dcd900d6d2d900c9c8da00b5b4db00a2a1dd006872a7004e5782003c456c +00363c4a001b1a2000121216000a0b0d000a0404000b0b0b00181c1d0021212d +0031323600343436003737370037383d003e3e3e0041403b00403f3a00433f33 +00423e320037343d0033323d002f313d00252d4000272041000b152e001a1e27 +003b3a42004040460045464b005b5c6000857e7800d8c09e00f0d3b100f1d7b4 +00f0d8be00f4e2ce00f2e1d100f7e1ca00f2dec600f1d8b900e6d6bf00c0b6b5 +00585d830052577a004d527200484f6c00434f6700494e64004b495e004d5045 +0047443b004743370048423400484232004442360048443800473d4500434343 +003e3e3e003c3b410033363f003234410037343f003e3e4000414546003f424b +0045495500484c6500454b650044465200424347004142470041434f00434159 +004341590041415900393e51003234430034343c003537360035373200343432 +0032332e002c2c2a0022231d00292701002c2f280033342e0034343200363732 +003d3d35003f3f3f0045454300474b4a0050514c0050535c0057575900685e5f +00737061005f5e63004f4e5c004d516e004e53730062616f0078827a00ccbfb7 +00f0d8b600f1d7b600f3d2a900e5c59600766d6e0044475000121b3800383e60 +"/> +<palette number="199" name="Apophysis-040427-4ChalicDrknsIce" data="00998d290024271e00192023000e1a28000c1c31000b1f3a000b213e000c2343 +00696a6f0083837f009e9c8f00a3a19a00a8a7a500a9a8a700aaaaaa00ababaa +00adacaa00a8a8a800a7a8b000a6a9b800a4a7c100a2a6cb00a5a8c200a8abba +00abadb900aeb0b800b2b3b800afb0b700adadb700a9a7b600a6a1b5009ea4b4 +00a0a3aa00a09b85009b957600978f68005c5d4d00222b32001b242d00151d28 +000a18230009192800091a2e000a1e38000b2242000a224400092346000e3a81 +006674a100a09d9400a09f9a00a1a1a100a2a1a400a3a2a700a4a4a600a6a6a6 +00a6adb300aeb2b500b7b7b700c0c1bf00c9cbc800c9cacb00cac9cf00c9ccdf +00c6cbe100b3b4b8009d9ba00087828800726e74005d5a6100192a3c000b1f38 +000f1f2f00343a3d0059554c007974650099947e009c9a88009fa19300a4b195 +00adab9e00b5b28f00b2ac8a00b0a78600a7a287009e9d8900999e8800a3a195 +00aeb2a300babdaf00c7c9bb00c9c7b900cbc5b700dfd1ac00d6cc9100c9bc99 +00bab6ab00a3a6b500a1a4af009fa2a9009fa0a5009f9fa100949c91008e8f81 +000b30650013408e001b50b8002658c1003160ca005b75c000697cb7008d96b7 +00969ba1009091960072788f00546088001c2a44000d213c00091d380007192f +0005162800071524000915210009131c000a111700080f15000e131900121a1c +0026281b006a75530081825f0098906b00b3a48f00c3c0b700ddd5c200e9ddc7 +00f1e2c100e2d9d100d4d0e100d0d1e400ccd2e800e9e3f100eee8f400e0e1cf +00daddca00bebbb400bab5b200b6b0b000a8a8a600a29e9200928f800074746a +001b242d0021252b00272729005d6055007c7d780099968d00b9aca300c3bfb6 +00cecac900d4ceda00d0cad600cdc7d300b9b9c100bababc00b2b3b800adaeb3 +00afafb100b0b0af00b1b2ad00b6b3ac00b9b1af00bfb5ab00beb5ac00bab9b5 +00bbb9ba00b6b7bc00b5b5bf00b5b4c600b7b8bd00b7b7b900b7b7b700b2b1b6 +00adadb500acacb400ababb300adadad00aeaba600a8a7a300afaca300b1af98 +00b4ae8a00a29d8a009f9f9700a3a29e00a7a8a300acaca400a7a79f00a7a49b +009a99850095887700767771004b4b3f00222c2b00131c23000f181f000d161d +000d161d0008121e0007111b0004101c0007131f0006142100061323000b1723 +000d161f000e171e000e1824000f18290007182a000b1a2d00081e3600071e3d +00091d38000c1c3500091b33000b1d35000b1e3c000b234500373b5e005d6c97 +008692bc00979eba00a29f96009a8f73008e844f004b4a1a003738190025291a +00131b1d00121a1d00121a1c0011191b000f181d0011181e00121a1d00182128 +00303318003d3f18008f852600a4953000c9b24000b19c65009e9671008f8c79 +"/> +<palette number="200" name="Apophysis-040427-4CactusFlwer" data="0082856800838367009b786400b46e6200bf877400caa08700bda48600b1a985 +0086866c00807e6c007a766d00777b640074805c0076765400786d4d00756a4d +0072684d007b61540081634e00876549007b6a49006f6f49006f7049006f714a +0061793f005d693a005a5a36005e5e3f006363490065654e00686753007c6a68 +00847e7200b7b6a200d8cbc800f9e1ef00ebcdd400debaba00e3a7a200e9958a +0097856100857c5900737452007a785b00817d6400877e6c008e807500a9a893 +00bebdab00c9c6d700d3d8da00ddebde00d7e7d700d2e3d000cfd8c800cdcec0 +00b2c6ba00abc3a300a4c08d00a4c59f00a5cbb200afc1ae00bab8ab00b5b4a2 +00aaab99007c8486006c756b005d6651005b5c48005a5340005b493b00464735 +003d3d33003c382b003c3324003d3322003f342000423a2000464121004d4a29 +004e57380075796000888974009b9a88009e9d8700a1a187009d9d81009b9468 +007382490068693c005e512f00564e2d004e4b2c00504d2a00623f19006a4920 +00685431006f725d007a81740086918b00959a8b00a4a48c00acac9400b0af9a +00bdb69900afad9500a2a592008e9f8e007a9a8b006b787100586a5c00545c47 +004e5237004f643b0057623e005f604100696d4c00757f66007b9276009ca785 +00a2a28a0095967400898a5e00857b5700826d500086593c00924845007b4a3c +007a532a00443424003f2e1b003b2913001d140b001b15000014140800141408 +0018180c0024231300312f1a00342e1900382d1900352b10002a270600302e00 +003e350000373413003834140039341600363822003f40200042441f00424125 +0048482e0044462c0041452a003e4126003d3d23002d332500272c15001d2015 +00181c0b002b3b2000323d24003a3f2900524e31006a573600705e48006c6d4b +006e7438006d6d3a006c673d00696a4b0072614300816f31008361210088693b +008a76410094715100976e5000a1655a008f7e6400816861006e6053005a5a36 +00404a25003e4520003d411c00413f16003c421c00393f23003a432400464728 +004e4d2e005b5b370063634b006a615c00806d660085827300a1a18900c2b193 +00e3d75100eee04100e5d74300a1b77600aca98600acab9700ae9e9e00a99d9f +00869abd00a3a3af00bab8a900babbad00c1c2b200bdc8c000e1d9b500fefcb2 +00fffcc700faf7e400eefef300eef6ff00e0e6fc00e9f4fa00feffc500fff490 +00f9e17300fffc6700f8f69100dec9ae00c6a09500bc968b00a0837500888768 +0082836400827d6000807255006a644e005d6148005c5b3c005e4d3b00604a3c +004c47310045472f003b3f28003e3727002d3621002e3114002b2b0f00323311 +0039391500464b22005a591800615a300060614200666748006b6c4a00978e71 +"/> +<palette number="201" name="Apophysis-040427-4ChrryBlssmT" data="00febcca00fedcd000fde3c400fdebb900e6d49d00d0bd8200abb3760087aa6a +001f6d53003e886d005ea4880098b18800d3be8900e9c59400ffcc9f00ffd3ad +00ffdabb00ffe1d400fde0d300fce0d200f0d4c000e4c9ae00dfc79f00dac691 +00d0b28000d3b78400d6bc8900ddcd9700e4dfa500e7e4aa00ebe9b000ebe9b0 +00e9e9b300ebebb500e9e6ae00e7e2a800e1d79e00dbcc9500d8c38e00d5bb88 +00d0ae8000cda97a00caa47500ad95800091868c007c878200678978002f654b +000b32200026150500200a0f001b001a00230326002c0732002d1336002f1f3a +0067725400a3a57700dfd99b00eee0b700fde8d300fee7d400ffe6d500fcedce +00fcf1d300f1f3c400e6e0ad00dccd9600d6be8f00d1af8900dc8b9400e47a91 +00ea6fae00f286b500fa9dbc00f9a1bd00f8a5bf00e397b300ce89a800c687a4 +00c6939000caa47500caa67800cba97b00cbaa7c00ccac7d00ceb07e00d3b583 +00e5d79600e0dcab00dbe2c100ebdfc900fcdcd100ffcfcb00fec5cb00f8babf +00fbacb100c7a17200c2956a00be8a6200be886200bf876200bc815f00bb805e +00b4785600b8714c00bc6a4200b0583300a44725006f2613006c181800250b24 +000a003500080034000a002b000c00220012101500001326000a3b40003e7139 +00bf8b6300b7897600b0888900868380005c7f78003c55510039294300291f3a +001c0730000f274d0020354c0031444b00356f63004f96780066a1810089b38f +00b48c9500c19c8900cfad7d00d3b18600d7b58f00edc3b500e6c2c600f6c2ce +00fcc1d300fdc4ca00fabfc600f8bbc300ffbcb700ffa6a600d8af8f00c59483 +00664c59004d3a4d0035294100280d3000130135000c02340006003500030035 +000300350001322e0007351e000e390e0008602600385211002d6f25006d705d +00b87c5a00b4715200b1674a009a4e2e006e47200036222400211d2c002f2442 +0047404800ab714b00e0635d00d68c5b00c79c7100cca87800ccaa7c00ceac7c +00cba67900c8a07300c69b6e00bf8e6500bf8b6300bb805e00b9845c00a2a451 +009daf750077ad93008cb68400c2c18100dfd29b00e8e3ab00ebf2bf00f3f5c3 +00f8f7cb00fdf5ce00fbf3cf00faefcf00fde4d000fed6ce00ffccc300f1b1c2 +00fba3bc00e484aa00c38087006f543f004628340029301100384a10008e6531 +00b1725100c4936a00d2b58900e8d7a300e9eab000f6f4c400f9f4cc00fdf2d4 +00fff2cf00fef0cb00ececb600e4dea400dac48b00d0b18200cba77700c89d72 +00c4976d00c2966900c4976d00c3927200c5987100c69b7000d89c7a00e1a97a +00fa9f9c00f2c2b400eff1c200f7f6ca00faf6d900fcf4df00f9ffd800f2fbce +00f5f7c800f5f7c500f1f3c100ebebb500e8e9af00e6e7ad00dfd49c00e4e6a5 +"/> +<palette number="202" name="Apophysis-040427-4ChrryBlssm2" data="00dddeb200e4eabc00eaecb100f1eea700f6e3ab00fcd9af00fdc7b700ffb6bf +00fdcacf00fed2dc00ffdbea00ffdcdf00ffded500fce8d500faf3d600f8f4d4 +00f6f6d200faf4de00fbf3df00fdf2e000f6f4d600eff6cd00eef5ca00edf4c8 +00e9eec600e5eabe00e1e7b700d0d3a900bfbf9b00adba8f009bb68300559573 +0000586a00002c4b002349630046667b007ea69700b7e7b300c4efbd00d1f7c8 +00edf1ce00f4f2db00fcf4e900fdf6eb00fff9ee00fff6e800fff3e300fbf1d6 +00f6f3d000e7efc000e5ecbd00e3e9bb00dcdcb100d5d0a800cdc19d00c6b393 +00a56f65005e483b00172211000b3508000049000000502200005745004e7970 +007ca27d005ba979002d8b7600006e74001b768100377f8e00818d8b00b49882 +00c6a97d00cdc27c00d5db7b00dbe09700e1e5b300e1e6b600e2e8ba00e5ebbf +00e6ecbe00e4ecbd00e2e8ba00e1e4b700dfe1b500dedfb300d9d8ac00c5c6a4 +00c7b49400caba9700cec09b00cdc19b00ccc39c00e3cb9f00e4bd9600d8a085 +00ef818e00eb6cb300d773ad00c47ba800b3758600a2706500414e57001f2245 +00000040000003400001074100000e4200001544002c405b006f727b00a97e6e +00ab7b6d004c646400424b440038322400240f2e000003300001013300000034 +0000013a00000d4200001a4b0000234800012d4600275150009f896000b08978 +00b9998400c3ac8d00c2a98c00c1a78c00bb9d8300b8988300b8967d00ba9c82 +00c2ab8c00c8b69400cfc19c00dcc39b00eac59b00f9d9aa00fdcfcf00fdcbd6 +00fdc4d500dec8d500dccbc600dbcfb700c1a3af00bb9b8600b3897900b47588 +0076151e005f12160048100f002210020014200800163f390059716100b08a77 +00c6b39300dfe5b700dee4b600dee4b600cfcb9e00c4ad8e00b48e7b00b0606d +00552116004514150036081500270008000e08220000002f0000003800010039 +00010137000000340000012f00001a0b00002000000005000017000c001e0005 +00211604001417050008190600000e2600001c3d0000225300044362003b7f92 +0097848a00af857500ae8474007c94560021534a0011123e0001054500000039 +00000038000000380001013d000201470000044700000d44000c1c3e00375965 +00a7756a00d8658c00e4669500f48b9200fd90ba00ff90c100f783c200ff8dd7 +00fb97cd00ff9dc600fcb2d500febed600fed1d600fed8d700feddd400f8dcce +00eed2c600e3d2c200dad9ad00d3cba400c7b49400c3a99200be9e8900b48e7b +00b28c790081916c00506f6700123b3d0000353800004a5800117f80006b9d84 +008ea16100a8a37900bea08600c1a98d00e1a2b500de85b300e189bb00ffb7cf +00fbd3d400fde0d800fbf3ce00f0edcc00eef6c700edf5c600e8efc300e3e9bb +"/> +<palette number="203" name="Apophysis-040427-4CircAmbr" data="002811010026100200281002002b1102003114010037170000411a03004b1d06 +007c4b06009b630900bb7b0d00d18a1a00e79a2800d78e1d00c8821200c57b0d +00c27509009b5a00009c5701009d550300b1690600c57e0a00ca810f00d08414 +00de911d00d48a1200ca830700b06d030097570000824800006e3a0000582b01 +003c18000056250400773f020099590100c67f1b00f3a53600f8ad3f00fdb549 +00fdb85000eea53700e0931f00d88a1900d0821300ce831400cc841500c67a0c +00ac620300725931005b3d1900452101003b1a010031140200301301002f1300 +002c1201002b1101002a1001002a1001002a1001002a1001002a1001002a1001 +002a1001002a1001002a0f01002a0e0200290e0100280e0000280e0000271000 +00260f0000260f0000260f0100260f0000260f0000260f0000271000002a0f00 +002b0e00002a1001002a1000002b1100002b1200002c1300002c1300002d1201 +002d1201002d1201002d1201002d1201002d1201002d1201002d1200002e1300 +0031150000441d00005d2e01007640020084480500935009009c6d27008e8657 +00ffc36100feca6b00fdd27600fcd37900fcd47d00ead38300fce19e00fbda7b +00fbce7100e4962700d4881a00c57b0e009f5f0700824800006a3700004b2300 +002f1200002b11000027100000260f0000260f0100260f010027100000271000 +00271000002b1100002b1100002c1100002c1100002c1201002d1201002d1201 +002f1300002f1300003014000030150000311600003415000034150000341500 +0034150000301400002f1300002e1300002d1200002b1100002a100000271000 +0027100000271000002710000027100000271000002a1000002b1100002c1100 +002c1100002d1201002d1201002d1201002d1201002d1201002d1201002d1201 +002f1200002f1200003013010032160100311402005d2e04006c3a0900713705 +00653300004b2501003c1800003415000034150000301400002d1200002d1201 +002e1300002e1300002f140000341501003d190000492100005e2f05006c3800 +006e3a00006f38000061310000481c00003a17010035160200331400002d1200 +002b1100002a1001002a1001002a1001002b1000002b1100002b1100002b1100 +002a100100290f000027100000271000002710000027100000290f00002c0f00 +00310d000034120000351500003c18000052260000653203006d3a0100774103 +00894e000093510300a05a02008e540200854a0000844a0100775309007d4700 +007b4401007243000057360000461f0000381a0200331400002f1200002c1100 +002a10000027100000260f0100250f0100250f0100250f0100230e00001c0800 +00240c0000250f0100250f0100250f0100260f01002611000027120100291403 +"/> +<palette number="204" name="Apophysis-040427-4CsmcOwl" data="003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a +0034258a0024145700150424000a021200000000000000000000000000000000 +0000000000010101000400160007002c0005003900040146000c045300140761 +003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a +003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a +0043349d007468bb00a69cd9008c82d0007368c800594cb10040319a003f2f9a +003f2f9a005552710073645c0091764700a7724a00be6e4d00b26c5700a66a62 +0042379300403396003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a004533ab +008679d300cbc5d300d1c9ce00d8cdc900d3cbce00cfc9d300ccb9cd00b3abdc +0024bfc10030d6a4003ded88003eaa88003f6888003f4b91003f2f9a003f2f9a +003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2c98 +0017113f000b0b1f0000050000000400000103000003001c001c0a3c00160961 +003b2b98003f2f9a003e2e99003d2d980032238900281a7b002400440020131a +00041d00002d1e010057200200601e01006a1d0000681d0800850b2000780929 +00690344003d2d9a00352493002d1c8c0011045c000500400000002c0003031f +0015003f001d0e6100251d840031258e003e2e99003f2f9a003f2f9a003f2f9a +003f2f9a008a73bb009d82ae00b192a100d7b9b100a4a0ae005e9eaa0050a097 +0080684e00915b3b00a24e29009449210087441a00454841003a416d003f2f9a +003f2f9a0039417200484961005751510079623800a8883300d6852a00e47211 +00be6e4b00c0705000c2735500b9b66700e1b7a900d3c5c400d7bab200d8a799 +00d59a8800c0715200aa6e5200956b530058563f004d5f6300577f7e006c6cc6 +006453c3005142b0003e319d003f2f9a003f2f9a0046305f003c3094003f2f9a +0045328e00725438008e3925008834100088340f00802802006f200200692502 +0051122d0049094200420057003d2e97003f2f9a003f2f9a003f2f9a003f2f9a +003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a00433767004c2b3e +00652c18006f123e003e2f98003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a +003d2e95002c2a3f003e380400442800004124040025161b001d000200060004 +00210200004607000058010000762000008430040086310c0084391c005e3851 +00463095003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a +003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a +003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a +003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a003f2f9a +"/> +<palette number="205" name="Apophysis-040427-4DblBeetle" data="00ae4d1a00b5542100b5542100b5542100b5542100b5542100b5542100b55421 +00b5542100b5542100b5542100b5542100b5542100b5542100b5542100b55421 +00b5542100b5542100b5542100b5542100b5542100b5542100b1501d00ae4d1a +00ae4d1a00af4d1900b14d1900b3501d00b5542100b5542100b5542100ae4d1a +00ab4a1700441d5c002516760007109100141fa400212eb8002b38b5003642b2 +0028309d0038287a00482158007b373900ae4d1a00b1501d00b5542100b55421 +00bc5d2300c05c2800c8642f00d06d36009e6c78006d6cba006e75ca006f7edb +00ccb0be00e0ab8900f5a75400e38a4400d16e3500c8652e00c05c2800ad4c19 +008c30000037003a0043052f00500a24006c1b1200882d0100ad4c1900ae4d1a +00ae4d1a00ae4d1a00ae4d1a00b7542100c05c2800c8642f00d06d3600d8753c +00e7844b00f0a77a00f59c6b00fa925d00f7925b00f5925900e4814800df7b47 +00c96a3000c4622b00bf5b2700ba572400b5542100ae4d1a00b5542100b55421 +00b554210082646e00806d78007f77820093767100a8756000c8643000c05c28 +00b5542100b5542100b5542100b5542100b5542100b5542100b5542100b55421 +00b5542100b5542100b5542100b5542100ae4d1a00ae4d1a00ae4d1a00ae4d1a +0093340400531a2b00130052000b0161000303710000088400050e830014175e +0043022d00ab4a1700ac4b1800ae4d1a00b4571a00b5542100b5542100b55421 +00d3622000cc622500c5622b00c6632d00c8643000c7632f00c05c2800c05c28 +00c05c2800c05c2800c05c2800c05c2800bf5b2700bf5b2700ba592400b55421 +00ae4d1a00ae4d1a00ae4d1a00ae4d1a00ae4d1a00ae4d1a00ae4d1a00b55421 +00b5542100b5542100b5542100b5542100b5542100b5542100b5542100b55421 +00b5542100b5542100b5542100b5542100b5542100b5542100ae4d1a00ae4d1a +00ae4d1a00ae4d1a00ae4d1a00ae4d1a00ae4d1a00ae4d1a00ae4d1a00ad4c19 +005e160700490d210034053b0012095800050d5e00010e6c00101a5f00280849 +00762f2d00ae4d1a00ae4d1a00ad4b1a00ae4d1a00ae4d1a00ae4d1a00ae4d1a +00b5542100b5542100b5542100b5542100b8572200c05c2800c8643000d06d34 +00ea934600eebf8700fdf5a400fff8b200d4d3db00cbd8e900a4a0d30099b5ca +00b6b28d00ae6e4000c3622d00c05c2800b5542100b3521d00ae4d1a00ae4d1a +00ae4d1a00ae4d1a00ae4d1a00ae4d1a00ae4d1a00ae4d1a00ae4d1a00ae4d1a +00ae4d1a00ae4d1a00ae4d1a00ae4d1a00ae4d1a00ae4d1a00ae4d1a00ae4d1a +00b55421006d616f003f4cbe003048c6004251e2004350ec00737cfb008687fb +008493f0006b7af9004a55c900424ec400414cc200545bb300775893005a4b5e +"/> +<palette number="206" name="Apophysis-040427-4DrkMantis" data="002d60010060840000457100002b5e0100255a00001f5700001f4d00001f4400 +001b4200001c4b00001d540000275a000031600000566100007b630000746300 +006d6400002c5f000027540000224a01003a51000052580000565b00005a5e00 +00906b00009e7e0000ad910000a69b0000a0a500009fa400009ea300008f9100 +007d9302005a8100003f800100248003001f6a01001a540000154d0000114600 +000933030008280200071e010008250100092d01000d30010012340100153301 +001c3201002c2900003a210100481a03005b2e01006e43000071480000744d00 +00a84a0000915200007a5b000081640000886e000088740000897b0000a38c02 +00b7a10000cda80100c2a30000b79f0000b0970000a99000009b8702007d7300 +00324901002a40000023380000213a00001f3d0100203e0100213f01002b4400 +0035420000605400005d4800005b3d00004a39000039360000243c00001f3d01 +001543020012440100104501000f4500000e4600000e3e00000f350600113600 +00153601001b3a00001c4800001e5600001e5800001f5a0000245d0000235a00 +00214400002142000021410000203f0000203e0000273b0000353200003e3703 +004e430500624b0000574800004d4500002a4500001d39000013340000072003 +00061103000613010006150000081a00000a1f000018250700292c0100342d00 +003826000034340000313900002e3e00002a4301002b510000426c0000619300 +007ba10000979f0000b49d0100b7941000bb8c2000da810000e5640000e56500 +00c3880000835700007c510000764c0000603c0000503c01004c370200353101 +001e3c00001b3e000018400100184200001a4300001d440100214b01001d5700 +00144e01000f4700001144000014420100184001001a350000232a01002c1203 +003e0400004b080000590d00006a000200571300004d1300003c2600002b3300 +001f3600001d3501001a320000162d00001f2a00002021010024260000203200 +00273b00002a3b00002d3b0000363600004c3c01005d4b00006c5603007b7400 +00797f010081840100778100006a8c01004a6e00002e600000285e0000245d00 +002258000021440000293f0000323500003d3300005c4b0000795b01007d6c00 +0085740000877c00007e7202007b6100006b520000514807002e410100234000 +00203c010020390000283e00002b41000031360000312f0000282e0000273406 +001c3300001735010017350100163702001435000012350000113d0000103e00 +00143e000013390000163700001b3a0100153f0000153d0000173a00001c3900 +0018360000123401000b2f030007200000041e00000519000005170000081c00 +00091c0000171b0000160900001f0f0000241500001a210000233b0000637b01 +"/> +<palette number="207" name="Apophysis-040427-4HolidyBull" data="000d00c1000c00440014002f001d001b0015051d000d0b20000a0c2400070e28 +00001231000414370008163d000b103d000f0b3e000d092f000b0720000c031c +000e0019000e08080014140d001a2012001a1014001a00170016061300120c10 +000407180017141a002a211c00333e26003d5c30001e494100003653001e529d +001952ea001b0685001505540010052300080316000001090003071000060d17 +0023213900217163001fc28d000f85bc000049eb000432eb00081cec001b0ed7 +002205790020001f001d000f001a010000230000002c000000330600003b0d00 +009c050a00b80e0500d5170000d9130600dd100d00c9180600b62100007c2b10 +00612b00003a0d00002c0e00001e0f00001d0d00001c0b0000150000000e0000 +00001d0000081b0000101a000010120900110a12000f0c20000e0f2e00080b50 +00121370000f0cd7000c0feb000a13ff000e13ff001314ff002805ff00110dff +000a0aff000b06fc000c03fa000b04fb000b05fd000d0dff001d00f6003201e8 +003c10ed009d0aff00b362f800cabbf200e1d2f000f9eaef00ffddc900ffff9f +00ffc17d00f79d4b00ef791900eb7b0c00e77e0000ea800a00fec80c00ffdd11 +00ffe61500ffee2000fff62d00ffff3b00ffee3200ecd43600face2500feb623 +00ff771a00ed6a2200db5d2a00d45a2200ce581a00cb7d0e0098643f00552772 +00380cc3000113f300021af9000322ff000947f200264dff002c5efb0000cefe +0014ffee001cf3eb0025e7e9001fd8f4001ac9ff00054aff000f47f4000026e5 +00020a9b0003005900010044000000300000091700000c0500000f0000060900 +001e1000002314010028190200443401006a320300865f1200a9981600e0c500 +00f4cb0000ffba3e00e19e4000c38242006d5a320023407c00223c99001034ea +000811f6000b0df6000e0af7000c0fff000513ff000017ff00060cf4000400fe +000002fb000108f6000601da000911be000000900000036a00170083000202d4 +000000f9000001f6000002f3000004d5000b0e9100004a2c000090000008e428 +006ac5660073c2bd008bafc900a8919900bba34b00807605006b420c00702900 +009e110000d2190000d82f0000ff490f00f8510a00c35a0700803f0000772f09 +00502338003c1027003c2722004c2300005a16010096560c00b8902100cfaa1b +00e5ca2300f1e51700ffeb1600fff82400fffb2900f5ef2700f7f42b00d8cd7b +007ff59500919eaf009d92b200a23e8400752ced009795bc00c89bc400c39b91 +00a1ad7f00b1d1400082ae250076440700901a0000cc061300fe081d00ed2661 +00b000a5002d0b86000709600000004e00030329000000120003020000070101 +000e00000006030000040600000008000000031e00000e2e0001095e0006124e +"/> +<palette number="208" name="Apophysis-040427-4DrkFlorCnpy" data="006bcb43006fcd45006ecc42006ecb3f006dc93e006dc83d006dc93d006dca3e +0074d5470078d94a007cde4d0081e5510086ed56007fe54f0079dd490077da47 +0075d746005aa831005ca530005ea32f00589c2d0053962c00508c28004d8325 +00324d180031451600313d15002f3713002e3112002d3212002c3312002e3d16 +0031401500304315002e4a15002c5215002b4a14002b421400273a110024320f +0015190b000f100700090804000a0d05000b1306000d1b07000f2308001d4111 +00255e1a004d8e280059a22f0065b7370067bc39006ac13c0069c03b0069bf3a +0063b8390062b0350061a832005fa430005ea12e00579f2d00509d2d00558f29 +00478927003a6b1c0036651b0033601b00325f1a00315e1900325f1a0034631b +0044862500509429005ca22e005ea62f0060aa31005eaa32005dab3300569e2e +004a912900477222003b5f1c002f4d17002c4615002a3f14001c2d0d00101f08 +001024090019360d002249120029531500305d1800325f1a002f4d17002d3214 +002c0230002f0334002e1b23002e331300323f1500374b18004d80240065b135 +009efb6c00a6f37400aeec7d0091d8620075c5480062ac3300528c280039671c +002f5115001d330d00172c0b001225090013230900171d0f0016160a0015150b +00130a0d001a051900220025002400280026012c0029022f0024002c001d001f +001a001d000e000d000d0109000c0306000a0605000c0807001212080017170d +003445180042681f00518b270057942a005e9e2e0061b0330066b5360060b536 +00559f2e00418224003a721f0033621a00294a130018320f00102208000e2008 +000f150700101307001212080013170900131709001b170c001b1e0d002b3213 +0032431600427a2100458625004992290051b23f0066c13e006dc9400074d547 +008cf55a0091f7610096f96800a6fc7700a1fc710098fc64008ef7550080e048 +007bdf4b0074d94b0071d244006ec63c0068b938005c9f2e00488c290036661c +00222f13001e290f001b230c00101f0800101f080013270b002444120033621a +004081230050982c005da32f0067b8370065bf3b0061ba3c0060b035005ba932 +005ca230005bab32005dab330065b4350067ba38006ac13c006ec63c006fca3e +0072cf420072d0440073d2440071d2440070d1440072cf420070cb400072c63a +006dc53b0069c03b0061b6370058a732004a8c280037651c002f4c16002d3f15 +0026281000140c0a001302150019011b001701180013001400130014000e000f +000d000a00080204000a0605000c1206000e1204000c1206000e0d090011060a +00160015001f00240029022f0032063b003d0a45004b1257003f0b4900360441 +00300437003540180039591a004d7b23005798320063b235006cc23b006cc73e +"/> +<palette number="209" name="Apophysis-040427-4DethstrDemis" data="00bdb4ab006e5b54006e4b37006e3c1b00612d0d00541f0000481100003d0301 +00020a1700101a28001e2a3a00303c4d00424f6000485262004e5565004a5263 +00474f6200313b4700373235003d2a2300593d300076513e007a594e007e625e +0099969d00a4aab700b0bfd200bac7dc00c4d0e600c1d0e500bfd0e400a8c2db +00acb9c900a9b4c600a3afbf009eaab800949daa008b919d008e8f9700928d91 +0098857400a4846f00b1836b00b37a5600b5714200b05e2d00ab4b19008f310b +004d1c0e00010b17000007130000030f000d0e1b001b19270038232600562e26 +0099502d009d5a3500a2643d009d6d510098776600937769008e786d007d818d +007b829200757b8b00717786006e7482006a707f00666d7d005d6373005d6373 +0070768400767d8d007c8596008690a200919cae0095a1b4009aa7ba009faabc +00949caf0080839200767d8e006d788a00616e840056647e00575e6e005c5c64 +005d6373006c7282007b829200868f9f00919dad00a1acbe00b0bfd200c2d4ea +00cadef700cee3f800cde1f800cce0f800cbdff800cbdff800bfdaef00c1d1e8 +00c4c4c400bcab9e00b4927900a88b79009c847a007f818d007a828f007b8292 +007b8292007c808b0080808900848188007c829000838c9b008092aa008c9cb5 +009facbd0098a3b600929aaf009198ac009097a90087909f0089939f009099aa +00919bb400a9b4c600aab5c700abb6c8009eabbc008d8d9700827e7f008e766c +005f5c57004f5155003f475400354251002c3d4f001c2641001929400017283a +001c293900202d400024304200283444003a415100414a5900484c5700575057 +00875a3d008f593d0098583d0084614e0079625a005f5f69005d6373005d6373 +005d6373005355620052505900514c5000545359004f586700495e710050597a +005d6373005d6373005d637300646a7a00697281005f6573005d637300555e6d +00514c50003f343c002e231f003d150900391308001f1d2200212a390035343a +0066463700685349006b605c00646c7700787880008c817d0098817300987c6e +0092766a00866b62007d61530073625a0079757200747d8e007883950087909f +009aa6b600a8b5c600aebece00bac9de00c2d4ea00ddeae300f9e9ea00d1e3f9 +00c5daef00bdd3e800b3bfd500afbacc00a9b4c6009ea9bb008d98aa007b8292 +0075778300656d7a005e64720063666d0080645900946b5500c2795000e88b4e +00f9ac6800ddba9a00c5ab9a00bdaba9009fa8b7009198a800818a9900697990 +005d6373005157650040465400262a360014213100041326000b1f2a00122232 +0022293b00343d4c00404757004d5464005d637300696f7d007a829500919aab +00a3aec000a8b3c700a8b5c800abb6c800b2bcc800bcbbc100bdb4af00cab2a6 +"/> +<palette number="210" name="Apophysis-040427-4DethstrDems" data="002e1a00003420070039270f003e2e17003c3429003b3b3b00364c5900315d78 +00637b8500747c7a00857d7000847d6e00847d6d00837e7000837f74007f7e75 +007b7e77007c736400776b570073634a00695b46006053420061554300625745 +006f685600726a5b00766c6000726855006e644b00675c470060554300564b39 +005449370072726800717d7d007189930088969d00a0a3a800a5a7a700abaca6 +00d3c2b000dcccb700e6d6bf00e4d6c200e3d6c600e3d4c300e3d2c000dfd2bf +00d7cbbb00beb5a600b3b2a700a8afa80090aab50078a5c2006fa6c20067a7c2 +00869da500949c9800a29c8c00a29c8c00a29c8c00a6a28e00aaa89100acaa9d +00aeb3af00b0a79800afa68e00afa68500a8a18800a29c8c00a29c8c00a29c8c +00968d7e009c948500a29c8c00a8a79d00aeb3af00b7bfb900c0cbc300d1dce0 +00c2eaf600e0e2dd00d5d6d100cacbc500bec5b900b2bfad0099b9c800949fa3 +0087877f0077828500677e8c0067808e00678391006d89950079949d00829eac +008c9da5008b82710081786800786f60006e64540065594900574a3900514131 +003d2b150021201500061615001a190d002e1c06003a251000422c17004c402a +005045330061564400695e4c0072675500847d6d008a887c009a928500a19b8d +007f9ba6005e90aa003d86af002a7db0001774b10006539700224565003a5465 +00425456006e675700766e5e007e75660096866f00a29c8c00aea89a00bfb9ab +00ebdece00efdfd100f4e0d500f0ded100edddcd00ddd6c400cbc2b300bfb8a8 +00b2ab9b00969082008d867600857d6a006e6554005c513f00574c3800574a37 +004d43370048433a0043443e00424b5000354d5900424b54009993830091a4ab +0093b9cc00a0e9fc00a5e4fd00abe0ff00c2fcfe00f7fffd00fdf5e800ffeede +00c6bdae00c1b6a600bdb09f00b7ad9400b1aa9a00b8b09d00c6bba900cec4b8 +00c6d1d700c2d5dc0099c4d70089aec100819da1007b7e7700666962005d503f +00423522003e321d003b2f1900402f1b00573d24005346360056493800564b39 +005a4d3a00615547006c635200746e62006d726e006c7a7a00677a8b00517690 +004e7c94004888b6004a8ebd0054b4e60070cef400b2e3f100f7efe200fef4e8 +00fff3ed00fffcf000f7f4ed00e4e6d800a9d1d9006cbfe90066afd2005ca1c8 +005d9bc2005d92b2006788990071879200827e7200847d6d00847d6d008a8474 +0090857300918b7d0099928200a29c8c00a29c8c00989284008f897b00847d6d +00837a6900797061006e63510065584500605543006b635000777060007f7c6d +00847d6d0092877500a99b8100a8a19100a3a39b00a29c8c00a29c8c00999081 +00847d6d006e6252005e5341004f402d003d2b150035210800331f0700311c07 +"/> +<palette number="211" name="Apophysis-040427-4DeerDemMsk" data="00a497b5000105100001020a0001000400000002000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000001000000010000010101000101010001010100010101 +0000000000000000000000000000000000000001000000020000000200020001 +000304060015191600272e270073654400c09c6200d8b86400f0d46600e1f476 +00fdfd8300fcbc4e00e18b2f00c75b1000783f14002a24180008080800030303 +0001010100000101000002010000020000000200000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000100000101000001010000010101 +00050600001c230400344109005e78100088af1800e2d64200f3ee5200f3de45 +00f9c34900278f2e001761200007341300070705000303030002020200030102 +000001060000000400010002000101020002020200050505000b0c0700493d15 +00b39c1c00fff95900fdfa6000fcfc6800f5fe6500d8eb53009dc33800766241 +0008070500050406000302070000040700010101000000000000000000000000 +0000000000010101000101010002020200050505000b0b090046381e00969237 +00aba87f00b3979600bb87ad00a86f9200e28f6700fba16200ec837000e06651 +00927f3b00272b1d000b0b090004040200020300000302000003030300070604 +009f281200b9381c00d4482700be4568005c3e3600100c090005050500030303 +000404040009090900291e1c006c685d00b0ce9200f2daac00f1cfb300d5a380 +00d3a164008d7547005033520086388c00da2e7a00f2b7cb00fbc2c900feedf7 +00daecd600c2e0a00082874500244d3b000f110c000606060002020200010101 +0000000000000000000000000000000000000000000000000000000000010000 +00010000000300000008000000060503000e0b0400aa241900f31f3800f70a3e +00f20f5400f7019200ef039300f8479800df867600a7d221007eb816003f8f08 +0013140e00080806000303010001010100010101000101010003030300080307 +0010070c00791c4800f0038f00f3009c00ccb9d500eee1eb00fafad400c3dfb6 +"/> +<palette number="212" name="Apophysis-040427-4CrouchDragn" data="00ac055300b1065400b0065400af075500a8345900a2615d00af724400bd842b +00e9a60d00ecc10600f0dc0000f1dd0000f2de0100eed70e00ead11c00efd429 +00f4d83700fed53f00f2c44300e6b34800e4ad3500e3a72300dda52600d7a329 +009e851e00996a2500954f2d009d2a3e00a6065000a9055100ac055300b00554 +00b2055500b2055500b2055500b2055500b1055500b1065500b0055400b00554 +00b1045400b1045400b1045400b0045400b0055400af055400ae065400ac0652 +00a6065000970448008d04430084043f007a043a007004350073301b00765d01 +00886f150084402b0080124100870a42008e03440092034600970448009f034a +00a1034d00ac065200a9055100a7055000a4044f00a2044e009f054d009e044a +008c04440089044200860440007f043d0079043b006f04360065043100694f05 +0080640000ad740b00b2731000b8731600ac623400a052520096265400aa0f53 +00ae065300af055300b0055300b0045300b1045400b0055300ad055200aa0551 +00a7055000a2044e00a4044f00a7055000a7055000a7055000ac055300b10655 +00ae716c00bd907200cdaf7900e4d0a800fbf1d800fef8ea00f3cf7b00eabf61 +00ffd33c00f2de0300f2de0600f2df0900e9cf2000cdba4200c0914100ad6e65 +0093583000a4652b00b5732700be822600c7912500ce8c1b00d1911300d69408 +00c87c0200c4891300cd891800d6891d00e19b2100d89c2000cd921e00ba872e +00a6306400aa1b5c00ae065400af065400b1065500b3065600b4045500b20554 +00b1045300ad055200ad055200ad055200ad055200ae065300ae065300ae0653 +00984849009f592d00a66b1100ba7e0c00bd7f0800b97d0500a27f0100ac7000 +009864100091094700980749009f054b00a0064c00a5054f00a7055000ac0652 +00ac135600af336100b2546c00ba8d3c00cc912b00dda22400e5aa2800e3ab30 +00dba83d00e8b34300eab43600f2bd1f00efba0c00f0b90600f1bb0100e0ae01 +00b4791300a4670d0094550800870c4200910544009f054b00a1054c00a5054f +00a6065000a7055000a7055000aa055100ac065200ad055200ad055200ad0552 +00ac055300ac055300a9045000a5054f00a0044d00980549008c0444007a033b +006b0433006f400a00755c000081650100915d0900a05e0700905e150088542d +0099154e009f084d00a6065000ac065200b0055300b1045400b1045400b20555 +00b2055500b2055500b2055500b2055500b2055500b2055500b0055400ad0552 +00a6044f009e044a008e0241007d043a006e04350065043100650431006f0335 +0081083e0094580f00b8802100ce992900d4bf2600e0cc1300efd80000f2bc00 +00e3af0100e2a01400c58815009b3d570099185100a2084e00a6065000b00554 +"/> +<palette number="213" name="Apophysis-040427-4CopprMapleleaf" data="0018050000210104002d0a070039140b00411c12004a2419004a2418004a2417 +00441e1300391a0f002f170b002c1307002a100300230a07001c050b001a070c +0018090e00350f0c00522921007044370091605200b27d6d00c18a7800d09784 +00f2c4a000f4c5a400f6c7a900efbaa200e8ad9b00e1a79500dba28f00d09784 +00c38b7a00aa776600986757008758480074473800613729005c332600572f23 +00552d210063392c00714538008d634e00a9826500b68d6f00c4997900e3b695 +00f3bca800fdcbb400fbcdb000facfac00f5c1a600f0b3a000e0a59300d19887 +00a875640090605100794b3e006f433500653b2d0063392b0062382a0060362a +005b312500663a2d00673b2e00683c2f00663b2d00643a2c00573823004f291e +004f271d005b312600683c2f0070433600784a3d00b6817100f5b8a500d09784 +00ab7666008d5e4e00845546007b4d3e007c4e3f007d4f40008e5f4f009c6b5c +00af7a6a00b27d6d00b5807000af7b6b00aa77660097665700875848007c4e3f +00704534006e42350075483a007c4e3f008657480091605100a36f6100ba8573 +00e3a89600e8b9a500eecab400edcbb900edcdbe00e9d2c000ebd1c200f0ccbc +00f3c8b500f1c3a100eec09e00ebbd9b00d3a68700d1a68400cba48500cfa386 +00edb39f00edc0ad00eecdbc00ebcfbd00e8d1bf00ebcebe00edcab400f2b9a5 +00dfa49200bb837200ac7667009e6a5c008a5b4b007b4d40006b453800693d30 +00704535007b543e0087644800906c51009a755a00a9826500c58d7c00d89f8c +00f6b9a600f7beab00f2bfa400eec09e00d3a88600bb927200b07b6b00ad7a69 +00b2896b00bb8a7300c48c7b00ca928100cb938200c8998500cc948300c08877 +00ad78680098675800976657009766570093625300956455009b6a5b009e6d5e +00a7746300a3716100a06f60009a695a0091605100905f5000875749007c4e3f +007c4e3f007b4d3e00714636007045350068462d00714f360084604600986758 +00b7827000ba857300be897700c78f7e00ce958200cea18200dfa49200ebb19d +00f0b6a200fabdaa00fbc6b400facab600f8cec000f6d7c300efd4c100eecdbe +00f3c9bb00facab600fdc7bb00fbcebb00f9cebb00f9cebe00ecd0c200e7d6c4 +00eaddcd00e8e1cf00f0f0d800f5efdf00e9e0cf00e7decd00e5e0cd00e3dccc +00e3dccc00e2dccc00e1daca00e0ddcc00caf0db00dee7cc00e1dfc800e3dcca +00e3dacb00e5d9cb00e3d6c600ebd1c400f7c8c000fac8c100f8d5c200eed8c3 +00e9d8c600e8dccc00e8d5ce00e7d6c600ebcebe00e7bb9800c38f7a009d6c5d +007b4d4000493d310030140900150a0800101511001e180a003c170e004b251a +00572f23005b312500683c2f005f352700532b1f0048221700331107001f0508 +"/> +<palette number="214" name="Apophysis-040427-4Circulations" data="00f3e7bd00fffadd00fdf8e200fcf6e800fcf4ec00fdf3f100fef3f100fff4f2 +00fdf5f200fdf7f100fdf9f000fef8ef00fff8ee00fdfaf000fbfdf200fbfef6 +00fcfffb00fefefe00fefefe00ffffff00fefefe00fefefe00fefefe00fefefe +00fff5fd00fef9fd00fefefe00fefefe00fefefe00fcfafc00fbf6fa00fcf4f1 +00fbf3de00f2dcab00e4c67c00d6b04d00a4812a0073530800533d0400342800 +000b0300000d0701000f0b02001d1401002b1e00003928000047330100694b02 +00966d0400bb902000cca33600ddb74c00e6ca7600f0dea000f3e0aa00f7e2b5 +00faf2dd00faf2dd00faf2dd00f8edd000f6e8c300f1e2b200ecdca100edca76 +00d9b65200a47909007e5d040058410000513a00004a33000047330100493400 +005e410000745302008b650400956b0300a0720200a0740400a0760600a37805 +00a0750200a6790600b1851300bc912000cba13900dab25200e9cb8200f2dfa7 +00f8e9d200faefdb00fdf6e400fcf4e100fbf3de00faead300f8eacd00f6e8c1 +00f4e3b500f6e8c100f8e9cb00faebd600f9f0de00f8f5e600f5f4f200f9f7fa +00fcffff00fcfcf800fcf9f200fcf8eb00fcf7e400f7f4d500f4e7c700ebcfa0 +00dbbd7400946a0800775605005b430300322600001d0f02001712000021140c +0041300200583d01006f4b000078540000825e0000926900009d710400976d01 +008b6206004432000034270000241d0100201501002b2002004c370000705b26 +00e4d1a700ecdbb900f5e5cb00f8ead800fcefe600fbf3f000fcf4f100fdf5f3 +00fdf5f300fdf5f300fdf5f300fef6f400fef6f400fef3f700fff4f800fff6fb +00fdf2f800fbf4f700faf6f700fdf5f300fff8f600fff9f700fff5f400fdf5f3 +00fdf5f300fcf8ed00fcf7e900fcf6e600fdf6e400faf3e000fae7d600f7e6d2 +00fbf6e200fbf8e100fcfae100fffae200fcf7e400fcf6e800fbf7ee00fcf4f1 +00fdf3f100fdf3f100fcf8ed00fdf6e400fbecd700f8eac700f6e3b900f2dca3 +00d9b55700d4b15100d0ae4c00bd932300ae831200a97c0900a17603008f6600 +007858030068480000543c00004e390000563802006d501400ac821400d0a644 +00dfbd6600efd29a00f8dba300f4e2b200f6e8c100f7eac700f7eac700f8eacd +00f8eacd00f2e5d200f8e1d100f8e2cd00f7e2cd00f5e7cd00f7eac700f7e9c6 +00ffebb600fed38f00deb65e00d4ae4b00bb942f00b58a1700c59b2b00d6b04d +00e8c87b00f3d8a900f8e2bd00f7ebd100fbf6e300fdf7e900fcf4f100fdf5f3 +00fdf8f200fbf9ed00fcf6e600fdf6e400fdf6e400fdf6e600fcf8ed00fbf9ed +00fbf9ec00fcf6e600fdf6e600fdf6e400fdf6e400fbf6e200fbf4e200fbecd5 +00f8e8d100f5e3cb00f5e1bc00f4ddb300efd79b00edd58f00e6c37200dec066 +"/> +<palette number="215" name="Apophysis-040427-4DmnContaind" data="00f5b35300fbd8ae00fdcf9200ffc77700fbc46b00f8c26000fbc15c00ffc159 +00ffaa5700fcb35f00fabc6700fcc67c00fed09200fbd5a500f8dab800e7d6cb +00d6d3de00b194fe00a38db80095867300a2794400af6c1500b66c0a00be6c00 +00ec840100f5921400ffa02700fdb15200fbc27d00f0c99a00e5d1b800afa4cc +00635183004f3818004f3310004f2f09003827170021202600201344001f0662 +003f09d9005620ec006d37ff007644ff008051ff008456fd00895bfb008f67fe +00926afe00b498fe00c0b1ea00cdcbd600e5c5a200febf6f00feb65a00ffae45 +00ff910400ff8d0200ff8a0000eb810000d7790000d3770000cf750000ca7300 +00c26d0000c06b0000b3640000a75e0000a45a0100a157020093530000844800 +0059370a003c1c4100200179002f00b1003e00e9004202f4004704ff004813f5 +004a1dc200403b51005f422a007f4a0400884d0200915000009d5a01008f5e23 +00ac93f100b197f800b69cff00b59bfe00b49afd00b398ff00a889fe009b77ff +008d64fe00713cff005625d4003b0faa002d07920020007b0016004f000d0030 +00070513000b0227000f003b0014004f001a00630027008f003901d4005517fe +006c35ff008254ff00875cff008d64ff009169ff009a76fe00917bcd00a0733c +00f18d0400f88f0400ff910400ff910400ff910400fe940a00ffa02800f7af5d +00f1c07400b194fe00a17ffe00926afe008e66fa008b62ff00845bf7007c54e8 +00885eff00865aff008456ff008456ff008456ff007a4aff006e38fe005835c5 +003e1aa00012033a000f0134000c002e00020411000200030003000000020202 +00150544001c026400240084003b00d6005719ff006027ff00642cff005f26ff +005011fe0029027f00210171001a006300110142000b0033000f00370015004d +00341688004119a6004e1dc4006936f500703cff007848ff007a4aff007f50ff +008051ff008456ff00885efe008c63ff009067ff00966fff009a75ff00a081ff +00bca3ff00c0a8ff00c4aeff00ccb8ff00f2dcc400ffd7a400ffce8c00ffc070 +00ffbe6c00fec67b00fbd6a900d2cedf00bda4ff00b295ff00a98bfd009d79ff +00b093ff00b89ffd00c2b2f000c6c5d300fed09200ffc16a00ffa23000de7f01 +00a661140054535b004c416b004829a000633ad8008153fe009b77ff009c78ff +00a181ff00a181fc009d79ff00926aff008456ff007542ff006b3aff006831fe +006027ff005f26ff004e0fff003f01ec004525a20042376100703f1700a55f00 +00d07c0200ec860000ff900200ffa00000ff981100fead4400ffba5300ffae45 +00fda74000e49e2c00aa75310068514100654f4100895d200094570600b76803 +00c26d0300c7812b00b68d4b00938da700b197fc00c9b4ff00ded9d500f6c381 +"/> +<palette number="216" name="Apophysis-040427-4DmnCntndWP" data="0074befb0079bffb007bc0f9007ec1f80083c4fa0089c8fd008ac8fd008cc8fe +00abd8ff00acd7fc00aed6f900c5d7e600dcd9d400e4d6c900edd4be00e7d4c5 +00e2d5cc00a1cdf00095c9f60089c6fc0085c1f50082bcee0082bcee0082bcee +0084b9e5008da7c2009696a000c9967200fd974500fc892e00fc7c1700f57f28 +00ff9b4d00d0ab8e00b1a297009299a10073849000546f8000476780003b5f81 +00548ab8005a9cd30060aeee0053abf40046a9fa003ba3f800309ef700239afe +001594fd000587f5000285f3000084f1000281eb00047fe6000279dc000073d2 +0001447b00003b6c0000335e00022f5600042c4f00082e50000d315100083d69 +0004437900117ed9004b98d90085b2d90095b7d700a5bdd500c9c9c900f4bd94 +00d4a98900bab2ae00a0bcd40093bde20087bff00085c2f50084c5fb007fc4ff +007cc1fc0082c5fc0096c3ea00abc1d800c0c0c200d5c0ad00d9a47a00ee934c +00b7520000a95310009b552100a2581e00aa5c1c00c65a0200eb6a0400fd7100 +00cc7935008051230064605900486f90003c69900030639000296190001f6eb1 +000f7ada001889ea002298fa0035a1fc0048abfe0059b4fd0066b9ff0069bafc +006ab9fb0036a0f8002e9efb00269cfe001c97fe001893fa000a85ec000082ec +000b508900193c5a0027282c00382f2b0049372b008e4206008f3c00007e3701 +003618000016120f000b131a000114250003213b000114230004050700120600 +00081118000a243b000c385f001a44690029517400325e85003f62800037648d +00386b96003d7eb400428ac6004896d8005da3df0084aed800aba9aa007fc0f8 +0087c8fe0089c8fe008cc8fe0091c7f600acc8e000d3ceca00f0cbae00f5cdaa +00fccfa800e0d6cd00cbcdcf00b7c5d2009ecaef0096ccfa0099caf300b4cadf +00fecaa200febe8c00feb27600eca56d00ffa96200fa9e5500bc8660008f5f39 +00894612004c2a0f00343d4600365e81001c74be002793ed0046a6fa005bb3fd +0071bcfd0073befd0076c0fd006cbafc004dadfa00319ffe002298fc001d91f4 +000a7fdf000773cd00245985001f426000271f1c002f2118001e3c58002f5b80 +003f729d002472b4001a82d9001582df002092f2001b95ff001997fd001090fb +000b84ec000a79d5001f6daf00194e7a000941720005417500134e8a000a6dbe +000774d1000977d000136ebd00185b920022517b0024405800784a26008f4101 +00ab4d0300ba5e1500d8741e009a6c52007f7a77007a99b5006695bf002288dd +002091ef002591eb0042a8fd0054b0fd005bb3fd0064b7fb0065b4f70058aff6 +004eadfd0048abff0041a6fe0044a8fd005bb3fd0062b5fb0069b7f9006db2ed +006aace6006db3ee0071bbfa0070bbfc006ab8f8006fbbf90073b9f50073bef8 +"/> +<palette number="217" name="Apophysis-040427-4DmnDimensn" data="008b76610081717c007b6e6f00766c62005c5b5f00434a5d00483738004e2513 +004d24120056282c005f2d4600632d5400682d630070346100783c60007c3857 +0081354f00a12d540091446500825b7600775a73006c5a7000634d69005b4063 +004d2412004d2412004d24120062372f00784a4d00925d6700ad708200e49ea6 +00e6b6c400e4a6b500be997600998d3700958f3700919137008b873900867d3c +00a46f3d00a64e4000a82e4300a9324800ab374e00ac304d00ad2a4c00a21d3a +00a61c3300a2041300860316006b031a005c1316004d2412004d2412004d2412 +004d2412004d2412004e251300664a36007e6f5a008e7568009f7c7600d67580 +00e06b8500be7b8d009d7688007d72830070748300647684005e78790072757e +008a5e770098405700a7223700a31225009f02130099010e0094000a008e002b +0063006c00650f6a00750746008500220080001c007c0017004d2412004d2412 +004d2412004e313800503f5f00594f6d0063607b00717672006f746000666e61 +006a4e5d004e2513004d2412004d2412004d2412004d2412004d2412004d2412 +004d2412004d2412004d2412004d2412004d2412004d2412004d2412004e2513 +007f373b00846537008f694f009b6e680097816a008f7a5d00728e5300259e4f +00557b8800647e7800748268007e9b6c0088b570009cdb4e00a59d5500b28d70 +00efaeb400f9dcf000fce8f700fff4ff00e6e3ea00dedcf200f5d3ec00e0c3d7 +008e698b005b3d7600291262002e0c600034065e003f2542004d2412004d2412 +004d2412004d2412004d2412004d2412004d2412004d2412004d2412004d2412 +004d2412004d2412004d241200631e3b00872743009d244700a2122d00890721 +004d2412004d2412004d2412004d2412004d2412004c2602004d2412004d2412 +004d2412004d2412004d2412004d2412004d24120032443800375d50005c5f58 +008d873900140d6a00190d6f002c0d6b0047006500684099008c7d8400a7778f +00e68a9f00e0869900da839300e16e7d00d2646f00cf566500bb2f5e00ae2c5c +00a4294800981e3700961c29008f2635004d2412004d2412004d2412004d2412 +004d2412004d2412004d2412004d2412004d241200800517008c0023009c0315 +0092122100901331008b1f41007818620061295a00573b64005147620058546f +0052417800342b7e003018880000498f0026639c004b647800547d6f00528b85 +0063868c00768baa00859cac00e099ab00e69fad00d9849700b75c6d00a33a49 +00953540004e2513004d2412004d2412004f261400895c3b007a6c4f00a44660 +00bf3b4600c7535e00b3586900a7496300a6475f00993a6600862c620087156a +00763369006d486900725b7800646b7500556187005f6e8b00796580008b6775 +"/> +<palette number="218" name="Apophysis-040427-4SatnFlorlSwag" data="0073604f003a1e2c002a1f2b001a212b000d2f2d00003e30000f3f35001e413b +0078594700926c5700ac7f6800be8e7900d19e8b00d79e9800dd9ea600e59dac +00ee9cb200e3b5a800d1c49a00bfd38c00a3c9870088c0830085be820083bd82 +007fbe8f008fc199009fc4a30097c3990090c28f0091c5890093c88400bb9e76 +00ae816a00aa806800b59b7300c1b67e00cdbc8a00dac39700dcc69800dfc99a +00e0a8a900d49a9900c88d8900b57a7400a36860009f645d009c615b008c7156 +00748269001c66810014527a000c3e7300062d6600001d5900051154000a0650 +002e2858004c3c4e006b5045006b4941006c433d006f423900724236006f4134 +006e3d390077413f007a4043007e3f48007c3e46007a3d4400773944006c373f +00321a3200190e19000103000001020000020200000b0e0d00151b1b00371d26 +00512731006d3c380072474000775249007e564e00865b5400955e5700995e5a +00a7626700b9807700cb9e8700c2af8c00b9c19200bdbdbd0092aaac007f7f7f +006f5c4e003e283400341d2f002b132b002d152b0030172c004626310063393b +00664b44005c423c005239340041372c0031352400202e1d002f1f20004f2c30 +0069383e0083424a0082424a0082434b007c4b44007a5246006d4f44005a4a4d +0025386000192b5e000e1e5c000e1557000f0c53002419440038153d00351e38 +00371c2f00316769003e827d004b9d91004c9aa400439ca000326d7b0034547a +0046756f005383700060917100679a73006ea3750073b89b0069b5a9006cb29a +006d9c88005e514b00614e4700644b44005632400041274c00382237002e1630 +000e1132000d0e37000d0b3c00180c3e0038213500543533006638380069363b +006c3a3900783c44007c3e470080414a008d5150009659580098645900915a53 +00713d3f00653a3b0059373800323c2400094a280006542a00005a4400464e5b +005051630051726100698b7b006991900072a294008eada800b9b9b900bebebe +00c1c1c100c6c7c800cccdcf00e0e0e000e1e1d900c3c3c300c2c2b800bdc2bc +00bfbfbf00c4c0bf00d6b59200cfa39600c38e8000b8717900a45a6b00a96969 +00c0808000cd8a9100cb8f8f00c6968200b88a7300b77e7300b8917400c79884 +00ce9e8a00d1988700b9797900aa5e6b00f62731009a5359009552590089464f +0082464800874d4b008b604f008e6454008963500089635000855a4a00784941 +00773f3e0077413f00704b4200715146006c5146006e4c4200734b41006d423b +00673e3800633d34005f2d2e0042203000280d2c000503080000000000000000 +000a0c3c000000450000004a00021359000023800000438800004589000c6376 +001d657e003b7674005b8a78007d7d7d00a2836600a5826600987a5e00937553 +"/> +<palette number="219" name="Apophysis-040427-4DDragHeart" data="0072541600836a3200b28f5b00e1b58400e1b58400e1b58400c8a87100af9b5e +0072581d0072561a007254180072531700735316007352150074521500745215 +0074521500715313006f5013006e4e13006a4d1400674c1500593d1c004b2f23 +0063491600674b16006b4e16006c4e17006d4e18006d4f18006e5119006d5318 +006d5316006e5618006f561a0071571c007c632500886f2f009a854500ad9b5b +00bdae7300997f580076513e0073522c0070531b006f521a006f521a00705118 +006f5019006e5119006e5119006f521a006f5218007053170070531700715317 +0071541a0071551b0071571c0070561a006f5518006f5518006f551800705317 +0071531700715118007051180070511800705118007051180070521600705214 +006f5314006f5214006f5115006e5014006e5014006e5014006f511500705118 +00705319007053190070521700715116007151160071511600705214006e5211 +007151160070511600705216006f5216006f5216006d5316006e5417006f5518 +006f551a0071571c0073581e0076592100b34b3100f03d4100ff525600fcd23e +00fdf64d00feeb2900ffe10500fade0500f6db0500ddc50300d7c00200edd302 +00ffdc0400ffff5500ffff5400ffff5300ffe34700fe6e6600ff535700ff7074 +00d0c7a600e0d2b500f1ddc500f1ddc500f1ddc500d8d1b700e1b58600e1b586 +00fe626300ff4e5400fe4c5100fe4b4e00ff494b00f73e4300d6252f00775516 +007153170071541800725519007254190072531a0071541a0070531900705317 +006f5216006d4e17006c4d17006c4d170069501a00684f1700694c1200654810 +005f050700651803006b2c0000644a11006b4d11006c4d14006b4e12006c5011 +006d4f0f006d4d10006d4d11006d4d12006e4e13006f4f140070501300715313 +0075531400755314007654150076541700cf282f00f13c4100fe444900fe494e +00ff484c00ff424600f03d410078561900765717007556160075551800745618 +007c5e22009d7b1c00bf981700e3a52000eab32500b8a501009a7e1100765917 +0077581700755615007455150073561400725416007153150071531500705214 +0070501300714f120072501300714e1400705015007151160071511600735316 +0074511700cf232f00ed293700f7404400fe454a00fb403b00775a1800765917 +007556160071571a006e5618006e5417006d5316006d5316006d5316006d5016 +006e4f16006d4e15006e4e13006d4d12006d4f11006f4f12006f4f12006e4e13 +006e4e13006f4f14006f4f140070501500705015007151160071511600715116 +0072521500735316007454170074521500755314007455150075561600765917 +00785919008a670d00c4671900fd4f5100fe545700e0b48500c4b87c00ad9a60 +"/> +<palette number="220" name="Apophysis-040427-4DimesPathsE" data="00d4fce2008b7da000625a720039374500231c2a000d010f0009010800060201 +000202020005010200080002000b0003000e0005002000120032002000430d32 +00541b44008c3f4700944a41009c563c0075423a004e2e3900422a2700372616 +0027565c0027586f00275b830055658e00846f9a008968a0008f62a700906090 +0060587000502d6d005b3f7b0066518900956b7a00c5856c00d5907200e69c79 +00e9d9d900e0ebe100d8fee900c7f2e200b7e7db00added200a3d5ca00a6c3be +00a8bcb000d0e7ca00e6f3e400fcffff00fdfcfd00fefafb00fef1fd00ffe8ff +00f8faf900ebf2f900deeafa009ed9fc005ec8ff006dbaca007dad950070566f +006e2d58009f438200a740b900b03df000c455f700d86dff00c893ed00c1c4ef +00db8ff100e384ea00eb7ae400e081e700d589eb00d597df00d5a6d400c0e679 +00b8d0220057a40000699c3a007c9575009a8b7500b8827600c6a7b900febbc4 +00bade480086a22700536706003a460a0022260f0011060a0006090000001100 +00001e120011872f0008a3170000bf000038b63a0071ae7500a3b9a4009ed59e +0085d4670075c35d0065b254005eae3a0058aa210039f52e00aaff1e00f7ff2b +00fefd2600f5f4e200f8efef00fcebfd00ffddfc00e2d0d000c0b2a500c1a154 +00cfbe0c00cc680700ca130300b80e0100a70900006f120100426f0600298d47 +000f5d29000c26370011213a00161c3e0025004b002b004c002a095a00120174 +001b0dba0018067f00150044000d013a000502310000001a000b0017001c0613 +002d1000005f455000734a5700884f5e00b272a600af84b900bd82bc00a237db +006e4cad00733da700782ea10076289600722899005b159a00461499002d0065 +00320053005b2176005e287500622f740049324f005f1339007a0d5100823887 +009124e1009f28ee00ad2dfc009334c600671895003b02610035034200130037 +000d041f00000c14000012180007162d00042d6300111d83003e207600485a5a +0060947d007e7f6f009c6a6100a4454300b5955a00ca8e6c00c4afac00bebad1 +00d0bad100ddd7d900c8d1d000bab1e800c17eaa00f04f8100a94d2800b31c00 +00980f0900740104003005000012000c0008070300020e00000015000019190d +002b1228003c17400044275f00324c96000e68c90027edf0001fc0ae0048b178 +00265f59001135430018223d001412200006070b000303030004090300040a06 +0005060a00000b110000010f0000000200010101000002010000050000000703 +000703110027042e003f0050003f0a8e005141a400475294004637700030234e +0038124d00241639001900230012001a000300110003030f0002011300000217 +0000002b000b003a0020024c003d2465006e449000916bb600caedcf00b099cd +"/> +<palette number="221" name="Apophysis-040427-4DimensPathsE2" data="00ffeaff00cc84f400b57fe9009e7bdf009474cb008b6db7008977a10088828c +0051873300487044003f595600274144000f2a3300091d260003101900010c14 +0000080f00010101000202060004040c0009150e000e261000162914001e2d18 +003d630e00645523008c473800854557007e4477006e5099005e5dbb006b40c5 +00671ab4003916660039256a0039346e0048478c00575aab007b72bb00a08bcc +00c0e0eb009ac0e60074a1e2006a70c900603fb0004d2d91003a1c7200210250 +00190051001800390018002f001900250015001d00110015000f0411000d080e +00110026000e002a000c002f0006021e0000040e0000020a0001000700010101 +000002000001010100000200000003000000080000000e000009240300114515 +00438d3600678a24008c8712007a731600695f1a00545f22003f602b00382224 +004116290080366b007c3395007930bf00732dbb006e2bb800840db5006c11c8 +005400ae0038007e001d004e002100440025003a001d002b000f011800080111 +0000000c000702090009010b000b000e00080010000501120014001b001d0215 +0025051c00271318002a2215001f21100014200c00100b220001112b001a2332 +003d2f4000896c8a009c7a9700b089a400d3a4e800ffbfe600ebbaab00ecb3a0 +00a5cd39008ebd460077ae53008fad4e00a7ad4900b5501800b51b4d00a746a5 +00914c8f008d493200a4542800bb5f1e00d9450500c3430000b35b0400904f15 +0043130000270900000b00000008060100050d0200092b00002b6a000040ad00 +0013f20b0063de5f007cd2800095c7a200baefc500d2c5bc00dcc4aa00c6b172 +00cdbb1100b9ba0b00a6b905008bba1e00817054004d484f00512f540043195b +003f004d00140e100010080d000d020a00090000000300000004000000120500 +0032000000430b03005516070073050000843b1000973e1e00863a2c007b341e +003b263700271f46000040850014607000458d68006b9d7a006da59a007e7590 +001d5856001956460015543700001a0000080026000b0425000b0016000a0815 +00001d1300102b18002b2225003a31420041406a004257960051876500448157 +004b865a0050975d0074ae570090a07900ce9da000f1e9bb00f1ffd700e7ffda +00f4fff600fff1ff00d8d5f000cfb3a800938e7100615667004d484f008c452f +009e542300ad6b1500c48c69009a778f008e6e790056416a002b304600261935 +00290e1f001c0814001600120018010b000f000800060000000100040005020d +00080510000b001700160023002207320031123c003a082d003b042b00441619 +003b0a060027000000190000001c000d002e1a1c004f38420056596800878289 +0086a9bc0087eeeb0081eef1005abba80062d39500a4ddd600eef6e100fffcff +"/> +<palette number="222" name="Apophysis-040427-4DimensPathE2" data="00e09791000c0807000c0604000d050200100601001408000013040000130000 +001c0000001e03000020070000270700002f07000034030c003a001800420418 +004b081900492c2e003a847e002cdccf0032e0cc0038e4ca004ceea50060f881 +009ac8c800c3e3dc00edfff100f6eef700ffdefe00ffd3e300ffc8c900fab967 +00fbef0500b4fa0e00c4d01100d4a61500b8a915009cac1500a9c51f00b7de29 +007cb400007c991e007c7e3d00a16a1e00c6560000ca551000ce552000bb3a24 +00bd2b360064001000671708006b2e0000626e00005aae000064d624006fff48 +0090c55100c38e5a00f7576300e43a6400d11d6600dc235900e7294d00bd452c +00b6462100511804004d1702004a160000441800003e1a000048250700483c30 +0090707500a4887e00b9a18700bab08b00bcbf9000b7b68300b2ad7600b79476 +00b69c6900da903700d0693d00c7424300d44a4700e1524c00dd3b6c00d35487 +00a815bd007221b3003d2da900462a6c005028300041172300241d2400292019 +00310a0d00100700000804000001010100010101000101010008000500120000 +0033090a00561727007a2544008a3b53009b516200a7728200c993ad00f1d3d3 +00ffe0db00f0a39100d8929100c08192008f675b00604f480060433b00705051 +00827471008576700089787000867f720084877400988a8100ae9a9900b59d9b +00b1a69000948a66009b8a6200a38b5f00d7ab2e00cac70a00aef511007eea09 +0019bf03001b9a01001d760000186500001355000010260000381d0200528900 +00169e00003db700004da207005d8e0e0086421b006d2f3400673029005c312b +009d6e5200a78a6400b1a77600c1bbab00ffe0f100fffbea00fffff200fff6f3 +00ffe0ff00d5e0b600c0d4b300acc8b1009f988e0072758400424e4a002b5a46 +003719000035100000330801002c000000310011002d002c002b073700380072 +004b23a7005e4ec800597fca0055a0bd0089a7670093855e00856c65008a5f59 +0085343100871e33008a08360081004700900047009e2b8a009f419500a56a7c +00c4807700a1726c00ab485a00b7426e00e64f4800fc661100ee1f0f00e8151c +00da212600db201700c10d0e0065010000600000005312000052020300510008 +00500000004b000100340100001d0503001b0000001d00000029000000430008 +005d0102007b0a2800b23d4600d88da400ddc2c700fff0f100fffce400dfeabf +00c6aba000a8755800904c29006d371b00501416004d140b003d0d09003d0a07 +00330708003900000037000000320000002a0800001c090000131000000e0603 +000a0100000006000000060200010101000e00000011000000120203000e0000 +0005000400000007000105060007070700181900003b3a25008e665a00ffaf9c +"/> +<palette number="223" name="Apophysis-040427-4Doodles" data="00916a0300b5977d00a9ad97009dc4b1009ac1ae0098bfac009ebdad00a5bbaf +00a1a1a1009a9a9a0094949400948d900095868d0069727c003d5f6b00335471 +0029497800111c8600081e5e00002036000f2136001e233600262933002e2f31 +00b9967800dbc17d00feed8300d2b14800a6750e009e700800966b0200945b16 +0098381000918d6000a6a48c00bbbbb900c3c2c000cbcac800cacac900cacaca +00c1c1c100b0c5bb00a0cab60062cdb40024d1b30023ae9400228c75000b4849 +0026323e0058401c00674b3b0077575a00897a7f009b9ea500acadb000bdbdbb +00e9edf000f1f5f700fafdff00fcfeff00ffffff00ffffff00ffffff00f2fdf9 +00e8e8d0009f9f9f007c7c7c0059595900525152004c4a4b004041390049371f +00452806003a2509002f230d002e1707002e0c0200361205003f180900470e05 +003c0d03001f072b0025121f002c1e1300352713003f3013004e370d0072551b +00a8995400a2ae82009cc3b00091cdcd0086d7ea00adfffd00d9fffa00e6ffff +00e7fffd00c6c6c400a5a5a3008585830075726c00665f5500524d4a003d4f53 +008a898e009c9c9e00afafaf00b6b6b600bdbdbd00bfbfbd00b0aeaf00979797 +00777777003e5f04003a460e00362e19002d2d2d002d2d2d0029343800343b8c +00b251f900a273df009296c5007d8eb7006987a90030a55f00048b2200053026 +000f0f0f00251d06002320110022231d002d2d2d00313743003c566300808080 +00f3a2fe00f1c1fe00f0e1fe00ebe4f200e7e7e700e2d7d300d4cbce00d0d0ce +00cececc00cbcbc900cacac800cacac800c6c6c600c2c2c000bebebc00b9b9b9 +00949297009a939700a0949800b7a8ad00c1c1bf00d0d6d200dbfbf000ecffff +00f7fffd00ffffff00ffffff00ffffff00ffffff00ffffff00fefff700feffbf +00fcf69400fdf77e00fff96900d3ff5f00e5df5700ed5d3800e3046100ad0048 +00a01c170069767c007e464500000600000b090a001b1a180030231d002f1940 +004e0a7900611f4e0074352300a22c1200cd3d3500f2555e00da704600bea555 +00ccba7200c1bab200d2c1c900dedcd000f7f7f500fef9fd00fffeff00ffffff +00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff +00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff +00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00fbfdfc00ffecde +00fffabd00fcf7b700f7e79200fbde8e00d1b1c000bbbbb900b3b3b300a0a0a0 +009a9a9a008d9391008d8d8d008d8d8d008c8c8c0085958b0082a4940081abc4 +0082cde000a0aeeb00b383e600c986fa00ce9ce500bfbfbf00a0c7b400a1b5aa +009191910078787800795933005a4739006546270071301c0076210d0090370b +"/> +<palette number="224" name="Apophysis-040427-4Doodles2" data="00bfb66b00b08e1300b6910b00bd940400bc930300bc920200b78e0300b38b05 +0096802a0083784c0071706e0059595900424345002b2f2700141b0900191a0d +001e1a1100383d150065580c0093730400ac860400c5990500d0a10500dbaa05 +00efbb0500f3bf0400f8c30300f9c30400fac30600fac30600fac30600fac306 +00fac30600fac30600fac30600fac30600f0bb0500e6b40500ddac0500d5a505 +00aa5c5200904b4700773b3d0065423e0053494000504443004d4047005a4b50 +0073625b00b2ac9c00cac0b600e3d4d100cfb0b900bc8da1009f808900827471 +00a37f4100b9902300cfa10500ddac0500ebb80500f0bc0400f6c00400fbc105 +00f5bf0700dbaa0500cfa10500c3990500ba920500b28c0500a7840400a38002 +00a5820200ae890300b7900400c79c0400d8a90500dbab0400deae0400e6b405 +00ecba0500e5b30600dbac0500d2a50400cea10400ca9d0400c3970200b48d04 +00a7810400a8820400a9830400ae870400b38b0500bf950300d0a20400deae04 +00e7b40300f6c00600f8c10600fac30600fac30600fac30600fac30600fac306 +00fac30600f4be0600eeba0600e9b50500e4b00400d2a20400b98f05009c7903 +007b5e0200391902002b1605001e140800150f030000120600051c0800002909 +0011471500482c0b007f11020097150500af190800c10d1800991f1a008c6c05 +00927004008b31260087322700833328007f4d06008969040093730400a37f04 +00c99e0400d3a60400deae0400e0ae0500e2af0600e2b30500e4b10600e7b305 +00eeba0400fac30600fac30600fac30600fac30600fcc20600fcc20600330009 +001a2d0d001841130016561a00125a1b000c5a1c0011551c000f37140013220b +00180b02002c05080026030800200109000c0401000504020000010000000201 +0032222c00363936003b50410069656200787471007c79740087807800a1a09e +00a9676900cd6b5e00b65a4f00b44e4000735c3c006e5536006b5d5d00736a6b +00af932500ba961500c69a0600d6a60400e2b30300eeba0400f8c10500f9c205 +00f8c10500f7c10500efbb0500e0b00400c89c0500afa05d00817b6d00706c69 +005244530040394100353118004f3004004b3a0200675002007c640200907001 +009d7a0200a0770500a0770500a2770600a37a0600a07c0400a27e0300a58204 +00ac850200bb920200c79b0400d6a60400deae0400e0b00400deae0400dcac04 +00d1a40300c1940500ac8502009f7d02008b6b04005751050030380500181202 +0003000000000000000b06020029120200551303004e171a0075332700a27307 +00a97d0200b18b0400be940400c69a0500ca9f0300cc9f0400d0a20400d0a204 +00d2a50400d8a60500e0ad0400e2ae0300e0b00400d9a70600c2ad5200ccbf70 +"/> +<palette number="225" name="Apophysis-040427-4doodles3" data="00fffffd00ffffff00ffffff00ffffff00fefefd00fefdfb00f6f5f400eeeeee +008481ce00494f9c000e1e6b0010183e0013131100090909000000020000000b +000000150007166900490b3f008c0116008c0010008d000b00850024007d013d +00080087000f059e00170bb5002126a6002b41970017619c000382a2000895e7 +000993eb005b76e7009274a600c9736600ce645200d4563f00d47e6700d4a790 +00f4f4f400f9f9f900ffffff00fefefe00fefefe00f8f8f800f3f3f300d2d2d2 +00aeaeae00a73f260097211300870301005f050000380700001c030000010000 +000f0f0f001d271b002c402700475c4b0062796f007e938a009aaea500cbcbcb +00f6f6f600ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff +00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff +00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff +00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00feffff00fefefe +00eff3ff009cafa9006379a8002a43a8001d21ab001100ae000b00b2000a00af +0006006e00030038000000020000000100000000000506080030181800643337 +00a16d5f00f3e0dc00f7eeec00fcfcfc00ffffff00ffffff00ffffff00ffffff +00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff +00ffffff00f8f8f800e6e6e600d5d5d500c9b9b900d1998a00b65c4400843531 +00541f0d0050200f004c211100511f0f00571e0d006e0d1800782b1700812e28 +008e251f00cf0f0000c8200000c1310000b82b1700ad382700b74d3300ba563c +00d6492e00dc452000e3411300df4a3200da695700dca19100eecdc400cecece +00cfc1c000b0b0b000999999008282820064646400436155002b6d4900225f3d +0013823d002e8851004a8e6500a7a6a400c4c4c400f0f0f000fefefe00ffffff +00ffffff00fcffff00f2f1ef00c8c6c700ababab007c7c7c007e5f4200a0433c +00b2613600bc674700c66e5800d5afa600e5dcdd00fbfbfb00feffff00ffffff +00ffffff00feffff00fdfdfd00e5e5e500b4b8d3007874cb00446be2000690b4 +0044528f00872b820080575b00754d4100663c30005f332a00581f25005c1f24 +0075311e00663632007245480071706c00b1b1b100dedee000f5f5f500fefefe +00ffffff00fafafa00dfdfdf00bfc1c0008a92b9006167990028497c00051668 +00042045000e0e100001000000010000000000000001010100280f1200343434 +007454490083655b00a1a1a100b2b2b400b4b5b700b6b6b600b7b6b400b3b3b3 +009e9e9e006a8477004980600034745100405a4f00202e75000a1a79002b3c8e +003f54590068676500978f8d00bababc00e6e4e500fafafa00fffffd00ffffff +"/> +<palette number="226" name="Apophysis-040427-4Doodle3inv" data="007c9aa4004d4d4b004b4b4a00494949004a4a4a004c4c4c0056565600616161 +00b67f9f00ba92a700bfa5b000dac59b00f5e58600dac89600c0aba600aba1a0 +0097989a00454543002525240005050500020202000000000000000100000002 +00000000000000000000000000000102000102040009090a00111111003d3938 +007b7e3100f1e19400eee6c100ececee00f5f5f500fffffd00fffff300ffffea +00f8e99600b5f3bf0073fee90072feee0072fff4007afedb0082fec200bcfa71 +00f7ff7800e8f44a00ded95900d4be6800e5944000f76a1800f66b1600f66c14 +00a48918006d8a5800368c9900309aac002ba9c0002b8097002b586f001c2f35 +000b0b0b00000000000000000001010100060606000c0c0c002d2d2d00515151 +0058c0d90068deeb0078fcfe009ffafe00c7f8ff00e2fbff00feffff00fffeff +00f0f0f000d3bfd800b8a2b4009d869000816b750065515a0034343400090909 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000100000001010100100c00 +00635056009c865600d5bc5700e1dd5400eeff5100f4ff4d00f5ff5000f4ff51 +00f9ff9100fffffd00fffffe00ffffff00faf9f700cfe7e7009bccc8005e92a0 +000c1f2300060f11000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0007070700181818002a2a2a00364646002e66750049a3bb007bcace008ad3e6 +00abe0f200b3deee00addff000a8e1f20091f2e70087d4e8007ed1d70071dae0 +0030f0ff0037dfff003eceff0047d4e80052c7d80048b2cc0045a9c3002db8cd +0029b6d1001cbeec0020b5cd002596a800235e6e0011323b0031313100303e3f +004f4f4f00666666007d7d7d009b9b9b00bc9eaa00d492b600dda0c200f6abc2 +00ec7dc200b5719a0058595b003b3b3b000f0f0f000101010000000000000000 +00030000000d0e100037393800545454008383830081a0bd005fbcc3004f9ec7 +004d9ec9003991a7002a5059001a232200040404000100000000000000000000 +0001000000020202001a1a1a004b472c00878b3400bb941d00f96f4b00bbad70 +0078d47d007fa8a4008ab2be0099c3cf00a0ccd500a7e0da00a3e0db008acee1 +0099c9cd008dbab7008e8f93004e4e4e0021211f000a0a0a0001010100000000 +000505050020202000403e3f00756d46009e986600d7b68300fae99700fbdfba +00f1f1ef00feffff00feffff00ffffff00fefefe00d7f0ed00cbcbcb008babb6 +"/> +<palette number="227" name="Apophysis-040427-6DoublEagles2" data="007f3301007f3301007f3301007f3301007f3301007f3301007f3301007f3301 +007f3301007f3301007f3301007f3301007f3301007f3301007f3301007f3301 +007f3301007f3301007f3301007f3301007f3301007f3301007f3301007f3301 +007f3301007f3301007f3301007f3301007f3301007f3301007f3301007f3301 +007f3301007f3301007f3301007f3301007f3301007f3301007f3301007f3301 +007f3301007f3301007f3301007f3301007f3301007e3200007e320000702c00 +000105320001053200151b53002a3175003a4180004b518b004b518b004b518b +007f236c00642c370049350200251d1a00010532000105320001053200010532 +0001053200010532000105350002053800161b56002a3175001246ac00205d9c +00c4c5b500d5b96e00e6ad2800d89e1400ca900000c38a0000bd840000a75001 +00953b00007f3301007f3402007f360300733f0f0068491b004d544d004b518b +004b518b004b518b004b518b0058566500665b3f00864410007a320000581e06 +0001002a0001053200151b53002a3175002a3175002a3175002a3175008f0f62 +00a26c26009a521300923901008b37000085350000803402007f3301007f3301 +00e5af1b00a36f2300976611008c5e0000873601008032010080320100853500 +00b2500900c77b1a00dda72b00e8c15f00f3db9300e8dbb800eaf6f600e1faff +00d0d3c800e8a54c00e0963e00d9873100e85d0200b74800008236040062401b +00010532000107460001095a00151d67002a3175002a3175002a317500100d5a +0001053200010532000105320001053200010532000105320001053200010532 +00010532000105320001053200000b55002a3175004b518b004b518b004c518b +00919ba500d3e2e500c8e1e600bee1e70096d4fd0061bbfa004b518b004b518b +0078c1f4008ccff700a1defa00acdbf700aad8e8007d6e6900a7743b00883c0a +007f3603007f3301007f3301007f3301007f3301007f3301007f3301007f3301 +0086350000943a0000a3400000c1035900dd056600f6287a00e9317700a8753c +009e631d0091420700803201007f3301007f3301007f3301007f3301007f3301 +007f3301007f3301007f3301007d340100762f0100271c000001002a00010532 +000105320001053200642901007e3200007e3200007c320100760e5d004f218d +004b518b004b518b002175be003ba7f0004878b800898e9200af954a00aa762b +009a6400008a370100853500007f3301007f3301007f3301007f3301007f3301 +007f3301007f3301007f3301007f3301007f3301007f3301007f3301007f3301 +007f3301007f3301007f3301007f3301007f3301007f3301007f3301007f3301 +007f3301007f3301007f3301007f3301007f3301007f3301007f3301007f3301 +"/> +<palette number="228" name="Apophysis-040427-6Equinox" data="00726ee700706ee900716ee700736ee600746ee300766fe1007770e1007871e1 +007872e0007872e0007872e0007872e0007872e0007872df007973df007a73de +007b74de00827bdb008b84d800958dd600a494c100b49cac00b09bb100ad9ab6 +008c7fce008b7dcf008a7cd1009a87bf00ab93ad00b5969a00c0998800db9945 +00c7802e00b05f1d00a360460096626f008e6ea000877bd1008479d0008278cf +007773c800744e7800712a2800944a2200b76a1c00cb853300dfa14a00fbca64 +00fee76500ffeb6600fef16d00fef77500fef17400feeb7300f3de7400e9d275 +00cabb9e00c8b89f00c7b5a100d6af8000e5a96000e4a95700e4a94f00edb053 +00edb75700c8b79900b5a3ad00a38fc2009685c9008a7cd1007a75db006f6ee6 +006364f2006264f3006265f4006363f4006561f4006663f1006766ee006b6aec +006c69ec006c69ea006f6be800726ee700756fe4007871e1007c74db008679d3 +00aa94bb00b19bb400b8a2ae00b79da700b798a000a17f9a00aa979b00b29f99 +00c4b0a700ceb89300d1bf9500d4c69700d3c09900d2bb9b00c3aaae00ae9bb7 +00887cd2008479d4008076d7007d74da007b72dd007871e100736ee6006d6bea +006c69ea006b6aec006b6aec006b6aec006766f0006665ef00605df2005061f7 +005960ff006869ef007872e0007f77da00877dd4009b88c800b7a0b200c3afa6 +00c5b2a300a897bb009b8dc5008e83cf008281cf008279d6007d75da007a73dd +007b72dd007a72dd007a73dd007972de007872e0007870df007871e1007871e1 +00746fe500706ee9006e6ce9006d6bea006c69ea006d6aeb00706ee9007273f1 +007677ed007779e600797be0007d75da008076d7008076d7007c74db007a73db +007169d6006665ed004e4cde003733d0001627bd0000189700310b4800450e35 +007e2805008b35060099430800a8541400a8551300ab5a1800b0645400a28077 +009973a400867acc008679d100877ad4008578d4008279d6008176d4008476d5 +008076d7008076d7008076d7007c74db007a73dd007872e0007871e100746fe3 +00726ee6006e6ce7006d6bea006a6aee006c6ef7006c71f3007271f0007170e8 +007871e1007b72dd008279d600887cd2009a80bd00b5957c00dd984b00e3a93e +00cf883600c6793100cb843200d28e3d00da9c4500b69a8400ac878f009181c8 +006f70da006364f000545aec003838bc00031a9c00000758002608480035103b +007d310f00a14d0d00b15f2500c77e3100b8978800a695b5009286c800877ad2 +008578d2008177d8007c74db007a73dd007973df007871e100746fe300706fe7 +006d6bea006c69ea006b6aea006767e9006668e3006b68e9006c69ea006c69ea +006d6bea00726ee7007871e1007973df007e77e1007a74de007c76d8007a73dd +"/> +<palette number="229" name="Apophysis-040427-6Equinox2" data="002e053100896a70008c9c6a0090cf64008dcf63008bcf62008cce64008dce66 +0098c25e009e8e7300a45b89008c82840074a97f0081bb74008fcd6a008cce67 +008acf640084d4630087d067008acc6b008ebf7b0092b28b00a1a49200b1979a +00c1989c00c29a9900c39c9700afb381009ccb6b0096d0660091d6610093df5b +0097ea54009aff45009bfa46009cf6470096f04d0091ea54008ee351008bdc4f +0092dd5c0092da5d0092d85e0091d75d0090d75d0090d75d0091d85e0092d85e +0091d6610090d75f0091d95e0093db5e0093db5e0094dc5e0094dc5e0094dc5e +0097e9570099eb56009bee560099ec550098eb550098e9550098e7560095e359 +0092de5a009ac45e00bfaf5b00e59a5900f2a04e00ffa74400f97a2b00ee7445 +00d37e3e00d56b3500d8592c00dd643700e26f4200e6815300ea946500cd9f87 +00c89f8900ac454800b3322b00bb200e00b11e0f00a71d1000a01309008c0800 +0013041700541b290096323c00b13c2e00cd472100f16e4400f7a05000ffa75d +00e6bd6e008fe16300accf7a00cabd9100d5b89200e1b49300d1a88a0093d068 +008bd7370090e43e0095f1460097f1490099f14d0098f04e0098eb550098eb55 +0098eb55009bee56009bee56009bee56009bee56009aef56009aef540099f650 +0092ff470095f94a0098f34d0098ef510098eb550097ed580097e9570094e55a +0093df5b0095dd5f009bd56700a1ce6f00c8a89100c79d8d0092bd76008dc665 +0090c47100a3b08700b79d9e00bc9a9c00c2989a00d3a58e00f1ac6b00fdbb5b +00ffc759009dda59009adf5b0098e45d0099e65a0099e859009ce65b0099e65a +0094dc5e0091d760008fd362008dcf65008ec66b0093aa8000a792a500a289a6 +008fabac00b5b4b900b0b5b300acb6ae009dc394008fb88e008ec874008fcd6a +0093db5e0094dc5b0095de590095e3590095e359009be55c00a3ea6600e8d27c +00fbc98000f0c17300dfaf6f00cc9e8f00c49b9500c2999500bb999a0092bc7c +008fd163008fd3610090d5600093db5e0093df5b0096e45a0097e55b0095e35b +0092dd5c0090d75d008ed062008fc85f008ec36700a9574c00c03e1c00c33414 +00a91b0f006c08120016380500174304001e5212003962000044711200639840 +0082d65a008dd8590090d75d0090d75f0090d5610090d5610091d6610090db5c +0092dd5c0093e1590093e5520097e6550096e8550098eb550098eb550098eb55 +0099e8590095e3590093df5b0093df5b0092dd5c0092d957009ad8470095e045 +0095e8400085e948008eec560094e95a0097e55b0095e3590093df5b0093df5b +0093df5b0093df5b0093df5b0094dc5c0092d85e008fd3620090c86d008db97e +008cb593008bafab00a98fa800ba93a800b698a000c3949a00c69b9200c39892 +"/> +<palette number="230" name="Apophysis-040427-6BluBrd" data="00fea91000fca71000fca10f00fc9b0e00f58f0e00ee840e00ee840e00ee840e +0070aa08006a95230064813f00698b49006e955400757555007d565700755970 +006e5d89001446c3001b66e1002387ff00135de3000433c700092aa6000f2185 +0007043d00140b2b00211219001111250001113200080d210010091100281100 +0021230000413121005c513100777141008e894f00a6a15d00d1a74400fdae2b +00ffb61b00ffb01700ffaa1300fda21000fc9b0e00f58f0e00ee840e00ee7c0c +00f6710a00ee6f0e00ed730e00ec770e00ed7b0d00ef800d00ef800d00ef810e +00fd990f00fd9d0e00fda10e00fd9d0e00fd990f00fa920e00f88c0e00f48210 +00f0810e00f0810e00ef7e0d00ee7c0c00ee7c0c00ee7c0c00e17a1100cc8f3c +008d9758008db161008dcb6a0094b664009ba25e00959658008f8a52007c935b +0076715e00559ea5002e67a9000831ad00092998000a22840000145100303628 +002619230013194900001970000a1a7b00141b86000d1375005a2f38005e3306 +00452e0c0055340700605003006b6c0000a0620400d5580800de5b0b00dd5a0a +00a35107008d522300785340008c594500a05f4b00dc590b00dd640b00e96f0c +00e8720e00d95c0a00a8642800786c460065415d004518b100051f98000021ba +006b687100ae8a4800f1ac2000f6b02200fcb42400fba92b00ab8d5b008b6e50 +007b5d43002a5a1e00304d2100364025005b352200652f5300844e6500b47556 +00e7730c00e76e1300e8691a00e6513200e4394b00ba549300851ec7005f1de1 +003f43ec00378dd800318fd4002c92d00029bfda0086acc3005c3cff008e00f2 +007b0cc200a7218400d3364700e3600e00e96f0c00e7730c00e8740d00e9760b +00ea770c00ef800d00f3860d00f88c0e00fd990f00ffa31000ffaa1300ffaa13 +00fcb61800fabe1800f9c71800f9cc1900fdc91d00fec41b00ffb71700feaa13 +00f8930f00cf840f00ac8059008c7b5000cd650c00e6720b00f0810e00fd9814 +00ffc01d00feca1d00fdd51d00c5fe13006fff0b008af91400ebed3400ffc829 +00ffc91e00ffc91e00ffca1c00ffc91e00ffbe1a00ffb71700ffb71700ffb717 +00ffb71700ffb71700ffb71700ffb61b00ffb91c00febe1e00ffc01d00ffbb1a +00ffb61b00ffad1b00ffab1400ffaa1300ffab1400ffb51800ffb71700ffb71c +00ffb91e00feb71d00ffb61b00ffb21600ffaa1300ffaa1300fca31100f9940e +00e8740d00b16c43008a5e5b00670fb100800bcb009215e2009717e000b053be +00a9a48400e3ad2900f8b81a00fdb71900ffb71700ffc41100fdc61100ffbf05 +00f5b70e00feb11300ffb11300ffb61700f4b91500ebc01b00d5d11600a9d510 +0096cc1c0081e429003cb03100659849007099550086a05900967c2500e77d05 +"/> +<palette number="231" name="Apophysis-040427-6BluBrdInv" data="00e77d050086a05900759c51006598490073be390081e429008bd8220096cc1c +00d5d11600e4c51500f4b91500f9b51400ffb11300fab41000f5b70e00fabb09 +00ffbf0500ffc41100febd1500fdb71900f0b22100e3ad2900c6a85600a9a484 +009717e0008b11d500800bcb00853493008a5e5b009d654f00b16c4300e8740d +00f9940e00ffaa1300ffae1400ffb21600feb41900feb71d00feb81d00ffb91e +00ffb71700ffb11500ffab1400ffab1400ffab1400ffac1700ffad1b00ffb61b +00ffbb1a00febe1e00feba1c00ffb61b00ffb61900ffb71700ffb71700ffb717 +00ffb71700ffba1800ffbe1a00ffc41b00ffca1c00ffc91d00ffc91e00ffc91e +00ffc829008af91400a7fb1300c5fe1300e1e91800fdd51d00ffc01d00ffad19 +00f0810e00de730d00cd650c00bc723200ac805900bd823400cf840f00f8930f +00feaa1300fec41b00fbc81a00f9cc1900f9c91800f9c71800fcb61800ffac12 +00ffaa1300fea11100fd990f00fa920e00f88c0e00ef800d00ee7c0c00ea770c +00e9760b00e7730c00e5690d00e3600e00db4b2a00d33647007b0cc200920fe7 +005c3cff00427dec0029bfda002aa8d5002c92d000378dd8003d5ec7003f43ec +005f1de100ba549300cf466f00e4394b00e8691a00e7730c00e7730c00e0730e +00844e65006f4143005b352200483a2300364025002a5a1e00464735007b5d43 +008b6e5000fba92b00fbae2700fcb42400f1ac2000a5885e006b687100192bab +00051f980035307a0065415d006e565100786c4600d95c0a00e36d0d00e8720e +00e96f0c00dc590b00be5c2b00a05f4b00785340005e433800a3510700d75108 +00de5b0b00d9590900d55808006b6c00006b4c0c00553407003c290100452e0c +005e3306000d13750010177d00141b86000019700003124b0026192300382a1d +0000145100051b6a000a2284000831ad002998b600559ea500846c8c0076715e +007c935b008f8a52009ba25e008fb667008dcb6a0071a35e008d975800ad8554 +00e17a1100e77b0e00ee7c0c00ee7c0c00ee7e0e00f0810e00ef800d00f0810e +00f4821000f88c0e00fd990f00fc9b0e00fda10e00ffa11100fd990f00f98d0f +00ef810e00ef800d00ee7c0c00ec770e00eb710e00ee6f0e00fc6f0600f6710a +00ee7c0c00ee840e00fc9b0e00fea41000ffaa1300ffab1400ffb61b00ffb01d +00fdae2b00a6a15d00897550007771410058483b00413121002a1b0400212300 +0028110000100911000111320008113c0021121900040e310007043d00100b45 +000f2185000433c7000b84ff002387ff002965df001446c300374e91006e5d89 +007d56570086694b006e9554006b98570064813f00608a000070aa0800b7ac16 +00ee840e00ee840e00f9940e00fc9b0e00fda31100fca71000ffaa1300fea910 +"/> +<palette number="232" name="Apophysis-040427-6FaerieKng" data="00010101004c0e3f00541250005d1662005f1f4400622827005f2324005d1f22 +00030303000305070003080c002c1a1200552c18006c47270084633600866d47 +00887759009ba2b4008077c800664ddd005f30a30059136900591163005a105d +0067323800783e1c008a4b0000a35d0000bd700000c26c0000c7680000a25e2f +008d3e390047146100231b780000229000301a770061135f005b1f6700552c70 +0047176100370d470027042e0014021700010101000101010001010100000300 +0005150000087000002c781b00518137006d784d008a6f64007d6b7400706784 +004589b8009ab2b800efdbb800dbcfaa00c8c39d00aca79300918c89005e5663 +00412a600018142f0016242e0015342e000f3735000a3a3c00085b4700166256 +0091409f009667aa009b8fb5009d75a2009f5c8f00936a7d0087796c0099916c +00ccbd7a007fac73006f8952006067310042452a00252324000c0c0c00030303 +0001010100010101000101010001010100010101000101010001010100010101 +0001010100190b2c002816430037225b00252158001320550000175300002b4e +00045944000534290007100f0004080a00020106000101010001010100010101 +0001010100010101000101010001010100010101000101010001010100010101 +0005070200211e11003e3621004a2a3100561e4100782b5f00b0448000b14696 +0096309d008c2a75008e326b00913b6200863a4400683a2d006b62430097793d +006da46000726c6400773469007523690073136a006a0b6500830847008b3a49 +00b15b4c00b16c0500ac6e0800a7700b009b772b00948e3a0095974300a18848 +00c979c200d16ad400da5be600cc6fca007a5f8c002a5679000e5655001f6473 +0055659800f758ea00fb61f400ff6bff00ff6cce00d2789e00cb9c6400b98752 +008635550087376400883a74009b438000bd3f9100bd3f9300c2419d00b22dbc +00b443b700a84d9d0064418100604d6300342f36001516180004040600010101 +000501020017080100290f0000522913005e2329003d2a2c0020113000090418 +0004040400010101000101010001010100010101000101010001010100010101 +0001010100010101000101010001010100010101000101010001010100040001 +00070208000d052e0020143800120e33000601440008012b0000001e00000004 +0000000200010101000101010001010100010101000101010001010100010101 +0000000000010000000100000001010100010101000101010001010100010101 +000001030000080e0000231e000b50310005671c0016702a00573f1900763829 +00904e2e0088580c00844f19005c2b1c00241c1a000609000001010100010101 +00010101000101010002020000090a0000293b2100592d200084391c009a5706 +"/> +<palette number="233" name="Apophysis-040427-6FireDemnOrch" data="002ae6e80008fac70004dab50001bba400008c9500005d870000547700004b68 +00050d5500080f60000b126c0006236a000234690001476500015a6200085056 +0010474a00180a5700442e4d007053430084834a0099b35200b5c34100d2d431 +00e1d39600e8e06f00efee4800ddde3c00cbcf3000b7b84100a3a25200866f46 +00725044000f0e83002221a1003534c000443fc900534bd2005148dd005045e9 +004c3dfc006d3dfd008f3eff00af4aea00d057d600cc50d600c94ad700b837da +00ad26e4007c42e2009439e200ad30e2008d1abf006e059d0051068700350871 +000c0457001105520016064d00380e40005b16330059122c00570f25005f1023 +00641a33006e1e27007d2424008c2a210099422800a75a3000ab604100d36f55 +00bb3a6000b61f4d00b2053b00a506270099071400960a1500940e1700931506 +0093060f008b170000872d0000844400008a410300903f070085373700894640 +00867f2500509435001ba945001f9c6200248f7f0004939100039c970000b6a4 +0024a5bb00a9a6d100c57fb700e2599d00eb679300f4758a00e0888600cca57e +00d2cf4c00afaf4e008d8f500089865800867d60006c4190006443d000783fc2 +00b839a400894461005e447400334587002d4e790018467700043ea2001b45b1 +00ae4dc000c553c800dd59d100b67ed5008fa4d90046cdc60019eebe000af1c5 +0005efbe0066a9bc006998a5006c878e009d449600b438b200c826af00c42aac +00c6337900c5567600c4797300cb817800d28a7e00de7e8900f5677d00ef8263 +00f6b35800fe531f00dc4c2800bb463200705449002f5f8d0020579a0062918b +00df88aa00df9da100dfb39800efd5b000cfaab20065bbd4004bd5fc002bced5 +0003a3b900004681000f307d001e1a790039016c0068004b00770b2b00750e0f +0081180000931a0400a51c0900bb311400d84f2500d3534a00c25a4d00c14150 +00d53d6400d1469f00bc46c100c532c8009937c8005b35d6004435cc0020319b +0010085e0018096500200a6c00241276002435a1003f52bb005954ca0048bce5 +0031e3ed0017f2d2000de7b70004db98005d954c00a45c2c00e0220000e11701 +00d7080000cc070100be0d0000b10f040098101c00852b2a00a90d7000b423b0 +00c827cb00bb3ad5009f35d300753cc9005937bf00451a730048085c00660346 +00640b290096021a00a0091800b50d0a00e6040500f3071300fe441100ff5d00 +00bcaa02009ea6370083c41e0056932b00468a230010524e00012f4900080459 +002a045b00540c56009b095c00c12f9400b138bb00a442d3008145d9006144ec +00685ef5003ea9df0034b4d9000ec9b40006c3a30007c9b10000d0b80001e4b9 +0001e9b90010e1aa0014d4a1005ab474006b823400853c3300783b040085291e +"/> +<palette number="234" name="Apophysis-040427-6CsmcLottoWhl" data="006e440a00ce6b1600e68b1900ffac1c00ffd42100fffc2700fffd2600ffff26 +00faf20900ddcc0900c1a70a00bd940500ba810000be7d0700c27a0e00cb7b0a +00d57c0600d9831200dc850900df880000ef9b0a00ffae1400ffae1600ffaf18 +00fed70e00fecb1500ffc01d00e7991e00cf732000b56524009b572800744b1d +0050331300110a11000c090c00080808001b0f04002f1700003d2000004b2a01 +00914a1c009e541c00ac5e1c00985e1000845f0400775902006b540000684505 +0057360b00140600000e07040008080800090909000a0a0a00170f0500241400 +0057340e005c2e090061290400642a0500682c07006e3203007439000074460a +00724f0b00ab660100a5560300a0470500934702008748000074380000562400 +000b070600070504000303030002020200010101000101010001010100020202 +00020202000410060005100d000710150024211a004233200061542000865513 +00ac680500945a02007d4c000076440000703d00004f2e0d00311c09000c0c0a +0009090900281e0000432100005e2400006a2f0400763a08007f380a00723405 +003f180000241004000909090008080800080808000606060004040400030303 +0002020200020202000202020003030300040404000606060007070700070707 +0003030300020202000202020002020200020202000202020002020200020202 +0002020200020202000101030001000500020202000202020002020200020202 +0003030300030303000303030003030300030303000303030003030300050505 +000909090045270b0056331500683f1f007e602200b5842700c5bdca00fffac0 +00d2b60000d7b40000ddb30000f1ba0000ffb11300feb01c00ffad1c00ffa521 +00db9b15009057120080490c00703b0700532300002414000009090900040404 +0001010100020000000300000005010000030301000202020002020200010101 +0001010100010101000101010000000000000000000101010002020200040404 +000808080007070600070705000c0000000807030006060600050a0600090909 +000909090015070700361f0000522c00006840050067430700673a10004d2907 +00401d00001709000010050100160e0000352b0700513d18007b6019009d7d16 +00bf770b00dd690000ea741200fd780f00ff8b1700fea21900e8922300c17812 +00a2760000926806007a4d0c0074480b00844c1d00a74a0f00b3530900bc5e04 +00c05d0c00ba6f0a00ab5d12009456090090570600834c000089600000877500 +008e7600009f810000b8960000c7b10300f0b30a00fdaf1100ef8d0600f5700b +00d4681000a1731e00795b1f0072511e00754807008030000083180000992500 +008134000080370a008f3c12008a4300009c3e0000a94c0700f56d1700d15608 +"/> +<palette number="235" name="Apophysis-040427-6DreamFaeriRlm" data="000300000001010100130a060026130c003e221100573217006a3c1e007d4725 +009b5c4d009d6f5900a0836500a17e6600a2796700977862008d785d0087725a +00826d58005e423400573a270051331b004f321c004e321d004e341a004e3718 +007c5333008a5d2e0099672a009c5f3000a0573600a5552b00aa5421009c532a +0092582a00683a200061331e005a2c1c00512c1a00492d18004d2e1500512f13 +00582b0100582d0900582f11005e3a260064463c00724c4000805245009b7050 +00a57a5000c6925900d1b28000dcd3a800e5d8bb00efdece00edeec700ebffc0 +00e7cd9000dcb68200d1a07500ccab8e00c8b7a700cbb49c00ceb19100d2b08b +00d2ad8300dacb9400ece49e00fefea800fefeae00ffffb400f6ffc400fcebf1 +00dec4b700caa59300b6866f00b4836400b2815900b07f5900af7d5a009a774d +009b6d4b008648230070381b005b28130055250b004f2203004e2102004e2102 +004e2200004e2200004f2300004f2300004f2300004e2102004f220300552100 +00542303005d2a15006a36210077432e007d4d3000845833009c684000a77240 +00b4795100bf815300cb895500c68f4e00c1964800b07d4400bd940800bb820f +0096610300693527005f2d250056262400432620003c241a003623140034261d +00573a34006c56480081725d00907a6700a0837100bc918000b6958c00b89c8e +00b39e8300b6a58700b89e9200ba979e00af919d009a8783009e7579008d7a6c +0042503f0036382e002a201e0026201d0022211c00351f1200461b0b004d2003 +004d2003004e2102004e2102004e2102004d2202004b22020035190b00310c00 +0009000000040003000001070000050b0017120f003725110052341a00734720 +00805f2c008153430079523b00715233005d3a26004726170029181100211313 +001f1e19002e231e003d282300503820006d452b00704d31007c472800693f27 +00583a1e004f392200473d3400554234007c554400956f5800ad856b00b69977 +00a4998700ab958400b3928100ad866900a9745400996d540093715600987056 +009a77510093714c008b624200675c3c005e3e25005d341e00502a17003e220d +00361b08002a140900250b00001a000000070000000101010000000000000000 +0001010100000202000004080002070a001b0c0700280700003d090d004c0d04 +00472001004b2202004d2001004d2001004e2102004f2002004f2002004e2102 +004e2102004e2102004e2102004e200600532e1400522c17004e281300462310 +003a1d1500341e110028150e0020110c0021100800160b000004040400010101 +0001010100040402001613020028160a00381d1200472313004c2916004b251a +004b251a004e2a1c004f2c1800562c14005f351d00724b2e00916c6400845a41 +"/> +<palette number="236" name="Apophysis-040427-6EyeUniv" data="00ec706400d16b6700ce666100cc615b00cb5a5300ca534b00c9534a00c9544a +00c54f4b00c54f4900c64f4700c24c4500bf4a4300c14b4400c34c4600c54d45 +00c74e4500ee5e3c00ea5b3900e7583600d34c3500bf413500bb3c3200b7382f +00b5392f00b83c3400bb403900be463e00c24d4400c24e4600c24f4800c04941 +00be473f00bb423a00ba403800ba3f3700ba403800bb423a00bc453e00be4942 +00c6534c00cb584d00d15d4e00cd574a00ca514600c84f4500c74e4500bf463d +00bd443b00bb403800bd474000bf4e4800c5595200cc655c00d06b6400d5726d +00dd857700da817a00d87e7d00c2727f00ad678100b3627600ba5e6b00bb6556 +00c4545000869a9800758b8900647d7a006d6878007654770024353d00091a45 +002b0212006f161900b42b2100bb3b3200c24b4300c7554d00cc5f5800d77268 +00de887b00dba07600b1a7600088ae4b0083aa48007ea64500798b3500545035 +000f1f12001b0f160027001b0027001b0028001b0028011600260309002f0507 +0051321300b7382f00be464000c5555100c75c5800ca646000d1706700d27d7a +00e2a98b00e8bca200eecfba00efd3bd00f0d7c100e3f0bb00d8f2b500d5e2ad +00e6b29c00e39a9300df968e00dc938a00df948100d6b78800c2b27700a9a661 +00d16f66009b5d4f00664b380048272c002b042100240405000f0506000f0009 +00250206004c210e007f251700b32a2000b6302500b4342b00b83c3400be483e +00cc645b00d4746900dd857700e18f7800e59a7a00e6b28b00ecd2b100f3e5be +00eecfbb00e4a89e00e19c9500de908c00d7818000d16e6800cb625c00c65652 +00b93e3600b73a3200b6372e00bb352a00b9332800a74d180086581d006c631e +007d772d00c4545000c8595500cc5f5a00d66c5c00d9736400d6756c00d27371 +00d67e7c00d67b7a00d6787800d4777000d26a6700cf625b00c85b5400c85952 +00c7575300c4554e00c1504a009478370066694e0056344d004c204100533116 +0062592000665c21006a6022007d84370093974b00989f520091b35500cabe84 +00d3e5a900cde6a400bad58e00abd77e00a4d37700c9b88400cbbb8800d5cb9a +00d7e2aa00e6e5b700eac5b200e5b89100dbba8d00dcb68900e0a57d00dc8983 +00d8807c00d5726d00cd6b6a00d3716e00d8807400da887c00db877d00da8379 +00d8776e00cf666200c85b5400c64f4700c2463c00bb403800b93e3600be3b31 +00be393000c03d3300c1423900c24d4600c8564c00c8574f00c95c5500cc5d56 +00cc5d5400cc605400ce5f5400d1635600d8745d00ee812e00eb7c2b00d65f25 +00cb5e1d00be561f00b4473200b83f3600bd3d3200c0403500c74c3d00e65c37 +00ee6e2f00f6723100fa693d00ef5f3d00e15a3d00d6564900d2645700e07065 +"/> +<palette number="237" name="Apophysis-040427-6FaeriRob" data="009c440400762c0000772f0100793302006f4a3400666167005a5575004f4a84 +00474da100474cb400484cc7005665db00647ff0006871f4006d63f8005651e5 +004040d2006658a5006e6aad00767cb6008089bb008a96c0008fa0c10095abc2 +00b3cf8400c0e57500cefc6600d2fc6000d7fd5a00dffe5100e7ff4900f2ff50 +00fffa4f00fad44100edb53500e0962900d07b1800c0610700b7580500af4f03 +00ad5a0000af7d1700b2a12f00d7b13500fdc13c00fdbf3b00febe3a00f9a626 +00ea952a00b2620900a84e0b009f3a0e009339070087380000883806008a390c +0096440c00a24e0c00ae580d00ba650b00c6730900cb840e00d1951300feaf30 +00f7b93200bf964600af876100a0797c00967e85008d838e007b879d006f6c4b +00703c000070320000712901006a260000642300006222000061220100672600 +0069280000712e01006c2a00006827000064250000612300005a1d0000601600 +006021000060210000612201006124000061260000632500006b2a00006b2b00 +0064250000140911000c08250005073a0009083c000d0a3f0013084d001e073d +002a193d00281d4d0026225d0023216800202174002b308c0020247b0035285d +004b2a450072310b007b310e00843111007e3502007d36020079310000642506 +002c1543002b1851002a1b60002f1d6c00342079002b1e7a00201f7c00322591 +004531a2002b2796002a289f002a29a8003139b5002432d0003a34e0005d61cf +009595d30093a2b80091b09e008ca3a2008797a6008da7a600a0afaa009a9fb3 +008c95bc006f78c7006662c2005e4dbd004e4fa100606b8900936e7f00a87445 +00ce8e3700df8e3800f18e3900feb33400ffc23800ffc13c00ffc14500f2b354 +00c0a26e00b08b7000ba7f5600c4733c00c3752000ca6c0c00cf6e0d00d2720e +00e3851100e6881500ea8c1a00e17f1400d5741600d27e1e00b9874000c0b671 +00c5c85d00c3e97800c0fe6f00c1f85f00dee34800cbbc3f00ab9236009b833b +00b1a96b009ba07d0086978f008ba39500a49aa500af998b00c4ba7d00cffa64 +00f4fa6600f1fa4f00fcf15700ffd44900ffd33f00ffbc3900ff9f2200ffa81b +00f8d53d00f6e13000f4e03300dae85f00adcd7a00889ab2006562cb005049a6 +003431a40039398f00402c730070556400a1673900c4681500c3641200cb6912 +00cc5e2100c8673c00906c60006a578e006a598f00737466008b672900a74a1e +00a94b0500a1420000aa4d0000b54f0500bc5c0800c6670b00ce720d00d57e0b +00ec8e1a00ef911f00f3991f00fa9a2100f8981f00f2951c00ea8c1800d47410 +00bd560700ae4f0000a34801009b4606009d480700a6591500a6620d00a2540a +00994e0000913d0100903e0400774600008035000091370000963c0000a44902 +"/> +<palette number="238" name="Apophysis-040427-6FaeriRob2" data="00ae47020080320200762e01006d2a00006826000064220000602100005c2101 +005b200000571e0000531c0000501605004d100b0028102f0003105400070e61 +000c0c6e0019013300330c19004e1800004f18000051190000521a0000531b00 +004c1900004d1800004f17000052180000561a0000591d00005c2000005c2101 +00591e00004a2c3400322356001a1b78002c0f4c003e032100440f16004b1c0c +00231f5c00231f5600231f51003b1e2b00531d0500582004005e230300661f09 +00691f0000803201008d3800009b3f0000ac4b0500be570a00be590c00bf5b0f +00e77d1700f0861700f98f1700fcac2700ffc93800fdd43b00fce03e00ffce3c +00ffb83500e0a53f00c48e4c00a877590097736900866f7900545d840044466f +005f3340007f624700a0914e00b8b65300d0db5900dbe65d00e6f26200e5ff61 +00d3fb5d00f6ea3400f8e52f00fae02b00f8df2e00f6df3100e2e15300a6d75a +008d9eba007680d1005f63e8004d4fe4003c3be1004145dc00616aeb007d77db +008893c000b9cc9400a8c28a0097b8810093b1710090aa610086816100964f1b +00803403008c360300983903009e400100a5470000af4e0700ae4d0900a64802 +009b3c06008434010086360200893803009e420100ad420000b8510600ba5d00 +00b4590a00a96a08009f7c0600aa7e0e00b5801600b9994200918f80008e93bb +008d7fd600414ed0003c42c7003736be00534ca9003f317c0036287f00282694 +004e48ff005c57f6006a66ee005c64e9004f62e5005255b400525b6a00665a2a +0082410000a2470100a04809009f4a1100a4591f009e624000797f410067766f +004a579b0055588d00615980008375750086927a0097c26800bfd15900d4e547 +00f7e04200f4f34100f2f43a00f0f63400f0fd3c00d3ff5000bdff4e00daf84a +00f6c33600eeb53300e6a83100ea943100f6a74000dea75700dbae8d00a8c575 +00b7e67200a8f5a300b8ec8000d0f76800f9e26e00fcda4300f7bd3700ffa022 +00f48d1700f78a1900fa871c00ec831800e26d1000d2610300c6620c00c05e13 +00cb6a0c00c66d1300c1721600b6792800c6813e00c29d5600a7b07100889f8f +00a491a7009e5e83008b5d4e009e552a0094541600813708007b2406007a1f00 +00702c00006f3011007751240064523a004a468100575da9007383b6007a98a3 +008595a4009d7a7e008b6c670077482a0062390d00401800002f0b0f00200001 +001b05080017030f000f02160008032c000b104a002500330049130700612509 +00772e0b008d410700a25e1500b56a2600b86d2c00c4621b00b1581400aa4e0b +0098450300823501006e2e000067290400632a000065240400732c0c006c3c25 +002d396100232a95002726b000302ecd003a48cb00686cd000afaf9300e5f463 +"/> +<palette number="239" name="Apophysis-040427-6FaeriRobDet" data="000407540000005d00130c96002618d0003128de003c38ed004947f6005656ff +00152fce000b178e0001004e000000460000013e0003065a00070b7700131a7e +00202986001f1da2003a155e00550d1b005b150f00611e0300611b0100611900 +00611901006a1f0200742504008f350200aa450100b6500000c25b0000ce6303 +00ff7b1b00ffae2b00f8a72a00f1a02a00d97d1600c25a0300b14b0100a03d00 +0071250100702300007021000070330000704600007b65280086845100a4a296 +009aa4a3004f57ba00282d8500020451000c04380017051f001f051200270506 +004d0906004e090300500a0000510d00005211000053100000540f0000551001 +0056110100551000005b140000611900006a1e0000732300008b300000ac4502 +00cb6a0300d8780100e6860000f1940200fca20400fda80e00ffaf1800f5a81a +00d88f1e00cd620000cc600000cc5f0000c85b0000c4580000ac440000902e00 +006b1e020060170100561101005b0b000060050000671a000073230000872c00 +00ab440000d86e0000d9790200da850400cf881200c58c2100bb791900af5904 +00772a0000681e03005a120600550f0300510d00004f0b00004d090000460900 +002902030034000500400403004d080100540f00005f1700006c250000752701 +009c3e0000a7430000b3480000b3490000b44a0000b24b0000b44d0200b64c02 +00c2610300e99b0500efaa0c00f6b91300fdad1800e3a43300b1901f008a8d3e +0095b09d008ea7a400889eab007d8eb300737fbb00565bd1004344a1005d4835 +005a28050056120000591502005d1904006e1f00007a28000087350000934300 +00c9610000d66e0000e37c0000eb991b00feb52a00ffc93000ffe04400fbe73a +00f4ec3f00f6fd3d00f9fe3e00fdff3f00fef43d00f9f93900e4ff3800daff5a +00b8fe8100c1ea6c00cad65800e7d33400f6c22e00f3c02900ffae2600ffac22 +00ff9e1500ff9f1200feab2100f9bc2600f6d03100edca4800c9c77c00acbc8f +0095a6c0008292df00707fff006871f400656df4006875d5006a587e00803b11 +008226010084210200781e030074240100862b00008333000093410000a44c00 +00c35c0000d1610000db710300ea8e1300fa940e00ff8e0400f78b0d00ef870a +00e4850300ca862500c67a2e00a4805c009d8c94006b75a6002f2a910059272a +004e1f1700692202007c2f01008b3f0e00686e620095c37800a7d87d00aae265 +00b7f75b00c7dc5900c3c57c00adc57700a2b5a2008c9ea2009971ad007a67e4 +005c65ff004144d10035358d0081493200843304007f2e00007b290100812300 +00882b0000922c04009b1c0000a2380400ac430100ad490000b1460000b44200 +00a33d00009a3600009a350100973903009e5c0e00b2721b00cbff6c00bdb050 +"/> +<palette number="240" name="Apophysis-040427-6FlakWhorls" data="00729650003d3b2c002221160008080000040400000000000000000000000000 +000000000000000000000000000b080100171103003f2d180068492d007a5941 +008d6a5600b7885000a897440099a73800867b390074503a006f453d006b3a40 +00693426006b3f2c006e4a320081572a00956422009e711f00a87e1c00ca8a26 +00f4802d00ffcd5d00ffdc9000ffebc300e8d69600d1c16900c0c14d00b0c232 +006dab2c004690260020752000216c150022640a002365140024661e002e4f34 +00343d4200434449004d425c0057417000684461007a485300764a5100734c4f +00615b4b00634e4a00664149005c4845005350410056494300594345004a3a3d +0057493c00514d3400534c3000564b2d00584929005a47260055432b0052422b +004e3e240048452800424d2d003c4f2f00365132003d4c320045473200473a31 +00423a2f003d3b000034410b002c4817002c4628002d443a00324b360038592a +006d3924007f291c00911a1400a11a1400b21a1500ad482a00ac5f33009e684e +0093616200a3828b009e7f85009a7d7f00886c7900775b740058365100361f29 +000200050001000200000000000202000004050000110f02002b392a003f613e +00537842008a78620088726800866c6f008a6c6c008e6c630089805f00859054 +00829e27009fa92c00bdb43100bcb53400bcb73700e7bb5c00f9d14b00c7c034 +00b8c22b007c8f3600768c4400718a53006f7549007c5c51008f5e5a00ae5f5a +00e4955000f0b24c00fdcf4800fad14c00f8d35100e9ca9e00e4c18700c29b64 +00928453005e6531005b5f2f00595a2e00275725002a661c0029861100468f0c +00366a170044642000525f2a004f831f006d863200727f30007c6a2200947e2b +00b29128009f8318009d8127009c8037008d6f49006d634a00595e400059533b +006c5d26006c6c27006c7b280072783000715144006d494b006644540061445a +00774d630087546300aa6c5500b7775e00bd876300b9877000c38e6c00d8ad68 +00e99d5f00e1935700d98a4f00eb793000db973200c2872100bc6b2c00ba5318 +00c92f2500c22a2900b32e250099372e0098493a0077434700623e4a00583f45 +00583a4400553735005e2d29005a252100582b14005d2b2200573c35005e3d4e +0058465600543f52004636510045334d00413c420039352a0016161600020403 +0000000000030000000d0707003e1a2600500e29007c2a2c00923142009d5928 +00b9683100a1662c007f523500584a3d00494e3a003d4f35003e513300535a30 +00735b2b008b521d00b4562300ce6b1a00ee5f1900e4622600cf702000d07427 +00db892300d17b3e00b47e4200735940005c4a3200442d1f003a1606000f0c05 +000100020005060a001e1822002e31680052457300534c7800685a8d0090c02e +"/> +<palette number="241" name="Apophysis-040427-11FlarCelebrat" data="00dac1ad00d9bba300d4b19400d0a885007cc1490029da0e0028e3080027ed02 +0037c5310083a84900cf8c620087c5320040ff02003aff020034ff030033ff01 +0032ff000030f301007bb82600c77d4c00c5673300c4511a00dd490d00f74100 +00ff4f0100ff570100ff5f0100ff701500ff812a00e4803d00ca805100cb8154 +00c98053003dff00001fea180001d53100269064004c4b97004f33c200521cee +006216ff005a18fa00531af500573ed9005b62bd009784a300d3a68900d6bba0 +00dabfaa00dbd0be00dacab600d9c4af00d8bda500d8b69b00d7b19500d6ad8f +00d0926900cd895d00ca805100c6673400c34e1800c1481100c0430b00f12600 +00f60d0000db005f00be007700a2018f0082018900620184009f018c00ae127f +00d3906600d3997400d4a38300d6b19700d9c0ac00dac5b400dbcbbc00dcdbd6 +00e8fff200dde7df00dad4c500d7c1ac00d4b19400d1a17d00cb815400c86c39 +00f4410000f3200000f2000100f1000000f1010000a5010000a20000009e001b +0075014c00721bfd00750dfe007900ff007b00fe007e00fe00ae00b900c10084 +00cb815400cf8d6400d3997400d6a48400d9b09400d8bca400dac0a900ffda91 +00ffb97400d4ad8c00d4aa8900d5a88700d2a181005a6fb2005d4ecb005f44d3 +000192ed0000a7c90000bca60000ba8b0001b9710000c1580000ca3a0000c841 +004ca76200d7b59900d8baa100d9c0aa00dac4af00dec7b500ffe29c00fed88f +00d0926900d19b7500d2a48200d4ac8d00d7b59900d8c2ab00e9ebc300eaffe0 +00f6fdd300fff1ac00ffeeab00ffecaa00fee7a300d7b69700efcea300e18657 +005e40d600642de9006b1afd007515ff006317ff00531af200742f7000c87243 +00c96d3a008d8230005eaa26002fd31c0022e7010001ff010000ff070000e226 +0027adac0080bfb700dad1c200dfe7cf00e9ffea00edf3cf00dbcbbb00d4b193 +00509f700001acc800009fdb001f70ff002740ff00222efc002125fa002906dc +005b0194007d009a00a000a000af008800a7008600a4385a00c8764400ce875b +00ce875b00d18c6200ff974200ff8a3200fe700e00ff6c0c00fe6e0e00ca6c38 +00c96d3a00c7693600c7693500c5602a00c5521b00ff4e0200fe4f0000ff5800 +00ff620300fe7f2200ffa45700d5a78500d4af92009da8ba005c53ca00561af4 +006d1afe007601ff005611ff002500db002700d5002700cd003901bc004300af +006c02670095003800ac1f0100ba2c0000c44b1600c3541c00c65f2500c55e24 +00c24f1800c34e1800c0471000bf400900bc360100b3230000b4210000ec0002 +00e6002400e1003f00e2004c00c8007a00a7009d008900ee008400f700a1009c +00b7008c00cb007800db005e00cb704100d0895f00d2a07d00d6b19400d9bea9 +"/> +<palette number="242" name="Apophysis-040427-11SpacTrees" data="00534d0300260f2100380a39004a0651005d06570070065e006f0359006e0154 +00870646009c173d00b2283500c7434f00dc5e6a00dd555e00de4d5200db4d3e +00d84e2a00c03b2800c23c2900c43d2a00c83d2d00cc3e3000d63b3100e03933 +00f13b2e00f33e3700f6424100f5444800f4465000f1475100ef495300eb4e57 +00e94c5500bd3a2800902d170063200600591f1d004f1e3400671442007f0a50 +008c073e008d062b008f06180074110e005a1c0500571a040055180300241d0d +0017080b0035023d005c053f00840942008a072d0091061900900618008f0618 +005a1704005e192200631b4000702252007e2a6500934a5f00a96a5900c78a1f +00daa32e00a4ff1600a8f91700adf31900cded1200eee80c00f6c51000ecbd0f +00d8771000ce670c00c5570800b65d0800a7640900a4630800a2620800a05e08 +009452080078552b0068461e005838110056330a00552e0300562300006b2d06 +009d2f1600b7331500d2381400d7361000dc340d00d34f0400e75b0e00d08718 +00c5821100b7783100a347300090162f008c13360088103d0087305000796d79 +007cce6a007cc170007db5760079a96800769d5a00b1515f00a03432009c2016 +008a2509002d1d060021130800160a0a0016080800110a12001419130007331c +00053b2300073c1e00093d190008431a0007491b00073e17000b340c00073302 +0007310100463905005e37070076360a00942706009e322f00a64c2700a3610a +00c4560700ca490c00d03d1100ce3f1f00cd422d00d73f3400d5411d00c4390e +00c82d1b00a6361e009b381100913a05007c360500753303005d360000475500 +0015440e00113809000d2d040018250900160b090013080c001606100014030d +00100410000b0509000e050b0012050e0013060f001606110016082100280235 +005d0c5b0067095d0071075f00a8079300a12d8e00a16ea7009c7377009fa277 +00b7bc7a00a28b6200a1745d009b6f6e00b3645d00be715500cc7e6a00ca6d8c +00fffffb00fcf9fa00f9f4fa00f7579d00f6546900f36c4c00e76a5600d5715a +00aa905f0097af730081b29d007db59c0082c1ac0079c49b007ac97a007bd55a +0093f41b0078e62300bf780c009f5d07007632050071260900601f0300672505 +0080360f008f440a00966006009f6b0500a7660a00bb760e00d7941100e2ad11 +00eec41600e6991900db971200db6a3000f0542b00e74d2900de3d3500d4522e +00df673500eb6f4b00da862e00e78f4f00ab83600082627100473436001f1b10 +001f230800454d1200847516009f913900e5965400eb7b5500e0535b00c53c4c +00af1e2d009115370089283b008d571b009d962b0083e92300aaf6240094f51a +007be4320067d4550052ca680067d07100a3ce580098b156007ba849007e8828 +"/> +<palette number="243" name="Apophysis-040427-11FloralQult" data="00580344003e4b53003b574400396436003a723b003c8140003a784900397053 +00745c74008b699400a276b5009f93b1009db0ae00a2b9aa00a8c2a70093cc9a +007fd78d007cc9630085b77c008fa6960090939c009180a2007c859f00678a9d +003a7571002b535f001d324d0013243e000a163000050f300000083100011547 +001525470058547700817d8f00aaa6a700b5acac00c1b3b200bba9af00b59fac +009788830070536400491f450037163e00250e38001408360003033500040033 +00020435000105320000052e0000062a000e0328001c002600250031002e003d +00170e4d000b0a42000006380006103e000d1a4400101f490013244f004d3a58 +005e445d00ba93a600c8aba500d6c3a500decfab00e7dbb100e1eba200bcdf9f +00b4e0ad00bfe5b500caebbe00ced9c700d3c8d000d1c6c100cfc4b200d3d4b4 +00cfd89700c4b8ac00a98da5008e629f008e478f008f2c7f0074063700740233 +00700233007e214f008d406c00a3566500ba6c5f00b17f6800a7896500a67c6c +007d6d4b003b3034002e2f2300222f13002d401f0038522b00438a2c0067ad39 +007eec57009ce36300bada6f00c3db7000ccdc7100c5a87e00b9936400aa634d +008c25420071022d006d052a0069082700701a330080312d0093433800b16448 +00b76f57009f4c490087293b007c163f00720443006a042b006a0c300051172d +005228340088ad50008fac560097ac5d0096897600a88e7500a7809300997b9d +0086676500893d51008d143d008b1a43008a214900b5585000c3725f00e19a7e +00f5e08300dcd48b00d7c08c00d3ac8d00c69d8b00a4947000b7836e00c88d93 +00cdb89b00d0b99f00d3bba300dac1a200e3c6a400e6d0a700decbaa00d6ceaa +00ccc0b0009ea9af00929ba800878ea100519f750052a56f00336d44003b4d35 +002f1f1200361016003e021b004e002f006801360060002e005a002300360012 +002c0112001902160007022b0004082d000f0f17001f151e00511328004d271a +0067613d00678b430068b649007fdc4f009df66600c1d96700eae77c00dcdb88 +00cac58100ada17700896c5a00545456005e6d58008083960091849e00a5a7a4 +009bb2a8008ac8650081ee610077f065006dde5a0056da600059c965004fb049 +005d9b5c0050493700410e47004d0545003e102d00321d30004c3b210040382d +002d293800202f36000b1f26000e2535000c2041001d2d440040354300573266 +007b2552007b0e690052025b00510545006e0030007804310081213c00983047 +00af656600b89a8000c6a68000b0ad840087ac690070956a005c4d4800592d48 +0063233b00792a30008e293b00b55f5200c2796a00c48c9500c9a4ab00c198a6 +00ad7db1009c829d00787c9700599a84005acf89006adb8b00aee19c00c4d5a8 +"/> +<palette number="244" name="Apophysis-040427-20FlwrFrnsBFly" data="00eec75000ccaf4900c9a85000c7a15800a7954f008889470078783e00686836 +0069591d007c601a00906717008a6515008564130073621e0062612900485b28 +002f5627003540320024423500144438001b55310023672a001184280000a126 +001a400d002b3706003d2e00004c3200005b3700005f300700632a0f00793206 +007a4a0a0059431e00513e110049390500512202005a0b00004f090b00450716 +006f2e440090284a00b1235100a51e50009a194f008720400074283200735016 +00855c1a00a1782900ac813000b78a3700b5883e00b3874600b3844800b3824a +00a7945000a4905b00a28c67008a9c900072acba0056d3d6003bfaf3005db7c2 +006a98a80088c07500a6b66700c5ac5a00c79f5700c9935500b18b4c009c8551 +00656565005b6a5d0052705600597b5a0061875e007b85480095843200967a19 +009a76000097751100a0851a00a9952400b29f2b00bca93300c7ae4700d0ae55 +00fbeb6400fbf16000fcf75d00fdf55800fff35300ffec4600faea3d00ffcd45 +00de9e30009b3e4900823446006a2a440065224500611a4600481229004d141d +004b032b00300d280016182500101828000a192c0010261100272e260035321f +003d3920005632340053313a005130410066215700561d7c0033207a00142f66 +0021496200315885004268a9004d7fa9005996a9008cc4db00aed9ea00c5d896 +00dfc86b00ffffd800ffedeb00ffdcff00ff88fa00bda09800b6728100ac4678 +0078264a0076184900740a4800790b43007e0c3f007e1b4900a23c54009e4e69 +007d435c0035614a0034624e00346353001b5c480003443000152e2a002c311d +0063520c007a61060092710000bd850c00c39f2d00c4c53900b6df2100bea12b +00b7901700ac7a1900a46e19009d631a008e551000875800007a560200856500 +00925804008f5406008c500800826424007e73530083856f0080b182007dbb8a +0084ffb400a4d68f00b9c48800c4c77600b6bd5300a7b84800a77c3700936b2e +00457f4d00417f4e003e8050003c7e4000284b3300222b100016150100120800 +000012000002030700031a2c00000f35000e0a2d00120c2800161b05002f2c0d +00464f0e0053670e0059683100495d440041582e004f4a2000614b0000785400 +00866f0000938a21009d9032009b9f3000b19a3a00b7902900ad7f1d00a27f21 +00a4702400a4771c00977617009e730200a3740000b2970c00b8b04300b29a7e +007f98fc007180f7002c299e000e2d8000061f5f0015374100272636001f1b2c +00332638006b254900a5497200fd12cf00c0337500b6545300b16e6800717755 +00536b53004f674f004766440031482b0027411a0026371700022306000c1800 +00283700002b37000039291200441c1a004a1f2600483d410060674500698b68 +"/> +<palette number="245" name="Apophysis-040427-24FracrameE" data="00fffffd00fefffd00fdfffd00fdfffe00f9fffd00f5fffc00f6fcfc00f8f9fd +00d5d7d400aeafaf0087888a00696867004c4944003b332b002b1d1200261c13 +00221b15002c16090022140b0018130d00130f10000e0b14000c0914000a0815 +00060d1500060e1500060f1600030c0e000009060002050400050102000d0600 +00190f05001515150014131a0014122000131d2e0012283d00162b3e001b2e3f +00272c32002d31370033363d003e414e004a4d6000525662005b60640074706f +0080786d007e808d0091949c00a5a9ac00b8c1c600ccd9e100d2e1ea00d8e9f3 +00ebf6fc00f3f8fd00fcfaff00fdfcff00feffff00feffff00feffff00fffeff +00fffefb00fcfaee00d6d9d400b0b8bb00999fa20082878a005f676a003e4849 +0024292f00212120001e1a1100151008000d0600000c0300000c010000070a0f +0004161a0016294a00232f4600303642002f3740002f383f00323c4600373b44 +00413e37004a494400545452005e5e5b00696864008c8f9e007c7c7e00dbd3c6 +00b6b4b5007e86880068727600535e640050575d004d50570056514b0052575b +004f566000555d63005b6567005b676d005b697400686f81007c838d0090a7b7 +009cb6d100aeb3b600a8a7a400a39c920096816e007d685500674e3a004b3527 +003e352400363023002f2c23002b2a280028292d00282536002a2e37002b3745 +002b4a5f004a4f550051565e00595d680054626d00616267006e6a5e00726960 +007b73680076787800717d890077808f007d849600b1b8c000e0dbd500f4f1de +00fff0e400c3b7a900b19f98009f878700756c6500564f49003f3a36003c2f1f +003923160035211300321f10002d241b00322d2700302c2d00373c42003c4d61 +003d5873005f7793006b83a200788fb100a3a8bb00acb9bf00a8b2bc009ea2ab +00888179008d857c00928980009fa7a900afb3b600cbb4a600c9b1a500b7b09d +00a89682008e8075008b7e6b006d665c00504d46003c3b360024292c00101922 +00090c1d000e101c0014141c0023282e00292b2a00373634004d464000644d3b +006650390063554a006b5a4a0063574b005653440054463b00534336004d4640 +004c433a004c4b460047484d0054595f0059626b005b646b006c6761006d6359 +00615443004e4331003e352e0035302c0038343500433c36004a3d340039423f +003039420029363f00192d45001d24340019122200130b1a000b000600080000 +00030000000601050000040a0005040c0002041000040813000107170002071a +00060b1f000a11210013263700313e460053637200828b9200cbd1cf00e2eaed +00e2e9f900e3e7e800dbd3c600d6bfa000b0a29700b69c8b00d9b29100dcc6b8 +00f7e6d600fffde100fffbef00fdf8f200fbfef700fffefb00fffffd00fffffd +"/> +<palette number="246" name="Apophysis-040427-24FNouveau" data="009d616100644b730087414500aa371800ad310c00b12c0100b52f0400ba3208 +00a4611d008271430061816a00687a85007073a000615d810052486300533251 +00551c3f00511632005e301e006c4a0b007f510d00935910009f681100ab7712 +00ab9e1c00b8a10f00c6a50200e2bc1000ffd31e00ffd22900ffd13400f0ca45 +00ffb75e00e7cbe200e7a7d400e883c700f2829500fd826300f88a4800f4922d +00f5a21e00dea32500c8a42c00ae7f2100955a1600825410006f4e0b006f4d06 +0069450900834e3c007c616d0076759f007674a2007674a5007673a10076739e +00a12c3c00c1253e00e21f4100c52d3b00a83b3600a34a3c009e5a4300835e32 +00a1614500c8815700cb623900cf441b00d1522200d3602a00da7b4b00ef7b54 +00f7575f00d4716800b18c720093808b007674a5007674a5007674a5007674a5 +007674a5007674a50095829e00b5909800bd948700c5997600d7977e00d1a276 +00c3b34400b1a335009f93270099812100936f1b00965e1400a3560000ae2d03 +00b02d0100b2641a00a36a380095715700907373008c758f007774a3007674a5 +007b71a6009582b100b094bd00c4a6cf00d8b9e200c2bae900b9d4e9009ac5d5 +008586c9007674a5007674a5007674a5007674a5007674a5007674a5007674a5 +007674a5008372970091718900a6737400bc755f00c0806400d0907400d4948b +00957a8d00837ea600aa8f9c00d2a19300fbae7600ffa06700edbe4800e7cd3a +00ad850b008d6405006e4400005d3b05004c330a0049350300483c0a004c4211 +0072371700b9131500c3131f00ce142900ae2d0e00ac5e2000b3842800b7914a +00c8886400ae816d00947b76006f699900545372003b5e3e0044332900350712 +003020060054280b00683828007c4945007b324600620e300040014700290044 +001e001c001c0013001b000b00130024001108330018002400211515001e201d +001c2220000e014900002b5f005354800070699f007170aa007674a5007674a5 +007674a5007a7dad007f87b600bead8200d2d98b00cbc2a500de9faa00b69795 +007774a3007674a5007674a5007674a5007674a5007674a5007674a5007674a5 +007674a500836d9300a1706b00a7923f00c18a3000bf720800ab5b0200bc640b +00c76f1600d2822100bb781f00b86f2a00af712800af6a25009c6b28009c602a +007f69520074719c007674a5007674a5007674a5007674a5007674a5008c6b88 +0094655500946628009c701700b8820000c56a0000aa600100866c22003e6c45 +005455730059538100675d91006d6b9c005c59780052436a002f0a40001e0644 +0008003a00080429000f220e000a260f000b280900433601004a3b0200665412 +0067541000726107007e65000091820f009f860f00af6f1500b56c39008a6a91 +"/> +<palette number="247" name="Apophysis-040427-24GuardFaeriR" data="00e07956006071440030674600005e49002b83700057a8970056938100557f6b +00bc750b00c7780700d27c0300a75331007d2a600070245500631e4b005c2035 +0055221f00091d1100050f090001010100010101000101010001010100010101 +000101010001010100010101000303000005050000090a05000e0f0a003e3611 +0065593f007a8f64009b966200bc9e6000d3b13a00eac51400e4b80a00dfab00 +00672b20003c19150011080b000a040600040001000200010001010100010101 +000101010000040800190c2000331539004c194300661e4e006419550062155d +00592a1a006f3a0f00864b0500864a0800864a0c006d37120054241800250802 +000b000700002244001b24480037274c004a2537005d232200671c1600681800 +001f030000100200000101010001010100010101000101010001010100000304 +0006041100120060000f0139000d02130007020b000202040001010100010101 +0000020200060d12000c19220020192e0034193a00553751004b475500404e35 +00572723005a291a006e30450083387000903b89009e3fa300c846b200cd54be +008a33820075296b00602054005d1d5b005a1b6200392d5d0009287800110c8d +002c2c9000442f6800482263004d155e00340e4b0023014b0014001300050304 +0001010100010101000101010001010100010101000101010001010100010101 +00010101000400150009002d000f0045000c0a6b00661c73007f2a8f00963aa9 +00b719ab0099189d007c178f007a188200791a76006f1a6f00891c7700983182 +00974492007a6c2f006d633200605b35004d3b15001b13000007060100020300 +000405000002100800001b1100003f0d00005003000f4d0e0058291900ad2a00 +00e73101009c6435009a6f4900987a5e00a76e9900b6857700ec747d00d88960 +009a462e0093391b008d2c0900532613000f0600000602030001010100010101 +0001010100010101000101010001010100010101000101010001010100020300 +00045602000c670e0015781b0032551d006047110092711400aa660300bf5e00 +00c5750200c2770200c46c0000af4b0000a631000078240000532613000f171a +0006151c001d2343003f2c4c006c3d6900774175008364830089769400987394 +008f8ba6007d8393007566830054376700063e5500034e510006453c00005413 +00064e0f00212b1200532a18005c242500914e5500915a7700a89bc700c3b8b2 +00c8d59000afbc840077756600444154000d3d4900072a16000e050600230401 +005e150200742000008b2f0000833c1e008b463f00882e6c00ab298900bf2891 +00e449c900df9fb700d1c7c800c6c1d500a5c8de00bad2b000c8cab200d4cac8 +00f177ee00f364d600ca61e100b4a2cc00888886007f9571008faa8100b99a64 +"/> +<palette number="248" name="Apophysis-040427-24GoldenRays" data="0000000000000000000100000003000000241e1900463c320056483d00665448 +008b79550097856900a4927e00ad9a8400b7a38a00b19e8e00ab9a9200ac978a +00ae948300a7927700928177007e7178007872780073747800706f7a006e6b7c +0063667900586077004d5b7600434857003a353900242123000e0e0e00000000 +0000000000000000000000000000000000000000000000000000000000000000 +000000000016110d002d231a00392e220045392b0044362700433323002f1c15 +0001000000000000001c171800392f300043424e004e566d00505e7700526681 +005c7093005b7191005b738f004e566800413a42004131330041292500010101 +00000000000001000028221c00514338006354480075655800a5938500cfbeaa +00f9f8f600fbfbfa00fefefe00fcf8f300fbf2e900ede2da00e0d3cb00dfc8a8 +00ccb1a600b5a49000bbaf9e00c2baad00cabaa900d3baa600f4e7d400fdfdfb +00fefefe00fefefe00fefefe00fbfbfb00f9f9f900dbcbbb00aca18f008d7a6c +005b52490001010100000000000000000003030300070707003a2e2e003d414d +0052536700463f49003a2c2c001f181800050505000000000000000000010101 +0033271b00625141006b574300745e4600896a4d008b7053008474520082664e +00574133002c2019000100000000000000000000000000000023101600412f2b +00594d41008f705b0093765e00977c6100a4856600ab907200ab917800918579 +007470890074748e00747893008f8c9d00aba0a800ebddd400fbfaf600fffefc +00f6f0e000a69ca4009e939b00968b9300988a8a0096878a008f7f8000908279 +00957e5e00927b5b009079590084694e00705a4d0069594a005c525100504e5b +004d586e00685c5e006c615b00706758006d6b6c008e7c68008d796000786557 +005c514b00534542004a3a3a00422f2900241405000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000010000 +0030201300463a2c005d554000706353008f7962009b7b6e00907c640093785a +0092776200897864007b7b7d00838383009e8a8900a7998c00b5a69300c6a987 +00ffff0600d1b99700d7b29700bca18400b7a28300b4a08700a08a73006f5e57 +004a41380037261c000300000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000504090032303d0056647e +"/> +<palette number="249" name="Apophysis-040427-24HunterSunset" data="00ffd90000dc9426008d7628003e582b0023471900083607000a3204000d2e01 +003641000055551a00756a3400b4782800f3861d00be93170089a011006e921b +00538526002c5b0000255903001f58070018530300124e00001452060017570d +001b85200017842800138331001382350014823900167d420019784c002b7460 +001d686b0025577000385d52004c633500728d2e0098b82700b4cf2400d0e621 +00fdf00300feed0300ffea0300ffe70200ffe50200ffe60100ffe80000feea00 +00fff00000fff00100fdf00100fcf10100fcf00000fcef0000fced0000fdec00 +00fddf0300fed51d00ffcb3700c9aa510094896b008b7e5e00827352004e6e2f +002d5e03001b3f0000143300000d2700001a2702002727050051200000641e00 +006c23030071291200772f2100b7581400f8820700fb8d0700fe980700fd9f01 +00eca40200e7960000f2870100fd780200fe750700ff730c00dc70180062611e +005a8c4300709b5d0086ab780081a46c007c9e610052883200327a1600227406 +000b5b00000034040000440500005406000056030000580100016201001f6908 +0087730000bb980000efbe0000f6cc0100fedb0300fce50300f7f21a00efe931 +00a8a5580018804100157f3500137f2a001f7b2400126a1c0002580d00025102 +000145000002480100034c03000450030005540300145d0e002d8024007cb355 +00c0d76f00f9f93f00fcf82800fff81100fdf40300f9f30000fff60000fef900 +00fff80000fff60000fff40000fef60000fef90000fef90000fef90000fef900 +00fef90000fef90000fef40000fff00000fee30000f5cc0000ecb21300afa32b +00465f0c003c57060033500000354500003a4d000046540700536624007e8462 +009ebc6200e9cc9400c0b6ac0098a0c4006e879b003d6b8d002a6851001c6820 +0006460a00084209000a3f09000d551500285c3500275b4e004d6d620047604b +00325131002a5408002c4a0000333000004b2f0000584f0c0051650400849500 +00f3c60700f7d20400fcde0200ffe40000ffeb0100feef0000fdf20000fff001 +00ffea0100ffe40000ffdf0100ffd60000fabd0000fdab0100ffa90800f5be02 +00ffdd0200fee10100fee30000fee10100ffdd0000edb5000095a5200054922f +004e8134004a762b004a7724005170130052560200594e0000724c0100dd7b1a +00f5840c00814803005b480600454e0000204b04001c550600134d0300082c00 +000d160000142105002022000029340a002f502300538347005f7a590058838a +00606a8d00336472002160650022573d001e60190016540b00304800003f4b09 +005852320063643a0076625700695b4e0049604e0025772300086b100006660c +0000670100136800002e720f00557f1300a3a80400f0c90200fdf90000fde000 +"/> +<palette number="250" name="Apophysis-040427-25IntoWeave" data="000020ae0000001e00050114000a030a00342a14005e521e00645d40006b6863 +00ac9e5500b79d3000c29c0b00bfbe4a00bce08900bbe2a000bae5b700b5e3ae +00b1e1a500eee46100f6d83200ffcd0400fda90300fb860200d86d0100b65500 +00b9800000ce920000e3a40100f0c00000fddc0000f9e00000f6e40000fde200 +00ffd70100f6ab1c00efa55f00e8a0a300d3bf9b00bfdf9400c9e38e00d4e889 +00fedb0000dbdd3100b8e06300aee08200a5e1a100abe0ae00b2e0bb00b5dfd3 +00c5e4d200c6ebbf00b5e4ba00a5deb50091ccc1007ebbcd00749dbc006b80ab +00111f5e000a0f350004000c0003000800030004000300030003000200010101 +0001010100010101000101010001010100010101000101010001010100060009 +0037376b00606584008a949e0082808f007a6d8100636268004c574f00522a32 +0012040000060007000300040001010100000001000000020001010900000016 +0005308e001749b2002962d6002765e2002569ee003077df00179ed800399afb +0062b0e10077b4d10044699b00121e66000a124e000307370001000a00010005 +0001010100010101000101010001010100010101000001000000020000000200 +0000010000000000000000000001010000010101000101010001010100010101 +0001010100010101000101010001010100010101000101010001010100000208 +0000080900485462005b6380006e729f008d9fcd0085bfca0081c0c9008bcfe2 +0081c3e60085c6dc008acad30088c7cb0086c4c300a0cbba009c769f0074638f +00494b740003010e0001020a000003060000030400000207000000070000010f +0003317f000d359a00183ab6002969cd00716fa000c49a8200f2cf5900fbbf05 +00fbb20e00ab8100005eb2050012e30b00172f49002e3c850052699500638cb8 +003f68e600366ae0002e6cdb000c1ca500000d46000004170001000900000002 +0000000200010101000101010001000000010000000101010001010100010101 +0000020000000200000002000000050000000500000006000000060000000600 +000004010001010100030000000b00000011080d00491943006e63830099a0a8 +008ccdc70088cece0088c4e6008fa6f4006f9fdd003c618d002f23470032151a +00320800005a2d03005540000045260000270b00000f0303000a000000030000 +00010101000101010001010100010101000101010006000200080000000c0000 +0014000000260200005b2a01007b37000096510300ce940500fbbf0500ffd900 +00ffe20000fde70000ffe10000ffd60100fad30000fda00000f5980000e5990f +00e6bc3400fbca8800f5d7cc00dfd5cb00a9d8b60089ccab003e6d8700243f54 +00000717000d00090028150e005e230000ad3d0000b56b0000ffdb0000df9500 +"/> +<palette number="251" name="Apophysis-040427-26AlienMind" data="005269c6003e53a600344795002a3c840021317400192764001724610016225e +000f1b4f000f1b4f000f1b4f000f1a4f000f1a5000111c5400131f590015215d +001823610024357b00273980002b3d85002b3d86002b3d8700283a820025387d +001c2a690016235d00111c52000e184d000b1548000912430008103e0015141a +00412e06002b1b0200171219000409310008103d000c184a000d194b000e1a4c +004d3e1f005e4a1e006f561d0061532d0054513e005d59480067615300676357 +006b6f88006179db00778cdf008e9fe4008293d2007788c0006579c300536ac7 +006367720095856200c7a45300c0a05a00ba9d61009c875d007e725a00555668 +003d4671001c2c6a0016235d00101b51000e1a4e000d194b000a1241001a1f25 +0041351f0069501d00926c1b00a8833300be9a4c00b58f3d00ad852e007d6326 +0061563a0013205700111d5400101b5100121e570015215d00172661001b2e69 +0022337800223378002233780021327600203274001a296a0015245f00101b51 +000f1a50000e1a4e000d194c000d194b000d194c000e1a4e000e1a4e000f1a50 +001a286500233376002c3e8800334794003b50a1004860b8005a71d100647dda +008a9dea00839cf0008ea1e2009aa7d400a7acc200acadc100b9b4b800bfb8b2 +00f4cc8600f0ca7800ecc86a00e3c58100dac39900cabaaa00c4b7ae00b7b2b9 +00878ca9003b509f00364a97003144900046495c0050505200565e73003e53a6 +005670cd004f68c3004860ba00445bb2004056ab00384b9a00374a9900334693 +00344794003e53a6004358ad00485eb4005269c6005b73d300617bdc007b96fd +007490f3006883e4005c76d5004b63bd003d52a5002e408c0023347900192464 +00111c5200070f3e00060f3c00060f3a0004091c0001083400090f41000a1241 +000a1445000a1445000a1445000a1445000a1445000a1445000c184a000d194b +000e1a4c000e1a4e000f1a50000f1a500014205a00172562001e307000223476 +00283a82002a3c85002c3e8800394b9d00445cb4004c64be005a72d200627adc +008fa1df00aaacc500bcb7b300c0bba700ceb57f00baa586006e635100454545 +0015245f00131f590015245f001d2c6d00273a7f00384b9a00656e8f007b7c80 +0093a0ca008a9ce4005d77d8005168c500425ab0003d52a500364b9a00324592 +0031438f003144900034479400364b9a00334693002f428e002a3c8400213375 +001d2c6d0017256200131f5900121c5700131f590014205a0015245f00192462 +001f2d6e00233479002b3d850030428e003c51a200455db300475fb7004157ac +003b50a1003144910025387d001d2f6f0015245f00101d54000f1a50000e1a4e +000d194b000d194b000c184a000e184b001d202f003e382800b29245006a5a36 +"/> +<palette number="252" name="Apophysis-040427-26ISpher4" data="00215700003c641d004e6d3600607650006476550068775a00697a5a006a7e5b +00648f5a00557d4000476c270036631700265a0700205003001b4600001a4500 +001a4500001b4400001b4700001c4a01001f51010023590100275d05002b6109 +00487e260060913f0078a459007da8600083ac680084ad690085ae6a0084ab68 +0080a96500567f3b003f742a002869190028641100295f0900285e0700285e06 +0022580000245a0200265c0400305f0f003a621b003e64240043662e005b5b5b +00636564006e6d6b0073806c0078946e0081a370008bb273008db375008fb578 +0099a68a009ca98d009fac90009bb3890098bb830094b97f0091b77c008eaa79 +0089af740085ae6c00769e6600688f6000648a5900618652004d7f400046712a +003e741c00508530006397440072a1550082ab670083ac690085ae6c0085ae6c +0085ae6c0083ac680082ab670082ab670081aa660080a9650079956c007b7b73 +006d6c6a00768a670080a9650081aa660082ab670082ab67007ca760006c9d4e +0056873500476e2f00547242006176550063785700667b5a00547c3e00476e2d +002d630b00265b0600205401001e4f00001d4b00001a410200193c0200173801 +00183b0100173d0000183f01001a4102001b4600001b4900001f4804001e4f00 +001f500100205400002258000023590100245a0200265a07002d4e19003a3a32 +00434537004c66360049683200476b2e00426b2900426b2900426b27003e6c23 +002e620d002b600a00295f07002b6109002d630b00336714003c721a00487e26 +0056813a00678d5a0067845a00677c5b00697d5a006f855f0074955c007fa864 +0072a055006a9b4c00639744004e842c0048732c00447533005e923d006d9e4f +007ca7600082ab670081aa660080a965007ca760006a905f006b8d5b006c8959 +005f8441005b7a4000587040004a6e300048693000446d2b00426b2700466d2c +004f7037005c704d006e6c60006b6a6800666666006161610057575700454539 +002e4b150028470e00224408001d4604001a4500001a4500001d4b0200205401 +00275d0500336911003d731b00487e2600689948007ba65f0081aa66007ea964 +006d95630067875600536841003a3a32002e2d29002b2a26001c4003001e4c01 +0021570100275d0700345f17003c5b20004c5e3800595959005e5c5f005b5b5b +0048633a00435d300036531b0035521a00335518002859080024550600214a04 +002f5019003f5224004d5d38005d5d5d006464640057575700435932003a5d1b +002c5d0c00285e0600255b0300245a02002359010023590100255b0300275d05 +002a60080032661300416d22006394430072a0580085ae6c009bb98500c3d1b8 +00ccd8c400dce7d900dee6d900cedac600c9d5c100a4b396008ba487007e9068 +"/> +<palette number="253" name="Apophysis-040427-26ISph2" data="009992b400a3a9c300a5aac600a8abca00a8abca00a8abca00a6a4c700a49ec4 +00908ba90087869e007f829300858893008b8e93009c9fa800aeb0bd00aeb2c3 +00afb4ca00b4bbcd00b5b6ce00b6b1cf00b1b1cf00adb2cf00adb1cf00adb0cf +00a9accd00a8abcb00a7aac900a09dbe009a90b3009690ad009290a800888c95 +007d808f00787e8a0073748a006e6a8b00746e91007b7398008077a100857cab +009a93bd009f9dc200a5a8c700a6a9c800a8abca00a8abca00a8abca00aaadcc +00adb1ce00afb3cc00adb2cb00acb2ca00adb1c800aeb0c700acb0c600aab0c6 +00a8adca00a7acc900a7abc800a3a8c000a0a5b9009e9fae009d9aa300929699 +008285940081742600a5952400cab62300cfd22000d4ee1d00a1c92a0071a63c +006e6a85006d6794006d64a3007770a000827c9e00847d9f00867fa000918caa +009da1bc00ada8bf00aaabc100a8aec400a7adc400a7adc500a5aac800a7acca +00a0a4c1009ea2bd009ca0b9009495b3008c8bad00808696008184950087889a +00908bb3009b9bbd009ea1bc00a1a8bb00a2a9bc00a4abbe00a2a9bb00a0a7b9 +00a2a9bb00a8adc300aeb2cb00b3b3d100b9b5d800c2c7db00cbcedf00cbcee1 +00cbcee100cdd0e300d2d2e200d8d4e200e2e5ec00e8e7ec00e9e6ef00e9e8ee +00e6ecec00dfe5e500d8dede00d0d5dc00c9ccdb00c4c7d800afb3d000abafcc +00a8abca00a8abca00a8abca00a8abca00a8abca00a8abca00a8abca00a8abcc +00a8abcc00a8abcc00a8abcc00a8abcb00a8abca00a8abca00a8abca00a7acca +00a7acca00abb1cb00abb1c900abb1c700aab1c400a8afc100a8aeba009fa6b9 +0084869b00818595007e8490007d818d007d7e9000827d9d00817c9c00736ba7 +007167a6007c7bb500837fb6008b84b7009491be009ea1c400a7aac900a8abca +00a8abca00a8abca00a8abca00a8abca00a8abca00a8abca00a8abca00a8abca +00a8abca00a8abca00a8abca00a8abca00a8abca00a8abca00a8abca00a8abca +00a8abca00a8abca00a8abca00a8abca00a8abca00a8abca00a8abca00a8abca +00a8abca00a8acc900ababc700aab0c600a9afc500a6acc600a0a4bf00968fbb +007f78a400645a9f0052447f0030215c001e2553001a1c4f00231d5b00594b80 +00746d99008d88b0009fa5bb00afb5cd00bdbcdb00c6cbdf00c6cddd00c5c8d7 +00b8bac900aba5c9008e88c400867db2007167a40064588a0064588a00635787 +00615887005c5082004d55860056507e003d396b0030215c00443d8d00473e8d +0059559f00666caa008886ad009da2bf00a5a8c700acacc800b4b2c800b2b4c9 +00b4b5c900beb9d000c8c4d500cac7dc00d0ccdd00d2cfe400ded9e000d1d5d6 +00cdd0df00cacdde00c4c0d700b7b1cb00b2abca00a5acbf00a0a6bc00a3acbd +"/> +<palette number="254" name="Apophysis-040427-26ISph11" data="00923e560055195f00561453005710480054104000521139004c14420046174b +00481c710053286b005f3565006f4662007f575f009a5e6b00b6657800c56d77 +00d4767600ce9baa00bf97a500b094a00099799b00825f9700775897006d5297 +00804e9300876497008f7a9b009191b10094a9c80097b3da009bbded009cccf2 +008caeca004abdac0064af9c007ea18d008a94940096879c0096859900968397 +00728b850062959100539f9d007ea6b400aaadcc00acaaca00aea7c900b3b3cd +00bfb4dc00c8d4e400b4c9db00a0bfd3009aa6ca00948dc1009784b0009a7ca0 +0098708a009679840095827e00a7828600ba828f00c97a8500d8737b00de8e91 +00dbadaf00d8b2c100cab3cc00bcb5d700aeaed500a0a7d3008d8ec4008385b8 +006c568400624d680059444d003d604f00227d520036986e004bb48b003eb5af +0043b3bf006a4d9000663c8600622b7c005d2e7800583174005b366c00664270 +00865d7b00965e7100a7606800a5656300a36b5e00865e5f0082595f00785664 +0073535e007d3b49006c294d005c18510058144d0055104900541f6300452a71 +005871870063778b006e7d9000768089007e84820083798100695f9100674d7c +005a4161005b4142006b4a49007c5351007d52590080575d007c575e007b556a +006c45640058366400442865004328690042296d001b457f001d478300391382 +00422b9300693c9b008941ab00aa47bb00e05f9500d99aa500e2b4b400edc3c5 +00f6e6e600f6e7e700f6e8e800f5e6e600f5e5e500ded8e200afb4d1008796bd +00828a9d007b658b00736490006b639600605aa0002f50ad005761b8006b6dba +00a78ea100b895a600c99dac00d4a7a400c3bab500b7b2af00aea4a200af84a0 +00c58b9900e5bbbd00e6c9cc00e7d8db00f4e4e500f1d3d300e6c4c500d99cab +00bb8a4700b6825000b27a59008f686d00835c710078696c00558e63003a9948 +00389e38002c7b2c004c733e004c353d0035262900351a3d0036204400463756 +00704f86007f538c008e5892009c6c7c008e797400a5826f00ba817600ad7888 +00a17181008e717600837b78007b8e78005a9d670052b177004cb58c00388b6d +0055566b00765b640070517a0081607f008a6b94008b7f9700897fa4008a79a5 +007f75a9007072bd006e71a40070679c0067609400644781005e4181006b4775 +00784570009d3d6200a53b4f009f5055007e4f55007c575e007d595d00805860 +0093677400af698500c0869500c58b9900ad898900a97486008c5f7e00714673 +00653e6b005f24640055226500492f56004c353d00463136004e142d004d1329 +004d13290051123100391b3d0040254400452d4d004d355500653e6d0074427d +009e4b9300b6657800db727700df717400b86d7100987071007b6b78004a7375 +"/> +<palette number="255" name="Apophysis-040427-43HeartFlwr" data="00417e83004d583a004e512e004f4a22004e4b1c004e4d1700654b16007c4a15 +00ad420c00a9361700a62b23009d251f00951f1b00772e2100593d2800473f20 +003541190031511f00204b260010462e0021502500335b1c00314e19002f4117 +00162c3a00184c3d001b6c41005c9f42009dd24400b1d14700c6d04b00e89d2a +00de833400d1340900c5281100ba1c1900a2142c008b0c3f00821f3d0079333b +00757367007e878200889c9d00ada7c400d3b2eb00bcacd600a5a6c200857b86 +0048667100005f29000c531500194802001c5c07001f710d001e7a06001d8300 +00176b1300235209002f39000026341e001d2f3d000e375000003f6300004e50 +000d4e5400486177004b575b004f4d400057463a005f3f3400a5433a00e03837 +00f74d6800df475300c7413e00b62d3a00a61a3700ad0d3700b5003700d8000f +00ff0c1c00ff0b2a00f6241500ee3d0000ee730000efaa0000f6c73d00def739 +00e5cd4900edd48600f5dbc400fad0d200ffc5e100dedfda00dac4db008a96be +00597897004a8d96005d8f8a0070917e007e9081008d908500a1aba300d298ca +00ec5b6c00e1424c00d72a2c00c1252500ac211e00951f1b007b221c00563232 +004d3533003c384900373b3f00323f36003c2c1f0044272b004f352600514127 +0047413100464b320045563400505539005c543f0053773a00927055008d8850 +008c956600c2f17d00caee8500d3eb8d00e3ff6000f7f46900eae29700daed9e +00e8c7d00092b0af003c998e0042837f00486e71004e5742004547390054522b +008b5a3100d2582500d7492a00dc3a2f00c62a1400af092f00c2002000c1000c +00ae000100aa000000a6000000ad080600c1000a00b80b0500a60e0b00a93909 +00b2450200a44503009f4409009b440f009b431300a92822009a1d2500842627 +005a3926005c381e005e371600602100004d07110055172600662c3800680e4e +004e2d5c004f3b47007647370088564b0096594700b3472100de290000ef2f00 +00c73a0c00b73f0a00a84408008f4f0500554f010049590000495604003f550d +0055531800894f2100ac2d2600b31e1a00b60d0a00b70e0b00bd0f0e00c82c00 +00db200000d60c0a00fc050000ff1c0000df330100b3410200944a0d00633000 +004f2a0f00322b01000d3600002b29000053170f00731d100075141f0075221c +0063301100553b020048450e00484220004f4428004b5d29004f8730004e884d +0045876b0044817900406d4c00465c38002a6923001f873a0046912a0081d818 +00adef1100abd533005898420040a1500065b7270071dc020078b20e0067aa1d +0050a500002b7e0a0039540f00355419003e581700494d1a0053441b00834111 +009f200000c21f0000cc300000bd340800aa241b007f1e18005a312d00444c3f +"/> +<palette number="256" name="Apophysis-040427-43JunglThron" data="003baa340012762e0012693400125c3b00135e3e001461410013644200136743 +00218a3600197c3700116e39000e6139000b553a000f4c360013433300193d38 +001f383d001f4d3300195b3700146a3b00106a41000d6b47000d684a000d654d +000e67510019704f00247a4d002e8e4a0039a3470047ad4d0056b8530073ce71 +009ad09600e1bdc700cfc59c00becd720084b35a004a9a430045924000408a3d +0018684f0017614d00175b4c00115643000c523a000e533100105529000a5b23 +00195e2800218e250031942e00419b37003299380024973a0022943b0020923d +00248b38001f7f3c001b7340001a65430019584700164e460013454600134546 +00104f470010784300208b4900319e4f0032a25d0034a76c00439e4e0043a447 +00319d4800269042001c833c0012793b0008703b00076f3a00076e3900026a37 +000b624200104b39000c493b0008473e0008463e0009463e00144041002b4949 +006147640054375a0047285100403945003a4b39003d4b320026434100154343 +000a5f42000c7243000d743c000e7735000e752d000f74260014761f0012641a +00002514000d1c2d001b1447001c1c44001d244100142e3b0019433f001c6b3c +00338b4f0067b76e0063b969005fbb640052a452003d8e4c002e7c4c001d6e4d +000060510003574100064f320005532c00055726000e49130001452c00074a43 +00065041000b5149000f54490013574a001e555800145551000e574600084e32 +00001f00000312070007060e0014181800212b22006e3c3b007e4d51007f6669 +00a1705200bd895000bea96000c0ca71009dd37300a9d29600b3d49d00c6d988 +00effa8200f7e57a00ffd07300d9b4a200e4bac800e8b1c800eeb0c500eeb4cd +00e6b7c900dbd4aa00c3d4a200acd59b0076c77b006c9c52002b825f001a6350 +00245a4d002b554e00325050005a596700775b4f007e7683008e7a7b0075bb62 +006bbe520088d168008fd362009ad2870092ce900082cd7b0075cb660080cf4f +0047a8410040a43f0039a13e00349b40002c944700248552001b744400186b3f +00106e39000d6e39000d633c000c624900066348000464480009634a000c6353 +000c6257000a5d4900065f490002563f0000563d000a523a00035a3700086435 +000a6a2b000f712800107527001e8d2f0031a133003ab0350041ba3b0045b93c +0048bd390050b53b006bb64f009bc16c00ae8b6100e79a3e00e2993b00bc5e2a +00b27d4b0083bd680084d0760091d0990096cea700c0dccd00d9c5be00d9c3b6 +00b8d5a5008dcba20083cb8c0081d365006fcf54004fbd440044ad3700409b3e +00298846001a7d4f0012744b00156f4c00116c4b00126e55001c715400177553 +001e8a56003fa14a0064bf580062cc5d0054c048003dae3a00157c29002a973c +"/> +<palette number="257" name="Apophysis-040427-44jawa" data="00795a4800795b530082655c008b706500947570009d7b7c00a1827d00a68a7f +009c7a7b009775750092706f00815f5b00704f480064453e00593c3400563931 +0053362e004c332e0051363000573a320063443d00704f480078585000806258 +00af978b00c6b6a200ddd6b900e0d1c900e3cdd900dfc8d000dcc3c700c3a3b0 +00b39097008e6c6b007f615c0071564d00684c45005f423e005d3f39005b3d35 +004f342b004b2f2900472b2700442a2400412a22003f2a21003e2a21003e271f +003e271f003c251d0039251800372614003b2816003f2a19003f2b19003f2d19 +00583b3300674a45007759570093737500b08d9400b997a100c3a1af00d8b9cb +00e4c4cf00d4b5c700be9da900a8858b009c7a7c00916f6d0083655b007a5b56 +0071504900694a420062443c005c3e36005739310053372e0050352c004d3229 +00482d2400402921003f2820003e271f003d261e003c251d0035211a00321f18 +00321f180037221b003c251f003d261f003e271f003e271f00432b2100492e25 +004f342b00654538006c4c420074534c0074534c0075544d0073524b0073524b +0061443c005c3f3700573a320053372e004f342b004c312800482d2400482d24 +004a2f26004e332a004e332a004e332a004d322b004b302900462d2600472c23 +00472c2300452c2200442c2200432b2100432b2100402921003c251f0037231c +00311e1700281a11002618100025160f00240f0a001c0902002811090027160f +0038211b003d251d00422a2000422a2000432b2100462b2200482c2100472c23 +00452d23004b3027004c3128004e332a0051362d00573a32005c3e36005d3f37 +005a3d3500573a320054372f004f342b004c312800482d2400442c2200432b21 +00422c2100402921003f2820003f2820003e271f003e271f003e271f0041261d +003c251d0039241c0037231c0035211a0034211a00331f1800391b19003c251d +003d2521003e272100412a2200452c25004e332a0053382f005c3e36005e4038 +006f4e47006f4e4700704f48006e4d460065473f0060433b005e40380062443c +006a4c4a007256520084635e0099777600ae8b9200bd9ca700c9a9b800d5bbc8 +00ccadbc00c9a9b800d1b2c400e1c0d100e4cbe000e3d6d000f9f3e300ffe8fe +00f2dff500e0c1d000bb99a700a783850094727300866462007a595400704f48 +0064463e005d3f3700583a32005639310053383100563931005c3f37005e4038 +00674e2f006a5043007153480075544f007f5e5900886b65008a7572009c7a7b +00a5828600ac898f00ac8c9100ab888e00a38086009977760092746c00897262 +007b615200806554008b755d00917a6c00ada27400998c79008b764b006b5732 +0060502e005a3d350052372e004f342b004f342b00513b2300583b33005f4139 +"/> +<palette number="258" name="Apophysis-040427-51KaosGrn" data="00f1e8e3009b4838008937290078261a006d1f120062180b0062160900621408 +006311050062130600611508005f1a0c005e201100513d2300455b3500406035 +003b65350044542f0050391f005d1f10005d160b005d0d06005c0a06005b0707 +004f0600004f0600004f06000050040000510301005102000051010000520201 +00530200005a0604005b150c005d251400564e0c004f77050061850300739302 +007ddd93008ce6a3009befb30075cc8b0050aa640046a260003c9a5c00477143 +00515530005d241300503f0b00435b0300445a0100465a000053410200602805 +00640d03005e0602005900010058020100580501005a0500005c0500005e0700 +0061080000600900005f0800005e0700005e0700005e0700005e0700005e0700 +00540b0500570e02005a1100005c1807005e1f0e005e2412005e2917003e572d +003a784500318b4b003b822c0045790d0053710800626a030069430200622206 +00601301005f1404005f1607005e1406005e1205005d110100600c01005f0a03 +00620a0000670f0300641205006115080062180a00641c0d0063211100631e0f +0071150a006a140900631308006213070061130700610f03005c0d0000550601 +00550401005403000055030000570400005d0501005e0602005b060100560600 +00550601005a0f00006018000061280300623806003e5a030039590600345800 +00305800002e5600002e5600002e5600002e5600002d5300002d5403002e5502 +003c5600004f3c090062231200602212005f211200611e0e005f1d0d005f2112 +005e2917004869000046610000455900005f2613005d2212005c1b0900611508 +00601800006018000060180000601708005f1d0f005a1d18005d2816003e5801 +00425d00006442030061320b005e23130061190b006412060069050300710502 +0080190000871a06008f1b0c00982216009b3e1f0074723f008dbf6a00c3c88e +00dce27800f8f69f00e7ba9d00e8c3b100e2e3d100e6f1b900bee4bd00addea7 +00a5b48b00918d6a007e664a006b4e3000662513006b44030081720d0050830c +00458c4a003faa72003db6730033af7000389859003a783500456f0900425900 +005f2814005f1c0c00611507005c1000005a110000561706005d230d00425700 +00385c0000365c0000385501003f5500005e2311005e1b0b0060180200601800 +00601800006423030080560a0089711b009c860e00a8af8300c0cba300c4e1dc +00e7fbdf00fffbfc00f1ecf000f1e6d000a4c09700798a5e00846139006e3722 +00602817005e2917003c56000033550000315500002f55000030580000315903 +003b6302003766300035894b00349757003686490060653d00602c17006d2516 +0089362600a4403000a2342700a31d1c009e000000861a0d00741b0d006d2a19 +"/> +<palette number="259" name="Apophysis-040427-51KaosFish" data="004b1f5a004f2259004d2059004b1f5a004b1f5a004b1f5a004d2059004f2259 +004f2259004f2259004f2259004d2059004b1f5a004b1f5a004b1f5a004b1f5a +004b1f5a004b1f5a004b1f5a004b1f5a004d2059004f2259004f2259004f2259 +004f22590050215a0052205b0080495000af724600c7874600e09d4600e19e47 +00e09d4600c67d2e00c27f2100be821400b8891900b2911e00b0912100ae9224 +00a39226007a5c400051265b0050245a004f2259004f2259004f2259004f2259 +004f2259004f2259004d2059004b1f5a0041273600382f12003e330f0045380c +00684b0000906b1000b88c2100cd953300e29f4600e19f4700e19f4800e3a14a +00e7a44900e1bd3100cda92900ba952200c79d3500d4a54900e2a74b00d89d65 +00c0a98900c492a700c87cc600bc74ce00b16cd6007f68b3004e65910051215d +004f2259004f2259004f2259004f2259004d2059004b1f5a004b1f5a004e1c5b +0050205a0072306d00954081009e5d7900a77b7200b2897300be946e00c39971 +00d79c6400e09d4600ca822d00b5671400b3621300b15e120085540f00543111 +004b1f5a004d2059004f225900351934001c1010000d001100251f1300330b3d +0050235a00b1705a00b87f5800c08f5700c3997100c19f7a00c8ab8100c7a57f +00b2897300987568007f625e0067425b004f2259004f2259004f2259004f2259 +004f2259004f2259004f2259004f2259004f2259004f2259004f2259004f2259 +004f2259004f2259004f2259004f2259004f2259004f2259004f2259004f2259 +0051225800b1714b00c57b4c00da854e00e09e4700e2a54800e7a84b00e2a952 +00be9b7300b9917000b5876d00b87e5800aa724f00a98e3d00a6902b00a7912e +009e7563004d8bc4004b8bb5004a8ca60040737700577f3600896b2d00b15f13 +00b66e0800b3690a00b1650d007c5a03004f411400471d4f004b1f5a004f2259 +0062663300717624007467320047582b00471d4d004e2158004f2259004f2259 +004f2259004c2143004a202e00442b0d00452b0a00341c020034300a00243d13 +00274e0b00386c0a005b56160086621800af5d1100a95000008e1a0300453911 +0023541c001d423a00304e1c0057470c008c580d00b15e1200b6661100b26014 +00883b3100542454004f2259004f2259004b1f5a004b1f5a004b1f5a004b1f5a +004f2259004f2259004f2259004f225900512546005c5014008d5c1700aa7b13 +00ba801200c1721300b3791500a27b2000746e1a00453c1100112c0000171b04 +000005040011001a0022012e003a103600471d4f004b1f5a004a215d00254473 +001a5d6d00337768003e6b7e0032597a00274579004e225f004f2259004f2259 +004f2259004f2259004f2259004f2259004f2259004b1f5a004b1f5a004b1f5a +"/> +<palette number="260" name="Apophysis-040427-51KKlown" data="0029176900863b8d00893f7d008c436e00b66d5900e0984400eda55100fab25e +00fcd33d00f0e83200e5fe2700dddb2e00d5b836009eaf430067a7510056995e +00468b6c004e6a7800854c7e00bd2f8500cd198500de038500ca017f00b60079 +003e1c2c002a252600172f21004a4a26007e652c009e802600bf9b2100e29f2e +00ff883f00e2925f00d98a7800d08292009f6790006f4c8e0046418b001e3789 +002f3239001e5348000d7457003e7174006f6f910082738a0095778300d5aa73 +00ffbe7900fff04c00fede6d00fdcd8f00debfa400bfb2b9009ca2b1007a92aa +0097c68f007ebb810066b073004b716f0030326b00232a660017226200045f64 +00175c3d00216f1b005478160088821200937c09009f760000ec761f00dc5b17 +005f71050040601b00214f3200216b3c002288470027883e002c8835003da011 +00329008007162070092733800b3846a00bd905a00c79d4b0091b4400087a02b +00845e2d0099412300ae241a00ca160d00e7080000fb080c00d6142c00cc160b +00bc400d0093213a006b222500432410003b350c003446080025840200298602 +0075bf06008bbd1800a2bb2b00abca3000b4da3500c2e24300c3c86a00adbb97 +00cab2ae00d6ae5700d3a65d00d09f6400d3888d00bc86ba00dc73c500fe6ed0 +00de337500e62c5500ef263600c5232c009b2022006b2317004c241800351d1b +005c131a00a50b5100a7075800a9046000a80a8500b9158800b81a7900da1275 +00de053c00df022f00e0002200e0001300e0000400b8021100790b0000612711 +0048361e00105c11000e6a09000d79020012883a002e924a0043885c007ea973 +00d7e74600eaf05e00fdfa7700f5fb9b00fff6b900fff0bc00fef3d500f2c5dc +00e2b9cb00e384b000ed7cb600f874bd00ed48b000ff31a900fd0e9d00e5195e +00fe040e00fd030b00fc030900f1050500df010000ba1400007d1401007a3609 +006535210063603700797a720060947000318d820000806d0000854c00007b4b +00156f3c00106a3d000b653f00013e3600072034003d1c39003d063d009b0252 +00ce0c2f00db224b00b42b7d00aa1980009652a5009281a500a495d600c6e6e1 +00e0d9d300efc1c400ffcead00f2d58700daed3c00bade2600c3aa1200aba205 +00458c0a002e6b1b0034450000633a0e00932f1500bc574d00cf5f3100d95c48 +00ea6a5f00ef4b6600d25c6c00b9526d00924490008c798c009cd08600a9dc75 +00a3e67c00b1d1a800fafcbb00f9f2c800fff1de00fffdf300e8e4ff00f1eae4 +00ffedcc00ffcead00b3b9710066a94200409e0a003e8d0000644f1600951514 +00aa0b1f00d1002900ea003d00ff0b8100ef039400f8008c00ff004b00f1001a +00ff051100f2080700ed0b0000f2070300e4000000d7280900d22a0000db3f04 +"/> +<palette number="261" name="Apophysis-040427-51KaosEgg" data="0071595700614945006148440061484400614844006148440061484400614844 +0061484400614844006148440061484400614844006148440061484400614844 +0061484400614844006148440061484400614844006148440061484400614844 +0061484400614844006148440061484400614844006148440061484400614844 +0061484400614844006148440061484400614844006148440061484400614844 +0061484400614844006148440061484400614844006148440061484400624945 +006e595600818272008a897d00949188008479700074625800725b5400715551 +00644b4700705550007d605a00947c6e00ab998300b7a79800c3b6ad00d8d5d0 +00f5f1f200d6d3cc00bcb8b300a39e9b009b969200948f8900887a7a007d6c5c +007072650082867400959a8400a29d8600b0a08900b1a18a00b2a28b00b2a88f +00afaa9400b8afa600bfb1a900c6b3ad00c0a9a200ba9f9800aa967d008a685f +006a534b00654d47006148440061484400614844006148440061484400614844 +0061484400614844006148440061484400614844006148440061484400614844 +0060474300523f4200453841003f323c003a2d37003f2b2d0037302a003c2a26 +003b292500352e2800322c27002f2a2700271e1f00261815002b181c00342021 +004e363400543c3a005a42400059423f0058433e0054413d0050383600482e2f +003f2a29004e3634005137340055393500593d3900604441005f4642005a423e +0046323100382527002b181e0025171a0020161700271a140027231a002f2b20 +003d3b2f005e4642005f4642006047430061484400614844006048460064514a +0085747c00917f86009e8b9100a49a9900a39e9a009f92990095827c008a685f +007a646600705e6a0073616c0076656f0082727c008e8b82009f9a9400a29d97 +00968c8d008f838b00887a8900897a810086757d0075706c00757367006e6664 +00685652005b4b5800513f4d0061484400614844006148440061484400625046 +00696d5e006a6a5e006b685f006a635b00616355005f5f5300604b4600614844 +00624c410063504100715a4c007e665a00897b720092968500a09b95009ca18d +00989d87008d827c00766f67006f5d5900624e47005e4b450059493c004f4232 +0045342d003b292500321f25002f1c2200381f2200352027003f2d2d0048483e +00494941004e4e4200515244005d4b3f00604844006148440061484400614844 +00614844005f4743005a413c00553c35004b3633003c2a26002c191f0026121b +001f1111001e100f00180c0c00170b0b001e100f002314110026151d002c2721 +00382e2c0047343000513c3b005e464200614844006148440061484400614844 +0061484400614844006148440061484400614844006148440061484400614844 +"/> +<palette number="262" name="Apophysis-040427-51LavLace" data="00fde2e900ffb8eb00f6c3df00eeced300e5d0d200ddd3d200d2cac600c8c1bb +00d4d4d200e2d6df00f1d8ed00f3caeb00f5bce900f7d0e600f9e5e400f7eced +00f6f4f700ffe5f600fceef900f9f7fc00ebf8ea00def9d800e1efda00e4e5dd +00e6e3d200ece5da00f2e7e300f1dde500f0d3e700f4c3e800f8b3ea00ffafe7 +00ffb5de00f0abe100eab0db00e5b6d600d7abc000caa0aa00c089a500b772a1 +00b48b9900cdbea100e6f2aa00daf3c900cff5e800bff1d200afedbc00b9ccac +00a5a0d60089648500693f67004a1a4a00431940003c1937003c1733003d152f +002f0a2900330d27003710250045162c00531d3400501f3e004e2148004c2449 +004c2449004d254a004d254a004d254a004d254a004d254a004d254a005f294d +0097588700ae799e00c59ab600d493bc00e38cc300d494b700c69dab00b38689 +009154800050234a0052254e00552853006d396300854b7400a0589a00ab6997 +007f41720066335e004d254a004d254a004d254a004d254a004d254a004d254a +004d254a004d254a004d254a004d254a004d254a004d254a004d254a00512b50 +0098519300a3679b00af7da300b498a700bab3ab00bbc5ad00abb8a700b0a59f +00a8988100806d67007158590063444c004c264b004b254a004b254a004b254a +004d244c00744169009c5e8700ae819e00c1a4b600e2ddc900f4eed800fffee3 +00fff3de00ddd4b700cec9b400c0beb200a39b86008a6f8000743a6000521e4c +007e536e009c798800baa0a300c1a2a700c8a5ac00cca5ba00ca9db100ca8dae +00ae6b9e00532651004f244c004b234800471a4500421a3f003d193f0044173e +00421b4700471c48004c1d49004c2449004d254a004d254a004d254a004d254a +004d254a004d254a004d254a004d254a004d254a004d254a004d254a004d254a +004d254a004d254a004d254a004d254a004d254a004d254a004d254a004d254a +004d254a004d254a004d254a004d254a004d254a004d254a004d254a004d254a +004d254a004d254a004d254a004d254a004a244b004b254e00532c5b008a3e7e +00b2007a005d25560050234a004d254a004d254a004d254a004d254800571f42 +00662c440091545100a661730091607600583257004b2850004b254c004d254a +004d254a004d254a004d254a004d254a004d254a004d254a004d254a004d254a +004d254a004d254a004d254a004d254a00754b5500957e7800bc9ca900e5abc1 +00f0c1d500ffbadf00f0a5dd00ebaae000dea8ca00cfaccc00c3b1c700cbb4bc +00d4bfbe00e5bec300e9c0d200e0bdd300d5b8b000b3b2a000a7a49100b59b8a +00c3949c00dbb79500f5d2b400ffebdb00fbfbf100fefff400fcfffa00fcfefb +00fcf7fe00fff8ff00fffeff00f8fffd00f4fffd00f3fdfc00e5ffeb00f6fff8 +"/> +<palette number="263" name="Apophysis-040427-51mudding" data="00ab868000e3b6a300e3c5aa00e3d5b200cdbba100b7a29100ae9c8600a6967c +0087704e007b5e40006f4d32007b502c00885327008c5a33009062400090624e +0091625c008479890097848d00aa909100aa969900ab9ca100a99da500a89ea9 +00b59d9100baa08600bfa37b00c3a98600c7b09100c6b58f00c6bb8d00c8b992 +00d9c1a500bcb88800c0b37000c4ae5900bba66300b39f6d00ae9b5e00aa9850 +00aa8c6800b58d6900c18f6a00c8947a00cf9a8a00dca69900e9b3a900e6d8cb +00f8e8eb00ffffff00fcfdfd00fafcfb00edf4f400e1ecee00d8dad600cfc8be +00a29d99008f8b8d007d7a81006b676e005a555c00584b530057424b005a3e28 +004b371e003e21130036210d002e2208003225090037280b003b3209003b3012 +0041310f0044351300473a18005f512a0077683d00827348008d7e5300a19871 +00c7c29a00fff4e500fbf8e300f7fde100eef2e400e6e8e700d5c3b700debca0 +0097a7be009da1b500a49bac00a6939700a88b83009c827100926e58008a6c48 +0081633f00856b54008d816a00969880009ca89100a3b9a200b3d5c500afc5ec +00bcdab400c2d2a000c9cb8c00bbc88100aec57700aba15c00b3806100ad6557 +00b15b440083755a007b7359007371580069615e0064635100645c49005c4744 +00473022003c291c003123160033231500352315003e23100041290300432702 +005d270d006a4c260075512c008156330086643e00977748009d754400a08043 +00a6895d00a5846100a5806500a07c5d009b795600917166007d6d56007b5747 +00704b3b005d3422005b391d005a3e19005d3f1b0062421b006d371100754514 +006e471e00704d220072532700775e35006d61310070582c0068502e0061451e +00534113003a2900003826050037230a002d1d0000251b0000220f01001a1706 +00241c0f0028200f002d251000372e11004c2f0d004a3c170051441a00564624 +00614f37006f574d007a65740082879b00a6a9d400c0b4e200aea9af00c3b392 +00caaa9100c5a58f00c1a08d00c5a48500b38f6b0099796400876448007c543b +006a5035005f4c2b005a492f005e462a0062452700624a24005d4720005d4523 +00583924004e38210054371900563c1b0061422500634833006d5d4300776149 +00727d5f007c836200887c6400938777008a8a7e0082746b0089745f00866d4f +00846a49007a5a45007b664b007b6c590081746b008f827200a78c7900ab8c77 +0096866500927f550089714d007b5e4000765f3d006e5d4100635643005b544c +004f585700645c4f0072604c00755c4800765e4600705c410073583b0069533c +0073503a00795a3d007f643700915d3800954c43008d4c30008f48280068492d +004f473200323e3a004c3f3700553a2500564124005c4a360063554a005e4a41 +"/> +<palette number="264" name="Apophysis-040427-51pane;" data="009a7905009a7905009a7905009a790500987805009777060095750600937306 +0087712500837620007f7c1b007976220073702900605e3b004d4d4d004c4c4c +004c4c4c002a360e00242a0a001f1f0700262507002e2b0800403d0b00534f0f +008e734600957f61009c8c7d00a39a8400aaa98b00acac8b00afaf8b00a9a889 +0093ac8c00b2906200ab8c3f00a4881d009d7f110096760500927205008e6f05 +00785f0500695304005a470300423304002a200500251e0400211d04001c1e06 +00211c06003a370a004c410a005e4c0a00584e0c0052510e0053520f00545310 +00817718008e7c19009c811a00957b2c008e753f0086743a007f7436007b792e +00817e1d0073711e0063621700545310004b490e0042400d00292907001f1f07 +0000000000000000000000000008060300100d0600201006003114060052220c +00643b0f00715804007d6011008a681e008b7026008c782f008f8b44008d8053 +009ea09b00b2a59b00c6aa9c00c7b3a300c9bcab00beb89600b5b18c00adac80 +00a3a27600a38e3500af824500bb765500ad7c4f009f824a00947e4400837b32 +0098790500997905009a7905009a7905009a7905009978050096760500876a04 +007b6104005d631b0061631c0066631e006c621a0075631b0086690500947405 +009777060093660c008f5613009d4c1300ac43130088571200896c0600967605 +00987905009a7905009a7905009a7905009a7905009a7905009a790500997804 +00977605008d6f040084680400806504007c6205007b6104007b6005006a5e12 +00716f1800827f180094862000a68d2900ac942a00a48618009f7f0e009c7806 +009a7905009a7905009a7905009a79050099780500967605008b6e0600826603 +00755b04004f4d100048460e0042400d004924090056330d0066490f005f4c0a +006853020064500800604e0e0069581200655f13006660120065621100706c13 +00876a060095750400997804009a7905009a7905009a7905009a7905009a7905 +00967a0f00928114008e881a0086831800807d16007f7b1700807d1600957506 +008e6f05008669030079600400685206005c48030035300a00272006001f1d06 +00201e07002e2b08004f4b0e0052510e0049470c00302e0800221e05001b1a06 +0002070300000000000000000003030300191d06002e2808005e4a03006c5603 +008468040096760500997804009a7905009a7905009a7905009a7905009a7905 +009a7905009978050096760500947405008a6d05008568040086690300947405 +0099780400977804009173050083670400745c04005f4b040037360a00242305 +001f1f0700242305002f2d07005d490200735b03008367040091730500987704 +00997804009a7905009a7905009a7905009a7905009a7905009a7905009a7905 +"/> +<palette number="265" name="Apophysis-040427-51RiftAO" data="00ac8625008d5017006e3a1700502417003c281600292d1600282d1500282e14 +003417130031150c002f1305002e1008002d0e0b0030100b0033120b0035130c +0037140e003d181000431d13004a2216004e220d00522305005c2a0700663109 +006246140055401f00483b2a0036322f00252935002428340024283400212f15 +001c361100262c120024290d00232609002a1c09003113090032150800341707 +00441c1200421b1100411b10003a170e0034130c0030100b002c0d0a001b0708 +001503030008050000080300000801000010060100190b02001f0d0300250f04 +0024240800212608001f280900212709002326090025260b0027270d00352317 +0045201a0066461f007b583900916b540091705c0092756500a17c4800a48d49 +00834f51007c4f3b0075502600623a1d0050251400542d170059361a004c4125 +0038412200232637001d202d00181b240015161f0012121a00100b05000a0702 +000f070400100c0f0012121a0015161f00181b2400181b2400181b240012121a +000001200000010000070400000e070100160a02001e0d03003518080048250f +007c3e0d009a491a00b9542800bb692f00be7e3600946c74005e6a9e00525e92 +004650850032364200373b35003c4029005046230073584d00a68981009aa096 +00e7c7ee00e9d6c600ece59f00d9c99400c7ad8a00b7947600ad856b00a77e5e +009a6f4f008c5840008d603f008f683f00966956007c5e560054526000403e49 +002e314000292c3a0024283400202431001d202f00191b280016192a00181c25 +00181b2400181b2400181b2400181b2400161a23001111190013050400190000 +002d0c0700330c0500390d0400471700004b1803004a06000029050000240805 +001e0c0200170302001603020015030300150200000d000000090600000c0900 +0026100300241b060023260900272d1300343718002d361b00252e1300242a10 +0023260900232609002326090023260900241005001d0b010012090000100900 +001f0b0000210c0000240e0100250f0200261003002612070023260900232609 +002f1307002c1205002c1205002c120500291105002810040028100400291105 +002c1205003b160e00472011005e3018007a582a00966b4b00ab886a00d7be95 +00e5d3ad00fbd8c200cbc8cf00adafc4008f90ac00b3bac200cce7e200ccd0d3 +00ded09f00a7ab8800929e76008987720064647e00474a590030314500363822 +00272d1300232609001f100b0012121a00181b2400181b2400181b2400181b24 +00181b2400191c2500191c2500222023002e0e0f0030130d002f140d00181b22 +00181b2400181b2400181b2400181b2400181c25001a1d2c0020243000222536 +001d1f3400161747001e263d002e314200393a4c00544b5e009e8a69008b806e +"/> +<palette number="266" name="Apophysis-040427-51ylwAlien" data="0006070200000100000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +00010101000d00000060260200b44c0500c26e1900d0902e00d5922d00db942c +00eab33200e0b03700d6ae3c00c7ad3400b8ad2d00a99f26009b912000457800 +003c6b0b00ca691a00e0712800f77a3700da5f2300be4510008a3b1100563212 +0002020400010102000000000000000100000002000000030000010400000007 +00000208002e69170089932800e4be3900e8c93a00edd43c00efdb4400f4da45 +00f0cc4000f1bb3a00f2aa3400f0a63000efa22c00efad3000efb93500f5d93a +00f7dd4000fff24d00fdf34500fbf53d00fceb4200fee14700f3da4a00f4d4a1 +00f5dae100f8e5eb00fcf1f500fcf5f100fcfaee00f5f6ee00f3d4cf00f6df51 +00f9e04800e6b63600ae802600764b16004f2e100029120a0005020900010004 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000020202 +006581340094992f00c4b22a00c8b52d00ccb83100d9962e00b186270051360b +00090504000f010000281103004122060072472400b9862d00de972d00f8ae33 +00fab93900eda93000e19a2800ca691a00852111002d08000003000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000a0000002d120700712c0500bf712900da972f +00eacdd100ebd2dd00edd8e900f1def200e6e9e000f0e5cf00d3dcad00ead546 +00f1d84800f6de4000f7e04200f8de4100f7dc4300f3d83f00eabb3700ebb838 +00ebb83900d1bc4500aaaa64005b77230037331a000503080000000200020100 +0000000000000000000000000000000000000000000000000000000000000000 +00000200000703000042230f007d8f5300acac9400c3ccaf00d3dcc100d5bf74 +00ebd34b00e8d34400e4c74700d5c12e00af9a0b0068531e001e141200030301 +0001010000000000000000000000000000000000000000000000000000000000 +0000000000010101000b0100004d390000909e0d00b9bb1800ce943300a5752d +003d2a24000f0b0a000101010000000000000000000000000000000000030000 +"/> +<palette number="267" name="Apophysis-040427-51elecforest" data="000000000000000000000100000002010007060a000e0b1400201e210032312f +00822381005c2d560036382b0041402c004d492e00644a3f007c4b51008f3d64 +00a2307800df0fa300e7398d00ef647700dd8b6600ccb35600c5ac5600bfa656 +008e9fa60082759500774c84004d3a510023291f001216130002030800000005 +00000005000000040001040400030905002c2d1f00565239006e605000876e67 +00dfccc800eee1db00fdf6ee00c7dab60091bf7e0095c56d0099cb5c00a0bd49 +008ea85f0055754e002d4c350005241c0002150e000006000000040000000200 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000101010007030400211400 +00792d0b0081310e008a361200753a1a00613e220052321d00442719000c0704 +000d000200030004000a0a0f0011141b00262f17003b4a130062684200799451 +00bac77700ccd27100dede6c00d5c66a00ccaf6900f3883800ab634a00a92356 +008a11700069311a00341f0d00000e0000000a00000006000003030b000b3237 +00086d6900597a6300aa875d00bc7d6800cf747300dc8a7c00dc82a500ffd3d6 +00ffded000e0874300c7662500ae460700a436110083320500554000002b2100 +0000030000000200000001000000010000000100000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0003030300060307000a030b00322b2300524c36004c7b45002a8816002b710e +00266103000a1e02000103000001010000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +00010000000300000007070000202403005c700f006d8a3800a2813a00aa9601 +009659160095433800591e18001f000200050003000100000000000000000000 +0000000000000000000000000000000000010100000907000041250f006b4a29 +00aa783d00baa34300ada05200837654004f4b4a000e191d0003000b00010008 +0000000400000004000000020000000000000000000000000000000000030000 +0008030000190000005b1619009a2051009d072d0093180600ab190c00b12607 +00f5000000d10e0c00b9183a00e9046b00f4179800fd4fa600f65e9b00f94a51 +00f94c4800f05f5a00c7704500a37c5500515e4c001b4c5d00105260003c4736 +"/> +<palette number="268" name="Apophysis-040427-51ReachMoon" data="008c90210072581d00494f260020462f0020332200202016002a201400342113 +00674c1d008d711c00b4961c00bfa42000cbb22400bfa92300b4a02300a68f22 +00987f22004c23350053342b005a4621006e5c220083722400927c2600a18728 +00c08f2900cd8e2700da8d2500b582210090771d00886d1e0081642000735016 +006c4d160034231b00381d22003c17290040182f00451a3600441b3700431c39 +00421d3c003e143b003a0c3b003a0b3a003b0a39003b0a39003c0b3a003c0b3a +003c0b3a003b0d3c003b1d2f003b2d22005f4a1a00836713008d771c00988826 +00b7a32600b09c2400a99522008e7a210074602100675522005a4b2400274e33 +0021617d00678f5d0042645b001d3a5a001d3556001d315200192744002f0e3b +002e0d3a00330e2d00380f2100330e15002f0e09002f0e09002f0e0900381f09 +00361f11003b220e003c2916003d301f0042352200473b2500605730007e753c +007a733c0068572600573c11004e350e00462e0c003724160039182d00421b36 +00451a3600451a36003f183600391637003a1037003c0b38003b0a3900370b3c +00360c3c00380b39003b0a3700390b3000380d2900370e1e00370e1e00350f1e +00360f21002f0e3b00271243001f164b001c205f001a2b57002424580032234e +0047184600441a4100421d3c00421d3c00421d3c00451a3600451a3600451a36 +00451a3600371b3400371b3400371b3400321b3500341f280039291c00442f14 +006c5e310087714a00a2856300a3855700a4854c0093883600a8902400ba9c20 +00cba32700e3b27800e2c77400e1dd7100e1bf9900f0d4af00faf0e600b3b5ca +00a39d8500968c8d00897b95007b6d620059374500441d3a00451a3600451a36 +00451a3600451a3600461d340048213300574730007b763600a5982800bfb822 +00d3c42d00d2cb2f00d2d23200d8bf3100d8ba2800cbb02100b69c21008f7f27 +00685d2f004a233500451a3600451a3600451a3600451a360048213300654917 +007460210072652c00706a3800248e2a001e626100173d640024385100352450 +00411c3d00421d3c0044214100421d3c00431c3900451a3600451a3600421b36 +00381b3700330e3a002f093a00350b3b00360c3c00370b3c00370b3c003b0a39 +003b0c360043163300451a3600421b3600381a3400330e3a0037193300351e32 +002c211d00181a2f001319330017182c00321c3100431c39004c23350047351d +004c320d0040280c0035171f003c0c34003b0a37003b0a37003b0a37003b0a39 +003b0a39003b0a37003b0c36003919310039162c0039162c0039182d00331f2a +001b182d00121935000e2954000f3a4d00143d690025285f0024235d0024255b +0025265c0030235900351e4a00341e330035202f00311d2600341d230035181d +"/> +<palette number="269" name="Apophysis-040427-51satPhlox" data="00894b0e00624a2e005b55500054617200404f60002c3d4f0024394e001c364d +0051402e005f4327006e4720009b591700c86b0e00ba7b3b00ad8c6900aa9174 +00a8968000b3dbff00a4cdf40096c0ea0082bbf4006fb7ff006ab8ff0066baff +00239dff001d96ff001790ff002898ff0039a0ff003d9cf8004199f200379efd +0028a4fe001398ff001698ff001998ff0031a3ff0049afff0056b4ff0063baff +0089cfff0090cffe0097cffe0083cbfd0070c7fd006cc0fe0069b9ff00509ee9 +00116fc900014e960001438500023874001961a900318ade004f9ae4006eabea +00d2e8fd00e8f3fd00fffffd00f9fbfe00f4f7ff00e0f2ff00cdeeff00cbf3fb +00c5f1fe00c6ebfe00a9d4f8008cbef30081afde0077a1c9006e768300605041 +00111216000925430001387000014fa0000166d000006ee0000076f1000089ff +00027dfe000164ca00014a980002316700072447000c182800000a1600010916 +0021170d002f1e0d003e260e00472d1300503518006e43190070431900724317 +0079441000774b1e007c532600815b2e008b735700958b8100768896006d90ae +0047729c004c6b8a0052647800595c6000615549005e462a006a4417004d3318 +003d1e01001f0f0000180b000011080100090400000000000000000000010101 +0000112b00082c540010477d000f559a000f64b7000a6fd7000985ff002385e8 +004496ea005591cf005888b9005c80a4005c758b00373f4a0025242200120f0a +000201000001000000000000000000000000000000070400000c080000221101 +00321a0000593c1e005d462d0062503c007166620062707b005e6e7d00636260 +0040332a00382e2500312a20001e1a19001f20220001234900003c76000052a8 +000069d600008bff001291ff002498ff002fa2ff003aa8ff0040aafe0046a0f8 +002682d9001f76c600186ab400306599003e6181003c4145004d331800421f01 +003e1c00003a1a0100351901002c1702002411000027120100281a0d00352817 +003a3f45003a434e003a4757002b527b0014467700014b96000657a800005bba +000d6aca002587e80049a1fa0070c6ff0090d8fe00b5e1fe00bbecfd00bdeafd +00bfe9ff00c3e2ff00c9f0ff00e1f8fe00fafeff00e0f0ff00cee7fd00b7deff +0092d0ff0066a9ed00217fdf000066cd000352a1000e3862001e2f3f000e1116 +000008150001040d0001040d0000070f000a141e0013345500235c9300236bb5 +0064a1da0077a9dc0070a5db006f93b70081736800635344006a421f0046290b +00401e02003b1c0000401f0000532d060071421600734312006e421100462200 +0031170000170b00000803000000000000000000000000000000000000070300 +000b060200231c1400322b2300574d4300666a6d007798bb00bed6ee0096b9df +"/> +<palette number="270" name="Apophysis-040427-51SnikRchg" data="00eab49c009a523c00823c2d006b271e00521d2000391322003a1324003b1426 +006638420092574b00bf765500bf775700bf785a00b16a5300a45c4d00a14640 +009e313400b8123800bf164b00c61b5f00ce408200d766a600ca7a9900be8e8c +009163650069414c00421f330031142300200913002b0c1c0036102500522c3b +00854b4a00d1835f00e29a6800f3b27200f6c97200fae07200fae37d00fbe788 +00f4e1a600f4e4ca00f5e8ef00f9f3f200fefff500fcfae400faf6d300f3eeb6 +00e7cf9300cb8e7100c5826700bf775e00a9444c0094113b00801835006c1f2f +002a0b110026090e0022070c0043091a00650c2800771c2100892c1b008e2d1c +00893654009a767600bb829800dd8ebb00dd86b900de7fb700f2819500cc707d +00d4123700d00f3600cc0d3600c90d3600c70e3700c90e3600cb0e3600c81a33 +00ad543400a1423000ac2d3200b7183400b4132900b10e1f00b90f2c00bc1145 +00ac8d9500bb929100ca988d00c68e7f00c2857200c4786000b9584f00a11f45 +00671a4e00193c40001a222a001b0915001a091300190a11000f051000020607 +00040d16000c0b1500140a150014081600150718000f0917000b081900140522 +00290837006242590071556900816979009b7d87006381b500588eaa00649bb0 +00bee19f00ced39300dec68800e5c78900ecc88a00ebab7b00ce967b00bec381 +00c5e9a100a8daf100a3d9f0009fd9ef009bdde9009ad7c700c0e3ab00a9d48c +00c88c7000c57e6300c2715600c5454800c8193a00c9102f00c6102900c00f23 +00bf082700c3113100c7103100cb0f3200ca0e3100c90e2d00ca102700d00d2b +00dc183e00da1d4400d9234b00d1605200d8874f00db795200ea505800de1f52 +00de194e00e45a5800e9775d00ee946200f6a36f00f39d7a00eec38c00fcd6a5 +00e99dcb00e2a6bb00dcafac00daa6a800c8acab00c2a2a300a2b98500aad384 +00b7da9600d2e8a700e7cade00e0f0fd00eee0e000e4eeb100edd49c00fcc380 +00f1a56900efa06600ee9c6400eb9a6300e9936200cb7e6400a0615a006b484e +0058385000603d5e005072a20062adc4009fd3e900a9d7ef00c2edc200c0e7a6 +00cce49800c0e3ab00bbe1f400b0e3f600b4d9f300aacae300b99ea700b2989b +007b9f7b0082c568006db96e006a987b0063acbb006dd5ce0085d8ea008ed9ee +0094d7e8008ad7e90082d7eb0074cddf0073c4d9006d99bc00ab949c00b09ca7 +00a3d3a30097d8ba009ae0e8009ae1f300a7e6f800a1e2f4009bdff20099e0f2 +0098dfe100a3e1b800a1d884008fc06e00748c68006c4d53006f363d00602f20 +006d161c006a362900622f4000642049006445540078526700a3677300b47169 +00b4826100c6836600cc8b6500cd835e00d3826400e68d6500f58b7d00e9bfa6 +"/> +<palette number="271" name="Apophysis-040427-51SmwhrDream" data="00282c1d00843c40008e592f0099771e00ad882300c1992800ba993b00b3994e +00c1997600bc8b5a00b77d3e00ad5b1f00a33a0000aa642f00b18f5f00b8986f +00c0a28000bda48e00b1a68d00a6a98c009fa7900099a694009da28f00a19e8b +00a9a05d0086903b0064801a005b6b0e0052560200594c0100604301004b4002 +00404002003f310200473001004f2f00004b2b00004727000048230300491f06 +000d0a0500070503000101010000000000000000000000000000000000010000 +00020100001a130100342d01004e4701006c6837008a8a6e00a09e8a00b6b2a6 +00ffffff00ffffff00ffffff00fce6cc00f9ce9900efbd9500e5ad9200d7c3a0 +00d4c1a000ada365009189370075700a007c680500836100008c670c008f7c20 +008f6944007a6c2900656f0f00606708005c600100615b0400675608007c5102 +0088430000ab490200a1580b0097671500a17f1b00ac972200b1974c008f925d +00893c46007d373c0072323300682f1b005e2d0400453305002e220c001b2701 +00283001004a4c0100445000003f550000355000002c4b0000235403000f4f01 +001c2e00001f3d0600224c0c00274e0a002d5109003a50070041540300416815 +00476d1a0046460000474b010049500200897d190066680700485600002f3d00 +003635000043320100502f0200543202005935030061310000643200005f3800 +0050400500534d000055580000576301005e570000694f0400795e03007e5402 +005138000043390200363b05002f40070029450a0028500900275f1e00186249 +0004593a003f500a0048570700515e0400645e00007d5f000083750800aa9f05 +00c3ad0c00c7b02700cbb44200b9a75500a99b3a008b8120005b721800566d13 +0065791600ce8f0400dea20600efb50900dbcb0600b4a70900817c0400616400 +003f6e2000366c35002d6a4b005587640074814c00848051008d781f00826501 +00a36f0200be790000c9750100dd660000c26601009e560100864a010079541f +00882e3a008a3a1d008c4601008f550100b36a0100e4990a00ffb51400fdc516 +00ffea2d00faea3c00d0b48d00d7a89800f0b77200f0c81900f5b40e00da740f +00af6303008d6102008c61050094690100b9670100e4700300ea6c0600fc8e11 +00e4840c00c58d1c00b7a85700aa967b00a39c8a008b987c008c864800a18313 +00b0890a00a6760700937103008d5a01007f5b030076510100683b02004e3701 +001f260000071e01000004000000010000000000000000000000000000000000 +0000000000000000000000000001030000070a00001219070040230500612702 +0087380000923003007f2c0000502502003c070d00180c000008010000020100 +00010101000000000000000000000002000100020001010100070f0200101e04 +"/> +<palette number="272" name="Apophysis-040427-51eyepuzzl" data="0044c1dd0033f2ff0030f1d0002ef1a2002bf6600029fb1e0019df200009c322 +0000e2610000e49f0000e7dd0000c7c90000a8b5003a6d820075334f007f203d +00890e2b00c6073200d9132e00ed1f2b00c3331500994700007f351200652324 +002f7082003b89990047a3b0002399a500008f9a00027b9000056887002d4470 +007e089d00cc04be00df12ce00f221de00db20cd00c51fbd00b816cd00ac0edd +008a0bd8009007bb0097039f009b176e009f2c3d008d4128007c571300866727 +008f79140096851100978710009989100095850f0092810f00907f0f008f7d0f +00746b0c0070630d006c5c0e0066580900605505006255060065550700655a0a +006b5c07006b5a0c00735d0c007b610d0076610b007161090072660400735e03 +006e6008007869080083720800968b0800a9a40800a3ae04009eb8000087dd1c +009acf0f00a89b00008f82040076690900716606006d6304005d7000002c6c15 +000bae79001a9f6d002a9162003d89440050812600837c38009f7f2c00dc9624 +00d4cf2d00dfbb1f00c3a41d00a88d1c00a48e2000a19024009e8914009e8a11 +0098850f0093800e008e7c0e0086750e007f6f0f0071610900616511003f6d2c +0010884a0000886700018a4a00038d2e000c9815003d8700004797020033900e +000c8d79001a80660028735400385e3d0048492700635a0b0066570600675805 +0067580500695b03006d5c0100725d0000806500008a7700008f7b0b008e7c0c +007c680f006b7d1f005a922f0057964000549a520033e43e000deb0a001ccb02 +004a9e08008c7414008e7a110091800e0095810e00907f0d008e7c0e007a6512 +005c5d0f00445b14002c5a1a001072410013ac6c0000cc870001fba20010e3ae +0011d38a0038d4110035bd080033a6000067a7000074b30400819000007e6b04 +0075690000807105008c7a0a008f7d0f00907f0d00907e100089760f007d6815 +007e571e0098151a0088141400712724006c451a0069570d00675c0a006a5b08 +006956090069560800695607006a5b060075560300715412006f2c0200594602 +0050460000594a05005e50000062560a0050500600325008000c7d00001d8911 +002a8317004a821d004d7b0f0060600a00655d0a0074640d007a70320079763f +005881930037a5c0005f99ff002c4dc1006a28c800871cdc00c109f300e724fe +00e512dd00f9079a00bf006400f46b2700fb8a2a00fae20c00faff2600dbff33 +00aaee29009ce60d00ae9c1200a3950e009e8a11009c8710009b88100098850f +0096870a00928d0f0096850f00877c09007c810900659a320044b55b0032f37c +0055ee790047cb530083da1c00b0bf2600d1b92500c3b97100c8bc7200e17e9d +00f7177a00c0642500a6721f00a36700009a721d00807b2a009f934b0057ddff +"/> +<palette number="273" name="Apophysis-040427-51SpherInBlm" data="00908b6b001e191d00262025002e272e002c2b33002b2f380029323800273639 +002f363e002c3a3e002a3e3f003150460039634d004f82770065a1a1006fb0b1 +0079c0c2008be0db0084dacf007dd4c3007ac8a00077bc7d006ea76c0066935c +0052403e00452a360039152f002a1a20001c2011001c1f11001d1f11001b1509 +001d1508001f1d100029221000332711003c2f170046381d005b432300714f29 +0082715500a7775600cd7e5700c5895500bd945400a48b59008c825f006a6a6c +0071775b0098946400b19c6500caa46600ce9c6500d3956400c5906300b88b62 +007a727d0075767900717a75007a8f8e0083a5a7008eb3b3009ac1c000d4c7bf +00e5edd5008adad70080c0c60077a7b5006ca0a700629a990056967e00518b73 +0060959b006fa9ae007ebdc2007dc2c2007dc8c3007dcbbd007dcfb800b1d99a +00d3c69100e7c99500d1d39a00bbdda000a9d8a00098d4a1007acfbc0079ccb8 +004c75770038595000253e290022311e0020241300181c0e0010160c000c0a0b +000f0b0c00181619001e1c21002522290025232a0026252b0024242600171719 +0010150f000e120d000d0f0c000d0e0c000d0d0d000d0c080016120700161207 +00111107000c0b07000c0b07000c0b07000a0a0800090907000a0a08000b0b09 +000b0c07000a0a07000a0907000b0807000c0807000c0807000e0808000e0808 +000d0b0c0022272d002f2e36003d3540007d536b00a97c6900dd738100d48389 +00c7b27d00aec08d0096ce9d008dd8b30085e3c9008de9dc0089e3d7007ecdc7 +007ebbbc00555b6b004d5a670045596400365051003849510038424c0036404a +00303f4600333c4500373945002d3740003a303800444b2c0050502e00444325 +004040240037354000333a43002f4047002f40470032414800354d4d00475059 +007b795300998b5a00b89e6100aab66c008ec493006bb2940052807e0045666d +0032474c002b282f00161a190013151200141e1500151f170018231d001f2f2e +003d4b5600455f68004d747b0066a19f0076b1ab0080bebb008dc4a400b1db9c +00cada9c00d7bd8a00dcbc8900d8ba8600d1b68700c8b07400ccaa6200c4ac70 +00a59193007ca585006da781005a89670047714d00406e5400487151004f7453 +005583690064a0a00070c2ab0076bfa20068b1930058876500385553002f3942 +001f292b00151f1400121c13000f0f07000d0c0800100c0d0016121300171d11 +001b2c1c001e3324001f322c00273037002f2e3600332a2f0034342800433c20 +0031331e0021322c00253d300027463400324e3700395056005f6062005e6668 +00615a6c00414f5a003b384300303d46002c453f0033504b003e5e5d00508573 +0074ada40093c4af00bae7ac00d5d5c900c8e2bb00b3e0a9007cc8a20070b692 +"/> +<palette number="274" name="Apophysis-040427-51SunrisSpacTim" data="000d3f98004c78d7006f94c60093b0b600a9bfb000bfcfab00c1d7a600c3dfa2 +00cdeb9500dbf28a00e9f97f00eae87700ebd86f00eceb7300edff7700f1f673 +00f6ee6f00eca94000db9e3f00ca943e00b183440099724b008a7164007b707e +00789fe0007ba1e7007ea4ef0080a0d500839cbb00708bb1005e7ba700876e4f +009a813e00b09f7300adb59600aacbba009abbc7008babd4008caed0008eb1cd +00a9c9d400a1c6c7009ac3bb009bb0aa009d9e9900a6907c00af836000aa783b +00ba7a1800804c0000774300006f3b0100643510005a2f1f0054413a004f5356 +002b57b6003e6fd4005288f2006090ef006e98ec007299eb00769beb007da4df +007fa7da00a1c3cf00bac3a500d4c37b00ddbd5e00e6b74100e3a93b00dd9a2f +00c3841a00b5770d00a86b0000a7690000a76700009d610700945c0f0083683d +00a8855d00bddd9a00ccec8a00dbfc7a00e9fb7600f8fa7300f3e65a00f5c154 +00e5a73800cf9a3c00b98e4000a3853f008d7d3f00807060005d699b003163b8 +003c68c7004d79d8004f7bda00517ddc004e7ad9004b77d6004a76d5004876d4 +00355eb800415489004e4a5b00523b4400572d2e00421b3a00380e36002f0c34 +00261062006a5b5800725e59007b625b00827d6a008f97990093a9b4008fa9b8 +00917c6900a2855b00b48e4d00c2a14800d0b54400d3c37800bfd19700b7cea4 +008ec2ac009fab4500aba64000b7a13c00d2a33700cd8d2100bb7d0e00b17209 +007c4d09005e352200401d3b003112430022074c00021e5d00070e6900002082 +00042f8d002c58b7003763c200436fce00527cd0005e8bf0006f99ef005181cd +006b6155006e604500725f35007e4b12006e3c0100602f0000511d120051261d +00482b1d005d2a1500612f0f0066350a006f3d0a007b4904008d550000a16300 +00965d0300925504008e4e060078440a00532b210039263c0009227400113d9c +001040a2001541a0001642a10014409f00133888001d246a002f2d5200382e53 +00552e1f005f3515006a3c0b00824d070090570600936102009c630000a26600 +009c610000996102008e5c030088670a00915f2e008765490069604f0054627c +004366aa003665c1003166d000315dbc002b57b6001553ca000e4ed600023ab5 +001642a1001847a300294ba5004b497a0066535500684b390070501d005e4713 +005b2f1600542a1a00512c1a00542e1b00623520007f4a3a008a675100847361 +00847f590082755200756e520077642c008048190067310f004e2923003e1b39 +003d3745006e4239007c5536008568580076697b006486c600658fe1006f9be4 +007fa4be0091a6a100b3955700cea03e00d8982c00ca8a1e00c0801200b77d11 +00c0801e00c9891f00d4942a00db972a00d6922300cc8d0a00a27c2900ba8619 +"/> +<palette number="275" name="Apophysis-040427-51synaps" data="00aa966100c9e03800dfef3700f6ff3600f6ff4200f6ff4e00e7f74600d8ef3f +00b9b43600cac13c00dbce4200e5dc5700efeb6d00f1de5a00f3d24700d9c041 +00c0af3b00cc334700d21b6b00d8038f00ce2b6900c5544400c17d4d00bea757 +00b8c34100c8d04f00d9de5d00eaea6f00fcf78100f7f28500f2ed8900ccd153 +009aca06004ea8370057922600617c15006d7d1b00797e22007c7a2100807621 +0096a74100bcc15300e2db6600edeca400f8fee200f9fef000fbffff00fffbff +00fafdf400d1c8c100b2b1af00939b9e00997276009f4a4f009f505200a05655 +0070445d00852268009b007400b6008c00d200a400df05ac00ec0ab400fc14e4 +00f608f100ee07ad00f6117b00fe1b4900f8113200f3071b00eb062500e5245b +00e1b7db00e6d2e300eceeeb00e0c0ec00d593ed00d976db00dd5aca00ca21ba +00bd349e00a79caa00acabb700b1bbc500bfc0ca00cdc5d000daa4d500c1a8a3 +00c8777d00c34c9000be21a400c512a300cd04a200d9009100c6009500c50086 +00c0094100841502005e13140039122700330e28002e0b2900160d22002f1c32 +0020254b00201f4c00211a4d0028155700301161005a1653004f3042002f523e +002161490087654c009d634e00b3625100b89b5f00cb9a7a00ae976100826d36 +00472a2200341a1f00210a1c001a051a00140019002a0b000034240d005e3905 +0044480d003a560200384b0f0036401d001851000020710800165100000f3a1e +0047294d00623065007e377d00942b8800ab209300b00a9000a9127d008b475e +009a494600a9282300981a3700870c4b00b1008100d308bc00f120d300ff29f9 +00ff2eea00f222d700e517c400e701a100de0a9200f80b3900fb051a00f91d0f +00d4121b00b7006b00bf008700c700a400c609ab00cb17ac00af29a60098427f +005a453400423734002a2a3400243c3c004048550047305e00633363006e1f60 +00711c93007f177a0096046900a3007400ab006500d1093000d7011900b31023 +006e4d44006d5342006d594000a15e2700ac8e1200917e39008d565300aa0d78 +00c80b8c00d3089f00f022b300f01db800e71ebc00c133ad0098668b00848a66 +0050a27a002b7896002d6c6100254f5d0044324a00592c4000810d3400a3000f +00a8010800a10707009e011e00880051008c167400944c8c007b7ba1005db5b9 +008cdbd60052f5f20042ade5005eb9b00071995200b49a5d00c6a76400c7ba5e +00d5bb7e00f0d99300d39b8a00977d86007071610061616100595c6b008a677f +00b9658600c97c9000f055bd00de1ec100bd14ab00ae009c0097007600700469 +005c1c4100411c24003522420043512e005c5336006b463e00711c5d00681156 +004c06450035163800422f210050381e005d483500755e4e009a733a00c47d5d +"/> +<palette number="276" name="Apophysis-040427-51StPeacocl" data="001208c100212530002d1523003a05170065092200900d2d00a1063400b3003c +00e60d1500eb060b00f1000200ed030400ea060700ed2e0d00f1561400e85f25 +00e0683600c2a24f00a9bc2a0090d606006e9f09004c690d00394f0d0027360d +000a040000050200000001000000020000000400000806000010090100291121 +00260995001b44c00027377600342b2c00313a21002e491600354614003d4313 +006d500e00835f23009a6f38007d67500061606800655e7d006a5d93007f2c86 +004a0489000010e0001c0ddf00380ade004136ea004b63f7004b4ecd004c39a4 +00521e4500781a2f009e161a00b9101400d50a0e00dc070d00e4040c00e40309 +00f8010900f5010300ee060800e80c0e00e3231300de3b1800ef602800f27442 +00daa6d400c174bd00a943a700934f72007e5b3d00674b3000513b24003c3626 +00393d0b00112800000a150000030300000202000001010100080000001f0000 +004f0004007b000200a7000000ad020400b3040900d50a1000ca340f00c96237 +00a9923200dd554700ee874100ffb93c00fec03500fdc72f00f78c0c00e55f16 +00833a1a00582d0e002e2003002b280100293000001634000024500500348950 +0036cd6c0035ebba003dadab00466f9d00625f5a007e1f4700a8053400b50140 +00c6050a00ce020500d6000000c90f0000bc1e0000a2320a00a95e0000a88311 +009e7d1600599929003da0140022a700003bb53c0065b85c0046b571004bdcbb +007b9675008d785300a05b3200985a3900905a4000845936005f573300526d40 +00366d460060660000795e030093560600b1200500ce0a0000d7020000e10001 +00e3000900e0030700dd070500c71d0000dc3d0500f04a0000ef4a1d00ff520e +00ff6c0e00e0520a00dd560f00da5b1400c06b1a00b5461800a0531b00983a21 +004c050b0046050500410600002f000000290e0000261003001c100000241a0e +001a25170035370500343400003b2f0500382e0b004418190051372800793b24 +00d21e6800d4118e00d704b500901299006920a60078009c005c027d0039144a +00350419006a000e008a0007009e000000aa08130097060900870c0f007a3c0d +006d330e0065310000452200004a4204004c4d0b003c6d1e00346b440036533d +002a4e2a003c571400383d0500131f1500070007000100000000000000000000 +000000000000000000000100000100000003000000140000002d020b003b2049 +007c134b0076006d005c06750060136500662a6800634d3f0083582d00706126 +005b58250035503d0048463a00714f2c00893e1600c8541900cf450700db4400 +00d8501600cd523000de3c5100b6513f00a26a450094533d00ae354600b90e17 +00be030a00c1050600b5000700af000000ab000000930000005710220083051b +"/> +<palette number="277" name="Apophysis-040427-51TmplWatrs2" data="003a1f0a001e0c0200211d0f00252e1d002f301c003a321b003c371a003f3c19 +00683810008b401400af491900c7270c00e0050000b61a03008d3007007d390a +006e430e00663d1d0053280f00411401003d0a070039000d0036020800340404 +0017000800190504001c0b01002b1002003b1604004b2407005c320a007f330f +0084461d0085592800855f2f00856637008b773f009189480094914e00989955 +00bd9a5800d5915300ed894e00c9845000a57f52009c774f00936f4d00785b3d +0062513f00623b1c00663412006a2e0900754015008052210084542200895724 +009069320089733c00837e46008c7c4300957b40009b7c3f00a17d3f00966e31 +0099622c00a7683300a8682f00a9692c00a5622900a15b270094430e00852c02 +006e0005005b000300480001003d060100320c010034140400371c07003d2710 +0055311700866437009e7e4600b7985500cba06000dfa96b00efb38100fad58e +00eca66b00d5885000be6b3500b5642e00ad5d2800a15e2a00995e260091622e +0087582400874918008e370c00952500008e1602008707040082080300832f0d +009b663000a1713700a87c3f00a2783b009d7538009c5d2700a13e1400911e01 +006c030000511f14004e2b18004c381d004d4226005852300079593300825625 +00a74c1f00a5421500a4390b00a12c05009f2000009b3409009d3d13009e3e14 +00953b1600643710005b321200522e1400443715003c2b1b0038291400321028 +000f0037001f001e002f0006003b0004004800030062030100780002007b0100 +007c021900503a22004f462a004f523300575a3b00716336007e6836008d662b +00855622007e4f210078482000744b1d007f541f00885b2400906a2c009a692f +00ad6d2f00c6924900be7f3e00b76c3300b3592400914312006f2e0400591701 +005a00000058010000560200004f0000004c0c0200470d0100460e0100552705 +0060351300644622006a5c2b00696b3c007e7846008581410088874e0088894f +007c7f46007a7b4500797744005f584e00494a380045421f00344324003e3d21 +004d381b00683c1500794a1c009c5a2800b3662e00df7f4d00f0a86e00e3ccba +00ebecde00eeedeb00ebece600eceddd00c8c8ca00d2bd7c00c18b690099887e +00826555007b6357007a664b006f6740006b5e3c0059533b0054462c00543719 +005e2c07004e140000471700005e2d0d00744a1a00855d39008b764b00ac8e6a +00b9b47c00cfc67b00e2e39f00ebecda00ecede700f4f3df00edeec200eeeba6 +00eaeb9f00ecd99500e8c78400ddac6900a381440084603000654e2400442c12 +00321503003712000043250d005e3313007c61320095965c009cb06900bac782 +00beba7100b6ab69009f9a5800969753009d844400a78d5000acaf6800a89459 +"/> +<palette number="278" name="Apophysis-040427-51TeddyScare" data="00b099a3003bdbff0030c5ee0025afde002786e6002a5dee002649e4002336db +00266fd8002989d7002ca4d60026b5d40020c6d20025d1cd002addc8002dd8c7 +0031d3c600179dba000b7279000047380000282000000a080000090800000908 +00143f3500145e5600157e770012655e00104d46000e3c37000d2b290000000e +0001030200000000000000000000000000000100000003000000080300000d06 +0012575400186b85001f80b7006593ac00aba6a200b8a16700c69c2c00c9b520 +009e8520002791870029999d002ca1b3002db2c5002fc4d80045c4de005cc5e5 +00b3b7da0075ade30037a3ec002dbee00024d9d40025dad00027dccd0027dccd +0024d3c20027b4e2002795dc002877d6002559d800233bdb002a25e4002336db +00274cd900236bdf001f8be5001fafe0001fd4db0026e3d8002ef3d50024dfce +0025d7c90026afd90022a5c9001e9bb9001ca5b6001aafb3001caeae001d9188 +001e938300156f63000d4c44000a3c3c00072c35001307110003010400000002 +0000000000000000000000000000000000000000000000000000000000010002 +00180016001d104300232071001c22a0001624cf002336db001f3ad300233dd0 +0033188b00130015000a000d0001000500000000000000000000000000000000 +00000000000000000000000000000100000002000000060300000a0900002d2d +0013504b0011ada20017bdaf001ecdbc0024c7c4001da79a001d857e0010453d +0001050400000202000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +00000000000002040000010a0000001000002333001a3e88001250cb002d70db +0091828700a65c9600bc36a500c322bd00c026d200ae24b7008e148d0038033b +0020002400160517000503080001010100000000000000000000000000000000 +00000002000001040000020600040e0d000734370021728d001887bf001c6dc6 +001c33bd00363b8c0035113d0035012f0020041a000b00000003010200020c0b +0009332f00157359001b977d0013a0900014ad9b0019a1970014897700113b39 +0007121600010504000002020000000000000000000000000000000200000407 +000016140000332f00005560001b67a3001c8fc8002199bc001999ca0020a9d7 +0024a1d7001a96d4001a86de00197bd400225fd2001c4bd5004650cb006974e8 +00a182d200dadee700e2ebfa00fae0ed00c14fff00cb1bde00c71cda00bf21d6 +00aa21b7004b2f7c002f32650027193a001d051f0010040e0003070a00071611 +00083d3500137b720020a39e0021cab5001bdabb0017d6b7000fbba5000fa896 +"/> +<palette number="279" name="Apophysis-040427-51kaosGardenr" data="003b005000045157001b6a6600328476002aac610022d44c002ce2590037f067 +0053f15e0080f47500aef78c00d1f24800f4ee0400d3c53300b29c6300a8a869 +009fb46f0076c9790085c4780094bf77009fa46d00ab896300af785e00b36759 +00bb333500c91b3800d8033b00c4082800b10d1600a111220091152f00533048 +000400ad00000528000002140000000000000000000000000000000000000000 +0000010600000105000001040000000200000000000001000000020000002b22 +00006f110027c94f004bcb610070cd74004de16e002af568001df65f0011f757 +0020d0880015d2a1000bd5bb0020b28b00358f5b0055885200768149007e783c +00866f45007e5a4e0087644b00906e49009a744e00a57b5300b5906600e58495 +00f9a1eb00f994e000f988d600cc99a400a0ab730094b0740089b576006cbb6a +0064b559008b9f080096842900a2694b00b6804700ca984300ff896d00e8918a +00f378a600ef6d9d00ec629500de639300d0659100b17786009d71a600791bb1 +008904b500741b2d00830d1600930000007e0c16006a192c0046303200492c28 +00933917009a301300a22810008f310e007d3a0d00555b050016400000376f14 +005c721f0095554900a65d5000b8665800f1667900f75d7f00e6687d00eaa383 +00c8b885009dbe760073c4670067cd59005cd74b0070c46f008dcf7800b5c78d +00cfd99c00f1ecb400f3e2b200f6d9b100e9ae9c00f378a600ff72a400f3669a +00e3899200c09c83009daf750097bd790092cb7e0099cc7f00b1bc7a00cab67b +00d8988e00c47c6600ae715600986746005e6d2c00507213001bce4e0006e940 +0000ef430009f04d0012f1580032e75c0044c8510051cd510063b0520078b25d +0088855c00927d50008e8557008b8e5f007ca6670078c46a0083b96d0080ac71 +00796b6a00775b5f00754c5400af2f2400b12a2600bd373400a1373b00664744 +0042545e001c02a1005c00d900864ee300786ac100af7d8900b18c86009a6462 +00863d1400863d1200873d10008b351200a2211b009d361300b76200007e5b00 +002a280000080a090000030000030002001206000039393b005e544b00856e4e +00a7a16d00baba7e00bdc48100becc8e00e8c69900e7bda500d1ab7e00ad9b73 +00a4846d00b57c6b00c7666f00b76a72009480680091af690093b779008ed47e +0098e98d009fff9a00aefc99009bf778007dca6a0055ba5c00699d5d004a6657 +007664640096624c00c7663900f14c4600de2a2b00ba085400ca0ca400896e67 +0045bd5c000fe2450002eb420002ec3f0003eb3f0019da490037ca570071da7d +00b3e8a000def79900f2f0a500f3eca800eadfa900e9bca500eac8ac00f3ddb6 +00f4f0a600f1e0b200edb6a100ec859a00e85e8f00dd648d00be848300b39d6b +"/> +<palette number="280" name="Apophysis-040427-51Thatway4" data="006c371500d0a15900dbc66900e7eb7a00ebd79c00f0c3be00ecb1c100e99fc4 +00a27fe5009a78e3009271e200af9acc00ccc4b700dec28d00f1c06300dfa35a +00ce875100865b2e00814b27007c3c21007e4013008145060081430500824204 +007e370d0076430f006e5012007249160076421b00834e2000905b2500a66022 +00cd7b2500c5944700d8bd4f00ece75800e4c14900dd9b3b00d1893600c67732 +0087411d006d3310005325040030180a000d0b1000080e13000411170013252f +0066442900906a2100b2692800d5682f00c4642200b3611500a6540d00994806 +00833700008c38050095390a00874013007a471c0080471900874717008d4d0f +0088440300914100008c31000088220000822200007c2200005d220200481c00 +00101600000c0e050009070a0010090e00180b1200200f0e0028140b00582500 +007c360000974223008d4c2b00835734008a533400924f34009b4e32009a5130 +0076442300773e200078381d007d311800822a1400932e1200852d0700792700 +006b280000460a00002e050000170000001600050015000a0002001300040615 +00090024001002310017053f00150a3b00140f3700161630003e0c15005c1c00 +00742200005f0c0000560600004e0000005215000064280c007a271700823b0f +00a04e1c00a44f1700a9511200ac470900b03e0000b14a0f00d86f2d00e57239 +00ed844d00e9914a00e0904500d88f4000e7882c00da7d2d00b8661a00a3570b +00743f0000613e0a004f3d1500322d1d00161d250015131e00281a1a00623611 +007a370d00803000007c320000783500006a2e000067340900692e0e00712f0d +006d2c0e006c3112006b3617006f401400794e19007d5319009a5f0f00ba7927 +00ca843c00dc833f00e3894400ea8f4900f4995000ffa86c00f0ad6600d8b283 +00e8e5c200e8e7d300e9eae400e9e8bc00d8cba900d1d3bd00e7e1ef00f0e2f1 +00f9d7f800ffe1f800fcf1ef00ffe5be00dfc48f00b59d5700a07b2b009c5a28 +0098491e00984b1900994e14008c4c1c0085532200884c320073442600664524 +0062401a0068371700613214003b090a0020060900190600002a060000331700 +004f310000633000005f2100005c2200004a1300003811000022040000140000 +0012000000000b00000e0d00001107050009061100130512002f1111005a4526 +004b4768007c6079007a7fe300616fec00755ef400522feb0043245f004d0954 +006c2d4c0079371f00943e1b009e4c1400a0470d0096421300883c1c0079391d +007b3c1b008e401200a8502200bb6a3d00e5965b00fddd7800f2e87700e7f267 +00e9e56700c0aa6e00bc7b5b008e5f35007946310060481c005d3e1000321809 +001a140800141a1600613a1d006a4c2600763f2a008e4e2b00e27d3900ad591d +"/> +<palette number="281" name="Apophysis-040427-51ThatwayGrn" data="004f420d005333000064370000763b0000774100007848000077480000774800 +004e370500423005003629060038270a003a260e00463d1000525512004a6d27 +0043853d0043853e00417d3d0040753d00435221004730060044290300412300 +0046350100455f19004589320043903300429835003f9c34003da034003ba334 +003ba334003aa134003ca134003ea135003da034003da034003d9e34003e9d35 +004086400043804500477b4a0048794e00497752004977520049775200497752 +0049794f00449435004296350041993500429735004495360046923600498f36 +00905a00007d6206006a6b0d0056772700438442004383460044834a0047814f +004a7f55004b7857004b7756004b7756004b7756004b7756004c7a56004c7759 +004b775600447952003d7c4f003e844500408d3b003f9139003f963700439435 +00428d3b0046923700429537003e9838003f9a3600409d35003da034003da034 +00419935004396350046933500557b2200656310007a5400006b390000552a00 +003c2000003522010046260100582b02005f3101006638000075400000764701 +005c54160050672e00457b4700405630003c3219002d201000251c0b00201207 +002d200d004676460047774b00487850004c775b004b7864004c7764004c7764 +004b7a560073732d009b6c04009e720300a27802006889300047923700469237 +0044883d0043853e0043853e0043853e00437e4400467845006d4511007f5200 +00944e0600894603007e3e010071390200643403004c1e07003f1d01003a1600 +00361502003d1c0000421e02004821040067380400834900009d610000aa8500 +00a2942b007c982700569d2300489a3800429a3400419c3500419c3500409b34 +00419c35003f9e36003e9f35003ea135003ca435003ca435003ea135003f9e36 +004298350043943500459136006a7620009a6c0000a47300008f6c100052765a +00507762004e7864004b7766004e7864004f775f004b77560047784b003e4613 +002d1c00002c1803002c150700251305002d1103002f15000031220100383002 +004a360000623901007b3b000080450000825600006c623100497750004c775c +004b78640048786c0049776c004b7766004c7764004c775b004977500047784b +0038390f00332808002f2408002c2908002f2c0b002f320700354101003c5b22 +0047784b004b7f59004b865a0047814f0040863e004494350043973700439735 +004494350043863f00497c51004c775b004f775f004e78620050776200507762 +005077640050776200507762004e7a61004b7a5800487f550045824900418b40 +004494350044943500448d3b0046853e00437d43005c4712003e281300331d08 +002e19040039200100492e0100693a0400835001009a630000b2a03e00aa7c02 +"/> +<palette number="282" name="Apophysis-040427-51TreeLife1" data="00c7901100291e2c00593e24008a5e1d00a1731a00b8891700be8f1e00c59526 +00cea93e00d6bb6300dfce8800decf9400ddd1a100cfa97200c1814400bf8535 +00be8a2700ad780600ac770400ab760200a66f0100a1690000a2660000a46400 +00944c00008e440000893d0000832b00007d1a0000741600006b1200004a001c +0021001d0007060c002d0a0900540e06006a1e0300812f0000893c0000924a00 +00aa710600b07a0800b6840b00c28e1100ce991700d1a01c00d4a82100d6b52a +00e4bd3200eed44100f0d54400f3d74800e9c73e00e0b83500d9b13300d3ab31 +00c3931700bb8a0f00b3810800ab730600a46504009f5e02009b580100954d01 +00924a0200985101009b5a01009f6301009e6201009d610100905700008a4400 +007445000074410000753d0000793400007d2c0100792a0000752900006d2a00 +007d2c01008b3d0000955101009f650200a46c0400aa740700b17c0a00b6840b +00b7850c00b8870a00b9890900b9880a00b9870c00ba880d00be8c0f00c49513 +00d0a21900ddb42800e0b82c00e4bd3100e1ba2e00deb72b00d8ac2500d3a222 +00c6971500be8d1000b6840b00b07d0800ab760600a0640200944c00008a4000 +008a3d0500914d06009b5b0500a56a0400b5820c00c18f1600cc9d1900d3a51e +00d3a72000ce9f2300c9972600c3911b00bd8b1000ad780600a16107008c4310 +007023070036041d00370d260038162f00201d2400312334002b2f5500503467 +00444d4c00524e5900614f670068555400705c4100935f2d00a5690900aa7407 +00b6840b00c08e1100c4931400c8991700cda11c00d3a51e00cb9f1a00c59614 +00b3791600ad742100a7702d00b08aa100a599cb00a89cce00ab9ee400c9c9e3 +00cfc3d100ffe69c00faeb8e00f6f08000f6f87300fef55c00ffeb6000ffe961 +00efca3b00edc93a00ebc83a00edc63b00e8c23d00e9cb6900d3a29b00a06567 +0091582d00834a1f008b4112008a3f0500893d0000863f0100863f0100893e00 +008331010082300000812f0000843401008b3f000090480000934e00009a5b00 +00a1650300a46d0800a07d0000ad7c0300b6840b00c08e1100cc9d1b00d19f26 +00d6aa2300ddb62a00e4bd3100e5c03100e7c23500e8c13500e3bc3000deb529 +00d5a92200c99a1800bd841300a36a1000764c22005d455d006e596c00724b68 +0080463200995e1800a8740600ad7a0700b5830a00af7c0700ac770500a86a07 +00a959040096410000802e0000752300006d1c00005800000041001a0021001b +0008000f0026051a00620e0300741a0f00751d0f007a2b1c006f5e6e009583b3 +009f91b400837086009e617100a7632600b07b0b00b5820c00bc8a0f00c59710 +00c7a41200d5ac2000eabd0c00ffc52300f0c92c00e5be3200dcb02900d2a120 +"/> +<palette number="283" name="Apophysis-040427-51TreeLife" data="00a0550200a25602009f5406009d530a00a1570600a65c0300a75f0200a86202 +00a45a03009d530200964c0100904500008a3e0000843700007f3100007b2e00 +00782b01007628010077270000782700007b2c00007f31010082350100863901 +00996e4e00ba987900dbc2a400ead18300fae16300efd14d00e5c13700d09d1e +00a9620800863901007c300000732800006f2300006b1f00006a1f0000692000 +006e2401007226010076280100782c02007b31040080340200853800008b4000 +0092450100a1550700a4620300a7700000a46f1c00a26f380099693c00916341 +00a26111009a530d0092460a0085390500792c000074280000702400006a1f00 +00621a0100601800005d1e00005a2400005f220000642000006f250000782b01 +0088421100a0683a00b88e6400c4a28d00d1b7b600e4d09b00f7e98000fff582 +00fcee7400fdec6800fae96800f8e66800f6de5e00f4d75500ddb03100b9812e +009a4e020090420100863601007f300300792b050076270600712a0e006f2309 +006c2101006c2101006f240100732801007427000075270000782b01007b2e04 +008437000085390000873b0100863900008538000084370000833400007d2f01 +007f2e03008437010085390100873b01008c4100008d4700008d5200008d4800 +00823501007c2f0000772a00007529000073280100712501006c220000682101 +00692000006c2101006c2100006d220000702400007426000075270000712600 +006a1f0000671c0000641a00006219000061190100611901005f1c0200621a01 +00661c0100681e0100681f000069200000681f0000661c0100631b0200621900 +00601800005f1700005f170100601800006018000061190100661c01006c2200 +0073280000873a02008c3f070091440c00974c09009c653c00b1865100caa998 +00dccbed00dbcbee00dbcbf000e1d3ca00fcf88a00f3de5f00d3a21f00d58514 +00bd731400a45d03009b4f0100944b0000934900009147000092480100944703 +0084370100803301007d2f0100782a00007628010074290100732b0000772a00 +00792c00007e3000008434000086390100823f08008c460b008b481400927a4c +00c6a48800cfb4bd00cfb6cc00d3bec700e0cbd400ede0e700f1f0ad00f7df65 +00dcaf5200b7844500a55e0e009a4e02008d3f00007e320000762801006c2101 +00661c01005d17000055120100460e0000460a00004b09000057130000601800 +00671d00006e240000762900007f310100863a00008b3f01008e4300008f4400 +00904202008a3e02008b3c0100893d0100873b0100863a0000893a01008d3b00 +0091440000964c0100a0580300a9660000be7f0d00c78d1000cd981800ce9719 +00c8881c00b06b0e00a3580700964808008e39000080330900822300007d2404 +"/> +<palette number="284" name="Apophysis-040427-51triflwr" data="00693a04009b5b04009d5e0c00a0621500b1653c00c2696300bd6d6d00b97278 +0094651500603d11002c150d00160b06000001000000000d0000001b0001223c +0002445e0001396a00395b9300727dbd008199ca0091b5d7009ec3d500acd2d3 +00735f9c0064367c00550e5c002a093100000407000002030000000000010000 +000600000071240a00804105008f5e01008b6e0300887e05007a8006006d8307 +00287501002874000029740000476b0100666302006653040066440700734a14 +005d482d006b374e00845368009e6f8300b29f8f00c6d09b00cccbad00d3c6c0 +00b3939e00b2898e00b27f7e00ab8c9000a59aa2009a95ac009090b600758bc5 +003657ca002e3bc7001723b400010ba100001c8a00002e740000327100073781 +004264d2005789de006dafeb0088bfe700a3d0e300a0d6da009edcd10094b2cc +008074a200362dae0026348000173b53002b413e003f482900574e1300805507 +00995001008f2e0000850d00008e0a000097070000ac0017008c002500880f04 +0089300400714715004447300017474b000c485200014a59000042620000346e +0050177e00642a7400793e6a0086415e00934553008e641000965d0600a25402 +00aa4d0000aa530600a74d0300a448000090381200810f1900720d2b007c003e +00b90b2200cd101300e2150400e11f0500e0290700b04a0000ae4c0100a55405 +00985c0600665f290046552a00274c2b000a514d00003271000b009f001200a8 +000005b700090fbc001219c1001318bf001417be00001e8800013c6800164f48 +003c670d007f810200847d0400897a0700965d06009d570100a6530300a35201 +009645060087381000782b1b00711b4c00510366002f146300132b6700263749 +0001060a00000000000300000007000000443b1c006c4504008b670600887807 +00856a0000725a0800604a1100414520001d4f2a000e55470004545d00106953 +00066b3100016c1a00016e13002a7a25006f600d00915e05009c5b0900a95306 +00db4b3100e05c3a00e56e4300e6542f00e4460700b04c0000ad510600bc6047 +00d78f6700abc0af00addfdc00ade4de009cf4dc0095ebff00aee9f100aee7f0 +00b2e2ee00c6caf000cbc6e400c2e6dc00b4e1cd00c4beae00afa4a000b6778a +008f426e008022570089215200881c5000961e3900a7244400985d1900a95306 +00b3610000d5651300e9744800ffbb5200f5ffac00e8cbf700e8b2fd00ef9fe4 +00ddc7c900d7a99900e4794b00df781300e05d0b00ce550200b04c0100aa5b00 +00a15603009b580100984f00007c36020081230000830d0000800c1f006a172b +004b1c3e0034077000280891000f029000180b7f00402258003f2d3b0049441a +007845040094510300a44e0100ab4e0000a7450000ab273e007f406b00883762 +"/> +<palette number="285" name="Apophysis-040427-51mitosis" data="004e526d0071314100542e2d00372c1a0035301d00333520002d312600282e2c +002d2534002f2c370031343b003b485300465d6b00607786007a91a100889cac +0097a8b80077a5bd0077aebf0078b8c200a3dbd600ceffea00e0fff300f2fffd +00fafaff00e9d3d700d9acaf00e5a78600f2a35e00f4955c00f7885a00f08247 +00ce956a00b4628600cc625c00e5633200c85b3300ac533500a34a48009b415b +0071657300767175007c7d77008b8a85009b9893009a9d9c009aa2a5009590a4 +007e818a00525c5d00404a4a002f3938002f292f00301a260033171c00361413 +0033050700590703007f090000970b0500af0d0a00c21f2600d5324300e92114 +00d31505009f220c00a12d2a00a43848009c364800943549007b5347007c212a +0050182100430c1000360000001e0100000602010004030000030400000f0402 +000e040500101f1a001e242a002d2a3b00333145003a3850004f4a6800544e6a +0042415300373b45002d353800263030001f2b29000f1e17000a080900080600 +000e060400161a0c001d230a00252d080024350800233e0900303a0600353b39 +005a657b005b798c005c8d9e005b8295005b778c0069758f0060708000596980 +0059746b003f717c00416f7500446d6f00516870005b617b007e608600a36fa0 +00bfb4c400c3c3c900c7d3cf00dee4e700f6f6ff00fcf9ff00fcfdff00fffbff +00fbffff00c4d4d300b5c5c300a7b6b30097969c007c74890062606d00505654 +002a3b330025353300213033001d2d2b001a2b230015202400140e1a001d0e15 +001e1d1b00361c1b003c1a1a0043191a005a202c0042332e003d465700575560 +008d628d00956592009e6997008d5477006a4f7200574e6900455356003f4247 +00303b37002c333d002d3a46002e4150003b5c51003e5865003d6e75003c5762 +0029333f0027363a0026393500273d310030403500354c440055555300707149 +00717167007d7f7c009e9c90009eaaaa00a1a5ae009e95b2007f99960072789a +007999b2008fa6b200a5b3b300afbec300d2f9f800f1fffe00f7fffe00e4edf2 +00beadd700948aa2006f638b00646965004363560032494100313e370038413c +003d5643003a67520034666d00467680004c828e0054738500506d7f00477582 +00477582004a6e7a004c647000464e61003b384b003a273a0050292c003d1418 +002f0809003b000200260402001a10190025262800273039003037490042445b +005c5b69006781740080888b008e9da20082ac96007e938c007f746e0073583d +00433e3b00322d310025312d002229220019221f002224190018310700112800 +000f140000080f0000060600000e040200170302002701000026050000300b02 +00331515002721210015201c000d1110001b0c0f00231723001e1b26002d1f1f +"/> +<palette number="286" name="Apophysis-040427-51triflwer" data="008e6805008c6c0900796f0a0066720c0053492b0040214a0058496700717284 +00a0cbba00a3cfcd00a7d3e00090c8e5007abdea0079c8f20078d4fb0085ddf4 +0093e6ee00cbedca00c9d2c400c7b8bf00b3979d009f767c007e6e49005d6617 +0000317300021c800004088d001b189e003228af003a44be004260ce00638bd0 +0095a3d400eaebcb00e6dbc200e2cbb900dadd8f00d3ef6600dfdc7800ebc98a +00d75e0d00d2670900cd700600c3690300b9630000b3590200ad4f0500a75202 +00a54e0100b6410000a32a000091140000871402007e140400840c07008b040b +0076003d00550d4c00341a5b00281057001c0754000f052a0003040000000000 +00000000004f3622005f34140070330600782503008117000081120100830705 +006c0439004d1373002f23ad004733ba005f44c7005c43b2005a439e00593e9d +00632f820061328200805485009f768800a1758500a3758200bd857800bc5b3a +009b5b04009a5903009a5802009b5401009d500000a94d0000b64a0c00bc3e42 +00a55e70005e5da900676eb2007180bb007894c8007fa8d6009cb2c0007188be +005d59a50071609a0086679000865f8a00865785009f4e5d00a2284f007f340d +008f3302007a450f00773c150074341b005413350022334f0008425800076354 +0005584e00065d3800086222000759390006505100083f5d000b3e5d00003c68 +00003c6b002a1a590030195800371957005339220074160c007f0d15007c0034 +007d094800742b6c006c4d910070508f0075548d0082628b00856f9d005a439e +00112eba003f67e000506fd1006177c300a0aeb100d2add600e6d79400e7c993 +00d3614700d25d4500d2594400d5513800c2414500b9333c00a92a45009b1e48 +00a3072e00aa011e00a40125009e012c0093002c0085002d007d0f1c007c4119 +00856100006f65080059691000335a1700124351000e346100041b85000a068e +0019038a002100950032007e0052186c00852759009c2751009c284f00bf373b +00f84f0a00e0590800c8640600a4550600975a0100955c020085580300773a01 +00543f14004f4b1e00434a170008050000000000000000000000000000000000 +00000201000210680000257d0002098e00040093000b009a001000960016019e +000600b1000d24d2000126f9000030dd00120cb4003e0a8900451a4500704319 +0093480700a35a0b00c6766f00d39e7400cc8f72008c59680038323c002b3a3d +000202020000000000070e000050500a006a800100628100004c7c0400467c02 +000a611300016f10001e7e1c004e7e06008283010085810300897c09008b7005 +00925f0600965e0700a0580600ab4f0200af470000b8470000b04c0000a84d00 +00a35000009a570000965801008c590000753a00006f280a003a0c0000000000 +"/> +<palette number="287" name="Apophysis-040427-51yggF" data="002f302a0040413b004c4d4700585954005a5a5d005c5c66005d5d67005e5e68 +00646560005f605b005b5c570051544f00484d47003d413f0032363700303234 +002f2f31002a2927002a2a26002a2b2600292a2600292927002b2b29002d2d2b +003635310034372f00323a2d0032362e0032323000322f2e00332d2d00342a28 +00302e2f00383b400040434a00484b54004a4e58004d515c0052545e00575761 +00545e530051574f004f504b00454646003c3d4200393a3f0037383d00353439 +00323136002e2d32002b2b2c0029292700242425001f2024001f1f2400201f24 +0016151a000e101200060c0a00101310001a1b16001c1c19001e1e1c00242422 +002a2b260036382d00383a31003b3c36003b3c37003c3d38003c3c3a003b3f40 +003b3e47003f4143004445400040403d003c3c3a003b3b39003b3b3900383836 +00343432002e2f2a002d2d29002d2c28002d2c29002d2d2b002e2e2c002e2d32 +002d2c31002a292e0027262b0026252a0026252a002a2a28002b2b2d002f2e33 +003231360032313600302f33002e2e30002b2b2b00292927002424220020201e +0020201e00252522002a2b260030312c00363732003e3f3a004a46430051524c +00545550004f504a004e4e4a004d4d4b00494a450049494700494951004b4b55 +00595c630070696500877767009f784400b77a2100af6d1600a6670a00794803 +00684408006c6f7800797c840086899000a3a2a700b8bab500afbeb900a7a6ac +007f8085006f70700060615b0060615b0061625c0075757700878d83008f9094 +00a6a5a100b9b9c100cdcad400e2dce800fbe5d000fee0c800f2d59d00f3bd81 +0090937e0083857f00777781006969670056575200494947004444420040413c +003c3d38003a3b35003a3b36003b3c37003b3c37003c3d37003e3d39003f403b +00434341004445410046474200474843004c4c4a005d5c58006a6b66009f8165 +00d7a25e00d8a56600d9cdb500e2e3e700f0f3e800fde3c800fed9bc00f8c48b +00b4801d0095620e00764500002f312400252523001b1b1d001a191e00181a17 +001d1d1b0023232100282826002b2c270030312c0035353300393836003a3b35 +003b3c36003a3b35003637320033342f002f2f2d002c2c2a00292e2700293029 +002e2f2a0030312c0032332e0033342f00333331003232320031323400343338 +0036353a003b3b39003d3c38003f3e3a0040413c0040423d0041413f003f3f3d +003a3c3b0037363b0035343900323136002f2e33002d2d2b0029292700252523 +00232321001f1f1d001d1d1b001d1d1b001c1c1a001c1c1a001d1e19001f1f17 +0020211b002323210026262400282723002c2b26002d2e2900343530003a3b35 +003b3c37003c3d38003e3f3a0040413c003f403b003b3c370039393700303435 +"/> +<palette number="288" name="Apophysis-040427-51Gwrap" data="0000000000000000000000000000000000000000000000000000000000000000 +00a7701d00c88b1b00e9a61900f2b03e00fcba6300f5bc6000efbf5d00f3ba5a +00f7b55700a0926b006b827a0036728a001b7f7400008d5f00109a530020a748 +00b5ac8b00866e7a0057316a002b183500000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +00000000000000000052351a00a46b3400c2892400e0a81500fa970600ea421b +00dc241c00ed1e1b00fe181a00e90c1500d4001100981409005c280100000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +000000000067313e00b2732c00feb51b00fab53900f7b55700fab75c00febc1d +00ff980000c66b1a008d3f35006f39380052333b000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +00000000000100000084382000b05a4b00cb5a4c00b84f3900ae3e2a005f351f +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000031463f00a6927700c5beab00fffff300feffe0 +00fdff7800fbb85f00ff393a00be061e005c252b000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000010101004b76490067ca00 +00aabc4c00bebc6700b999340082682f002c2f00000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +"/> +<palette number="289" name="Apophysis-040428-1Gradient1" data="001c9d49001f8144000f40220000000000000000000000000000000000000000 +0016620000198e04001cbb08001aca040019da010019da010019da010019da01 +0019da010019da010019da010019da01001cda04001fdb070020db080021db0a +0014b44c00199e49001f8947001f444c001f0052001e005f001e006d002000a2 +001a00a6004b008300751d62009f3b4200ac654400b9904700c18f2a00ca8f0e +00ff370000e4341e00ca323d00a5552c0081791b00968b1100ab9d0700ecda0a +00f3e00a00f3e00a00d8ba2800bd944700a38a3a0089812e008c7e3300907c39 +00969042006d965300449d6500374e6a002b00700037007c00430089003f009a +00370091000d3524001277120017ba010018ca010019da010019da010019da01 +0019da010017be010015a30200169a050017910900199729001c9d490038a960 +0049a26900cf972900e1bb1900f3e00a00e2c12400d1a33e00f1e9da00ecf8f0 +00f3e00a00f9db0500ffd70000ffc40000ffb20000ff840000c95b0000d5333f +00cf002300ff090000ff3f0000ff760000ff900000ffab0000ffd30000f3e00a +00f3e00a00f3e00a00f3e00a00f3e00a00f3e00a00ffc80000ffa00000ff8a00 +00cb911200c3922f00cd693d00d8414c00d1283400f2000a00cc002500cf323c +00963a42005a4329001e4d110017510b0011550600114a06000e350700000000 +00000000000000000012120d0024241b0026441a003d3d2d004c3d0800204912 +0000000000000000000000000000000000000000000d4a05001281040020bd0a +001cda040020db090022db0b0025db0e0049be360042c36f0088ec7c00b7e3c7 +0049b36e0049b16d0049b06d0049b06d004a9b69008d7537009f3b4200bd3741 +00ca343f00da4c5600d2269f00cb00e9008b00dd007f00e90049009d0037006d +0000000000000000000000000000000000000000000e3a0600125606000c7100 +00137904001f934a003eaa640044ad690044ad690031a55a00336d27001d520f +002f5000002c5500002a5b00002e801f001f934a0020a6500025a050002d881d +0017910900117e03000c71000013820500149c020019be040019da01001cda04 +002bc8000062ae0000decd0900f3e00a00f3e00a00f3e00a00f3e00a00ffcf00 +00efab1500cb9112008c842d0040a534002dad1b001fd609001ecf0800479e00 +00685d15005b5b4400486f5c00763a3f0099004a009f004600a9003e00b0002d +0085161e00624c1300136f0500149903001ecf080021db0a0029c914002fa558 +0042a3650047a268007190810098914400c69b4500d1a23d00d1a23f00c99d45 +00d0bcb500ad897d00a13b43007a3a3f0083151e0049080d0075121900803d25 +007e691600a2370000c51e2b00ca002700c0002e00bf2b3600a9771e00a93b43 +"/> +<palette number="290" name="Apophysis-040428-3Gradient2" data="000061d8005295b3007399ac00949da60092908300908461008b856300868666 +005b5f5e005b5f5e005b5f5e006563560070684f0080724500917c3c00776430 +005d4d25003636280046484000565a590089838400bcadaf00bbb7b900bac1c3 +00f4d8d800cec0c000a8a8a80068729c00283d90001f288c0016138900030080 +0003008000010025000000120000000000000000000000000000000000000000 +00000000000000000000000000070705000f0f0b0012120d001515100026261c +004949360074ba84009bb68300c2b38200c39f4e00c48b1a00b7811d00aa7820 +00684e1800413419001b1b1b000e0e0d00010100000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000404030008080600161610001c270f00236500 +0040b20000d7211800b91515009b0a1300890c1500770e170040050a000f0f0b +0000000000000000000000000000000000000000000000000000000000290801 +003b2500002c2c21002e2e220030302400383e4200493590007e405f00b48161 +00caae8400d6bb8d00e2c99600e9c88a00f0c77f00ecb03c00e4940600ff4500 +00fd281300dd0c1a00be060d00a0000000910f1200612d1e00614e2700575741 +0059784900557c470052814600386e44001f5c4300055000001e1e16002a2039 +003611710016138e00290b8a003d03870052088f006e058d0056048900440072 +001715250017161b00171711001616100018181200370f160072115900a80667 +00b20e8000500587002a04830004038000010024000000000000000000000000 +00171711001f1f1c002727270034275b00420f7d003b3797003a389c0071797d +0087959f008a8e91005b5f5e003030300026261c001515100000000000000000 +0000000000000000000000000000000000000000000000000024070100462d01 +00583800008f5f0300c4820400e4940900e4960d00e8a32a00e9ac4000beb24c +00928d61007a7054007c433f006f4e1b00a8101400c5332600a1594200b97f60 +00d4827d00f5a2a800e4bc8c00d1bba000bfbd9900d2c49800fcca6500eeb947 +00f7af3000e9a12200f0a11100e6920000e6920000ff540000ee070000e80b1a +00990813004b060c00290801000707050000000000010101000f0f0b00131313 +00001057000037720000715000528343005ab22800639756005a8a4f00575741 +0044402a0039392a005b3f2e0094334200b109a900cd09a900cd09a900ce09a9 +00ce09a900d941a500d8787700d88f1f00e0940e00c97f0000a77c6900bb8d3a +"/> +<palette number="291" name="Apophysis-040602-1" data="00ffffff00ffffff00ecd6d300daada700b8a69e0096a0960096a0960096a096 +008c968c008c968c008c968c008c968c008c968c008c968c008c968c008c968c +008c968c0061533900686554006f776f007d867d008c968c008c968c008c968c +00949e9400959f950096a09600919b91008c968c00867f670080684200a13b13 +00d17f0000b67d6c00a1897c008c968c008c968c008c968c008c968c008c968c +0073613900a0643300ce672d00b5795a009d8b870098938d00939c930096a096 +0096a0960096a0960096a0960096a0960096a0960096a0960096a0960096a096 +008c968c008c968c008c968c008c968c008c968c008c968c008c968c008c968c +008c968c008c968c008c968c008c968c008c968c008c968c005d635d005b472f +0003090500010402000000000000000000000000000000000001010000190900 +00472f0d0085533c00887464008c968c00919b910096a0960096a09600b8a67e +00ffedae00e7ddc200d0cdd600b3b6b60096a096008c968c008a948a00575d57 +00011c750096a09600cacfca00ffffff00ffffff00ffffff00ffffff00ffffff +00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff0096a096008c968c +005d5c3e002b2316001b190b000c0f0000010300000000000001010100040300 +003c342700646559008c968c008c968c008c968c008c968c008c968c008c968c +008c968c008c968c008c968c008c968c00575d5700342925001a150f00040402 +0000000000000000000000000000000000000000000000000000000000000000 +000000000001010100010003000100050001000900110f3600263a6c0067736b +008c968c008c968c008c968c0095977f007a837a00733c2800611c1500160808 +0004000200010000000200000004000000160000004502130072151000665038 +008c968c008c968c008c968c008c968c008c968c008c968c008c968c008c968c +008c968c0096a0960096a09600d4d0c800ffffff00ffffff00ffffff00ffffff +00ffffff00ffffff00ffffff00ffffff00ffffff00d4d0c80096a0960096a096 +0096a0960096a0960096a0960096a0960096a096008c968c008c968c008c968c +008c968c008c968c008c968c008c968c008c968c008c968c0096a0960096a096 +0096a0960096a0960096a0960096a0960096a0960096a0960096a0960096a096 +0096a0960096a09600d1b6a100ffffff00ffffff00ffffff00ffffff0096a096 +008b948b005d635d00304040000b11350000177500001777000315770002166d +0001000900000005000000000000000000000000000101000003000000070000 +003815020075412b0096886b0096a09600ffffff00ffffff00ffffff00ffffff +00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff +"/> +<palette number="292" name="Apophysis-040531-100figurine_2abcd" data="00d29f8a00dcb69100d1b29800c6af9f00d09f9400da8f8900d37b9b00cc68ae +00cf399a00be3a7f00ae3b64008e2e5f006f215b006e265a006d2b590074295c +007b28600085367700863d8500874494007b6397006f839b006b86a400688aad +006182a5005b7c9f00557699006463940073509000805384008e567900b1746f +00be878200b8b79800be949900c4719b00bc4eba00b42bd900a426be009421a4 +00492474003b155f002e074a002c0543002b043d002b043e002b0540002c0440 +00350849004f1f5b00632f6100784067008c4a6700a1546800aa536900b4526b +00b0466c009f3b68008e306400752761005d1f5e005b245f005a296100454d50 +003b4d7300506a9b004d6b95004b6d900046658b00425e8600465c8100394b79 +00374a740040537900495d7e00586b7f00677a8100597286004c6a8c00485393 +004e2b6d00441b5d003f1356003b0c5000390b4d00380a4b00380a4a002e2a4b +00303464003d2c6b004b2572004a22700049206f00521d65005b1e59006b285d +00753265008e3a7800982c8200a31f8c009b277a00942f6900751f68006d1f5d +0059177100480f64003807580038085600380a550039095300480f5300550e50 +005c1849006c1d560077215a0083265f00a0436000bd5a7700cb5a8600cb6273 +00ce757b00d07f8300d28a8b00d2898500d2887f00cb7f8300c7838400b67788 +00a3839000878cc4007e91bb007597b3005c7697005c4a74005a2f6500511f5c +00501a6600491a6200421b5e003f1b5f003d1c610030406200374a72002d355c +002b28530040175900441757004818560050155900561b5b006426590071325d +00cd307300cb308c00ca31a500bc38d900d73ce000cd67d500c072d700eca4ca +00efaac700ccc6d400ccb7c300cda9b300a679a200845a8a007d3e6d005d2f60 +003f0f4d003a0b4b003608490039094700440e4a005b1553006e245f00953871 +00b7567500c26e7b00c5737f00c77b7f00c06f7e00bd698000ac687700905873 +00864364007d3b600074335d006d2f6200682d5900632558005d2c5b00652f61 +006c3f6600734f75008c546f00a5636700b86a7a00b5778200af7e82009f5e76 +008f446f00853f64007e3060007d3b5f007b486900864f6e0098478c00be309e +00b34cb900925b9e00886c9d00838cb5006583a500605f7f005846760052286a +00561f58005a1d56005b1e5900631e5700651f5500671c5700651b5600651959 +005e1857004e1655004614510047124a0042134a003e0c4900360a47002f0544 +002f0642002f06420033064700370648003a064800390b4c004a0d5000580f54 +005f135100571e510050205a00481b5e0044136e0042116d0038095900310751 +002e064c002f074d003608510045155100551f59006a3c6300915b7200a16d79 +"/> +<palette number="293" name="Apo-040627-1_chickadee_pix" data="0094786d0082675c00735f5e006558610067535100694f42006a5043006b5144 +00856c6500807073007c74810086777800917b7000907b7300907b7600907b79 +00917b7d00937a7300a78f7100bba47000c3ae7f00ccb98f00ddc5a500eed2bc +009e89860088756d00736155005b493e00443228003b2b230032251f00211404 +0017090000050001000301010001030200060403000b050500140f08001d1a0b +0057391d00775c1900977f1500b0910a00caa30000bfa00300b59d07009a8d1b +009c6f2c008e73680094776c009a7c71009a7f74009a82780099807700997e77 +00967a6f0094796e0093786d008e726700896d6200876b6100866961008a6c61 +008b6f640094786d0090766d008d746d008c746e008c74700089726c00846962 +00735851006b544b006450450057453c004b3a330044342f003e2f2c003c2e2d +003c323d00342d2700382c24003d2b21003b2a20003a291f00342721002b2120 +00271f0c002620140025221d002a2422002f262700392b22003c2e23003b2e28 +004032320043374300403644003d36460042394600483c460056413c00574338 +004c3a30004030260035271c002c211100231b060019170a000d080500070101 +000300000000010000000000000100000005000000050100000c080000141200 +0031220f003c2c1b00483628004c3a2d00513f3300614d4200654e4800675048 +00755c5700826459007d605100785d4a007b553e0094711f00b87f16009c6d01 +005a4502003e2b020023110300210c01001f0700001806000013010000110400 +000f0500000d0600000e0600000f0601001507000020160000261100002e2200 +0037271a0037281e00372a22003a2c2100382b23002d22200024170f001d0a0c +0009080d000a0600000905000009040000090100000b010000100800001f0a0f +0030272800352928003a2c29003b2d2a0047332a004d3d3000624b3d00684d42 +006d5247006f594e00775c530085695d0098776800a4857300a0978e00b29ea7 +00d7ccd000cdc3c400c4bab900aba29d00918670007f675b00735d5200644c40 +004f392c0046301800332518001d1a13000f0a11000b060300060501000f0a06 +0024160d0039281e00483527005e433000694f40006b514200664c3f00574133 +00473529003c2a1e0039281e003e3003003d330000452f000063481b006e572d +007f65560096786e00a0938a00b2aa9500c9bbbb00dbced500e5d4ca00d9d0d1 +00bbabae009b847e0082675e006a4f46005d4634004e3b2d00433127003f2d21 +00463325004d3b2f00514a2e00604a3f005d473900543c32004634200032291a +002c1b070029240000352d09003d2c2200523c2f00644d3f006c5245007a5f54 +007e685d00846c62008d7166008d716d008a6f6800836a65007d656300756254 +"/> +<palette number="294" name="2u0026t.jpg from bTomchek" data="005f0e0000581711005b2817005e391e00613f140064460a00604408005d4306 +0059200c005d171100620f1700640e1400660d11006a0b0f006e090d0070090e +00730a0f007c1b0a00852c0e008e3d1200884d1500835e180083671000837009 +008d6b070099680300a6650000ac6d0500b2750a00b3760800b5770600b57509 +00b3720a0093640800895a08007f500800834d0600874b0500874b0900874b0d +00966310009b610d00a15f0b00a5670500a9700000a5790000a1830000a38500 +00a5870100987809008c5e0b0080450d0079350d0073250e00741d0f00751610 +0065090c00630e100062141400691e100070290d0078330900803d0600824800 +00885900008f4e0a008b4d0c00874d0e00824411007d3c14006e2a17006b2219 +007d331a008234140087350f0088390d00893d0b008c440900904b0800a05102 +00a54d0500883e00007b2c01006e1a020068160100631200005a0c0800570605 +005f0608005e0a0b005e0e0f005c0d11005a0d13005a16150063201700632a17 +006b261600753124007f331a00893510009037160097391d009049290087481c +00863c21007b30180071241000701c0a0070140500700e030071130700772b09 +0081320b00802b0e007d2712007b231700702112007319100070101100670810 +006d1d1400711e1900751f1e00751d2000761b22006a1c1c006917190067120b +0067100700802b040081360400834104008d4f00009f570200a75c0900b0640e +00ae771000ae780e00af790d00ae760a00ad730800a4670000a465000099670e +0096780a0089950500939703009d9a0100a68c0400ad920000ac880000ae8200 +00b8980500bb9a0700bf9c0a00b49c0000b8930000b7890000b7840400b38104 +00b6840700ae762100a96e2b00a5673600915e1c00964d24008c4f190093550a +0093540700905403008e5400009b540200a05700009d5500009b5203008c4702 +0087420000813a0000733100006e21050061130000520e0000560b060056070c +004c150e0050171000541913005a1d18006a2a0f00683c0000683600006d2205 +00651307006a0e0100731c0100862f04008545050097560600a1570000aa5c07 +00a6610200a26103009d6206009a5f03008b6200007d6209007e4c05007c3f00 +007238080067420d00753d0e007f3f0f00854110008a44110097540d009e670d +00a9760b00b07c0400af7f0100af8b0000ab920100a7940700aa960300aea001 +00b29f0500b2a20400b0ad0800b1ac0a00a8a30900b1ac0600b4ac0100b5bf08 +00b1af0400a0a7020098a30000989b02008e920700977d040094730a008c6200 +00805000007b460000783701007e2b090079210b0080121100811411008f270e +0093470900945a0600956e07009c840000a58b0000a88c0000a6840600a98b11 +"/> +<palette number="295" name="2u0007t.jpg" data="0029580a004d431000514213005641160059461b005c4b2000454f1f002f541e +00322630003a212d00431d2a00383c39002d5c48003668630040747f0043788f +00467ca000609db20069a3b10072a9b0006f9e68006c94210073901c007a8d17 +00446382003e748f0038869d002d698e00224d8000114d6200004d4500004e4b +0033798300599cb9006996b7007991b5007b81ae007e71a7007566a2006c5c9d +005c0f2f0086093400b1043900b5333100b9632a00b06c2d00a8763100b09b26 +00b2a02400a7a11900809e17005a9c16004a9832003a944e0040a1680047ae83 +006889b6007879ae00896aa60096766300a3832000b0901c00be9d1800cba52a +00c6782500c34e2200b4541c00a55a17008e5a1c00785b2100274138000f4239 +0038242300401c270048142b00431939003f1f480049336f00534897005c5090 +008f1e4c00861e1b00972f1e00a9402200af532300b5662400bc7c2500be932b +00b3bd4200acaf3400a5a126009595200085891a009f7e1d00ab742100c67825 +00d1692c00bb6e1e00a9741a00987b17009890170099a61800859e280072b685 +008ab8c50077b1c40065abc4005baabf0052a9ba0053a0ba0059a1af006c99b8 +0072a0c20086b39e0083a86700809d31009f962100a48e1600b09b1c00b38b1a +00b2881800a17d15009072120081681600735e1b005f50190066611f0071670e +0069660000708212006e8412006c871200587f0c005979000065750000656f00 +004d4a0700453005003d170400391d140036242400170b55001d19650014267c +001d4b7f00454f8a0047558800495c86004c5b9600538fb3006eaec9007cbacf +0081b5c20066abbc004ba2b6001f9d870016926e0032955e002d9b740057afa1 +0085bcc3008bc4cd008fc4cf0093c4d200aadbdf00add3aa00a3cca0007dc2a3 +0032976b0025816000196b5500145841002e5c380032831d003a7e0f00437e00 +00547907004d6f0100474d0300443b000044380800573208005b2f0800563b0c +0075661100856d1100957512009c6e0e00a45f1e00b5722300c55c2c00c55e24 +00a85f1b00a2491d0075471500642321003a1d2200241824002a1a1d00391b11 +001e151a001f12190021110000101200000a241b001823270031361800465b10 +003f770a003e7d0a002d88070021840f0030961900059d2e000d863f0010ab50 +001cbd4b0023ab590028a04700319b3600327a4c00497b32007a692300965d26 +009a4b2a008628280074231f00561a1c00402f150017400400325707003e6009 +003c6e0f00376e3400377e60004b7f95004293ae0044a1b3002da0a70037a075 +0038915100628026008b7927008b7b1c007e791300776f300063814300407958 +0036905d0056936a00606841004836320050181700521814005d4308007a5d0f +"/> +<palette number="296" name="2u0010t.jpg" data="002a2c43003c374d002b2f4f001b275100121e4f000a154d0011104500190b3e +002e204300362e53003e3c64003a505e003765580039665a003c675d003f5962 +00424c670025216b00161269000803670004085400000d410004093000090520 +000a0d00000917160009212d00101f4200181d57001d20590022235c002e2458 +002b2b4f001c246300231d70002b167d001f1388001310930009168700001d7b +0022326e002f4381003d5595004365910049768d0043798a003e7c8700387089 +003d6191003a4a6e00314572002940760018448e000749a7000845aa000941ae +00344da100385799003d619100455282004d4473004c3864004b2c560052253c +0056172000440a0000520b1800610d3100681d26006f2e1c00767219007d812a +00ac8f3300c05f3800d5303e00cb1d2a00c10b1700b10b1d00a10b2400a01c29 +006b2945003a0b7f003c1384003f1b89004d1f87005b238600681d7c006f2e64 +00961531008f304600894c5c007e4170007437840058318000422d9200232d8f +002f428400653a7f005e3d760058416d0054476c00504d6c0046496a004e4960 +00414139003c3b1f0037350500452d0a0054260f00393d1800353125003f2b46 +004a304900762756007b204500811a350088101a007e122100722d3200523142 +003d2c590029225a0015185b0014125700130d53002107500022135800251659 +00231f5100281744002b1135002f0b270034121300271b1d00102739001a2543 +002c1c5b00422c7000583c8600514c89004b5d8d00576c87006d754c00666c22 +005c7f3d004875b0004e80ba00548cc5004977c400385ea7002f41a7001b2b9c +002e2b6e002e2e64002f315a002b264e0027204200281a3d00281e3900380f2f +0038062b0035212d002a302600203f2000183930002c2f4200403850004a4065 +006742760065447b00634680005f4e7b00544b800057538e00665e9a00797198 +006287bc00718bbe007c95cd008196b1007d8da6009841a900712c97006b1e92 +006e2a8d00733d8e0078508f005c70910060696e00584848004a3a3d00263609 +00143e32001f3a4d002f3a5a00293d60002936600036356f0038236400371c6b +004d1f5d0073433f009b6342009a7a41008d9234006d8e61006885a300526f91 +004664a000435e8b003c405b004a483c00593738004a322e00554021007d3330 +00882b3e007a323e005d274b0056314300503c5800413b47003e464900474259 +004b3b5f00692f5f00643f68004b3b680042297c00291fa4001723a900123bb1 +001139cc00073fd4000a4ec9003150ba005458a2004a4c870057397700434669 +003a3263003b2f57003023410034163a004426420038304500244b4600016146 +00084b540014264c001a30550022455b001c53580027494b003c3e4b00392b3c +"/> +<palette number="297" name="2u0015t.jpg" data="00816041009098650098a46800a1b06b00a1ba7700a2c58300a5ca8800a8cf8e +00b2c1a000b2b29600b3a38c00b1989b00b08dab00b195b700b29ec300b1a6bf +00b0aebb00b6c6a900afbea800a8b6a700a1ad9d009aa5940098aa910097af8f +009cb78400a4b47d00acb17700aaab7e00a8a58600a4a78800a0a98a0096ab84 +009caa9100a0929f0090889500817f8c00786c84006f597d006a4e760065446f +004e152600422c2f003743390044394900522f590056355e005a3b6400665158 +00726d470081915200909b6700a0a57c0099b07c0093bb7c0099b179009fa776 +00a99b8000ada58100b1b08200adb08500aab18800a2a986009ba18500898b80 +008b8064008a6426008f633500946345009a6c4c00a1765300aa735500a56a4a +00722c2200692021006014210054181500481d0a003b1406002e0c0300401000 +004c210e0058471c006c532c00805f3c00825c4300845a4a00815f5600896646 +009751370084432600713616006c341d0067332500885736008e6f5b009c858b +0095a48f00b4b89f00a8bea3009cc5a7009ebea200a1b89e00a0b29a0096b981 +007ab1600085a76400909d680098a26d00a0a77300a2a17300a08d6c00a77b60 +00af7957009b795d009b776a009c757800a56e8e00a05897008b719400828493 +007c9a820071837b00666d7500696871006d636e006155610059486a004e3f66 +0056445e00874836008c4c390091503c00894636007f3f3300773d3200873f30 +00a15d3a009a583c0094533f0090573e008d5c3e0080602d006e5d29005e6829 +0050782f0071866500737b6e00767178007e6d7f00735d72007b54730096644b +0094855c009c8b5500a5924e00a5915f00a78d6800a096720099907300949367 +0089815c007a6844007a6939007a6a2e008b7539008e814a009f7c5600ab8b5c +00b57d6200b37e6400b17f6600b38e6200a3987a009f9d8400919f85008f8e89 +00827c8a0083737d0088798c009582a2009890a7009d99a800ab9aaa00af95b2 +00a5b2a8009eaaa60098a2a40090a4890093a57d008da170008f9b6d00859a61 +0079885100777f560074716800646a66006e5d7000774f740069547b005b5271 +0055516800575b67005c576e006b5270006a5d6e006b667d00736d89007b708e +007f7a8e008d788b008c668d0076618a0075658200656273004055560036634c +004a3a4500581e1a007423060075331100683d1b00804f260091643b00ad714f +00b9795e00c9877100b38f6f00b48da000b89cb200b89fb500c0a9bb00b5b8b1 +00b9c2a500b1d79a00b1d69300a7dc8a0099b777008d8f4e00706c2d00715025 +0073512e00624061006d39790081427b007e4c7d008d547f00937b7700969195 +00958ea0008b98860081a0640074a14e00748d4c0084884d0091874a00997251 +"/> +<palette number="298" name="2u0017pp1t.jpg" data="00c77ada00d079da00ca68ca00c557ba00bf63ad00b96fa000b27e9500ab8e8a +00c4a47b00cda38400d6a38e00eaa38b00ffa48900eba96e00d7ae5400d7ab4d +00d7a94700d5723900d15e3600ce4a3300d5553c00dd614500d46d4700cc7a4a +00b9643f00bd593800c14e3100c8473200cf413300ce433100cd463000d25d32 +00d2804800d5887600d58c7400d6917200d5795e00d4624a00cd504200c63f3b +00c1272700bc313500b83b4300c3334300cf2b4400cc304000c9363c00c5352d +00bd363000c9443f00cf5b4e00d5725d00e67e8800f78ab300f698c400f6a7d6 +00f7e8c100f5dfb800f4d7af00e4c0bc00d5a9ca00d092d200cc7cdb00a967c1 +00a16cba00a87e9200b07a8a00b8768200ba718700bc6d8c00ce629400ca38a3 +00c23d7f00c9536e00d06a5e00d2565600d4424f00c9506400bf5f7a00ac787c +00a8776600ba815400b9825600b9845800b5825c00b1806000af838000aa7d9a +00a988b500a591c400a29ad300b197d600c194d900be96cb00c78eb900cc8aae +00c3878f00b9725400a95b6a0099458000a5508500b25c8b00ba5b9300c06a91 +00c98f8b00c29f9000bbaf9500c1ac9000c7aa8c00ccaa7d00c4a95c00c0b247 +00cfa74f00d17e4800dc795100e8755a00e8458600fc5a9600fe5c8b00ff7787 +00ee8baa00d5a6a200bdc29a00c2c98400c7d16e00c3c95f00d0cf5900c9c057 +00cba53a00b66c2500b6613600b6564800b25d5600ac6c8600aa6f9b00b4679f +00bb2cac00b1399c00a8478c00b25b8300bd707a00ce836e00d49d5d00d9ab4b +00e6b24c00d59a5400d5915400d5895500c68d5800c0755800c96c5a00cc845e +00b5766f00bd6b7700c5608000d2628600c5699a00da77ad00f1758d00dd9f7a +00d9af4d00d7cd5e00dfc05b00e7b45800efb48800f3bbaa00d6b4c400e3a0e3 +00b3b8cb00c7c5bc00dbd3ae00ede59d00eef1a200f6e8a900ecdaaa00d9ae84 +00cc904a00c6853100b57f1b00b7721500b9802700c1853c00c68d3400d28d40 +00c0a82e00bba13200b79a3600bf992a00c3921b00bf962c00c2874500c67f41 +00c37a4300be734c00cd785100dd747100cd839a00cf88b200ea8cd600d67deb +00d0a0f400aaabeb00c7c5d200deecdd00e6e4cb00f5e5a900face9f00edc592 +00eacd8b00e2ce9100c9c97f00cad07000d4de7d00d8de9800dcd79700ecbc8b +00e59ea600c684b400b469aa00ad50a900bd5b9600c1689400c2829c00db9c8d +00e5aa8800deae8600dfb98c00c2a4bc00d895dc00bb84ec00af75ee009159e2 +009e54ef00c547d700e573b900e985b700f582c300d78fd100b0a7de00be83bd +00be89b500ca979400c0996e00c1966300c0aa6100c7b37800d1a97600cfa25f +00d09e5500d1a75100c99d4600c4933700cb8f3900ce9e3a00c6b74400c6ac3d +"/> +<palette number="299" name="2u0017t.jpg" data="003063cc003261cd003465d000376ad3003e5ec8004652be004056bf003b5bc0 +005175b3004b9fb70045c9bb0046d0ae0047d8a10030ba8f001a9d7d0011a080 +0008a38300218d9000288b97002f8a9f003885c0004180e1004380e2004580e4 +003379d800307cc9002d7fbb002993be0026a8c2002eb1c10036bbc00040c9b7 +004aa89a003f7e900034898d0029948a00249b7b001fa26c001ca069001a9f66 +0022844b002a7c4100337538003c792800467d1800477d1300487e0e00558316 +0050822d00477d5b003f7b6f00377a8300316892002c56a2002359a6001b5dab +002335a1001f2798001b1a8f00253b87002f5d7f002e626c002e6859000b5e56 +00065b5e002a4888002e4486003241840032398b0033319200344da1002c5ebd +001f71ba001b68a20017608b0015656b00146b4b001576400016823600007136 +00136630003d654a00436f5d004a7971003e797500327a790017848b000a7f91 +003789a1003c89ad004189b900418fbd004295c10030a7c5003193c0003c87be +003874b3004172ad004071a100407096004974900052798a006281830060917c +00548d7c00568d6a00588d5900588b5700588a5500579145005189400044683c +00353b3700545e39005b613d0063644200555e1d0055461d00342528001c2745 +00257d0c00238a150021971f0025871a002a78150018552b00003d3c00034a5c +000f5a6f001e767a001f73740020706f002e6a5e003c556b0052766a0050805a +00488774003f84890036819e003687a000378ea2003b9bab0041a8c700369ed3 +003689cd002f6cbf00316cc000336dc1004762b3003b55a2003960ab003664b2 +004562e000496ede004e7add005d88e400518bef004499d2002fa6d00039afcb +0049b5d1003ccacc003ccac4003ccabc0027c9b4001ed2ab0018baa20022a094 +002c9d9b0034a5a0003caea6003c9fb200339fc6003daac90037b5cc0024c0b5 +0000c8aa000ccd98000cb782001ea98c00309782004d8a8200508f70004e8c5b +00437750003c774a0035784500398346002d9e2a0032b0200037d2300050c94a +00489a6a004baf69004e9b770051ad860033ca830015e1800031d1550038bd60 +0049927400456e8400395ea2002f59bd00324cbd002f47b1003244a8003a56a0 +00406ea000418b8a00339e68003b9f2d004b9826003c970b004f78000059710f +004e74270036924700339d7900469e9000499096004392b0004286ab004779c2 +004273ae003068a300306a9000215f9000094873001242720016166000020353 +00151e6b0024249600343db200204aba002b4db8002f5caf002578a00022888a +00299586003b868900508f7000589f51004ebe360060be2c0053ad3b005e934b +0053876100477c82003c7a9300466d98003e6286003a6b89003f747a003b724a +"/> +<palette number="300" name="2u0018t.jpg" data="008726ab007a2382008a2c72009b366200af2a6700c41f6c00c2177c00c0108c +00b1278700b1377e00b2487600ac486b00a74961009e476400954568008e4565 +008846620091588f00974c9b009d40a800933a99008a358a00853a8b0080408c +007c2a98007b20a3007a17af00811fb9008827c4008829bf00892cbb00912a93 +009d2e7b007b297300723368006a3d5e00673d5800643d52006d444600774c3b +00936c2700a7772e00bb833600bf6c3e00c3554600c24d5200c2465e00b24765 +00953575006219a6006d10990079088c00820e79008b146600931a5e009b2057 +008b434e009d635500af835c00b5755f00bb686200bb627600bc5c8a00b75aa0 +00c43ca800a526b1009829ba008c2cc300962eaf00a1309c00b2318400b8206b +00c2216700b92f6300b03e600098485900815353007c4c4a00784541006b4054 +006e4450007a8660008f996100a5ad62009fb06a009ab473008eb46b008db171 +0096a67500919f6f008c986a008a9a6700889d650097a16c009b916e00969262 +008b7e5c008f5b4d009c3e3e00a9223000b11d2500b9191b00bc041c009f1b28 +00a61a4b00a81b5800ab1d6500a61c5900a11b4d00a6133d00a01f3300972524 +00a435170098293a008c2e3d0080344000833b490084404f0086434c008b4253 +00ae3b8900a6398e009f389300a4399500aa3b9700b4319900a52d86009b3866 +009a434c00b4582500ac572e00a5563800855b4d008b7756008e984f00927f61 +00a7518200a555a500a359c8009853c5008e4dc300a658c600b66be100a779d1 +00c899ab00aa967e00a6937b00a3917900989c6a009999630099935f00b49465 +00d0646100c05c7200b1548300a94a8a009b2b9100932b8a0098449100a75182 +0099587a0091795300957a5500997b5700b26c5200d4465c00cc397d00d01a67 +009f206d0092216c0086226b0075256c00772f61006d315300663555005d264d +005b135c004d0e69006e2574007d19620083106b008b1d5c008230560070344e +008f31530090304a009130410089303400762232006b1738005e333d005e3930 +006d553b0085553e00815548006d4f5100773380007c39a2008627a9008927a2 +008620840088186c009b216e00933478008a3f7a0094446700994e62009b6559 +009f4c6800a149790097387c008c3f830089317d0071288400582b8800681184 +0095047b00ac166d00a7236c009a145100962239007f1949005d064a004e0645 +005b105100642751007c255800a8246000b4295000c0415400c3425400c23a5e +00ac3962009739750094337800a22d7b00a42f7600ad1b6c00ad235600b02b46 +00b32b2f00b8350b00c3421800ba4c1900b5352a00b4363900b02d3b00b43347 +00b32d5f00a5377400a93f8a00ab429700ae4a7e00bb516500b6504b00bb4d18 +"/> +<palette number="301" name="2u0020pp1t.jpg" data="0073e5b400629acb006688db006b76ec007770e900836be7008069ea007d67ed +007172f1008389f00096a1f00096a2b50097a37b008ea07d00869d80007a9496 +006e8bad008696e3007d99e700749dec008f93c100aa8a9700af7e8500b57374 +00d09f6700c4997600b9938600b1949200a9959e009c7ec5009068ed008062e6 +00707bf1006ab0f50069bfe40069cfd30077d3c10085d7af008ed4ad0098d2ac +009ecda3008fc7940080c285007dcc91007bd69d007cdba0007ee0a3007cd7ac +0079d6b90079deb6007bd8b4007ed3b20082d1b60086cfbb0083ccc00081c9c6 +0097c8c400a3c9b200b0cba000b4c69d00b9c19a00afb99400a6b28e0098b28d +0093b8730080ce82008bcb890097c89000a3c49200b0c19400cfa28300d79a7d +00e8a85e00dca15d00d09a5c00be976a00ad957900af9d7e00b2a583009fc095 +0088e6a8007ff0b80075f3b6006cf7b4006af3c20068efd10073e4c8007ce6cf +00a6ead1009fe0bf0099d7ae0095d5ab0091d4a8008fd2a6008ada9f0099d29d +00abca8400989f6c009a9f6b009c9f6a0097a16e0093a3720086a58600629cca +0049caa4005ad3a5006bdca6005dd7b4004fd2c2005ccecf0060c8d10056d3cb +0054e5c40071e7ab0077e7b2007de7b9007ee4bd0078e9b10075dca50065eeaa +005ef5980061f0a20064ecac006de4b80076dcc4007fdcd1007fd7e3006fd3e3 +0056d1f20035b9e9003cb2f00044abf8004bbce60054c6e00076cfdd0071d4cf +0083cba30080bf8e007db47a007cb373007bb36c0080b774008abc810092b08a +0099ba9d0078c3bc0071b7c6006babd10077bbc4009ab2a50093a37400918964 +00ad785000af7c5200b1805500c4755700c87e5900c4805300d1835300e39f54 +00ebad5a00c1be6100b7ca6b00aed6760097f2a20076e8a3006bdfb20052cfc7 +0048b9e1004eade70055a1ed005f90ef005793dc005b9ee400619de30078b3db +0084bfc70088cca50082bca30089bf8e0093bc840095b4780099a67b00aca078 +00c2b06e00c1bb6e00c0c66e00a6d5790094dd8b007ce8920081e59d007ce4a7 +006bd9be0061d6d0005fded50058e4d90058dde60055dee60046ccf10038c3ee +003eaaea0049a8fc0057a5f8005399f8003d97f7003b8af100488cf1004f8ef7 +005995f5005e94f4006a94ea007682f2006591ea006793d40079a9d1007bc0ad +007aba950090ba7b008fc16c0086b5710085b869008eaa600098af6700b8b159 +00c2934100be7b5100ba805800af958400a8a99b006bafc60055add50047b1eb +00419cf7003397e5003e95e50053a8df0053bfd90054d9d40061e9e50068f6de +0078eae20080dfe30082ece80086e9e40092ece00082f6d30088dcbb0098d1b0 +009dc1a700a1a688009d937000a59156009e8b530085a86e0075e79f0072cb7b +"/> +<palette number="302" name="2u0020t.jpg" data="00b23d1c00a03d1e009f3c26009e3c2f0099292e0094162e00910e25008e061c +00751217006e1b2a0068243d00641c4a006015580061146700631376006a106f +00720e68008a1750008f144200941234008a183500801e3700871d3b008f1d3f +009f0b3d009a134200961b4700902046008b264600812a5000772e5b00672d6a +006d3773006e497f0071438000753e8200733b800071387f00743a7800773c72 +0067426d006b4071006f3e75007b3865008832550088304700892f3900842342 +007d235700461c7000292287000c299f00194ca1002770a3002e74970035798c +005f6e8100655d7b006c4d76006f567800735f7b006a63830062688c00607a8b +005b859d00377aa40045688d00545776005248690051395d006b3952006c3733 +009c4c1b009b5410009b5d0600a85d0300b55e0100b4600700b4620e00ad660c +00ac6a0900a4772400ac6b1800b5600d00b9530f00be461200bb401f00aa441e +00967b20009387170091940f007c990c00679f0a0085900600908c0f00857913 +00856518007835560081235a008b125f0097125d00a3135b00a30b5400991348 +00a31a34008d183a0078174000751b4b00721f57005e356f00633b79005a5281 +004e5697005776a4005d77a6006479a8006765a600484ca500364f9100275183 +000f5298001657a0001e5ca9003060a7004365a5006161950071608a007d5174 +009c496700b2252b00ad1c2700a8142400a50a2a00a9163200a31a2e009e2536 +0071365600653f64005a487200594c760059517a0062688a005a7a8700327b72 +00317874004e5291005351930058519500654f80006e518b0071488e008b4689 +00902c7400962769009d235e00a1114f009e0d4e009d0e4e009d1052008a1e5a +007d1f5400712e3500792a3300812731007e133f008e143d008b143000900a23 +00a71b2600a6262800a6312a00a34926008d562f0070526c005d4368003c3a7b +003a48870027579900276caf003868b000443c9f00533f86007b357e00891a78 +00790f59007912520079154b00710b4c006d144c0076266100852668008e0e61 +009f086500a90d4c00ba2e3b00be3a2500c2621600c1710e00c16a0900b4530e +00ad370500a71f23009f1f2000a024220096331e009e4026008a4b1500896217 +008d5e0c008d5f0a00916a0d009a7213009872290067593c006a5b460066464b +006a3c3f0076473700a54c2400c1551500c24a0d00c64a0e00c7431200b03806 +00b9241e00ae1f190096141e009a0d1d00b1140b00b73d0c00ac5e1c00aa6723 +00a3612500a15758007f5b7500796b6b00725664007356580099502d00a45021 +00933f3500903862007c356f007c50850073588f006d5f9d0065699900676a95 +00616e9a00626b9600535a8400416c590044617100483c8600582b700047307e +"/> +<palette number="303" name="2u0024t.jpg" data="000e502200304c3e00453c47005b2c500076255700911e5f0095305a009a4356 +009d6c4300a2723700a7792c00a16a2d009c5c2e00a44f2f00ac433000a23c31 +0098363300a8622600b1701900ba7e0c00b9781b00b9732b00bb733600bd7342 +00b4222d00a72c3a009b3648008e424900814e4b007b5246007657420070603e +006d5b4d00564a560052395a004e295f00441f5d003a165c003c0e5d003e065f +0043133b00491039004f0e38005a223d006537420071443e007e513a00976532 +009f722100947922009a711800a0690f007c60130058571700453f1400332711 +0037183800442a3b00523c3e00505e34004e802b00507b1d00537610005b6622 +00735e410060446d0059366a00522867005330690054396c005a4c660064525e +0062424f005c373e00562c2d0055243700541c41004e1f4a00482253003e2159 +003b1c6000490b6000550d4300610f26006f221e007d361600a03b070095521e +00be6b0500bb651500b9602600b4642e00b0683600ab6939009f674400a15940 +00a84d38009c5c500097634500936b3a008a6e390082713900836b450079684a +008457440086454a008934510090294e00981f4c009418560094094c008e184c +00952e2f007b57330079592d00775c270077632600857128008e5e3a008d5b44 +0078564c006e494900643c4700673643006b313f00650e30005a062800550022 +004e0636005b14360060193d00651f44006c3d470079514500855c3c007d6328 +0080623e007861440071614a00765e5a007b5b6a006a4a5f0058505f00544c5b +0053475b005b3355005f34520063354f00604150006a46480063542b005f411b +004b1c260051152800570e2b004f252700683d0a0085572500995d2700a26828 +00a16b2300af763f00b2754200b5754500c16b5200ce7b5100db7a5a00cb7657 +008f6567007a6b6500667163007070540085784b008f76330094792c00a77e4a +00ac754c009d6c5b0091665300785b49006e534c00643e4b006f34460063153c +0064063800680934006c0c31005f0f2800581131005d0b3100670f41007b0f4d +0077065400820151008b0c6500852157007a2d4d006d3f490069414a00684f4a +007151380078492f005b351e005a39180049401f002a341b00142407000d5118 +0015372900391e3d0046332c003d672800356b0900246b25002d74280045662f +004f4659004a2d490048164b00411b58004f1d58005c2b5a0053355b00502b5e +0050276d004b226e0048226b00421b54004f2c54005a3054005e4654006d5458 +00685b5300615b4b007d50390088512a008e67260085780f00688a0000559010 +004f970f00549108007680050086761e00837129008a7e2c00997d290096762d +009b693600825e4e00794e610082415900833b4f007d4b420064455700664550 +"/> +<palette number="304" name="gradient0000.jpg" data="00f4000c00ff006600f000a000e100da00df00e800dd01f700dd00fa00dd00fe +00e500f100f200c500ff009a00e5006c00cc003f00ab0021008b000300830202 +007c0501006f0a0000750700007b0400007b0400007b04000078070000760a00 +00770b00007c0600008101000089000200910005009000020090000000860001 +007f0400007c0501007c0500007d0600008703020091000500ad001c00ca0034 +00fe007500e100a500c500d6009d00e4007600f2007301f8007102ff007201ff +007600f200ca005400ad0032009100110080070900700e0100700e0100700e01 +008200000095001400a9002900bb003b00cd004d00e5006300fe007a00f500d7 +00f101e000e300ff00dd00f000d700e200dc00de00e100da00fe00a000f60151 +00f43c0a00ef300500eb250000e7210000e31d0000e71e0000ec1f0000ef3401 +00fc371500fb0d0a00f70d0500f30d0000ee0a0000ea070000e4160000e41600 +00e9270100e2310000dc3c0000d9450000d74e0000dc642500f24d5300ff0082 +00ff00ae00fd00bd00fd009600fe007000fd005d00fc004b00f2001000e70b00 +0083060000810300008000000089020000920400009c000300e6000200ec0300 +00e90d0000f3120000f20d0000f2080100f5010d00ee001700c6002300930008 +007c0501007e02000080000000850000008b01000097000900d1003700dc0066 +00cb01d100d900fd00d900fd00d900fd00dc00ff00dd00fe00e100ff00e000fe +00d900ff00d800fd00d700fc00d300fd00cf00fe00ce00ff00a300ed007700f4 +006e00f7007301f7008100ef008f00e800a000de00a200e1009800f1007406ff +005b0cfe005111fe004717ff00570efe006504ff007702fe00c304ff00ce01fe +00d900ff00e700fc00e900f100ec00e600f100e300ff00b400ff008400fe007c +00fe00ae00e200c200c700d700bc01d800be00de00c200df00ef019d00cd015a +00ca003400950111008c000b0093000800a9002900cb003c00d0005200ff0082 +00f600dd00f200e300ee00e900e700fc00e100fe00dc00fe00d900fd00d600fe +00cf00ff00cc00ff008900fe006d09ff00650dff006111ff00640cff006707fe +006a05ff008300fb00c403fe00cf00ff00d200ff00d700fe00d801ff00d200ff +00cc00ff008d00ef007400ff007400f7008f00e800bb00e500c300e000dc00de +00fe01ac00ff008700ff007600ff007600ff007a00ff007800fe007000ff006b +00ff006a00ff006600fc004b00f4003400eb002100ef002900f0003f00ff0066 +00ff01a100fe00d200f600df00f500d700ff00b400ff008000fe1f5e00d46456 +00dd652600e5540100d94d0000d7230000ea012100fa006400ff00a400ed00e4 +00e900fa00e100ff00d700fc00dd00d900e300d300ff008200f2003a00ea1d00 +"/> +<palette number="305" name="0t0507.jpg" data="001e3d8f00023c9d0001317800012754000f2452001d2150002c226c003c2389 +00854da4006b53b2005259c100453ea40038248700422791004d2b9b005836aa +006341b9009085c100abb5d000c6e5df00caf1d700cffdcf00c8fac900c1f7c3 +00d6e4d700cfd5d100c8c7cc00c5c0cc00c3bacd00b9b7c700afb5c100b0b5bb +00aab1c100a5adba0096ada40087ae8f006f9d8600588d7d003b879b001e81ba +00065fa100035c930000598600073d64000e224300141a47001b124b00191667 +0031218300232d8e0021247d00201b6d00131257000709420007165100072460 +00053d9e003151a7005e66b1007678b1008f8ab20096a2b6009dbbbb006fc699 +003bfe720025e2620023a55900226850002e515b003a3b670034268800393896 +00586182006e549a008547b2008848c2008c4ad2008246c7007842bc006a3ab4 +004e28950023294100192f3f0010353d00093e3b0003473a00063d2a0006342a +00002a410001326e00033b9c0004419d0005479e0004529a00104c8a002c3594 +00274d8e0018474100114d3c000b5437000a6c390009853c00277c5300627b82 +00a478c300bd76cf00d775dc00da7cde00de83e000e280f700d989ff00d879f1 +00b06bdf003274be002679bb001a7eb9001683bb000f6eb2000964aa000462a0 +00056da200118e7c001db0570026bf620030ce6d0048ca800064d48c0087c7ac +00a8c5c900d9bfd800dcb1db00dfa4de00ecb8df00f0b5e500f4bff300f1ddf6 +00ffebd100e4d4d900c9bde100c3bee000bdc0df00b4ccd000a5cec60078cb95 +004abf7900137daf001180b1001084b3000c80af00086fb10005709c00026785 +001f4d42001947400014423f000f233b000f193d00110f41001e154c00312662 +00562e8f008d44b900974cc200a254cc008c63b1007872b8003c6cc1001b72a8 +00274a5000223c4e001e2f4d002d295c00342a6600544c7f005357700063747e +005f708000286db800178bbe00198ac200218ac3008c9ccd00a3aeec00cdaff5 +00fcb4f600f6baee00f1c1e700c7d3c700b9e9b7008cd991006aea93005dea8c +007bcc920081b898009b8ab600a08bc600b48dc600d4a2dd00d2a8ea00c4b6eb +00bda4dd00a983da00bc93d700c6a6cd00bdc5d000ace7c9005dec940022f46c +000cd64e0015aa4c0025784e004e4b78003d3ca200465abb00395eb700265aae +001565a200046d8d0027655600235c4d0012343600070e2b00050b2d0005063c +00160c550024348c002e52a8004e6abe00867cd2008f89eb00d98dff00f797f8 +00f59af700f6a5e800f6a5e800f0b0e200e3a0d500d07cdc00ad64d000aa5ad3 +009e77c800ab87b500a089a300ab7caa00a785c100c186d600dd8df000f190ff +00fca9ef00f49bf900d78dec00ae76d9008f65a500798382003bad650013bd50 +"/> +<palette number="306" name="0t0524.jpg" data="00459e9c00373c7300283a6a00193962001d4d5f0021625c0019643800126714 +005f251a00661c26006d1432008022300094302e007d5c69006789a500659aa9 +0064abad0052a2a3003d7a8f0029537b001f3e6c0015295e00141f5800141653 +001e225100452d3e006d392c0092353a00b7314900d5477800f45ea800f1046c +00d50a6300a2121b00880a23006f022c006a012e0066003000600435005b093a +002c003b00390e3000471c26005c182f007214390075142d0079142200971017 +00bb211900f6431b00f1531b00ed641c00ea531500e7430e00e23f1100de3c15 +00ea130000d21a0a00ba221400b1110d00a9000700a8050500a80b0400941506 +0070140000680f1300530c11003e090f004b071300580517006a011200580b1d +002e393b0039313d004529400062332e007f3d1d009e3b1600be391000d24005 +00db481200e0503800e9593400f3633100f95e2d00ff592900fa6b2500ff7e28 +00d2573500dd592500e95c1500e44e1300df411200ec272e00ed2d3a00ef014c +00ef0d35008a1e2b00682d3200473c3a003a3746002d33530031357200454076 +008f352d009d332400ac321b00a0261200941b0a0075140d0052041e00380321 +0041033400510533004e132b004c2224005e291b00773417007d330c007a271f +005a1d2200521d21004b1e21003e341800324a100042560100673f0b0094420a +00c6450b00ce240b00b9260500a4290000a32306008e1b0000691d100046151b +0021072400170d33000d1442000f114400110e4700181144002b0c2e00391e49 +00430e42004e172c00501b2e00521f30006526390073193200911d28009b1e0c +00a0040f008a071c00740b2900541741002d2851002838590028265700451c2a +00572025007c2c2b00842e20008c311600912a0700791a0600621e11004c1824 +00230632001a083400110b37000d153a000a1e4100102746001627550011265b +00182655001e2a5400222e58002f414b004b4e33006147240068450f007c3a08 +009836130097311900972d2000a02e0a0099200d00a81a1600c51a1000e00919 +00cc091100c60a0900ac0a07008d07040080050a0074100e00701210006a1f23 +0059253c0059304e0074737800a4bc6e005aa15d0046646c002d4374001e2f5d +000f265c000a2a5d0016335f00153b60000a596a00016e7300027d6800016972 +0002537000014167000e3860001247660026517b0020637e0045738d00579499 +0076a2a30082a3b400bbb8cb0097c8b5007ab5af00489d9a00479298000f7278 +000f6064000f515d00144b6000184c73000f51740007627500077c7600097a78 +00215a610019405f0009325e000628560002215a000d1651001a114a001b0641 +0023063400211749001e265500232c5700273c590030445f002b635800215f5e +"/> +<palette number="307" name="0t0533.jpg" data="000420360036276c005463820073a099008aa4a500a2a9b100a4b1b700a7babe +00a2e0d300bdede900d8fbff00e4e9ee00f1d8de00e8aec300df85a800cd85a4 +00bb86a000b075e3008762a3005e4f64004b3f4500392f26002f292700252429 +002a3247003e384700533f48006d434c00874850007840460069383c0063303f +0055583d006c7c570084726b009d69800097728d00917c9b009a69ab00a456bb +0043269400211c700000134d00061231000c1115000a121200081410000a1b11 +0016311e003e86460050a2750062bea50073c8b40085d3c3008bd1c40091d0c5 +0080dec6007ac7b50075b1a5007b8d9900826a8e0073647b00645e68005e4757 +00524652002f343a00273c2f001f44250023412400273e2400333a4000414f52 +00373743002730370017292b000e193900060a4700080f4d000b155300121c57 +00331b7d0023313e001c32360015342f000b3331000133340007262000040e10 +00070908000c050a0011010c000f0a0e000e14100016231900244324003e5e35 +00587547007aa26400638766004c6c69004e6a6800506868004e5d620046585a +002467560026796200288b6e001a8061000c75540009753700096e3400146e3b +0018774b004d405c0051456400554b6d00564c64004e575c00475c5f003c5a58 +0015513800114329000e361b000a301f00072a2300062b2300032f1e00034b26 +000653270012633800176d38001d773900377f400039854400458a490075885b +0078975e0065925600538e4e00498c4b003f8a49002e753b0013582900024220 +00052a1900030b0d000305100004001300010b0c0002110c00052c1700034f28 +000171370008783a000f803e00158741000d753800185f4d002f534f00403e41 +004e3c3200533648005b3547006435470071475300814d4f008f556d00745167 +004a555900435557003d5555002444410012343600123a3100124438002c4645 +00455a5b00458374003b937b0039a78a0051aa94006aa76100738b5b00567647 +001e292b001b2b2300192e1b000616160009121100041d1900062922000a3a2e +000c4b38000c53290004622e0003603100095c420006523600044c3400034634 +00063f3000092c260015242900161d230020161f0022131a00241615001c1713 +002320190026211e003f24290046272c004c272e0047232f002d1922002b141a +0020131c001315140016110e000f0b0c000d0709000c0a0b001a1d160027271d +002e252000413029004c28320042252a0037232500162015000f1b1100080a09 +000507060004000300070709000a0c0b00061414000926210001263900034239 +0004483d000436350017313200282828003a1f28004d313f0041294b0028373a +0017463c001c644c00426c5600558a82006b9a940071a6a0007eb6ab0087a1a0 +"/> +<palette number="308" name="0u0075.jpg" data="004a34d700230bab001806a0000e0296000702910000038c000001850000007e +0000007e0000008100000084000000880001008c00020082000300780002006a +0002005d000000170000000b0000000000010000000300000003000000030000 +00000000000100060003000d0001002a000000480000005a0000016d00000078 +0000007a0000007e000000840001008a0007009b000d00ac001e00ac003000ac +00620da600650796006801860054007f00400078003302820026048c00180197 +001701a4003904b8004a06b3005c09af004604b0003100b1002100a400110197 +0000006200170055002f00480045054c005b0b50005b0e5e005c116c00680184 +006a00a2005e06b4005f03b3006100b3005900b3005100b4002902ab001501a0 +0001007d0015056b002a0b590049055700690055006e00610074006d008308ae +00891bd400832cea00793ce800704de7006f54e9006e5beb00684ae6006a2dc9 +006a006e0061005300580138004c002f00400027002b001b0013002100000038 +000000560000016d0019034f003306310038082e003e0b2c004d0835005e0136 +00690069006f008c007500af007300b3007200b8006e00c1006c05ae006e01a8 +0079019400620280005201770042006f0029006100010073000000760000007a +00000070000302550007043b000f072b00180b1c00251821003609300051004d +0051017a003e1bc000421cc200471ec500510baa004a0e80004806670052075c +004f08300046062c003e05280043032e00480234003e0b670041019600330db8 +003b18cc002700af002101a6001b029e001f019700180096001b00900025008e +00340071003a0068004000600030014f002f004000210019001d0012002a0320 +00430f3500670099006803a6006907b4006818b9004c2ecc003531ce001114b7 +000b05af000b03af000b01b0000b01af000801a7000000940001008600170082 +0036009c003400a0004105a5005600b900670ad400741fde007c2deb008f3df9 +008760f7008163f6007c66f500775ef0007754f000685de8006650e3005c38d8 +006a19a600670773005b0d3d00500229004401240036000d000b001000010103 +0000000200000000000000000000000000000000000100060001011b00000038 +0000005a000000700000007c000a008700290171002901640024004c00080429 +0000000700010100000002000000020000000100000000000001000200050102 +0002010700030020000001310000004b0000006e000000780000027f00000098 +000100a6001200b4002a00bc004c1cc8007616da007d1de0007d23e700852aeb +008b27e9008c2ded00863def007d59f100875bf8008957f8008f33f0008332f0 +00723ee9007243e7006840df00722fe1006802c5006101a3003d0035004c035f +"/> +<palette number="309" name="0u0298.jpg" data="003a3f07004b2b1400552c26005f2d39006d3033007b342e0074382b006d3d29 +00572f25005a2625005d1e2600621e2000681e1b00723129007c4437007d4749 +007f4a5c005945510047463d0035482a001e3f1a0007360a0005300900032b09 +0007290e000b261300102419000d1d14000b1610000e150e0011140d00141007 +00041a050013342100162d39001a2751002725570035235d002e284d00272e3e +00234a1b002e4120003938260046312f00542b3900542d3b00552f3e00482c3a +00442a3700361c3700361b4300361b500043254700512f3f00503341004f3744 +006d4d5c00654854005d434c0056354000502735005023340051203300431a28 +0054182200601d15007940260093643800996b3700a0723700a6804200bf8a48 +00a46c3b00955a2e0086482100713013005c18050056170b0050161200550512 +00620f19007d102f007c1c33007c283700752d3a006e323e0065293100621b29 +0043013100410828003f1020003f081b003f00170041020b004a140a00592100 +00642f07007a2b240078391f0076471b0077461200794509006f341400642a14 +007c492c0080552800856125008459270083522900752617005d121700480010 +003e070200330d0000250e000017100000110c060009190e0005221d0009271f +00182b180026251a00341f1c00321b1800301814002e0c1d00280b2100230215 +002c040f003a0005003a0604003b0c0400370c0600291607001d2818001a341b +0012341900172e1d001d28220021292400252b27002e212a003b1a23003c121c +00441616003a110000390f0300380d060039140c003a0d1200300b130037040d +00440206003f0507003a08090035080f00291316002c151f002f192500381a24 +003c202e004c1f260046191f0041141900421013002e0e130023160e001a170e +0018270800162610001426180018191e001e0b210023093800261f2600231e22 +00222e1800283009003f2d1500463c0900523106005a350b0057351200543314 +00512210004f1c13004d17170038231e00352323001f1d1e000f1b11000d1a09 +00162a05000c310f00152717002520260030242e00392e2a005b333400753b30 +007f45390087515100a86a5500c1856300af825900a06a4400986d43009f643a +00964b46008456320089672000935e2c00a16b2f00aa6639009e544700934b4f +008f464f0088373e0095275400982d75008c425d00b97f7d00d17e7a00aebc81 +0092be9d008ab47200806c780099506d0070505d00546942006383400075753f +00725034006840340061342e0057362d00523c2e00303028002d2e29001c311e +00132823000d22190010100e00170408001d0a0600370b0a004d071100610710 +00640e19005e0e19005c1620004a061f004a061f004f162500492d1500511f14 +"/> +<palette number="310" name="0u0298pp1.jpg" data="003f3f9700621aaa005b2195005428810049327a003f3c7300363367002d2b5c +002b202e00281d3900261b450023164d0021125500251d710029288e003a3796 +004b479e00465a950039427a002d2a5f002a206b0028177700291777002b1778 +00581a8500500d96004801a7002e0e9300141c7f00171a70001b19620022255a +002e2c5b00243a470024393f0024383700273530002b322a002c402e002d4e33 +003b3d56003b3a56003c3757002e244000201229001b151e001719140014150f +001a0e0e00270805001d080c00140814000e0a1f00080d2a000b0c1f000f0c15 +002a0014002e0a190032141e002d0d31002907440026063f0024063a0017003c +000c0429000e0613000a06100006060e0007080d00090a0c000e040c00120000 +0019100100170f0b00150e15000a0b270000093900000d480000115700091a68 +00001b760025167f00380d80004c048100580e97006418ae008541ca009f56e5 +008841cf006c3fb200513d96003a2e9300231f90001e186e001d126100210e50 +003e114c0020083c00190a3a00130d39000f0d35000b0e3100040f2d00000c36 +0000044100051156000b1e6b00171d7000231d7500372f84006369bd009f77fc +00b488f700ffbfcd00ffb3cc00ffa8cb00e4a6b500c3818b00586d8a00364d5d +0000173300061730000d182e001016350013153c0018144f0014074f000a0f53 +000716410000264d0004245e0008226f00010f670000055900000354000e1259 +001d395100263f54002f4658004147690053497b00645c5a0083714900704032 +005f3e2b0042363a003d313500382d31001d1f2c0012192b00181a4100222f52 +004d1f8c00551b9e005e17b1007224c5006738a0005f479d004752ab00224299 +001a3376004557870044599200435c9e00565da1006e77b2005f669d00526397 +00416281003d586d003a4e5900326135001a5e130019472a0020230e00261f17 +00243444003e4f6300564691007c70c200916fe700906ee7006549c200715da5 +007530bf00752cca007628d600803bc9007428ae006307760044014e00481138 +003019230025192d0024133d002205590021055a001d01680021016e002e0a6a +00220d68000e0e6e000c0c6400000070000b006f0015078e002d0fa100561ebf +008153d900a97afe00aacaff0086bddb0056abec008e80cb007766b400754787 +004a287f002c266200381943003a1541002f1c30001516280019172d00180847 +00120f52000f1d66000e1f6700122663000e4c6300003e4d0012254600103142 +00194143000550320021443000302f37002f2a3100241d49002b2156002a205d +00240b5c001203620010015e00120054000403530000093f000006350007031e +000000140004021a000100300015004500190c42001021310035742500204e32 +"/> +<palette number="311" name="0u0303.jpg" data="00b80c2200a05e24007e5812005d5200006b450e0079381c0084271a008f1718 +009e0120008901350075014a006a103c005f1f2f0061293e0064344e0063444f +00635451002411600021145f001e185e0035314d004d4b3c00624e4b0077525a +0088428a009c419200b1409a009e209d008c00a000950889009f117300801e5b +00752b66009b248200841c6d006e15590057136b0041117e00391991003121a5 +00344b6a00485f57005d7345005e6e35005f6a2500506f2200417520003e6d1c +0046381e0074201600781b2b007c1741006b2647005b354e0050374500463a3c +0019360a001f290500251c00003b150000510f00005e0701006b0002006a0805 +00791e1b00585d1b003b6f13001e810c002881140033811c0048912600617f5b +00813b8300703088005f268d006f3399007f41a600793ea800743cab006a59b9 +006371ae00173e8300382f660059204900701e3200881c1c00a02e14009d1a00 +00a43905008b360e00733318005c2e10004629090041181200401318004a101e +003a262800360e3100312c30002d4b2f0021523a00165a45000e5863003a6f45 +004c9754005f95490072943e0075a23f0078b14000629f4000428c5b002e828c +000f70a5000042a0000531ab000b20b700080d8b0018288a0056059200600d65 +003f423b002d3c50001b3766000e20720002097e000b05670048004600820a2d +00981d1800a1232400a3193700a5104a00b1063a00bb001d00cd0c1d00c61c1f +00851514006b1a0a0051200000452800003a300000273b0800305b260045722d +00708d30009e8f3400a1802e00a4722900946b2900896d240071691e0061621c +008c8a3d009b853500ab812d00be833500ad5a54009e338500a2236a009f3833 +00af602700d43f1f00dc331100e5270300ef110c00f2062a00ce003000a1001f +00851c3a00832a3c0081383f00643734007c593d0084945300799a550078b74e +0082af3a009ba83200d1961e00d4ce5200ffa16f00d69a7800a19b4700808a72 +004f83bd003d85c4002c88cb002684aa003c7a890057795e0042713a003b4415 +002f2615003c3a14005741360061633b00806f3b00af824100bf812e00b8612c +00a15019008d442300795a19006b48200050421b004e3c1800650a190067000c +007a001e008702390097143e00a2194d00b60c6c009d057c0087035700831a42 +00562b3e004c462c0046522e00495a30002f5138000c5a32002c722c00387b2c +004493440064b848005bae56004e94600045905500507f5100596d6400642c91 +00802aaf00893aad0081518f0088647e00a39db700a65a9b0085479a006a3aaa +004c40a6000e4f930001427800254085004c4281005e3f4e006d315300a4196a +00ad1c7700ba1f7d009f2d8500892a6e006f4762007770600076836700757d4c +"/> +<palette number="312" name="0u0333.jpg" data="00716a340042492a0034543400265f3f00335e4c00415e5a0041535c0041495e +001b334b00202e4d00262a4f002d25440035213a00411939004e1238004c1e36 +004a2a35004761460037724700288348002e763300346a1f00265e0f00185300 +0011410d00263a0f003c331200653321008f343100a2373a00b63a4400cc6566 +00bd815f00a45b6400915356007e4b4800844543008a403f00a43e3d00be3c3c +00bc232600a0341c00844512007e44290079434100784343007743450076563d +00725e3b00986a5300b8816500d8997800be846b00a46f5f00995f52008f4f45 +00a95e5b00c4766600e08f7200cd876800ba7f5f00a0705c00876259007d4c47 +006f3e2f00541e1c00412325002f282f002c2e32002a343600342b30004f402b +0062522e0065412e0068312e00531c29003e07240033041d002802170026030a +00280605001a0806001915080019230a00232811002e2d18002e412e00194632 +003b674e0048625d00555e6d0054646e00536a70002a77930061978a0068bea5 +0076817100486b57002f584a0016453d001b393100202d26000e281b00273222 +003f363900593d430074454d00814b4d008f524d00a7604c00be7b6100cf7575 +00b9506e00834c51007c51480076563f006c533d00656a1a005d801800575f16 +00564823004640230037392300303e2100294320001e4b1200123316000e2b0d +00142409002e130200321b0f0037231c00302f1d0033362500363f1000514509 +00464e13004e62200056762d00707a40008b7e5400a28d7000c3906100cd6e5a +00cb542c00cc392900c32e1f00bb2316009810100080080900631515003c070f +00230e170026161e00291e260029222a0022313600124d510019705f00146346 +00194c4d001e2631001b1c250018131a000c041b0000031a00170a24001e0f22 +00330d2400330d2200340d20003b1918003f2b1300372c0c0024291300261e09 +002c190a003e2811004f26220048311f00424f24003b5c27002d673400156737 +001f87a0001d8c97001b928e001aa48b0002967c00176649000f4434001b1927 +001311140025120b0025140400110801000b0102001f07030036120400651329 +0085222500912d2d00883b410072434d00663258004e2b5500492d5500514046 +00523d2c006e31360075383d00631745004b1b4f003a274500352d44003e4444 +005c5c44006c6143006b544e005c4066002c3254002c2247003e1a48004f1a50 +00611d66004c0146004c0b350038012b00341f2800462c3700543e26005d2322 +006f1e2400791b2900711d2c007335260081342c00863641009f342c00b23c2e +00a75f2500b25f4100e4876600dc997c00b6aa7800a1ad6500b3ad7100c59581 +00a3918d00a5818500917a8c00866b700076736e00657656006b8f6300378087 +"/> +<palette number="313" name="0u0752.jpg" data="0020261c004048190051541b0063601d005a5b2800515733004d4c3100494230 +004e422a0059472c00654c2e006c4c2700734c2100513f1f0030321d00293019 +00222f1500202d1b00203225002138300030523c00406c48004e7051005c745a +00799250007591490072914300697e4500606c48005f6743005e623f00535c3d +00384f3b0028302300232c22001e2921001d2825001d282a001d2528001e2326 +00151f170016211f00182327001a2329001d242c001d272d001d2b2e001b2b2b +00172a24000a1e25000f1f1e0014211700172512001a2a0d0021301100293716 +003c43170041401f00463e2700493323004d2820004b2b1900492e13002f2d18 +00383917005b5b29007c692b009d772e00a0763600a4753f009a6c3a00766730 +005f663a00636631006767290079592b008b4c2d00874d3200834f37008d5439 +0093705000586339004a5e32003c592b003b5220003b4c1500394724002b3f33 +003b6a5a0061846700889f750097a57c00a6ab8300bfa9910089afa00085ae9e +008f9f78007063430060513600513f2900473927003d342500263822001b352c +00273c3f00323a3e003d383e00453d35004e422c0056453100525333004d5b38 +004d6032004348310040492d003d4b2a003937220032361f002b301a002a2e17 +0014201600151d1800161a1b0016191c0016191e000d12160013160f001b1f11 +0026291e002e381d00303c1f00334022002d452d002c5d3f0038695300476f54 +00617c5d00728a6700839871008c996b00969b65009b98650094976a00929c7a +00a5ac8300a9b472009fb56c0095b667008ba160006096650051865a00436741 +002a3a1d0025351d0020311e001e332000253a31002c45490035515200404e4e +003b4f440033402400343d2400363b25003e3d290046442b00494f3300576242 +006c5c45006f5c4100735c3d0067533800593d3100563530005a3a2300704221 +008658270095732900897d350074855b00459a70002f6b75002d495500253e52 +00191c2d00171c2900161d25001b1a1800381e0f0046312000584c34006e6b36 +00828d490090a759008c9d670087956400728b6b00497a6500355f550036492d +002d34220025233100222d4300253b53002142610021426300214462002c4653 +0025604e0027584300204b41001e3731001b271d00141c1100111d070016180b +001e1808001f190b00211b0b0021250e00232c0f00252e11002b241400351f14 +003c281d0050391900714c180076511c005e4c1e004a441200303b13002c3017 +002b1b0c00281a0f001f2211001b2616001c2a1b00222f1b002e331c00353e21 +003d5535005b694f00707a5800987e5b009b8c6d00ab926a009e825b00957840 +00977b3c00a3823500a7863700b78f5b00c5925d00bea08800a6a36000928a4c +"/> +<palette number="314" name="0u0768.jpg" data="003d75a6001166b600196aae00216ea6002467900028607b002e3f7200351f6a +006b0d5900791c5600872b540086325100853a4e00833d3b008141280083372a +00852d2c005b3c4c00546050004d8554002c9959000bae5f0016b1630021b567 +001bb88d0015b2a40010adbc000fa2c9000e98d60013a3d20018aecf001db0b8 +001cc7a50037afca0032acd3002da9dd002e9cca002f8fb7003088bd003182c4 +006a7ab800798e950089a373008a844c008c662500944b1d009d311500a32806 +00a21b07007c154d006d1b7b005e21aa004047ad00236eb1001573a9000778a2 +0010808b00165b78001c376600261e540031054200350b3c003a12370069081c +00992f1f007e5041006b586a0059609400525aa1004b54af001b79d1001782e0 +004f499f00463e74003d34490038274500341a4100321e470030234e00371763 +0053396800367d770027848900188c9b001a87a3001c83ac002181d7001c84e7 +0014b0d90021aed3002eadce002cb1b1002ab594001d848300198085002e847b +004c8d5300336d19005b63230084592e00914421009e2f1400a51c0c00a60d00 +00950e00008a0e26007f0e4c0080194d0081254e00a2204400ab2b4e00a43a44 +00985b1c00a53c0c00a72e0a00a9210900b50c1300aa050c008f0d25006d1643 +007d147300881e850093299800992c8000a030680098195000a91a5000a90b6c +008e0390008b308d0087337300843759007321380065173e006e114800730450 +00831497007716a9006b19bb005d11b6004f0ab200520f9000272586002d1670 +004f0858007c1e3800881c2400951b10009717160083062800730c3700650566 +001f058200151089000b1c90000f3d9d00165cb4002a75d0002949c2004e4ac2 +008542b5008a3368007725620065185c00390a5800060c6e000c1f7d00124793 +001f1b96001c169c001a11a2000f14b8000b15c2000a0ac0000306cd000725e5 +000a46d8001535bc000e39ac001632b9001718c200190cce000e12cb001634c8 +003336c3003431c200352dc1004c20cf006c10cd004a18db003714e2002439c8 +002244e3002c52db00385de1003963d1004964d9006089b5004580a200317395 +00115890001e558b0012206700191164002518460032154500501f4c00545c5e +0054636a004483660023a277003cad8200369b8b0059829e0042718f00295498 +001a559100205f7e0015648d001b648f001d5f9b003a4c96005331a100552b99 +0047249c003b297b002f1f4300182e1900000d1e001d214e0009506c000b8882 +000a988c00358a9e00378a9800396c9700524da1006339b700652dc6004121c2 +00291db1003339b1001d5497000b619c00126cab00047aaa000c7dbf000d98cf +002592d30035a0d4002ea6e30031b1f000549edf006a8ec0008554bd00554d86 +"/> +<palette number="315" name="0u0795.jpg" data="002267860029718a00177097000670a400095f95000d4e86000e4b820010497e +001a1f71002a136a003b086400430d46004c122800470b1600420405002c0402 +001604000010130200120d160015072b002b034600420062004c006200570162 +008d0f600078245800643a500046405900294763001a426e000c3e7900103786 +0018328600122f7f000f266b000d1d58001f3b670032597600316c8400317f93 +0027c28800179398000764a900114390001c227800191c710016176a00151462 +002b0d4b0047092000490510004b0100004f000900530012005f091e006b132b +0043151700310c190020041b002b112300371f2c0030333f002947520017587e +000b73a60020a2ba00227e9700245a74002a506500314657003f3e3c004a243d +00790b4800720b58006b0c680050076600350364003304640032066500340565 +003a0265003a0c4d002d143200201d180017181c000e142000080a1f00160d28 +0029024100320248003c035000450153004f00560057015800680758007b1449 +008c1744008a11600071096000590260005601560054004d00640348007c1832 +008c3c1700973b2e00a33b4600a8344a00ad2d4e00b8435600bd445300c64363 +00c53d6500c3435c00c84a6100cd526700c84d6200bf4b5600bc465600a05734 +008e530d007c3509006a1705007b2804008c390300955a1800a9723100c86d6a +00c683730063b591005c928600556f7c00424b82005c534a00795a4800bb4750 +00cd546700c46f6900bb8a6c00a48965008e895f008a715d006e5924005a471d +00452e340016225c002429730033308b002f4b9400056bad001881a1001a6195 +00192f84001d257d00221c76002b0e6b00440162006a05610090126400b62864 +00c8496400c87e7100c1906500baa25a00d28b1f008f803b007aac310060ae3e +0082936900679c7c004ca58f00337caf00198bad00129bbb0009afd9000090c5 +000090c5000c72b200096faf00165ca20017378a000e16690002044100110a2b +00120348001905510020075b002b0666002a0b68002e0c6a00310969002e0968 +0030035e001709580019123c001f0d370038023e00500142004b143100492030 +003e1f270020123300071436000b1c5200121969001f197100221d7900142d81 +00114284000b48890012538900095da3001794b2000394c30012bdce000ac7db +0015c1d50021baca0040bdb50041a59900418c8700296c7f0036538f0026327c +0024176f002b0e6b00270d6800221662003a346200501c6400740c6500850e62 +008f1a6b009c1a5a00a01a6300a81f6300b9296600c1386400bd386300af2b5c +00981e5700880f5f00611e5400580259004f005e004c146d00581b600068082d +005f0521009f191800b21a2900ac0438009425350070483c0059725d00547771 +"/> +<palette number="316" name="1u0214.jpg" data="004d400900150c4d0015195000162753000e2b5e0006306a000e34640017395f +00052f2d001723330029183a002e0c2a0033011a003c041b0046081d00470726 +0049062f00481737005825520069336d0071355a007a374800722c41006b213a +00751f1e00652b2300553828004b401d004148120039411700323b1c002b3324 +0019232f001a054600130634000d0723000d0c1d000d1218000d121d000d1323 +00293f32002c5237002f663c00385b3c0042513c004c4b340057452d005d3f25 +00613f2600662416006e241700762418006b370f00614a06005d4503005a4101 +0046541900384721002a3b29002d2c3900301d4a0024214f00192555001b3544 +001c4348001e5057001b504500185033001c4c2b0021492400363d1e00382d0d +003e231c0040251b0042281b00401e22003e142a0040172f00421a34004e2138 +0048233400463018004f371000583f090061330c006a28100070250e00761c04 +006519190064221800642b18005c2f1600543314004e3e0d004f4500004c4a00 +0048540a00434e160038501b002d53200021542800165631001057450008684c +004e7055006c6f57008a6e5900927755009b80510099804a00b99b2d00967911 +00753c0f00571507005d0e080064080900680f11006e230c00692b0200683206 +0082440000924e0600a2580d0087560c006c540c0064641a00515e0e0036540a +002c560e00346b2700297423001f7e2000216f310031683100344d2d00463926 +00622922005d1f24005916270050122200480e1d002f0e15001e0b0d0015180d +0008272200194a470020493c00284831002c41220041461000395008000e4a00 +000d0a0500080d07000310090004292200134d4e00087c59000d8c3300246f37 +004360420077803d00908a3700a9953200aa852c00507726002e511100132a0d +000f0a11001205100015000f0017051f00160c250024182200231917002a2a20 +00353128003628490031515000334e3f00453d3a00573243003f24350036163f +002603430027044500290648002f15420042214c0040253800501b2500522214 +00592b1400593a0e005c4418004a4f1900474c1400485007004f47080055280b +005f1c1600511b1b00420b32003a1d490047155c004e144f005b1e2d00731226 +00781b26006c1d2200592f2100333011002f370e0029230b0039120100561400 +007c0b05008e052100861020007e1234006b035a00640559004e19510055103f +005c172c00762021007f272600744857005956610034788d0018626b00274b49 +0042434700523f31005d483300674d2a007d670400a96c0100ab731400b38317 +00c36b3900a26522009a672e009c612500a0512600973b0c009827050099131c +00a02611009c450f008a572a007c4e2a008f554a007d56510082665a004c8275 +"/> +<palette number="317" name="1u0215.jpg" data="001d231500163b29001f3b3a00283b4c00443f710060439700575185004f6074 +005a789e0041638800284e7200482c6400690b57007e0c5400940d5200941a4c +0094274600833d35008b3c3600943b3700962f310098232c00a6222a00b52228 +00bc0c0e00a806070095010100880701007c0e01007012050064160a00512606 +00322d0f00680c3500760e3200841130007b0c3000720830005c0a2900470d23 +0019161100161e0a001327040037220b005b1d12006117170068121d006f0b23 +0073082400470d36002419400002264a0003164000050636000605310007052d +00071e0a00161d0b00261d0c00401208005b07050051120700481d0a002c210d +001e1e1e00290e1d0045132d0061193e00631e39006623350074211b008c2c14 +00c4281900c01f1400bd161000bb0e0d00ba070a00b8040b00b6020d00920106 +00721317000c081f00060e1f0000152000021b150005210a00042709000a2709 +000741040009471d000c4d3700185138002456390031645d0034547d005d6884 +00646591006e8266005f85560050884700477144003f5b42002b4b33001c4824 +00202d1900113c1100034b0900034d0900044f0a000953140004442c000d213a +00161445003e04500046164c004e2948004d2c3500232416001a1d12000e1714 +00050b0b00080808000b0505000b0903000c0e0100131b03002e34040045330b +006b3d02007e2c1e007d3b1b007d4b1800774b1a00483c16002232150006220b +0008021e001a0a1f002d1221003a252b00473835004d3147006520710069477a +00823072009c0c4700a9073300b7032000c40b1d00d7050400c6110600bf140d +0084211b00791e1a006f1b19005e1318003d2f260030552100325d32004d5b44 +00804b2900a51f02009e12060097060b009b161900b00620009b013300930c2d +008c0e0f008c0f0e008c100e0087100c00881e06007f0e060080020e00760811 +008013280073093a00831542008d0a4c00900e4e00930e39009e044400a9083c +00c5272600c1272700bd27280094181800681326002d122100170f380018113a +00051e3c00002a2900102f31003b2d3a0047344700562a4b0065423e0086333b +00832f60004d72780050786d002b7c5c00207c27001e6e270009674c002c6f5d +003e6b4a0039723d003e693b00326a2d003b7a34004b62480075582e007e4824 +0091331700a3241e00bc122d00c7123100d3301d00d2372100e1430200e33905 +00e6161200c6291a00ba2c2b00982753007923600059233d003c1f31001e142f +00082219000530120009361500194524001e4d1f0021581f0028552c00304f30 +00404f5200392a47002c0653002a015d00411a6b004b3160002b4e6e0005767e +00289b8e0024967500538844008f5a2800a7521b00b62c2c00b1272700913220 +"/> +<palette number="318" name="1u0216.jpg" data="005539d9002f7b95003b748400476e73006e6a610096665000b25f4d00ce584a +00aa4e7d00764b840043488c002e359000192394001a1a93001b1293001d0ea1 +001f0aaf001f20b800131da900071a9a00331797005f14950060228d00623085 +0046377a002d348e001432a2001c32b9002432d000303bd0003c45d0004670e8 +00696fd10098b3aa00b5a3ac00d393ae00c580a200b86d9600ad668d00a26084 +0054647100586879005c6d8100736098008b54af008e48ad00913dac009d3596 +009c358e004309bf00330ac600230cce00190cd6000f0cdf000e0cd5000e0dcb +0002039b000607a3000b0bab001e1dbf003230d3003734d4003d39d6004537d2 +004a49d100565dc700834cc300b03bbf00b736ac00bf329a00d73e6d00ed5a50 +00e5b45500dda36700d6937900c2758100ae588900a347830098377e008f1779 +00872a94007e28a7007737b7007047c7006a43c7006440c8004746ce001858bc +000272a4001287a800239dac002893a7002d89a2006576bb005a62c4006a63b1 +00867fa900b2729700b0649000af578a00be4a7c00ce3e6f00bc2c7100af1479 +00a80a8300a3077d009e0577009d0370009c01690092127100820d820066178e +003836a400042aa900022da100003099001a2f8a002d4689002d4988003048b6 +00343dda003132dc002f27df002c20dd002919dc001d26c900182ea60033308b +0083139300ba1d6400c1165900c8104e00d5135200d5216200d4206100bb1360 +007e266200564a7a002f6f93002a6b980025689d001068b2000756cd000632c9 +00202dd3001b0fc9001913ba001717ab0000189e000419b2000a1cae002616c1 +004b21e300641fd8007e1dce009a1bc0007c11d3005411ec004a17ee00583ce9 +006c59cf00a56cd300a86fd800ac73de00c875b900d18cb800d79a9500d5a28f +00cb807a00cc787000cd716600dd605c00f4646300e8665800c9816800c78972 +00b8768000c2595d00bc556600bf7687009fa5a1008aa8a00040abb5002caa9f +006f8a5d008c6f6200a9546700cf3d5400c5256500b2225d00881e76003d4085 +00286697002c83a100169ba00019a29b00299fad0031949900626f9c00a74c8f +00a83f8200d63c5e00dc263d00dd0d2d00d6171e00d2202000f5211500d13310 +00d1391000c8450100af651e00be452600c140560095276e00663199004f29b4 +003e1ed9003c1de4003230eb00362de0004735e1009251c900b649c600d049c1 +00c54ca900cd449200d7486400e95a4a00e4584700eb3d4700b2245c00821b76 +0036388b00173bb5001c28cc00251bd2004214cf005220bf006d28bf007c0ba1 +009c188800bf2c9700e72b6800f03b5c00e4597a00d08b6e00e2ab7300daa281 +00c67d8800b06d7f00728d62006482600054736100396685002f4785002a3c88 +"/> +<palette number="319" name="1u0216pp1.jpg" data="0027685000397a7200439281004eab900061ba620074ca350093cb2900b2cd1e +00b9b64d00baa16c00bc8c8c00ac8896009c85a100818e8f0067977d00629d83 +005da3890041ad36003e943c003c7b42003b8a47003b994d0033a35b002cad6a +004fcd830046bb88003daa8d0025a29e000d9baf001099af001498af002ea69c +0037988f004ea04b007eac3800afb92500d2be3900f5c44d00f2b74b00f0aa4a +00d6695200e57d5400f4915600efaf5c00eace6300e3bd6300dcac6400d99564 +00e3ba5e00e8c33700d4c23d00c1c24300a2965e00836b790076736f00697b65 +005398620054b3550055cf48005ee4610068f97a0071f77f007bf6840099f272 +00a0d47200afc15b00c1a15a00d4815900b88555009d8a5200927f45006b4d4d +008f89570098964800a2a43900bac82d00d3ec2100cbef2c00c4f23800dded4f +00e4f54700ffda3700f8c83200f2b72d00f8a63500ff953d00f8875b00f7913c +00f7b53a00f4c94a00f2de5b00e4da6b00d7d67c00d1ce7d00c3b18300839f77 +0053ad93001e8ea40021799a00256490002b66900031689100346e8600367c88 +0027939d00368d90004688840067828400887d850097809400b1a09000c5b57a +0082e0700045de83003dd9900035d49e002ec9a1004ab5a5004cc2a2004ccdae +005fe398007fb49d009f86a300ad869800bc878d00d2447c00d3487100d94c6f +00e1616200c0b83b00b6bb2900adbe1800b0d219009ed0490068cc6c004e9a7e +0028699100206f7c001975680020826400288f600036cb79003ce98d003ce8ac +0020f3e0002dece70025e8e5001de5e3002bcfb70022baa30013b5aa0032c3f0 +0057a7c20053b2b2004fbda20052c9870075c97c009bd55a00c3ef3a00ebf72b +00f4fc2d00abe20a00abde1900abda280069d92d0066de49005cc4470069c534 +00acb11900b0c41900b4d71900a2f332009df4580083eb72005af67b003ee070 +0040ea870034e388002fd38c0018db95001acaa3001cc09e0039d69f006bf49a +00c3ff6400ceed6f00d9db7a00dada7a00d8d47b00c8c67900cea57900a89670 +006b9b73004892810038828f002a889200367c9600816281008b7292005d81bd +002c85bd001a73ab001268b5000797b9001aaab20027cfec0012dcf00022dae6 +0023dbe3003bcba70058da9e0071e7910096e26800d3d64100decb5300dec952 +00d4c64900e4bb3d00e2d33c00ede84200f2eb4300fce44e00e6e74b00eeed54 +00f4fd6e00f3ff6f00fafd6800f0f45500fce46600ebe06c00e2d67000d8b466 +00c7937d00be928900b8938b00b5948d00bc9c8f00d1bc7b00d2d9790099ff67 +0067f684004bfb8f003ff6a30050f2850065e7870080de700092e06800a0d44c +00a8cf4000c5ce2300c1c23800cfb44900cba95000c7966d00c1c27400cab274 +"/> +<palette number="320" name="3m0001.jpg" data="0025a6d0001a7ed600227ddf002b7ce8005493dd007daad3006695b400508096 +000c2367001816700025097a0048096a006c095b008008690094077700990787 +009f079700f6378500ea456c00de545400dc4d4900da473f00e03c5000e73161 +00cb206200d0166c00d60d7700ce0f7f00c7128700ca0f9500ce0da400b515bf +00a308c6006044e600447fd40028bbc30030a38800398b4d00578c5d00758e6e +00e0795a00ef786100ff786800dc5e7100b9447b00b63e7b00b3387b00ae1d68 +00a9066100b71e5e00a6356400964d6a00755c7700546c8400695c87007f4d8a +00b71d9900a4198e009216840081198b00711c93006622a7005c28bb007b3bb6 +009c2db000a6a9f000a0c4e7009ae0de0090ced40087bcca0097bacd00988dcf +00be7dd100b685b300ae8d9600b3718f00b8568900b14c8400ab438000ab3e99 +00b3329900d13b7b00d3317a00d5287a00d42b7400d32f6e00de4d5400ec644c +00ea8b5500ea8d3d00ea8f2600e5852900e07b2d00ef765900f45d6600f54d98 +00fa56af00c095c000b8a8c700b0bbcf00c1a1d400d287da00eb4be900e429dc +00e506c300cf05c200ba05c200b906c200b808c300aa04b000b908ae00b62eaa +007c73c4000d57c4001168da001579f1002675f600432be1003b40a400572b9c +00a72d6a00b23a4c00be472f00c04f2f00c3573000bd512a00ae3c3200910b4a +007d0e410077206f0080217d0089228b0095158c00ae17a000bf14ae00c52db6 +00c259d0008f8ace005cbbcd0059b6bf0056b1b2004a949f00397bad002970b0 +002179ab001d4394002036890023297f002d218f001e0795000018a5001319a5 +00222cc2002421cd002716d8002d08ba0044039f006b0980006f078200750598 +007a128100a93e8600a3467e009d4f7600b7528a00de589700df4a9e00dc3199 +00bd2c7100b2307200a735730070296b004d4f8800325f80004c5dab006f45d5 +009c32d000c221bf00c630cf00d946b800d559b100f05bac00f03b8c00dc2d92 +00b32ba9009935a000804097004f62a600756c9700794f8e00915c6200906777 +0090b089007fdd8f0079e6a2005ad8ca0050cdd3005fdcd80062d4ca0072d3b0 +0090a78b0092659000853a8c008b218d008c0b9b00a507a400c017b000ca23a7 +00d1209200ca227a00c21e7500bc2c6900ba1b5d00ba0c4b00be1e6600de1d7a +00f31c8400e5258a00de1b9100e6239900f30a9a00d40ba500da17b100c81cc0 +00b542d1009565d5009a7fce00627dd6005597f7008877d5009762d800a04ae3 +009642de00af2fde00a719e700b813c900c90dac00d618b800c535d200c256bb +00de6dbf00b2819e00a1878600bb639600cf5b8a00d85c8e00e1698500e7717f +00ee667a00e76e5d00ef7e5c00ee935a00ea926400e5c97600ebc19100abbcce +"/> +<palette number="321" name="3m0004.jpg" data="00181a26000f140e0020310900324e0400474703005d410200623a0300673405 +0058081300510b15004a0e180033141e001d1a25000e0f240000042400060a29 +000d112e002b2457003b2758004c2b5a005720490063163800670d2d006c0523 +00b31f2d00c41f4700d61f6100a81a4f007b163e00721a3a00691f36004a2515 +00592d14007b751300807e09008687000096852000a6834100ad723d00b46139 +008e484800635a3100396d1b00238431000e9c480026a359003eab6a007b7d68 +006c3e48005c222e00541a2a004c132600451f2b003e2b31003835300033402f +000b6724001a96200029c51c0040af2200579a29004c7b1700415d060066600a +006b4506003f3534004a493400555d34005e562600684f190070422b00693e1e +00693214006d230b007114020061100300510d04004a10030043140200451e01 +00411b0e003c3b430027535c00126c75000e6f93000a72b100146cc600234582 +001e3a3d001c2d2d001a201e0028272000372f22003d4617003a53190049512a +00514c26004434410053374a00633b5300704553007e505300b67e89008f9f9c +003d79830038516000332a3d002e233c002a1d3b00261631003d14240053111d +0055050e00441609003a0f090030080900401b0b006d2914008d4a0400a26009 +00af3c0f00a62509009d0f0300a60e0900b00d1000b20f1000bb133400da183d +00cd3037008d2270008f197f0092118f00580490003f108200412a840032228f +001c24770018295d00142f4400164234001856250034570700164906001a3c19 +0029362f003c0779004b0e76005b167300692a63007c254800842e3b00903729 +00d1292000d81f2100e0162200e43b2800e8642300f36c1b00e46e4a00f19530 +00e2932c00f5a71100efad1000e9b41000eca80500e09c1500c8a00b00bd8816 +0068774e006a8052006d8956007da0440070b6320085b43400aba10e00b0a913 +00d49f1b00c07e4200dd645900db665d00df845500d4904700c88b6c00c7a977 +00f8a77800e19c7800cb917900ac4b5600943450007b28380072212000721f17 +0071170e00670d19005b040c00530b0f002c0f14001a100e00020b10000a0c0b +0015120100161803000d290300042c140002321a00112f0b001f13150053092c +0093173900ac343500c8515500ca683b00bf7e6000c5837500a872660076504d +005e4b3c00694137007b4c4400a14d2b00c3422500e76e0600d8800000e98c09 +00d98b0f00c7870c00b86c2000aa7726008067130053871b000fa8550001b985 +00178d8f002c81a600294dc800533b8f005c3c91005e2391005623680077115b +008e1f52006f1a3100571f28005b2a260061251b00652c250064351b006e4519 +006b2a2800652d48006d075b0059135c004d1e5500370d5f00450b3e00250d41 +"/> +<palette number="322" name="3m0005.jpg" data="0070232d0055082800631e210071351b00763522007b3529008f3b2e00a34134 +00aa097b007c0e74004f146e00371d69001f276500161f60000d175c00231c4e +00392141007864870073828b006ea190007abea50086dbba0085e3b80085ecb7 +0060d69c006ace850074c76f006c985400646a3a0052592a0040491a00213615 +000e2d250002165300071749000d193f000d1d33000e2127000f202500101f24 +0025302200512519007d1b10008c1e0b009b2207009f250300a32800009b3b08 +006d3c1c0021250c00211a0700210f0300100b070000070c0000040600000100 +0015030f00200909002b0f030032171500391f28003c2e37003f3e46004e6b4f +00526e48002e621700335c1400385711002a581b001d592500104a2100134427 +0031380f003d311b00492a27005550410062765b006495650067b4700066e981 +0059d5730036945f0021695f000d3e5f0006266000000e610011083f0023112b +002c21250024262d001d2b360020253f00241f4800211e4900123a46000f5b3d +0020563600255e29002a4c29002f3a290033382800383627003d2533006c2c2a +0091173e00800f28006f071200541213003a1d150012202100022f1800063515 +00075023000e67270011612000155c1a00246a11002d710c00287c240042785e +00439895004286740041745300457356004a725a006885690082955e00b1b64f +00ccc56a00f6e29b00ead47700dec75300e49c4800f65d4b00b5885100988f4e +00b98c6b00af997800a5a68600aab08800afbb8b00adbc810094b6620075ae81 +00579a8900277c5f00187a67000a786f000b695700066136000f871b0019810e +000f4303000f3e0c00103a16000e2a2e00162e3200331b3f0046065a0047184e +00342d560039571b00527019006b891700a79e1b00e5af1b00ffc42100eca235 +00707e2f00657c2b005b7b2800646232006a593f003d4837005e513100724319 +006a3b210051202600452d21004d683100698c300085a13b00a2b84c00cacc2b +00ef8f2100ce832700ad772d00af5b3900a9203c00d1093000d4050b00c51321 +00b91619007d0822004e0926004c0b430074176800641c72004c147f00334367 +00254b5e00204f490030773100546c3000616c10006d5f140071520200592c03 +00501d0800371009001f0a1b00090516000b0819000b1425000d1c23000c0c14 +0019170b00181b12003a36100060571c00957238008d94350077815c007a9f5c +0073986c0071a26b006da38900aa7db6009e777a00936a7a0084697000774f71 +00716555003c6d4d0011726900164c780011455a000a444f0011515000214c3b +003c453000623f19007a671b0090751a009d852f00ab6d3c00e55d4f00de5159 +00b5566c00bd326b00cb107700d3165000d24f3b00af6117006c761300218022 +"/> +<palette number="323" name="3m0006.jpg" data="000d75ce002c7234001a6f1e00086c090027390f004606160045053600450456 +0026057600150c680005135a0009154f000d1845001d2449002d314e00302c4c +0033284a004613600055125f0065115f005f1269005913730054146e004f156a +00400a8200381d880031308e003b358700453b80004e437200584b6500884a55 +008f484600a6693200ab532300b13d14009b370a00853200008c31050094310a +00ca1a4800d8223c00e72a3100df563800d7823f00dc853c00e2883a00dabc66 +00cde5450081ac5d005da15a003a96570049915f00588c68006880620079755c +008a5350008749640084407900906566009c8b53009a8d520098905100718641 +007f58530065205f00791b67008d1670008b1c5c008923480090382e008f7230 +0094b55e00a7b56600bab66f00a9be7d0099c68b0089af910079999800689fbe +00478ee6003ca6d60066a3ba0090a09f009d9f8300aa9f6700df984600ed912a +00c73d3a00ae2c3f00961c450097173e009913380081063d0077033000720c24 +005017200050035100540a580059126000530d5d004d085b005a2752005e264d +0081481d00984f2700b0563100af5d4500ae645900a47a84008c64c400366fb2 +002b81b000148bdb001d86e3002681ec0058cbf800a4c1ed0098b2e50083bbb2 +003ba08e002a906e0019814e00247d4d0030794c004a7a52005f6c5800995643 +00934338006752510068676100697d71003a967f0021b1960021af9f002488aa +005169490087723600bd7b2400c57f2c00cd843500cd623400c94a5b00c4477f +00d7278a009c0d6900970b69009309690089148700684377003b6d78001d4b7f +005027510050333f0051402e002d5d2d002f4553002a447f00164bbb001074e6 +0029a0f4002ec9f90030b4d80033a0b700069b7e001fac3c008ba22000b98a18 +00cf7b2500cb692100c8571d00c3190c00b8180800b10f0a00a8031100880223 +0065064a003b055900150858000d054e0009003000210031003a0e25002e2b56 +000043740003648200068691001391ce0005cde60015d3f30006cbd10030a9bc +001b92b200188b7a003d5f6100445567004b403a004b2c4b005d273f0081452d +007b3b22007e3515007c250700611610004d2331004f3e220026341a0025370d +003a6013007a3d000081420c008a7f230077a34e0093cd5200c2e24300c1dc2d +00bc9f2a00b9741500a64e26008b481100867b110092940300bd980200c17b0b +00b95c0f00ce361100b81a1700b4091900a6131b0096191500840b1e00991125 +00a6002a00da1c4a00da205200ce1a3d00a51b2b0093140d0098030000a91400 +00ab140b00a7151500b21d0900b4341b00ad713d009e735300795c94003678aa +003a61980030407b003822510054225500541e6a00784262005f845b00816466 +"/> +<palette number="324" name="3m0007.jpg" data="0000d59d000cd5dd000bd9e3000bdee9002bdaca004bd6ac0077b39f00a49092 +00d58e3e00d4814000d4744200a75d5f007b467c007f399000842ca4007531ad +006736b600406e7d004f7e6e005f8f5f006181530063744700676e5d006b6974 +007864a30092798c00ac8e7600a4777a009c617f009f578700a24d9000a14294 +009f4b9900865ea5006569b5004574c6004a5aa9004f418c00523a8600563480 +007a386800853b7800903e880093358600962c8400a41c7b00b20c7200b20763 +0090254f0081434600a3533a00c5642f00dc503600f43c3e00f3254300f30e49 +00f0256400e3345800d6434d00a83f51007b3b55006a3a4e005a3a470044325c +0029517500307aa1002b649b00274f9500233d9c00202ca4002b18a800220caf +00082c9e000b5d9e000f8e9f000aa2ae0006b7bd0008b2bd000aadbe0025a4b7 +003773cb002b589b00444b85005e3e70006b496d0078556b006c555d00568b6d +00247579001e6581001856890015637f0012717500006c7d00037e83002e8074 +003a767600614d7000654a680069476000634263005d3d660044684e00509e52 +00328e5b0023726500145670000f4c76000b437c00023797000127a2000b2bcb +001449f1001482bf000a7ebb00007bb7000575b4000371b0000258a5000434a2 +0012159a00201198002f0d9700270f8d00201284001115810021157900371784 +0032027000472e6700492f63004b31600053564f0070976200b0ad7800e6ab7f +005991db002da6c80002bbb60004bfb20006c3af0028cf7f0038ba50003cd650 +0039df4d004acb8b003cae96002e92a20010838a0014956e003cb9550046bc72 +0020b86f0017a769000e966400225f64002e387d0044268800471ba2003d10a1 +0059099e006f22a4007025920071288100651d81006a06a4005f07b3005a31bb +00503fbf006348b8007752b200a0579e00e046b800a158ce005e72e5004a83da +00219dd9000da9bf0019c0ae005ba3a00097957c00b59c4200e1ac6600ed925d +00e8477b00dc326f00d11d6400b20b75009014e6006a1be9001730ec000f73bf +001873bc00144da4000e34950005258c0001217800132579001620810011408e +0031308000402284003b1783003a2894001c478b001b5587001f7c6a00317566 +00405453003e2d63000c2f4f00054455000c5b7c0003758f000278aa000379ab +00078bbc0007a8bc0009a3bd000281ae000375ab00076ba6000d37a5002f2aa2 +004426a0004929a80057189b005f2480007d197c008b0c670082375e006f2477 +00453490001159a5000374ac000c7592000e768100084c7d00004681001c2664 +0036216e0059217c005d04780061176400590749005b214a00762d5a007c5268 +00a378b000ab98cf00a5bbe200a6a0de00bc91c900ad6aba0088638c00a25299 +"/> +<palette number="325" name="3m0008.jpg" data="00ce4f9c00c1237a00be1b7a00bc137a009c0f71007d0c680084215c008c3651 +00a39799007eb09a0059c99b0058c2b50058bbd00061b8c4006bb5b80073babb +007cc0bf00acb28400c1886300d75e4300a75d2c00785d160083500f008f4309 +008903020081160700792a0c0075330e00713c100063341400562d190027060d +001a1d2c00324a2600444a2400574b230054661b00528214004f8728004c8d3d +0029864f0029804600297b3d001d58230011360a000c310a00072c0a00182916 +001e260f00731305005b0a070043020a002d060600180b03000e060d00040217 +000d235d002c2065004c1d6d004641600040655400476340004e622d0030973b +001a7727000e7e0e001d710b002d6409003a600900475d0a0064393200864436 +00a0492e009938240093271b00802015006e1a0f007a2c1900863f23008b364d +008159620077b47b008cbe8000a2c98600adc68200b8c37e00b7c2620092b849 +006d7f55004b7f5200297f500018795a000874650010917f00159691001b7caf +00433c89004f0e9000671b90007f289000901e8800a1158000ab1c8500de448a +00de5c9c00a46b61006b7a2700457e230020821f00137626000c7e4d00139363 +001d9e9a003dd0d70042c8c40048c1b2003da1970024b5500026a93700489708 +00406a060046510e004d39160040341000332f0a0025340900026c1400028128 +00019f42001e6b49002762530030595d004d38790055237800671e7a00702a70 +0082326500673452004c3740004e3c4e0050425c00572677005c3a99008f40ab +00b93a9100cc66a500c76fa900c279ae00b258b0008b349c005b1a5c001e0934 +00081b050007160d00071216001c182700482c29005d291e00741624006e0724 +00730d3400a1215100a01d5900a01a61009e206000a7437700b05ea600906abd +0074a9950065a5880057a17c003d756800234a6b001410650027066e004a117c +003d317b00465d89004b6f8f00599cb60068b4b4004db0ab004e9ea9003e9d97 +00116c5d0020665800306054002e5e62004e647b00619d9e0079bcaa00bcccc1 +0091a0b3006f60890079326c00721e5200770a5b0060094e0057034e004a2537 +0037212e00362839001a3842002e0764004d1964004e086100510464005f0b6d +00531e660048336c00554663005d7158006cb88a0040ce9c0041d8e30050cacd +007cc4c300a0a5c500a69bc6009a7dd100a04ebd00b134be009b269800973b6e +0076603b006c4b4600434537004e272c0051222a0044192c0060062000661325 +00692e26006a3b1f006b552c006f6b2b00797a36006e5944005c4f6d00213c71 +0005368200041e7500342e6e00584ea5007357ab0073a1b8008691d1007479dd +005f5fd9007461cc00a783a900b3836f00ccc05200c59e5100b1784300615d14 +"/> +<palette number="326" name="3m0009.jpg" data="00524519006f092100580f350041154a00352751002a39580026436d00234e83 +006fc4a3007dcca2008bd5a20094cda2009ec6a30075a589004d846f003c7771 +002b6a7300054ca6000450950004558400214e76003e4768004c3b59005a2f4b +007c141f00660c1d0050051c00350310001b020500130404000b070400010504 +00041002000a11090007160500041b0100071f03000a2306000922080008210b +0031291e00482c1200602f06006a3a1500744625007d452c0087443400907a48 +00a3da650094dd8e007fb277006b87610053844e003c823c00397e4400377b4c +00098088000799ac0006b3d1000bb3d20011b4d30012b1d20014aed200169cbf +000f72920003369200062f81000a28700007255b00042246001626190018341d +000d843200269c680040b49f0028b09b0010ad98000c988b0009847f00186e4b +001a6d290028570f001a4d0c000c430a000c3708000c2c0700111b13001f1c31 +00487355006f916f0097b089009faf8c00a7ae8f00baa8a600b1c7a100b2dc90 +0096b9750043726800276164000c51600010376600141d6c000f17620014195d +00131b4000242a3e00353a3d003438380034363300261c270041272a0059242c +00921e1f00be260f00bb240a00b9220500962908006b0d050038180100301305 +00350723002727300019473d0028673e0038883f003c9f6600269c8200228f92 +001e81a00008898f0007828c00077b8a00045e7800056863001e494f0010453b +00062d12000d1f0f0014110c0016170900181d0700121f0100082f0000092401 +00191d06002e1a00002d1801002c17020017140d00161b1700211c2000300f24 +00180219001e0a130025120e00320309003a020300400e030041040c00780606 +0083180e00541d18004617220038112c002e073c001f0b2e000f112800131718 +001f011b0028001d00310020002c112200360d1d003b0f1c00471230006c1027 +008f212a008d161200951e0800881910006a110b003d18060038190500491f11 +002a281c00253b1700214e13001c643c004e7a56005e775700756e3800893a1b +00a31d0400b91617009e0f2b00870d32005b1553006e357a009c638c006f677f +0034527800204a7200101c8000140c83000e137b001e105d00100f2f00111312 +000f1a12000c240e0018270a00262310004f301b004d6c1c006d8e0b00a26709 +00b05013008b5e61009c7d9c00acabbb0091c3b80092bbb30087a291006195a0 +00468676001a727600116b830022698700198288000c849d000793ce000f9bd0 +001994bd000d729000025b7d000e266400071f4d000d162700150e30000c0938 +000a06410001146300070b860010098b00050f700000073d000510300000081d +0002091b000904220006124c00040f51000f1e57001d104500270a0200210d32 +"/> +<palette number="327" name="3m0010.jpg" data="00f4876000dd827000e78e8000f29b9100de9d8f00ca9f8e00b7a27b00a4a569 +00366e270036552000373d1900483f1500594111004d340d0042270a00372710 +002d271700045216000c5c220015662e002b641d0041630d004d6512005a6717 +0068680e0075591900824b2400915e2200a1722000a2782200a47f2400bc9643 +00d9963f00e5bd7800cba67600b29074007e7178004a537c0046387300421d6b +00311c570032375d00335264002b535d002355560021404700202c3800222337 +001f2823006f6714008c892d00a9ab4600b8be5300c8d26100e0c26700f8b36e +00bf909800b1a47800a4b85900a3c34d00a2cf41009abc400092a93f00aa9329 +00ac843f00a5833c00905e34007b392d0074333a006d2d4700711d2a00752a25 +007f1e2f006e1c33005d1b3700451b23002d1b0f002c1409002c0e04001b0804 +0016170500050f4d00100d52001c0c57001c0b5a001d0b5d002b0251003e1349 +006a303c0085292300a0220b009a29060095300200923a120073481500655c0f +00655e10002f521a0018604700016e75000a5e6700134f5900131c57001d0e53 +004b405100626343007986360081742c008a632200834c130082421c007e4913 +00773a0400713c1a006d371a006a321b00613222006437100062281200732811 +008d190a00832009007a2709007135040068430000706009006b7709008b9211 +008e7f1800b1a01c00b3aa3100b6b44700d4cd3e00e1cf6300dfdf8700c3db7b +00baf54b008de23c0060d02e005dc624005bbd1a0043957f003396810012649e +002577a90043a89a0052a5a90061a2b80061698e00a44d6000942b3a008b2226 +00951a3600aa275100bf346d00bb506c009d64470091604f008f6050006c4759 +0051244d003a203d00332036002c212f002a18320024122a002a1325002e1a25 +00571225005b0c1f00600719005b021400620e0c00530400004c0c02004e0f08 +004b1b05005f1c09006e1e1700772016007d2b16007d351f0086421d00954b0c +006e5b0f0061530f00554b10006136260067202400771a15008713160098052f +009b022e0081041600661409003b260b00231d0f0012290d0000350700161c12 +00110a2c00020f3200060435002d043e0056013a00730d3c0071042e0059051c +00520612003d040b0023051d0029022f002b0d43003617530057126500612064 +008e534d009e754700a78c6100b97c5f00a9607100b4419c00715ab50063c7e1 +006cd4dd0056c493003d957d001c8c73001e5365000b1548001a155800061e7e +0023487f000f6d7700127c70000f763e00374836003a33200054202400531b0a +0056200400602a08005d470e00606d1b0081a949006b894d003c608200314580 +003c3c58003e3842005f2c2900683440006f354e008e3c4800a11b7a00842e6b +"/> +<palette number="328" name="3m0011.jpg" data="001f3d230008242800082f2b00093b2f000b3037000e2640000d1e39000c1733 +001f0f1c001a0e2e00150d40001b0881002103c3002e08b3003b0da400320b87 +002a0a6b0032022c00390d3900401946006d2455009a2f6500b83b6500d74866 +00c493b000a498a800859da10091b693009dcf860097c08f0091b199009191ab +006db6a5004e9cde0042b8db0037d5d8003ed9df0045dee60057d5ed006acdf4 +00999ce3007f88de006675da005f66ba0058579b005a5397005c4f9400622493 +005f218400682a7d00512f75003a356d002b496e001d5e70001e5b6c001f5869 +003a7c4c001d684d0000544e0010586500205d7c003d5986005b5591008178ad +009875ab005e4b9d0052367e0046225f004433590043455400315b6700358083 +004779dc00476fae004866800039446a002b235400361f5300421b520065286e +0057207b00501897003729b6001e3bd5002243cc00274bc3004261a400457a9c +00449889004385670042734600306035001e4e2400082b0b0000260100020e0a +00051b0f002f1f06003a49210045743d00399650002db963008dd08d0083d44b +00f5ea1e00d4a52300b3612900cf363500eb0c4200c63868008f294e00431834 +002f1b370013161b000b111400030d0e00040507000200010001000000000d00 +0014222300293131003e403f004d5c4f005d7960004c8187005391b800669b95 +00477e8100103f1f0008281c0000111900000d11000005050000020100000000 +0000000000000000000000000000000000000000000003000000040400000306 +00000000000000090004031100080719001b1032001f2148001c0d6200081856 +000c0139000d0636000e0c33001f081a0044001d00652b3a007876460076a696 +008cdd980070d0dc005fade0004f8ae4005685d5006372d100617acc005499c2 +0093dec9009fe2c600abe7c300bc8cf200bd6ac600d861f100f042df00d916dc +00b74195008b388a0080196c0052265700561d540070124700950e74008e276c +006120b8006422c2006725cd00a826ae0098368d00c1436900a75b3b0069751f +0042401900363a150049250b00540f14003d0319002f1c0d0022491200356f35 +003f7b61003887820041759a003c57ae001b34b3002534910014166b001b1032 +00120a15000203070001000500080003000d07090025000e0027170a002b2e1b +0022392900163e33001f3331001227440000274e000c2869001d0e6d003d126e +006b189e00cd22c800a22ffc006c19f1003633f600684dfc00704fff006b68d9 +00586eff004f67ef004a7fdb00488dac003772800016505c00154f4300193124 +00181e1c001b18230021143200281e3700421732007d1b4200811f4500423155 +0038335300311c4300312e29002b3c3400233039001e244400331551003a1653 +"/> +<palette number="329" name="3m0012.jpg" data="00142249002416300024224800242e61003b358300523da6003e38ba002a33ce +0029176900322854003b3a400056332300712d060096751300bcbd2100d6de54 +00f0ff8800fddc8b00f3b66e00e99152009f513a005611230045082500350028 +0009000c0004020e0000051100000a150000101900011315000217120007060b +00161b0400183e2f004c584700807360008b819000978fc000908cc4008989c9 +005b0cf1004e18b00041256f0039124f00320030002c032400260719000e0500 +0008000200000000000000000000000000000000000000000000000000000000 +00000000000000010000000200050006000b000b001100100018001600381130 +005f143200d6487a00ea5e6900ff745900ee6b5f00dd626500bd2a600090105d +004d0849004d0951004e0b5a00580e56006211530060105b005f1063006d1d66 +00911b570085337100a1398b00bd40a600cd41c400de42e300bd74fa00aea5da +00ef839200c96c7200a45652007c333b005410250033040c0025120b00140000 +0023000f0039042e00440238004f0042004202470036044d0040285c003b487f +004ab4e60073aae6009ca0e7009fa3e000a3a6d900ae7c7f00a43ba200a82f99 +00b31e9e008707800082138a007d2095006f2a9f007a57b5007d5a90005f245e +003009380026142d001c20230020212400242225002c353c00502e470092513f +00bd813900afc92a009fca240090cc1f0075a267004f8f6a005371a7002a6e95 +001417780015105e00170944001506310014041f000e020e0007000000010000 +0000000000000002000000030000010400010c0e000c1b080013170900171403 +0030370d003f4307004e4f01005252160072510a00746309005e7d16003e693b +0035523300403949003e4b4c003c5e5000577768005ba2680056d74700b4ca68 +00cdf92600c6e32200c0cd1e00caa04e00e4a68100efcd9d00fcc0e400ecbeda +00f0ac8500ff994600ef541e00c024390066093600542e5300402c5d0042385a +0043365400633b5300834052008a5c78006996ab001ebdb90017c7f8000292e8 +00284ea100602b950073269600921e9d00930690009f017800a9307700b23a93 +00e92a9b00db18a200df0d9400d70fa300cd069d00ab0593005d297e00404b69 +001639790017616000304242001d242e000f275500171c5e003c00510070186c +009222aa00ad26fe00d202f400e320fa00f202d300db0d5f00cb244f00841740 +00571447004c073e003f044400330243002a002e001f0425000f14180004151f +000b1036001b0357001d1453002f145700541c5b00622283008133c500943bb9 +009844b300a427c1009415e200cb48ee00a29de00058c6ab005abea40048e274 +00769d2000827a1500616906003b3d0000382c1c0063143100b2284c00c94c50 +"/> +<palette number="330" name="3m0013.jpg" data="000a51310039515d0029778200199ea70015bdaf0011ddb8002ad6af0044cfa6 +005b8ea1005c889e005d829c005d7a87005e7273005a69650056605800524a49 +004e353b00b13d0c009e300d008c230e006c1a08004c1103003c0f06002d0e09 +00051c24000a3b3200105a41000d6f5d000a84790018827f0027808600217e76 +00106852000045470010395600212e6500283c7400304a83002455660018604a +00076942000b6435000f6028000b3d1500081a020004150100001000000e0c00 +00191d0e002c4f0d003083130035b81a0028951e001b72230018572500153c27 +00153122001e302a0028303300373b4400474656004f4e5d00585664004f444a +0047451e00461f10005f2b0f0078370f0081450a008b53060090681000ba551f +008f1d13005819150022161800160f0e000a0904000b0802000d070000100b00 +0015060100180f14001c161500211e1700282c17002f3a1800414b16006d5926 +00827c0a006c850800568e07004c8f0500439004004857020025400b00272300 +00310f05001b0d04001717020014220000112100000f2000000b360000103605 +0026320a0053461100815a190098751d00b0902100bed00a00accd0e007ee323 +004da81c00446d2b003262190021580700157f050013a30300149b03000b7207 +0010410a00183b0a0021360b002b320c00352f0d0058480c006d7a34007e8d24 +0079822f006f55620062436c00563176005d3b91004f3491002a32630013314b +000e332c00153b25001d431e00213e1e0025391e00203828001a3a2b00033f35 +00125439003d7b30005eae2b007fe22700b0c81800c5cc0d00caa70d00bd901d +00c34e2300b8332c00ad183500a3093d009e1b2900811525004d3109003a171d +003f0a3600371b4b00351a430033193c00320b1e00450e0b004c0608004d0f00 +004f2c0e00473c13003f4d1800264e190011663f000e813e0009bd16002ccc24 +002ea31e000b7a360018562f002b3a3f002b2d3900331c4a0032235c00451f52 +003b084300310534002803250035081c00310e1400381d240026192a00260a3a +0020104f00162c41001a2e2f0004161a000a141d0021111c0026070f00320107 +0035020000440f07003e0c0d0032100e00232927002b2f1e00312f16002c3518 +0023342a00512b54006f05500090112400ac4d2100b57b000088c311007cbc20 +00676e6700645c9800555da500507ba6003b76c4002f629700297d7f001d7f56 +0013773900157d4c0027756500357b7100249168002a855900116c43000f5a43 +000d4b46001d3c5100253a4b0024404c00165544000968480009635700006c6c +00057b650000a58f0001ac9c0005b5a10012c5a8001d8fb30042b3c3003cc7a0 +0038bf970029ab7f005577670094792c009e750c00908b2d002e7912006c9616 +"/> +<palette number="331" name="3m0014.jpg" data="00b5470c006f3e3a00714e2900735f18009d581600c8521400d14a1600da4318 +00d0422c00a239350075313e00501c37002c0730001f062b00130526000e0716 +00090907001606070023070a0030090e001a0e1100041414000516170007191b +0020131a00211a320022214b00253c5e0029587200265d720023627300166375 +0014748000267b82002d747000346e5f00276564001b5d6900104d6100053e59 +00175f6d00217f68002c9f640039ba680046d56c0047cd660048c561006fb157 +00889a4e007f6534006d553c005b464500583a3f00552f3a0059313b005e333d +00c0462f00bb4e3a00b65745008d4c4600644148005a364200512c3d00471a2f +00591218005b0d0b004f161000441f16003a2114003124130037392b002f2428 +001526130016331500184117003031230048222f0054262700602a2000940a19 +0099030f005f1718005b28230057392e0066393400763a3a008b3c3700972c1c +00b8181a00ad231b00a32e1c009c4f230096712a0089852a00548a2a0028702e +00025d0d00803e0200a3220300c7070400c8030200ca000000a41409006d1404 +001e0701002a060b00360616003d051400440412003b0d1000360b1400401818 +00351b1a00211d0400141b0500071a070016280e000d2b1300043b010001530b +002334440027413e002b4e380030443d00363a430036324900282746001c252e +002f0f26004c141d00550d29005e06360078101b0082060800ac050d00ac1409 +00b7180500a71f110097261e0091221b008b1e1900563f1f003a593000376038 +003255410054893b00528f39005095380067852b006f5f450059631a00545e15 +0044351e004a3b1d0051411d005b4132007f5b2900a05b1800b94f1100bf4b12 +00b4340300bb372200c33a2500cc3e2800c2191200cb0f0600d4350e00d25326 +00ec913e00ca934c00a8955a00829f83006a8a5900626c6d0061605e007c664e +0092854e009199500096a153007ab9470064c8560032a5570013b955000f9b44 +002b8a2c00278a3e00238b50004caa540072b04b0091b74a00b4ba7200b3ca96 +008dc9ad0096e6830089b35d007e9d40007a872f00506554004a655600393f63 +0040324b003c273a005b193d00620c390069233b007b301b007f3c2b0055444a +004c505b00455e5b005e493600855e2500ac4c1000d1531900cd722c00e5943b +00be944c00bc955e00c2a25500cdb26300d6b36100d6c15400dbd65e00f0da6b +00d8d06300c5b86900b7ba6100adc45000a7bd4e009a9a42007a902e0055963c +003eb059002aad6b000d856a00078730000a6d12002e6f11007b861e00a09843 +00afaf5900cce56300cae95f00a5d567009bcd4a0093a43e006d8d440036835f +003d8f69004f86810039b0760059a6820093c57c00bfbe6e00bcada600b8a97e +"/> +<palette number="332" name="3m0015.jpg" data="005f621300605c3f0064644900696d5400568256004397590049835f004f7065 +0055443c006c45380084473500a6674400c9875300c97c5700ca725c00c37a6d +00bd827e00c05b5100a157460082543c007452340067512c00625c2a005e6829 +006287530068905e006e9a6900658168005d696700606564006361620071714d +006f582e0086581c00885e32008a6548007f7d5c0074967100819971008e9d72 +00cbb17800a88b87008565960079526c006d3f42006a39370068332d00732429 +0072192f00340e05002f0f0f002b1019002b0c21002b0829003c0c23004d111d +00750e39007418390074223900633f3e00525c44004b5c5100445c5e003f6955 +002b564500174f20001a3a1c001e2619001e1d1c001e141f00200530001a0935 +00120820002b1a2500442c2a003631340029363f0023333a001e3135000f2533 +00122231001d26250020323300233f420020434d001e48580032547000266f66 +0045767200416866003d5b5b0043525000494a450049443e00614834005d232f +00630e3700682747006f1e440077164100721448006d124f005d103c00481b38 +006b338a006a1f7a00690b6b00750f540081143d00820d1d0074171200802101 +006c2d1e004e0c1600450d19003d0f1c002b1e16001a220a00132d060000470e +000e96800026918d003f8d9a003199830024a56d00059b4400167c3300346826 +004c4c3200995f8f00a2679a00ab6fa500bb93ae00cb5eb900c02c8c0090256d +00c6144e00ab113000910e13008e191c008b2425009029180097350e00734418 +00534e16002e7316001f791e00117f2600218b41002c805e00499c800013ddad +0075c6d70084bbd70094b0d700cf9fd100df93d400fccdaf00f2ad9000c9c387 +00bfc48a00ca9c9e00c2a19200bba786009e736300885b560075504a005b3630 +0026341100303b11003a421100314f0f002b531f0032453f002c5243003f564c +00316c320027633d000b56520006533f0019703d001c8833000aac3d000fba2e +0041b258004bab520055a54c0069936d0062808000569ca600ad8d9000bd6559 +00d05a3e00bb274900873f330077343d00553a4900413d4b00224549002f3648 +00552756008b42550098604f00bc6c5100cf633c00b439170098241500892b05 +00602e0900573a0e0050252f00511f42003012440026104100200c2800172212 +002126080003301100042b180000260f0017181200010705000c0c180007141d +0001102300001824000712320003134400172a3b002f39420044343e00532d3a +00552825004c1a19002a0c0e0014110a0017201d00173239001246540018615a +001474660031665200337d4a00376d4b003a64580038434900393742004e2626 +0045111300470d0b0046200b004d1d13005e320f008139110094473f00983d2a +"/> +<palette number="333" name="3m0016.jpg" data="0094552a003361320028422d001e232900111f1d00051c120006260a00073103 +002b61130028701400267f150024890f0022940900469108006a8e0800808814 +0097832000b7852c00bd992300c3ad1b00c6a82400caa32e00c8a74700c6ac61 +00bd9b5300c97b3200d55b1200b03b15008b1b190086141000810e0700811121 +00941d5700c3334a00c2424b00c2514d00ca444800d3374400d3353400d33325 +00d8574200e4493300f03c2500e3241600d70c0800cb141a00bf1d2c007e1d14 +0054250700350105002b0e1300221b2200112933000037450001495700025b69 +00095f9c000641b3000324cb00461fc100891bb8008f1ab800961ab800b321a0 +00c023a400ce0d9a00c7189b00c1239c00c1229a00c1229900c12c86008d396d +00491c3d00422339003c2b3500403f4c004454630051596c005e5e7600528193 +0048a78500379c98003b86aa003f70bd003958bb003440ba002a2a8a003b3267 +00452b2a0045251e0046201300532214006025150082391000954b4000ab4a51 +00a83c6d00761c59006619500056164800471447003912470024394e00145533 +0003613d001b654c00346a5c003d6d7200467089005968ad00485aa60054247a +0046154200750a5000860d5f0097106f00bf199700b91fa500a033b000662e9b +003f219b0027179600100d92001d147f002b1c6d002a1757003c1c430011393b +001555320029544b003a5944004b5e3e006d77170087743a00ab7f6600ae748c +00c54b6200cb5e4b00d1713400c5772f00ba7d2a0092791c007b632300805510 +00703f31007d16690072116700670d650049008d000d12c4001340cf002b76ad +001b497b0021447600283f71002d7a94003a8a95000f85a300249a840023957b +0016973300107d2c0019721d0022680f00285125002b534a00385269004f5e95 +003b576f0038545e0035524d002a2c2b003037160026411600223114000c2400 +0012110f0015071600201734002b165100380b820055298a0090498100b53d87 +00c4547800d4576200e45a4d00d9484d00d52f6100eb2b6600ca2f8b00be2d8a +007f2e940055299a002f227a000f156d0000324c00063d6600105d79000d84a2 +000d92a5000b91ae001285a4003b7984006c566d005b5e5300737744004b9059 +003780550020875c003e875a0084914c00aba255009b915400708e760038895e +00416b5d0035633f00583e63007b417300a6436f00b3505300bb4f5f00b54f67 +007b57630071526100533e6900132962000c364c002527360037162b0040032d +00331121002c1507003519010037210900362b0b003f3e290054574e00716a4e +00bb625e00c4507500dc589400ce6ca900d46e7b00cb765100c48c2b00c4830f +00b1810300ae7e02008b7b0200658e16004b931500666e32009534a800774f67 +"/> +<palette number="334" name="3m0018.jpg" data="00153fb500034cd900035dd000036fc7001c80970036916800359a600034a458 +003e6f690034555c002a3c50001932460009283c000a3949000b4b5700164951 +0022484b001c4e3100176121001274110013771300147a16001f7b16002b7c16 +008e7d1500bb9c1700e9bc1900d29f2400bb833000b47d2f00ae782e00c75f5e +0093565500ac8d9c00ca9d8000e8ae6400e5a06500e3926700df7e8f00db6bb7 +00a04a7b00842d660069105200641a48005f253e006c2736007a292f00a02633 +00911e490026083e001b115b00101a790023356f0036516600335a710030647c +001395a2003f958b006c9575006e9f700071a96c0070b065006fb85f0075c75b +007fc95600ecbd3100d48c2000bd5b1000a1461b008632270054240d003a0e0d +003c0e11005f1a1e0082262b008c1f1e00971811008d292100843a31007f4e23 +006a4f310030580f00323e230034253800343d410035554a0063755f00698a6d +0096c05a00b1c17400ccc28f00c0ba8300b4b27700a1b8720085b6750067a576 +004dbd75003eab4e003a914300367838002f752f00287227002b7750003f8561 +004786370050953b005aa540005bb042005cbb450057c04a0053a55d007d9245 +007360360061431d005e3e28005b3a3300424e2800304c1c002254190022692d +005f4f520071557400835b97007f689f007c75a80078b49a0078b677007db180 +00719f9d0061585b0068436c006f2f7d00513e90002f2c71002a486e00284b81 +0053475f0064594c00756b3a006d6f2e0065742300926a0b00c4781600c37723 +008a522100661f5900611959005c135a00390a5800181178000815a2000e189c +0011616a00106e6300107c5c001f744d002e5f3200524825006a3527009b3101 +00dd400b00eab21500e9b72800e9bc3b00c4bf6e00a2c25d0095b56c007bb79e +004a7fb1004b649a004d498400601f5500451f34002029260000250a00002905 +00004e02000443180019460f00175f1d002468110025630d002b4e1800463410 +00ba1d0e00c31d1900cc1d2400e0691700e6992f00ebb94600e4a65d00a58f77 +006f6379003d5a8200363c92001b19bc000b10ce000425e4000017c700141098 +00571d8d006b1f830066048d007f049200a4285e00a8282700bb131000c73325 +00974539007f8a4e0072816000478a6b0023765a000354570000495900023a5f +00184a5500216b4a001186350016902d001a7f2f001951240025372900253036 +00282a360010263300171c2f00100a2e0008151d00041c0c001a121d0018050b +002e031400340b0700352b0800431a1e00841f2500960f0900b40c0100d00b03 +00d0051b0093142500491a2a0026172e002b0b4c00570a5a00692280009d3197 +008435e6007f5ac300836abb0071898900abae6900b4933600eaa00d00e88a18 +"/> +<palette number="335" name="4u0002.jpg" data="0071c42a004ea0100060840d0073690a0064540500563f0000543c0300533906 +005b590e00777b0a00949d06008e850900896d0c007b6807006e640300595c07 +0044540b00205c20002467360028734c0026794c0024804d00287c4a002c7847 +003b4c2a003f3b1900432b090047291d004c2832004a28350049293800412347 +00482e490050285c0061215300731a4a006d163a0067132a0064152800611726 +00371315002f192b002720420021383c001c51370021603d00266f4400386048 +0045554b009f286000be236600dd1e6c00bd334c009e492c00864e24006e531c +00438c1700309229001d993b001e9448001f8f550023865400277e5400366d46 +00486e3f005a5f49004961420039633b003c4f3c00403c3d0032443800275531 +001e7524002a801900378b0f00317b09002c6b03002d5d01002f5000003e4c0f +00503c21004c540700456f07003f8b07003a910e00369716003b9e1d0039942b +00286933002a5128002d3a1e0037311900412814005b201a006332140061301f +006e2b34008d35340087413b00824e43007b473500744028007d601400766903 +009d881d00a7981400b2a90c00b0a80800afa70400bdb61000c7974b00bb8432 +00b0604700b0343c00b2373a00b53b3800ae6733007d7c1200599b200073c24f +0070d053004db446002a9839001c8f41000f87490001905a000c994b0005962d +0030a427005bdd630066cd620072bd620055ba5a0032705b00235e4800203e26 +003722070043120e004f02160052071200550d0e00620d100058171b004f2b15 +00423f0800241e0600232c0800223a0a000f421700014c09000e4106000c300c +00090a0f0012090b001b0907001d1100001a101100130a250021181b00232e26 +002a252c0076554c00905e4300ab683b0099be1800a1da190081d92b0073d534 +0035735a0034635500345451001a2d3c000303390016112800083329000d5815 +001c4f0c001d4a0f003d410f00553a0d0079371d008d1f280096242c00912d2b +004c961b003e991d00309d2000138b2a001c8131001979310013772f000a8131 +0012854200048356001d814d00167f4600177332000a78310005722f00166126 +0016441d0029292100351312002d13140021131300261c030039150500410800 +005a100d006b2f0000593c040054551b0063533a0068653c00507e3500536c1b +007c6e0b00a8702600b3663800906038006e532800635107006a3f0c00673500 +0070310e0075201d0072122d00870e2f00a4164e00aa0d5e00bb095d00a80a57 +00991e4c0083243a007321380074133c0084103300962b4900921f6000731f53 +0073305b00862d6500b41b6e00ca146100c3125800b9184e00b81d4500981036 +00890e2a00882c41006d4a510060683f004a8d2600339830000a984e00199444 +"/> +<palette number="336" name="4u0003.jpg" data="00431e490094376c0094504900956a2600784f17005b350800413d0500284503 +0036541e00455f3e00556b5e007c627700a35a91008c78aa007597c400799aca +007d9ed1006bbcd9005da9b1005097890049976c0042984f003f8d4d003c834b +000974160005630d0001520500143b120027241f00371f2900471b3400543a57 +004c4859003d594b00334c31002a3f1800243f16001e3f14001f42170020451a +00052d2d00031a22000107170014111600281b1500281c1300291d1100450b19 +0070172b008c336100862b6e0080237c0077265c006e293c006e2031006e1727 +0043150500401e0a003e28100057232000711e300071293b00723547006d5440 +00a95f5200b5db520089c960005eb86e0055ae6e004da46f00776c74007b608b +008e74bd00986db500a367ad00a660bd00a95acd00b148c900ba37c500a33ca5 +00922f99006a093f006f123900751b340062233c004f2c440048525c00436082 +0024748b00338d750043a75f0045a4530048a248003b763e0042595100474c4f +00522a1e004b0a060051232c00583c53004f46570047515b002f6d6a0023746b +000b6a6200075b3d00044d180013491e00224525002e302b00451a5000581670 +00560a6e006d006b0063045c0059094e00470841003d0d4b002f0261000b185e +00011c3100172237002d283e00341b51003b0f6400432a640057496300714961 +00825572007f438d007a328b007621890072218a006d1b65007112640061105d +006b0a57006f076f0074058800720a820070107c005e0b630046104200273325 +000a640200153e040024360e00342e18004e0e05005c0b1a006305290056102c +0041103000381026002f111d00290e2f0023172f003934310058445d00856568 +00bd806d00c3b65a00c7b36300ccb16c00ce928a009c8b8400498e89003a7f9c +00399482003c978100409a80003e988e0056ab8a005eb976007e91a000828da3 +004995880033855f001d7c52000c6e48001173400013704300323f350039122f +00501b4900551d59005b1f6900591c7b0070419100745574006f785b00519d52 +004dae3d00399f32002b9032002e902d0039752b002b6c360018532700083d2b +00095d2b000c5935000444440006465000065657000a51630009465b001d3e69 +003e61740070688000b2617400a759950087498a0084339a007d225f006b133d +005715450058246600655b7d00377a950043989d00759bbf00968caf009d7aba +009a5aa8009356a400683b98003e57900024816e002d8754002c8a4e00208342 +00176d2c00035513000232080005150a00050310001e021900261d1400222b18 +001b2d0700062a04000e130f001716240020042d001c053d00340f3a00400942 +00502155004e4061004e4c620045514300307034001b6f3300196f26001c6122 +"/> +<palette number="337" name="4u0004.jpg" data="00440a940011277200253e6b00395664003f56610046575e004a505e004f4a5e +00623321008d221000b9120000ca361d00dc5a3a00de892600e1b81200b4bf14 +0087c6170044da21002ed1500019c9800019bf900019b6a1001ea48200239363 +003894270029ac14001ac401000dc60f0001c91e0014ca300027cc420059d853 +0074f8550067c5ad0035999a00046e8800196d71002f6c5a00495f520063524a +00a4233f00a21b3500a1132b007d185400591d7d004517890031119600331287 +0032275f00980c4b00a71b4100b62a37009c55310083812c00738e2e00639c31 +0016a900001aa407001e9f0f001f9f3200219f56001b9f6000169f6b00319ba8 +004294c4008dcbe0007a92af00685a7e0060537900584c74003e607900216f55 +0051a6490039be3c0022d7300015e4250008f11b0009dc24000ac72d0004b73f +0022a8530035a3d80047c0b5005ade92006ae574007bec560089cd5e0083c049 +005f9a4a005e8135005d69210072621d00885b1a00a0671a00bd722100d5703c +00a25c5e0088725d007784600066966400559d600044a45d004db043001eac40 +0023ae2d001eb03a001ab347001bba52001dc15e002fdf62001dfd800004f58e +0012e49b001969dc001a57ed001c45ff00172ce900170fee000c0db5001e0a7b +0046184900230e460001054400040f4100081a3e000a1a3e001a3338002a261b +002f0e170027010000210e00001b1b010010270d001933180006450c00255a0c +001d5a1f001a661a001772150020870c002a9d040041b90a0040af0a003c8c11 +006b6e1300a97d1200a8951300a8ad1500bd740500c46f0400af630f00bc6f1f +007d5e3200854c31008d3b30008e41250092542d00ab510300bb561200a65520 +008d4c360035637d002b6b7e002274800020887d00229459004977460067523d +008f23060087270600802c070057491800271c160025092000301c27004c1f40 +004f2e3f002f4b11000c471900046b560001466700006aa4001f4be200342ded +006601b5005c17a300522e92006c2b6b0045585c0038712a0035851400387113 +003f6a1100536728006c523900813f2900844f300078732f00517420004b8924 +00358761004d757700614993004d1cb40071339600855175008ea3540098a22f +00b47e5000b7687b007457a9005c81d2005747f2003944de004216cf001a2398 +00163e58003d2b3b002c2e3b00104b4500345a6700256d7b00055286000e0ea4 +004809b8004a2eb700247070000980260007af380018b8340011ea21001ced32 +0038c922003cc51d0054c8270058d80f0043ce01004db40f0055812000504f3b +0041553a003a4f3000245c2f002e7725004c982c008fca2000bdfb12008cd60f +0075dc1d0073ed320078ee3a005bdd450069a742004e9b3b0034c0290044ad37 +"/> +<palette number="338" name="4u0005.jpg" data="003f3f5900416c72004a826f0054996c008c9c6f00c5a07300ce877400d76f76 +00c63cb300a420cb008305e300610fc2003f19a20049177e0053165b00461f48 +003a28360037541e002c824c0022b17b001ac9a20012e2ca0037d8b8005ccfa6 +0053b8340069c82c007fd82400b3c75600e7b78900e4a89500e299a200d561ac +00b23cd1006f05e1004b11d000281ebf001e44cb00156ad7001660b80018579a +002453710024677a00247b84001c8c8a00149e910012bb8d0010d9890002e089 +0001ed7f0003b15c0024ae3c0046ab1d003d861200356207002d5c0700265708 +00086a430011615a001a5871002f5f880044679f005662b300695ec700a354d3 +00ba61e300d563ee00d64de100d837d500d32fd200ce27cf00b738bd008625b2 +00aa3e7000856c4c00609a29005abd300054e037004acb4f0041b6680026e389 +0022e7980020c59d0031ac860042947000459e620049a854004aa7230043af1d +006fb1190089ad1700a4aa1600b9ba1e00cecb2600c5e812007ff024005df443 +0045e44a003fc394004c989100596d8e007a5997009b45a000db459e00db5fa8 +00b043d200875ad0005e71cf00557fce004c8dcd0047b8c00066c1b2006b7edc +00ce9edc00e4639c00e7599900eb4f9600d9377300c04f3d00bd386700c13270 +00fa318d00ec677d00df9d6d00deac7300debb7900b6dd6a007cdf370075df34 +0066b528009e707200b15e7100c54d7000bf3a8d0090458a005f235f005f0451 +0049610900556b100062761700506a18003e5f1a00394c0c007a6111008d2f23 +00bb384800e5099100da0c9600d0109b00a4199a00781e75006d1373006e108c +008c2fc600a127b900b720ad00c6089c00a604c900901fe1009124cd009e4dcd +008f3cc8005862b9004867ae00396ca300369099003776a9003760ca002e67d8 +003f38b900393da1003442890025559500305d98002b6c80001f53830024417d +002f2a6c001b244d00113c2900264212004476130063a102006ea60d007bcb12 +006dc41f0073b13500799f4c00dbb97100d0747700b6609100a9499000864a7e +00773ea7005f4493003b64920036647c003a546d0027636100327554004d9645 +0070773300b56e3000d3832c00609722004ea62e004da0440031a657001cb541 +0008914d000074380017784d001c516100134c600007536d00215f92001185b4 +001aa2ba0010d6e10009f0de0006f4d4000aecc7000ee8cd0010e3d40029bfbd +003ab0ba00546cc400616ac7007940a7008241a9007137b2005f1282005a2367 +003f0559003a11570030155800254b5e002b5d800018879a0022b4a7000dc8a9 +000fe99f0009e18c0011c1700017815900194534000c3b04000a290700061e11 +0009112600082520000035460018424000204d50001e846c0014b997000f9b74 +"/> +<palette number="339" name="4u0006.jpg" data="00239fb7003dab8e003cb976003cc85f0051bc5a0067b056007c8c3700926919 +0073212d00802a1f008e341200ac510d00ca6e0900bc7b2e00ae895400a29771 +0096a58e0060cac8004dcdc5003ad1c20029a7b800187eaf001d69ac002355aa +00534896004464a2003680af00438b9d0050968b0061948a0072938a008b969a +0094b8ae0069d9cb0057dbd80046dde6004bbdd100519dbd005ba4bc0066abbb +0051b89d0050a69c004f949b004e9284004d906d004b8964004a825b00415848 +0042352d00593924003a562b001b74320028784300357d5500387f4f003c814a +009c741c00c0621f00e4502200ec3d3100f52a4000e91f3d00dd153a00c40a31 +00aa0f49006a192a006931330069493c005a553e004c61400030674000097e47 +00099a4f00079e5f0005a26f0029b680004ecb910050c7a10053c4b20053dbd9 +0050e1e6005ed5cf0068c1bd0073aeac0085a1900097947500a7795800d34436 +00f0263400ca282c00a42a25008425280064202b001f380000025e1500098735 +0019b52e0012d04c0018b429001e980700158d05000c830300016c1a00088609 +0018b83e001aac51001ca06400268c6300317963004d745500a05c8500ab3b8f +00ad2f9b00851d7c00a5166b00c50f5a00c9115700d5195400da094b00d91731 +00dd3f1000e34d1700ea5c1e00dc533100cf4a4500954e300097543900925455 +00b26160009e304b00953b4a008d4749005f3f4a0030255f00681370006c066a +00892472007a4e7e006c798a00678096006287a2006d66f0007752c3006d159f +005f3877003e664100367e30002e9720002991080051971a007d820c0098670b +008b27100076210b00621b070081100c009a1e280088203b00810e5300891560 +00c9066400e00d5400da064300d4003300c50b1600ae050200e5300500e33905 +00e1481f00c5582500aa682c006e872c002fc1160020ab36002e9254004e7c34 +00827940008583520076748100725a7a006c56a100715aa20080538a00953658 +0095754f0084806000738b710063897a00308977002a9f8f000a85a700206f74 +0042547c003656610023345f002c5859002a5f65000d8659000d925300059557 +00118a85001281b800126cba003c7dd7002c95b5002bb68d0012b7580002ab4e +0008a937000f7a3400166c2f00106b4c002981680032a38f0026b5af0044c1b9 +0042dd9b0042e0960069b888008da897008da09a0084926e008a9457009f5b38 +00945124007f2d180078381d00724f4b0050663700287d1f00188c0d001f781a +001b62200030390a00772b1b00a6222000a9092f00c4053000d7022200dd091f +00ce171900dd371f00cf392b00b72a550093377a006630ac003843dd002219ce +002e0293005a008a006201a800700b8b00660a6100802f5a00c3324300e83c0a +"/> +<palette number="340" name="4u0007.jpg" data="000c0a3900001725000d1314001a1004001e20110023301f001f4627001b5d2f +00235242002f4f41003c4c41006d4a35009e492a00b23b2700c62d2500d32d25 +00e02d2600ce601300cc6a1200cb751200a7650e0084560b0075450f00673514 +004e303a0050314000533247004f1c3d004c0734004005330034033200201631 +000d233b00113b270022462b0033512f00223f2600122d1e0011251a00101d16 +000e011f000708240000102a000c09280018022600160224001502220017081f +0010091000222416002f2e21003d392d00394c37003560420035664500356d48 +0042b66b0046c196004bcdc10046aab6004288ac003f7694003c647d00324e52 +00343a5a0046353d006c2626009318100094121900960c230083111b0054151d +003b302c00312f3100272e3600182d34000a2d3300072c2d00042b2800011f03 +000c1502001b0104000f04080004070c00080c14000d111c0016233400204647 +0004948b000c909a00148daa001e7b8e00296972003d52530047493c00464526 +00764d0f00bd761a008e6638005f565700465c63002e626f00268b97001b93ac +000f91c2000ca3c60009b5cb0006b0d30004acdb0003bdee0007c3f30019c5f3 +0042d1d90052c6dd0050c2cf004ebec2004093a3002a848c00255e6900263e48 +00292651002c2d45002f343a0033283600381c33003915170039121300440702 +003e0b07003f1e0d004d2511005b2d1500794a1400a6561900b6510300c64201 +00f5501800ea441b00df391f00e7411d00ef4a1c00e25b0a00d24f0700c45216 +00c2771a00616d1b00676c39006e6b5800725f6500815151006a4c5800635844 +0076332000942f1c00b32c1900dc060e00981004006a1f1a0052242f00443435 +0037443d003843350039463d003b4a450047465400405f6200317e8600378a98 +001e705a00266353002e564d003b4b4b0038424b00313e5100213f5700225663 +001b8384000d828c001d8190001e717f003f5374004f3e50005d4749005b484c +005c68660054707b004c7990006491bb0064b0c0005fc2e90050c1e3004e98c9 +003992ba001a799500004b60001a294a0016193c0019153a0025273300193c42 +00123c4a0003555300026747000a675f0016708b00367aa9004a599e004d3873 +00820f92006c295e008d384f00854227007638390058454100494e540043706d +003682800034a9990038d1bf0044c2b600488f8100647b8b00567578004e7874 +00406f8300426173003f475a002a3b59002c42500026443a002c3e3200143c34 +0009311900023001001b19020029170b00381c11002f3917002c342700303d43 +002f354d003f27570041345000462e46004e1420002f1109001f0e070013010d +000e01120009010e000c0314001a061f0026092700430f35005a0830006d0949 +"/> +<palette number="341" name="4u0008.jpg" data="005cd7df005cd4e2005fd7de0062dadb0068c3cb006eacbb0080a7b40092a3ad +00ac65610090595100754d41005d4d4d00464e5900435c6500406b72003f676f +003e636c000753770015738c002394a20020a7be001dbadb002ac2e40038cbed +005fc6f3006cb1da00799dc1008593ac00928a97007e7a87006b6a7800555756 +00443a53003c1b300037172d0033132a00441c300055263600593a38005d4e3b +00635a5d005f8281005baaa50057bfc00054d5db004cdadf0044dfe30037dcd8 +0037d1d90052a5cf00569bc3005a91b8005893b7005695b600529cbb004fa4c1 +004096ad00358999002a7d8500236579001c4d6d001d4c63001e4c590012515a +000a454b00233c5b00283457002e2c5300243454001a3c55001e4b5e0020727d +002d99c00040a5ce0054b1dc0055acd90057a8d700599abe005b8da600727473 +007a534e00986466009484800090a49b0072999d00548f9f00438095003b7984 +00284e730020558900185da0001b69a5001e75aa003092af003f9fb5004fa0a3 +00569ab10010759300085b7d000041670001416600024265000331520000263c +00190013004c0a180080151d009a1c2700b5243100df464b00f15f4600e62832 +00d4203d0088526000755b7c00626598003f5baf001a7d9400249f8a0023847d +0024635b00275456002a465200274f5a002458630013778f001ea4a50042a5ba +005ca9b300a8a19100b88e7b00c87c6500af67510088503f00724e4000634c3c +00373e360036464000354e4a0044544e00535a5300696057009b797000bb756d +00d7675100a055420080513e00604e3a0054595200535a530039705b00386582 +001e7795001f7e960021869800357a99003f76940055729200475f6900545b54 +0097594e00cf5f4900cf615000cf635700b26f7800a69d8e006dad9d002bb8c1 +0018b7d5001bafd8001fa8dc003cbbce0059c8c10058cdc4005bbce90056c6ec +0033cfdc001ccae20016c7e80014d2ec0016dcdb0021e5e40020d5ea002fd5e5 +0029cde60020c9e30017c6e10006a1d7001091c8002c9dd5002791c3003492ab +001a71820015596e00244959001d3e5100192f3c00131d36000e171c00133220 +00202b4700283c3d0039434c004d3c4e0067434500821e2a00aa0d1800cb0e15 +00ce0f1600d63a1200c81c2c0095212a00821729006b030400640702004f0200 +004b344800485a80003484a7002ea1b400319fc2003b93b900557ac1006080c9 +00907a91009c758700ad6c72009d798700938c9e008ab0b1006fc9bf0066cdde +0053d0ec004beaff005ce9fa0057e0f20065dee7006ae4e90064dae40067d9e4 +006cdede0072d1d5008ab8b600a6a89b00c6796f00d8655200e1635400d47360 +00cf806f00b89b890097aeb40079d7d60069d7cc0058d2d50039b0d000209daf +"/> +<palette number="342" name="4u0009.jpg" data="00383fe500450de000670ce300890ce6009414e500a01de5009921e4009225e3 +00984af600a157f700aa64f8009b69d2008d6fad00ae4d9b00cf2b8a00b82493 +00a21d9c00523ace004558c6003876bf00468690005497620047ad79003bc490 +0000bfc90016cec9002ddeca0032b9bd003795b1004d77a000645a8f004f1e77 +006d183500cf6e4d00ca776100c6807600b350a500a020d5009721d5008e23d5 +00800cde006708dc004f04db003d05db002b07db002312dc001b1edd002f39d9 +002949ea002c54e9002c57eb002d5bee00305aea00335ae6003e5fe9004a64ec +00654edc007244a3007f3b6a009c685a00b9954b0098905e00778b72004d8d7d +003a978d004d96da006378db00795bdd007d4fe5008244ed008d41eb009522df +00b708df00b60dd900b612d3009f4abd008983a7009094ab0098a6af00b79999 +00a7a493006bb1990062aaab0059a3be005aa2c4005ca1cb0072b5c8009d92e1 +008e5be8009262c300966a9f009375900091818100929a7100b9967000b0a35d +0080ab660038cb63003ec74c0045c435004cd23c0053e0430067d33200a99c02 +00de322800a7266f00701bb6006f24c0006f2eca003c57d8004280c9005988d6 +00679ebc00bd947e00c3998300c99f8900e09d8200d78a7600cc847600df8a61 +00dc922500e06d2c00e4493300d84d2900cc521f0092545700844f93006a3ca9 +00684ddc003963c7003d60c400425ec200495098004e3287009c135b00bf1a69 +00ec027300df0b7c00d3148500ba117f00a20f7900a50e6d00c70b6c00c20877 +00a41787008106dd007111e000611de4004616de00470cda00541bd900662bdb +00c57b7000cf7f5800da834000b9ae2100e8973b00e3a76900abb1a5006bd0ca +0062e5ef0031e4e80030e5e3002fe7df002ee5e90031ebea002bf2d1001ddfdf +001464f1001f63ee002a62eb002d51e7003c44e400433bdc004622da003416cc +003c0ee2005624df004f48e4006066de007d86af00967c7f006b4c8500861d71 +00a445890096599c00886eaf007481c70053a0d80056bfd40036c9d90039c7d1 +00308daf0033779a00262d8500250a8b003b3b9b00465fbb005089e3004d73e2 +003a5bde00305bde00366edb003278e7002c92e7002fc3e7002bd8bc002dc4b3 +004aad81003f834a0057894a00775d4e00755a3d006656490076697000538288 +006d6adf008b63e000896ce200897bdd007a90db005ec9d10050d7db003cd9ec +002dccec002ac4ea003c9ada00476cdf004f2fdc006620da007137e1008656ce +00ad768900c2897800cb8e8900a087ae00a69ce1009198de007b69ef005d6de6 +00616aeb007d67ed008c55e7009054e800864ae800934af100944cee009345e7 +008232df008027c10096139700a7155600cb302b00ab310000905415002dd63d +"/> +<palette number="343" name="4u0009b.jpg" data="001c591e001f2c1b001b3e150018500f0020551400295a190021571d00195521 +001345060014470300154901000f4f020009560400055b0e000161190006641a +000b671c0004583600155f390026673c00276b4500286f4f0026725200257656 +002984730036897a00448e81005592800067977f0074a2890081ad940096ba9e +009bb39b008ba987007c9c81006e8f7c00658e77005c8e7300588d7400558c75 +00398b7f0043998a004da8960048a09300439990003f978e003b958c00348e82 +002a8c7f00267558002a775a002f7a5c003c846c004a8f7d00539989005ca395 +009bcdc200a9d4cb00b8dbd500ace2da00a0e9e0009ae8df0094e7df00b2eadf +00cceef000d1e4ea00bedbdd00acd3d000a7ccc800a2c5c10097b6a40095ac92 +00729e7a0066936f005a8864005a8864005a886400588e640056946500569a61 +0058985c00698f5e0068906800689173006f967600779c7a007ba081006c9a80 +00538a7300458a6a00388b61003a815c003c7757002e6b4a0028673c00236736 +0022753100228372002f8b7e003d948b00469d90004fa695005db094006bb695 +0078bf9f0076bd9e0074bb9d0070b99f006db8a10068b2910066ae890068b28d +0071b2920079a38f007ba48f007ea590007da489006e997d00629576005e937f +0074b8930085c7ab0096d7c30099ddcd009de3d80093dbcf0081cab60085c5a2 +007dbe96006ea8780068a5720062a36d00539c65005292600051945f00498d50 +00256c2a002a692c002f662f00366c34003d723a003d714100447851004f815e +004c8b6e002f7b5f00257353001b6b480014664200165b3c00145c34002e6939 +004f794900537a4400587c3f004d88440049844400427a3300407b39003f7750 +00347d6000449084004d958d00569b96006da49f0077aeb1007cafb00082b1a9 +007caeab0077aead0073afaf0063a7a6005fa4a100509b96004c958e003f9386 +00338d81003f8978004b8b68004d8b660051835e005383510048793700306730 +00395e19003461240030652f0034724b004b815d00539768006aa472007ba796 +008cb7b0009ac4c300a5cad000a9d2ca00abd6c300afdcc500a9d3c90097ceb1 +0086ccb2007ec7ac007ec5a70085c2a30086b5ab0085b4ae0087b4ad0089baa5 +0099c0a300a2c0a600aaceb20098bdb6009cc3a4009abaa2008bae9a008cae95 +0087a9900087a792007ea590006ca7930067aa890064ad9000589f9b00549a92 +004e937e00598e7a00548f73005a92750064957700689485006aa3900073aaa4 +0078aeae0081b3b00085b9b70088c3a30084c19f0086bf9e0087b2a90085ada2 +0079b5990076ba950076bd9d0073bfa50064bfb00067a9a70063a5a30056ac93 +0057ae8c005aa880005ea67400579775004f88750038836f000e6b4c001c765d +"/> +<palette number="344" name="4u0010.jpg" data="003bafae0020a3ad002eabad003db4ae0075b59f00aeb69100a59c62009c8333 +00e0612c00cd3b3b00ba164b00b40e5400ae065e00b21c6e00b6327e00b13c95 +00ac47ad005f6ab9004959b2003448ab00412f7c004f164d00522a5700563e62 +0014678f001261a000115bb2000b52b3000549b4000b41ac00113aa4001a2d8c +003033a6002f42a8004e5db0006d78b8008f71b800b26bb900a04eae008f32a4 +005a369800434aa3002c5fae001f8aa30012b598000dc5940008d59000279082 +003d677f003251bb002c6fd200268dea002a88e8002e84e7002c77d0002b6aba +001061ba001654b5001d48b1002351b4002a5bb7002d60b3003066b000366ab5 +002969b3000c6ecf00226ccc00386ac9004b72cd005f7ad1009387c700b397c0 +00ae93be00926ac4007741ca006733ca005825ca005819c600580dc2006006c7 +004e07cd006117cc007015db008013ea00930bed00a603f000bd08f700a820e4 +008745c3007454c3006164c3006256c2006448c1005135ac004435aa003829a8 +003234bb003255c900214fbf00104ab500183cb500202eb5002d239d003729b0 +003372b9002d88b900289eba003092b3003886ad004d5bc400434bae00313ec0 +002133c5004b0cf1004f15f300531ef5006736f2006b16c9006a17b1006e086e +0087066000ad055900d4055300d7055400db065600d30a4e00c9165a00cb1979 +00de347300ce548700bf639200b0739d00b089c2009d7dbc008252b600752e94 +0041046b00680a59009011480096114b009d114e00873865007920720074187d +0069299b006733a200583ba6004a43ab003451b5003857c3002841b700254fb1 +002256de00285fe9002f68f5004560ef004c34c8004e12ca005d13c2006d18be +008618d300bd0f9400b0108400a4127500821a9300891ea2006d24bb00723ecf +007050cf006f4ac9006f45c3007d43bc00a760be00b164ca00a169ca00aa70bd +00bd60a7009c387400aa145400a8056000ac10630092177f0073288f00693796 +004130b200382dbd002f2bc8003411cf004617c7004521bf005317b500390897 +0038128b0056168e005634a200301fa9001209ba001213cd001112c2001621b7 +001c38bd000f3cbb000143b3000d1e860031218e005c1e81009e1e7f00c95586 +00dc916900e3a65300e1a35a00b0abaf0085b899005a8cbd003a92c400397bd1 +003a59c5001e5fbb001e5bb600203dbf000e4bc8001a49fb000e1aea002e3ace +005260cb005666c8003d93b40045a6b6004995af00538ac0007f74c0009d65c8 +00865bce007e65cd006667c4005c75c5007284c600879dc600629e9f003ca789 +0061868e0071469f00904f3d00da713a00ea7f2100da7c3c00cf8f3700d99f3c +00e4944d00c1467200b21f6f0095518200887770005bc36c004ae685000dca86 +"/> +<palette number="345" name="4u0011.jpg" data="00150e900004318200073583000a3a8400102c8f00171f9b0017269700182e94 +0014427400164f6100195d4e003e6b4300647a390084652300a4510d00a34f0e +00a24e1000932a0d008a1d0800821103006d15160058192a00521c2e004c1f33 +0033142400441c1e005624190079270f009d2b0600a42c0900ac2d0c00ab4016 +0096340f004914100029210a00092e05001438090020430d0038350d0050280e +0070331400775a21007e822e006982240055821b00416d1d002d582000326f4e +001c614f00236c61001b6180001357a000143fa8001628b0001725ae001922ad +00074791000c546b00126245001a5c390023562d002b591a00335d0700537a03 +0032a01b0042980f0046960a004a95050064b30f007ed21a0097c44500a2cf50 +006e6965005e5a6f004e4b7a004e4875004e457000503c730052337700422c77 +003b278a002a2798002120a100181aab001615a8001410a5000b1c9e0015189b +00110982001e0773002b0665003203550039004500280229001d111f00231c2c +004118280028195a00271c7100261f8900491386006d0784008b157500c71d3a +00c91a1f00bb221700ae2b0f00ac2a1100aa29130083242c0062463a00514664 +003e3c6b000e1985000c1084000a08830000059b000f0db800131ab00018229d +0034336f00462c49005825240067291c00772d1400aa331100aa320d00b73503 +00c83b0d00b6481500b04b0d00aa4f06008e6e07006596070084aa050083980d +00ae6a1900bd5a1c00cd4a2000c93b1400c52d0800ad000200bf160300cc2906 +00c7320700da931500c48d1b00af882100acac1600908f110086692f0082585a +00aa0b8c009c0e8d008f118f007e199300761c800060275e004a2934004b2927 +00352b1000272d0b0020240c00191b0e00131e2000180d1e0016065100082456 +00113a94000d3a9700093b9a0011659300287e710054a72100889f1100a8c839 +00b9962200a76e2700a449100095261500821006006b1d19005d2524005a362a +00492562003a1e5f002c185d0014116800181b78001e1d7b00121f8700232c87 +00221e9600181e96001d0a88001d118100312289003d098f0053189000722c74 +008824300066282b0065292900622139004e2543003a0d500032056a00250c60 +00300356003f064a00380f53003d1a5c0046246e00372a72002a3a8800234584 +002b4b98001759b0000764c300164daa00173aa2001034a2002034a400282a9b +003c3795006a178300803b96008b3b90007f59500084371900773213006b2822 +00531834003a1e590031386c001840590011316e00191e6000190a6f0014017e +001502800020109400161e9a00112f85000b2d6d000a2c48002b203e00352736 +002e264d001d3c7300194b6e00134d9600126faa001372b6000d67a60012509d +"/> +<palette number="346" name="4u0012.jpg" data="0045379900323f8d001a468c00034d8c000d459200183d980023369e002f30a4 +005e2c8300531d7300490f6300380d6100280c60002c184d0030243a00381f44 +00411b4e0050154d0060104f00710c52006f0f6e006d128b00660f9300600d9b +006c1fbb006c23aa006c2899006b2bb9006a2fd9006b3bdf006c47e5006646d5 +004545db003f23cf004120c900431ec3003a24c000322abd00392cbb00402fb9 +0025289900361f8e00471683004f0c7f0057037c0056038000560484003f1195 +002e0a8600410a65004a065a0054034f004f2348004b43410040384300352d45 +00113a7c00195195002268ae00496ec7007074e000757bd9007a83d2006e75c6 +006560b400422cb5003c1db700360fba00380bbc003a08bf003c12a600341388 +001e104d00190b460014073f00110b3f000f1040001011470011134e001f2643 +001f3743000c4271000d3c7d000e378900123796001738a300305dba003771dc +002472d4002169d9001f60de001e52db001d45d8003b1acb00401ac7003f13c0 +003428ba001856a1001764a1001773a2001f83b8002794cf0048a1dd0068add7 +004e94ea004084d8003374c6002771b0001c6f9b0016688e000682b6000a8cd8 +001087e3002c97df00378add00427ddb004759ab00623f9300643c7100582c67 +00262d7d001d247f00141c81000a217c00002678000010770000146f0004216d +00072f8400107685000f707f000e6a79001b528a00263ea8003242a400375ac2 +00216cd100126fb80003729f00066796000a5c8e00043a780004266d000c1e6a +001b1672003c03a0004206ad00490abb003808b600291088001f096b00110865 +00130e7500110e72000f0f6f00071166000b12630005025b00031e4d000b1c54 +000f22670017358f00163aa100163fb300322fba003231b9004146ae004d2b99 +0043126300450e5800480a4d004b0a4a003f0a42004118500022136400151869 +00111869001b1c5c0021165b001910530010085b001a0c64002411600025176c +003c158a00351b8f002f2294002222860014108800153194000a60910004709e +001f89d70044a0eb004b93dd003f75d900614fe100606be7006d77f000738ad6 +00708cd6007299d20073a0db006da0cb006dadd3006daad6006e97cf006993c3 +006d80c500776bc100763ac0006e32a4005f39a000444c95003158a5000c5f95 +00035f92000b5e90000c389700161eaf00350fb4004610bc00591dd5006a1ad1 +00680bce00650bcd005215ec005306ea004603df004510d2005607ba005e06b2 +004c0e9d0072079300710e8c005e0a58003e044100420234003b053600360c3e +0040074b00480c6c00620780006e108c0059228a004c2b940035359700222c8d +0017357d001e257d00202a8300223099002f43a4005151a7006f76d0007169d0 +"/> +<palette number="347" name="4u0013.jpg" data="007b5f51009d8f2e00adac3800bdc94300b3c36300aabe8300a6be6c00a3be55 +00b0b42b00b4ad2300b8a71b00b29d1400ac940e00a58714009e7a1a009e6f1e +009e65220075554a00613748004e1947003b0f530029066000181a5f00082e5f +002c686900376d640042736000616552008057450087544b008e52510081674c +0075765600819a63008d885a00997752008a623f007b4e2d00764d2700724d21 +0054431800604919006d4f1b0070532500745830007c5c270084611f009a6725 +009e6425009b6e09009e7e1300a28e1d00a89a2700aea73200b0aa3100b2ae30 +00bbb52d00bcb92b00bebe2a00c0c43600c3cb4200c5c64900c8c25000bcd95b +00afd26e00a3e27000a6e06800aade6000badf5e00cae15d00d0dd4f00d0db4e +00c6c73b00c3bf2f00c1b72400b7a12400ae8b2500a7802600a0752700936a3c +0084533200894329008b4633008e4a3d00914b3800944c34008f4e2e008c551f +0086520000815600007d5b00007a57000077530000714c050079410600864e03 +008d630d00ad910200b29c0b00b7a71400aea51600a5a41800af951a00ad941d +0094790400876c04007b6005007b5b10007b571b00735225007f51160094651f +00a0801900bcb22c00bfb92e00c3c03100c2cf4100c3d64800cad34600c9cc41 +00d8ce4800cdd34d00c2d85200b0d256009ecd5b0084c26d006dad8a00429f95 +0047ab630060865d0055874e004a883f006675240070701a007c601600976d0b +00ab860200af910800b49d0f00ad9d1800a79d2100a6a43700a0ac400096ad41 +0088a646007c9a400085a344008fad4900a8c44b009dd15500a2d957009ed959 +009ed3610096c55d008fb85a0081a05a007d844100856a1b0090691e00906f28 +0098632d009f7b2700978323008f8b2000747d2a007c7024006a6022004d591b +005f3b0b005c3b0500593b000062420000773800007c4c0e007e530f00694c10 +00463509003d141800471a4300242462000332680016534e0032321a00423e19 +005252140061561600705b18007e621800786e1700697624006274280066803f +006b803500808b25007c82160091741800956c12008e6815008260200070623b +004751460036685c00387c49002d746600236e5a00044d6000032e5b000b2850 +002b0b4a00232925000c3a2f00091717002b0d0d00302a0a003b3a01003f3915 +005638200062402500684c1a006a56190064710700647c020084a715009fae2f +00b5c94400a8d75500a6da5e00a8dc6000a6d95600b6cb4a00bdcb4000b9bc37 +00aea81e00b18c0a00a06e0b0092601700834826007d3829006d443000794a2e +007b482d00875346007b674f006c7a56007093530083a551008cab5f0091c15e +0086dc6d0082b86c0070c05f006ea36b00799d5700849f5800bf8c3d00a09847 +"/> +<palette number="348" name="4u0019.jpg" data="00932524009c4c0f0094610e008d760e00865907007f3d0000864302008e4904 +008c731f00758642005e9a6600549c6b004b9e7000519b740058997900589978 +00599977009e5043009d4930009d431e00885f2d00737c3d006b824000638843 +006f915f0089894300a4822800a5601800a63e0900ab400b00b1430e00b4551b +00a26634007b8057007073680065667a004a5a7f00304f8500284a8c00204593 +00177b9f001a87a5001d94ac002b9ab90039a1c600408db4004879a2005b737d +00655c5d0093151800920d130092060f00900e09008f1603008d1c02008b2202 +007e1a1800801715008214130085140b00881503008c170200911901008a1700 +007c180100882b0c00932d09009f2f07009928050093220400921f04008a1704 +0069031000590412004a061500280316000601180003001b0000001e00021a1c +001d262f0033322d0025282300181e1a0016171c0015111f00030e20000d1615 +00572a250073391c0090491300965013009c571400955c0500955e0300884d07 +0096470c009e5506009d4c0a009d430f00a03b0d00a4340c00912b1c00812b1a +005b2b3b004737550033446f00373f69003c3b6300563a530067464100804535 +008b3a39009041220084482300794f250060441500735121006b4749006b605c +00965e4300a8513700bb442c00b63d2900b1362600a53712009c310d00833703 +00642b1700140e3400120c3600110b3900180c3a0016174500251e470043434f +003e8d6e005983620075795600706d51006c614d006c4d390066372f00492531 +0039245d001d2160001a245a0017285400161e4d0046314000613f350075282e +008d2e1a008d321c008e361e008c351a00913c06008b370900873014008a2918 +007f321e007025290074262600792824007c2a15007a1a1b0081050f00770713 +00510e0600400f06002f1106003926170043220f005a2e150070380000853802 +008b3100008e3201009a210600961907008e12080089111000881319008b1120 +00753b6b00644c6700545d6400488e76002e7a920006569f00135287001c4758 +00163e57001f2944002739470033414e00404a63003d6074003a707c00556773 +00796155009b5d3800a12e2900a93b1600b82f0d00cb190b00a11f09009b2a0c +00871f26007528380051414100514f5a003c6f730039739b001c5d8700192883 +0025257f00582874006e2d31006c1a1e00690e150060091c00540719004e1211 +004616300031163f000e1f39000c2953000b426900008a87000587b9000586c0 +0019929d00039c8700199f98002474a700375e9f003f46630044464500513e1d +0038271500190909000f150b002c2306004e240000781b0900931216009f141b +00a1040f0093020900901011008a200a00873307008a4212008f612500915c18 +"/> +<palette number="349" name="4u0022.jpg" data="0070383900474b3400545b3e00616b49006857430070433d0069383e00632e40 +004b15220038191800261d0e0017220a0008270700192803002a290000352a07 +00402b0e005c22210067181b00720e1600751e1f00782f2900713632006b3e3b +0073534600766f5200798c5f0078706700775570007b5673007f58770096475c +00b6556800c7686400b6575900a5464e00a2394100a02c350098212b00911722 +004b0402004b0908004c0e0f005818170064231f00693019006e3d1400771b1c +007a0f2100990f28008f1c3000852a39007a3e3100705329006a512400644f20 +004d2f090042360e00373e140044440f00524a0b005f4e1e006d5332008b463f +009f3b4700b9203e00b0234800a8265200a4265100a1275000a62e47009a2e3b +0071461c005247140034480d00394e1d003f542d00434f3000484a3400654c36 +00814e3d009d425100a75a5600b1735c00b5986b00babd7a00aeda7b00a09a60 +00a86354009c584400904e3400883a350081263700742731006b161d0073060c +007202100063041c005e041d0059051f0061062700690730006b0c2a00720525 +007b090900821008008918080088120e00880c14008a0e1800890d1700830e17 +0084101900770b25007f082a0088052f008c0a2c008121470096284b00863241 +00742d4d00731a450072073d006d053a0068043800610f33005e0f2c00561728 +005d2129006030300058342a0051382400323d1d001b3a110013400500064904 +00182f1d001b1a25001f062d001b082800170b23000e12130012151a00312016 +004518120063080d0065090a00680a08006b060a007f1016008d0e2300992331 +00934a430093584a009366510081984800838d440074623e00894c4900954d51 +00a1604e009b5949008f515100844a5900752d52004e3f44003a3f2800271521 +000b0811000705100003021000070a130013051400211515002d111f00490828 +004a0728004207250046162200482e3700523024006d25330070213e0073113a +005b0d2500541027004e1329003b122200322119001a3e18000c532b00164636 +000828370023172d00290f2a00211032002b0a4300210337002e062b00400615 +0040070d0041051100470521004b032b00480236004a0f2f00481c2d00502431 +00462155004335580053575a004c3a52005e1952007b1137007d043a007d0532 +00740a320070102c0069171b00671519005e121c005611140058121000571d09 +00571e0a0051220400442302003c1c0d00341004002c180f0024270a001a2916 +001921160032211a004a142400571a2c005e17370064103200611021004d0f1e +00491a14004d200b0056301d007a3a3000804c37008b4a44007e40350076302e +007c1f0e0072110000680f0100681a0e006422160057270100463a00004e2f03 +"/> +<palette number="350" name="k2u0217.jpg" data="003e8b6b000c606000106d7000147b80004d7e93008682a700bb7db200f079bd +00ea59be00ae45c6007232cf00601d9d004f096c005b0a5e00670c5100730c5c +007f0c6700e9467500e9445700ea423900e9464400e94a4f00c94b5b00aa4c67 +0040182100251510000b120000051201000012020000100700000f0c00000215 +00060620002a0a5d00500c6500760e6d00aa398a00df64a700e76bb000ef73b9 +00f390a400f1859400f07b8400eb565500e7312600e6302300e62f2100e42c20 +00e41414004d0b260037051d002200150018090b000e120100081b0200022504 +00238a39005c8e650096929100c385a000f079af00f078b600f178bd00f06cc2 +00ee63b600e9429c00d32da200be18a800aa159b0097128f00732480004b2096 +007a7ac000b080d900e787f300f0a9f100faccf000facdf000facef100f9cdf0 +00f7bde600f297d400ed5eca00e926c000e726c100e627c200ca19c200c11cc1 +00861082006e0d6a00570a52004b094b003f09450035093a0041043f00440e42 +00490a430058073f00690e52007b1666008e137700a2118800dc487c00ed625f +00e7416700e8347a00ea278d00e8219000e71b9400e61c9600e71a9b00e61c96 +00e61d9100e935ba00e83cb200e843ab00eb47a600ea4ca100f84a9100ee5d5a +00eb565200cb9c4800ace33f00a5db33009ed4280038752500545f37005b0c43 +007c0b6500c82bae00db46b600ef62be00f28ccb00f6a6db00f8bbe500f9c0e9 +00f5abdc00f4a6cd00f4a1bf00f5a0be00f6a0bd00f59fb800f79eba00f59cd2 +00f6b3df00f4a1d700f296cf00f18cc800ea56b400cd2bb4009f189000790e6e +002c117c0027156500231a4f002b2833002a582a002267280020422a00221618 +000e160100051d1d00021b2500001a2e0002154f00130b7a000e2f8e00281ba7 +000c54b800146ec4001d88d000107bb30023548e0068207400842f9600b815a2 +00c615ab00e61ba800e4229d00e6249f00e82bac00e938bc00ee46d700c247ed +00c821ad00b8199f00a81192007f106c007a0f61007d0b63007e0e7200a01a95 +00d734b300ef77c100f5a7d100f8b9e400f4aee000f297d200ee65b700ba2fac +0082256b00490e3c002f07290022052300230819002f211e00244e0c003b572f +00422b48004213470044134a00663f6e00436d61001a4a5600043b4f00093c57 +00260c790030006a00641580009f1d9700c733ab00e664ae00f07bbf00f28eca +00f299d100f290cb00f17cc300ee66b200eb50ae00ec4faa00ec4ba900e947ae +00ec43a600ea3b9800e8379200e91da000da249b00bc15a3007f0e7600510b6e +002c14900015199400102e9c00103796001f117200081c41000a0211000a0009 +00230124002f003c00270d5400250b480005083b00020d29000b1f3800035644 +"/> +<palette number="351" name="ku0213.jpg" data="00328e000035a80d006cad0600a3b30000bf9e0400db890900cf861800c38427 +00b82f7f008433a3005138c8004b3dcd004643d2003e46cb00364ac500404fab +004b55920071474b00612b6800511086003508a9001900cc001200d7000c01e3 +003901b80050089c00681080005c147a00501974004e3276004d4c780027a389 +003fc469000de2780006a2a5000063d2000f64c8001e65bf00305eab00435897 +006c732f00545220003c3111003d320f003f330d005c2610007a191300ab242b +00b63a3800f30e4700f92c3500ff4a2400fc741200f99e0000fc8b0400ff7909 +00ee0d0000df180000d1240000aa2d1000843620007a233300711046006b151e +0053001d00300019002b161b00262d1d003631350047354d004029b800471ee4 +003806f3002c03f0002100ee002e0fe5003c1fdc004237e1004950e6001da2da +006ad8cf008ac9ae008a95b6008b62be008359b4007b50aa00a0536500b28657 +00bd67500092576d0067478a005e3e930056359d003a31c200633fd5007915ef +007f4ccf005b248a004e1c6f0041155400401148003f0e3d0062045c0082064c +00ae3d4300cc714800eba54d00f5b93c00ffce2c00eae03100fffd2700ebfd09 +00f0da2200feb51a00fd9e1700fc871500ff4b1b00fb482000ff2e2900f82224 +00ce474300e32f3400f8172500fa0d1200fc030000fe000800ff044a00f30251 +00d12070009164c9007f6cd8006e75e7002cb8d90020cbbb0029fe880042ff81 +004a7ed100325caf001a3a8d0011338300082c7a0004949d0012ea970001fe91 +0001faa00008c0fe0004b4fb0001a8f90003c6e40001fba20000ff81000bff86 +0026e0610031eb4d003df73a0038fd4d0024ea730034eb8e004dda8b007ac36a +0076b38700ca4a9d00c5498600c1496f00df4c5600da885000e4894200dcba32 +00c17e51009e5f44007b40380050154b0010004d0001035600000a42000d0206 +001f1017002e213f000010750000007a00140b88002c09970037067c003b004e +008a115800a71c6500c5277200862b7a0065519900466dc8003767cb00209fff +000ca0f80000b6f6001bd3db0015d6930008b46c001c8d5f0000504f00003b69 +000029740000009500080dbf001d1bc400285ed8002f79fc001ba0ef001dc9bb +000dce73000dbf6b001ed4440051f42b0032e00d001ed1040020ca2b004f9d51 +00819b540095ce6300b0b45f00f7d54000f7bc1600f3ab1900f1704600df6242 +00ff5b4a00ff426100f4297b00eb027f00df006b009a00ac004a07af003400bd +002a06a8001600730019024a00270923005f074100a8065c00dd225900b400b7 +00ac06fe009513ff009650cd00998cb8009bcf87008fd36c009ea04d005b7b10 +003b3b2100260649000a036b0031239500272f9a002d26830004374a001b660b +"/> +<palette number="352" name="ku0215.jpg" data="0030171b0026091b003b122100501c2800512e4800534169004a2f6d00411e72 +00573c8d007526740093105c00680a45003e052e00360b2b002f11290031172d +00331e310047375400343f5d00214867002c4f5700375748002d533f00234f36 +00164326002541300035403a0033254e00320a62002c09630026096500280760 +00161b390020290e001a250e0014210f000c161000050c1200020d1300000f14 +00151342000d15420006174300151f360024282900332c2500423121004d312e +00662d2400a92e1f00ba261200cc1e0500cc250900cd2d0d00cd271a00ce2127 +00e43d2d00db251800d20d0400c00c0800af0b0c00a70c0b009f0e0b00860a0c +007c0e0d00751102006c160300641c0400611b07005e1b0a005d1c0a005a1d18 +006a26310075313600813d3c0091352e00a22e2100a72b2300ad292500bb2225 +00bb183300850b3c00671a2b004a291a003c2c17002f2f15000a33070019630c +000533050014200900230e0d00300706003e0000003f210900431b0f005e0e1b +00671320006d11260075081f007e00180085010e008d0205009e080000b10600 +00c80d1e00ba0a1600ad080e009f0e0b0092140800810c05007f020000630000 +0060120e0063141900661116006a0f1400761d0f00961c05009c160d009d180f +0095431300892f14007e1b16007a19180076171b0065182a0043141e00320524 +00161221000a1e3600121e34001a1f33002e132400591b200080252400993130 +00ce1a2500ce1a2300cf1a2100c81e2200c1232400c01f2500b013320092253a +00932935009f1e0900ae1d0400bd1c0000bd1d2500b22b2800951231006f0a34 +00670f37005410460041125600461f6e005b116600621460006d11360077153e +007c174100832d780083348800833c98007f3f9500853f8700a3345f007a3d42 +00535240004c564400455a4900494f4b004438440027152100170b1500190f0e +00180003000e080c000c16170006232b0010223000103233001337290010441d +000d322b000a302a00072e2900011d2100031614000620050001160300081110 +0004070c000b0a060026230000353d180054612c004f713e00286e5200476b47 +0060674800568453003f87470029843e00106e3a001361510030556800357d71 +00889f950054535800344851001d3b4300184131000653290013563700095e3f +0010563e0035474b005d41350065153000750d2400941121009e130e009b1009 +0087040c00840a17007700240075072a00750827005a141e003216240019282b +00132d2a00183d2b001d3f26003e4b2f00534431006a4c0e00a34a2c00a7552f +00a84c1b00c2281e00ad2309008d1f120077241c00502512002a0c180026101d +002618270031351a00672c1e00862e1a0097353200864f3000554e7000685b53 +"/> +<palette number="353" name="s00026.jpg" data="004100b4001b006100220050002a0040003b0524004c0b09005e0a0c00710910 +00a72c0300cc320200f1380200d0260500af1509009a0b5d008601b2009101c0 +009d01ce00cb05f800c403e000bd01c800b0086d00a40f1300ad210b00b63403 +00ff791f00f6912900eea93400dd963100cc842f00bb762c00aa692900bc3807 +00d73e0200ca791e00bb6b1d00ad5e1c00a1541900964a16008a4919007e481c +007e1c0100761901006f170100771b00007f20000083300900884113009d5f24 +00a1662a00dba33600cf943400c4863300b6772e00a9692900a55f2200a1551b +00731900006d0d0200680104006600430065008200600092005b00a3000f00d7 +000a00e2001b015a002d0531003f0909003d0a06003b0c0400300b03002b0908 +00110706000c04090008020c000d010f001201130012011e001301290023003d +0033014a006a00860073009f007c00b8007301ce006b02e5002600f5002500b9 +007c216e00b7524700f3832100f9942100ffa52200ffb83200f3d63a00f6fc44 +00d8e54f00d1a03700bc863000a86d29009d652800925d27007c791200895a26 +0061331100552f0f00492c0e003a171b002b03280020013d00140a4600000134 +000701250015060b001e080800280b05004a1601004e1600005a1203004c1300 +001c041c00120228000901340008013e00070149001f014b002a004c00430084 +007a009100d3bf9e00e9d67d00ffee5d00f8f84c00f3fd4f00ddeb4d00f2c73d +00d5973400a56c2500764117005e330c004725020036110100211403000b0801 +0006070200000403000003070000030c000103120010031d0024003e003b0052 +009000b800a700c400be01d1009202d6008b00bb008a009b009b0d2700862502 +007c3e1700723e16006b3a1400643612006f3913006e4b2100534d1900454926 +0030240c00201c08001014050011120200080a0700050b0b0000130d00000d03 +00020a000004070000020701000106000000040700000410000c041c001b0035 +00420057004d006300580070005e007d0053006800400428004c1c05004c1802 +00340e0100250a0300100903000606080001040d000103120002021e0008012d +0006003c000900510018006e00110198000e00960005007d0001005e00000048 +0003022e00010214000004100000020e0001030f000003120000021b00000120 +000101230009002b0028003f0034004a0056006b0065007a0090084800a1521a +00a7551d00975c2400804c1d005039000035110100130f0000070d0100060b04 +00060805000507020007060400080401000e0701001b0d00002b0d02003c0f0c +002b002e002d00410039005f00350082002a0080001500830016007e00060066 +0007004d0006004d00030045000500430001013d000802280011200d0006041a +"/> +<palette number="354" name="s00043.jpg" data="0031485a003b636d00407378004683840049868d004c8a970061929200769a8e +00abb98600a7b17900a4aa6c007aa5840051a09d0065afb20079bfc70072abb2 +006c979e00938254008a604100813e2e0081371f008131100081340c00823809 +00843f080080591e007c743500897f4100968a4e00988d50009a905200a19d5d +00a8a76400a0a56500899e6d00729775005b8b7b004480810046846a00488854 +00857f41008c7c3400937a280091862b0090922f00948d3a0098894600918551 +008f8969007666590065734b0054813e00405234002d232b002a202900281e27 +0025161d00281e25002b262d002c2e37002e364100303d4a003245530073554a +00824e5b008155380088602d00906c22008d6e20008b701f00867f2500858312 +00828009007d760600786d0300716306006a5909006e4e080072440800714101 +007938020066340100574b070049620e003d5113003241180030475500345463 +004a869100658b8200819073008d966c00999c65009d9e6200978b4f009a833d +008b6e2000724607005d3e090048370c0047390b00473b0b00434f0700555700 +007d8343007d8458007d856e00757364006e615b0039544f002c3c49002e3440 +002c2c36002f39450031445100334f5d00417d7d004599890048998a00499d8e +0052939700698c7f0080856700858660008b875a009b8e4a0095772e008f6221 +0084411700552800004d25000046220000381c040030171200271a2100252331 +002b3b54002e415300324853005247470073473c0081442500863811007d2b03 +006f2a00005a210400512005004820060048370300594007004e490500464004 +00383c0100332e00002f2100002415100027181d00252736002a334400304a59 +0039704800615e110064530c006849080058350d004e2716003c1f19002c222a +00261e2b00241a26002317210026161900361712003f1b0d00461b08004d1d06 +004c1e0400421e04003a190a0027151300231313002314110025170c00312500 +00253602002b2d0100312401002f1713002d22280035303600324853003b7c51 +003a7f5300417b7c003e6e700035556200324c5900323b4000362d2e00381a12 +00381a1000291e26002b262d002c2932002c2a35002a273200291f280027171a +002315150024160d00321d000045240300493301005c4126007b652c00948449 +009e955000a69d5800a29e57009e964e00989433008a7620007c5f130078450e +00712c0b0063280000644002006f52020065540000625a000068540b007c5f13 +00896e1d00998232009f9243009e973f00a49e5200a59f5100a09f4500a59f51 +00a6a05200a3a05900a4a05900a8a45a00a9a95f00a6ac6c00a5ab6b00a6a660 +009e964e009b894100907725007e6515008c531e008a5221008f6e39008d5c24 +"/> +<palette number="355" name="s00118.jpg" data="00d1786a00db806d00d5806b00cf816a00be736000ae655600a45b4a009a513e +008d4d44008e51470090564a009d595000aa5d5700bd6b5f00d0796800c77275 +00be6c8300a1719b009b7baa009685b9008e91be00879dc400899ac4008c97c4 +00a085ba00b27eac00c5779e00c5718700c66b7000c1686e00bd666c00965364 +00864d5e00724a6200774653007d4244007743410071443e006a474200634a46 +001e5267001b536700185567003b5e6a005f686d006964740073617b007e688f +00887cae00b1b6ca00b3c6cf00b6d6d500d9d4c700fcd2ba00f4d7b100eddca8 +00ffd08d00eaaf7f00d68f7100ce7f6b00c7706600c16b6300bb666100a45656 +00944e560090526700785e6d00606a7300405d6c00215165000848520009152f +00110f12000a0b12000307120001123300001e550001265500022e55000f464b +0022495a005e5c740088637800b26b7d00c9737f00e07b8100f5919100fa9291 +00f8ccc100f0dbd800e8ebf000d1dfe400bbd4d900bfd1c5008aa9be006883a0 +00516c7300096d6300075e4c00054f3600074228000a361b000d3006003e3224 +0068353c005b404f004e4c620052567300566084004d608a0067658c00877a8b +0098a77c00be826a00b9746d00b467710092587100865067006f4d6800744e67 +00c2687400d7797c00ec8b8400ed947f00ee9e7b00f1b57900eec47c00f4ce7b +00e9c29900d6aa8d00e1a38f00ec9c9100ee9a7800df8b6f00df846f00e48a70 +00eb858000cd7c9100af74a2009e73a1008e73a0006a8cb100568d940023815f +000b653f0030322400383d2e00414838006f6b4800945b5000af6c5b00c57864 +00d8866e00d8836d00d9816d00d2747200cd777600b76f94008c719e004c7ea1 +001c707a000a7c7c000b6b71000c5a66000a576900174e8600247d8b005b93a4 +00aa7fcf00b681c200c383b500c8789d00c9759600c16c8100ca717300b1657f +008f668e0065597d00485f89002f5d9100193c8d000b597f00137b8800138384 +006691b300729ab8007fa4be00b7b98700dd9b7900d4937300ce866d00ce7668 +00bf6d5f00b8695c00b1695a009a6253009f5d5100a05a5200ad5f5b00c76566 +00cb706b00c76d6c00bc666900af5d5f0091516100884e5d008c4b5100844647 +007f434200804740007e4440007f41420082454400864c48008b4f4500844943 +007f4342007e453e007d433f007c423e00773f4000723d43006f3c38006d3a39 +0052413700325d270029662a002c732f0030534d001b4754000a3e490010192a +001b1b2700392326005e343800703e4700714556007c465400804348007c4145 +006f3b3f00582e2f0044242500271919000c1409000117000014160b001d1e0e +003f211f0045322c003b334000443c4900504154005a4b5e0067445c008c525e +"/> +<palette number="356" name="s00138.jpg" data="00f7a40000b0624c00aa5c4200a45739009e523a00994e3b009a4e3e009b4f41 +008b423b00853f3b00803c3b00903f2e00a0432100b24d1c00c5571800ce6017 +00d869170093bc3000958a440098585800a35b4e00af5f4400ba613200c56420 +00ea760f00ec790a00ef7c0500e5830200db8b0000c0a81200a6c625007ae21b +0040db1300a4de1700b8da1600ccd61500e2ce1000f8c70b00f7c40800f7c105 +00f9bf0600fcba0b00ffb61000fdb30a00fcb00500fbb20400fbb40400fab301 +00fab80200feb40500fdaf0400fdaa0400f6a30800ef9d0d00e88b1800e17924 +00c5643700d66c2900e7751c00e6731200e6710800e46f0600e36e0500df6b00 +00de690a00b3521b00a4482100953f28008b3b2b0081372e00703031006f2e32 +0083372a00983f2200ad481a00c1601000d6780600e3840600f1910700fb9c04 +00fb9c0200ed7a0500c8601300a4462200923e270080362d00662d360053263b +004522430043214300422043003f1f45003d1e4700381d4800341d4b00381d48 +00371b4400381d4a00301a4c0028174e0029174e002b184f002d1b4f00351d4d +00401e41004c233d0059293900632c36006d2f34007f322200983a1600ab5000 +00d5740000f8ba0500f6c00b00f5c71200e3d30e00c0ce0900d3c90800eeb300 +00faa90000faa00000fa980100f8940100f7910100f2820400e9790b00e37504 +00e3750200e27c0000e67f0100eb820200f58c0000f88f0200fc960600fd9907 +00ffa90400ffab0800ffad0c00ffac0900ffab0600fda50300fa971500f68819 +00da6c170089310900812d1100792a1900712e2600672b2d0063282e00632b36 +00642c3700652e3a0066303e00692d37006b2e350070303100733230007a332f +007e352e0081372c0081362b0082352b008433200086341e0088392a008a3820 +00953e23009b402200a1432100af4a1c00bd531900dc660e00dd680b00df6b08 +00db680b00c05622009a4a31007e352e007d342e0083362c00913c27009c3e1a +00d7630e00dd680c00e46e0a00f1810300f78c0000f68a0300ef830500e57007 +00da680500b64a0c00a33e10009b3e0500a4410000b54b0000d3670000e88000 +00f2890900f7910100ed860500e47c0000db6c0000cb5d0e00a74812008b3a27 +0078343100652c35005c293a0059283b0059283b0059283b0057283c00562538 +0054273c0050254000472241004d253f004f2237005b283b006a2d3400763028 +00953b2000a45c0000d3800000ef9a0c00fc992200fd9f2500ffa33c00ec8a33 +00b66246008d4a44006c313700612b380058293d004f2a4b003b204d00391e4b +003f1f460043214400482140005320310045152500360b2600530a0000571306 +00602225005b283700612b3900632b36006d2f34007d3936008b443000a85f3e +"/> +<palette number="357" name="s00149.jpg" data="00910f19007c1b150066111500500816003904190023011c001a031e00120521 +0000171d00031b2100061f2600082424000b2a2200142320001e1c1f0017181e +0011141d00030418000202170002001600030016000400170004001700050017 +001a0320002f031c0045041800710d38009e165800aa196300b61d6f00e60d64 +00f9065a00fd025200f7034f00f1044c00ec075700e70b6200e50e6800e4116e +00bb2e8e00af308d00a3328c006f1d5d003c082e00370629003304240024001c +002200190022171b001b20240014292e0015382c0017482a0016492a00154b2b +00093d2700042b2000001a1900000f1800010417000102170002001800000018 +0000051b0005112700041c320004283e00072840000b294300122948000d1e38 +000a0e2900110d2400190c200017071b0016031700120117000f001700060118 +0001091c00031a2200022625000133280000372d00003c3200002f3f00072b43 +00242c53001a335600113a5a000f3856000d3652001a1f3d002c11340039072a +0034051900351218004514180055171800671b3a00791f5d00b51a6800e11878 +00f30f7100eb0f6f00e3106d00de0f6700d90f6100b901330080011f004d0020 +002f04170007011b0005031a000405190002051800030418000f0520001b021f +0016062100120a24000e0e280013143100181b3a0031173e0032183d00371b43 +005d337300c0196900c90f5900d3064900dd0e1e00d80a1e00c50f1b008a2916 +00560a16004605170037011900300418002a08180015071e00070d2500021d2e +000d2d2c0001313b000129380002213500011e2c0002132700040a220001091e +001002190018011800200017002f02170041011c005100210081061a00c2061f +00f2211a00f95c1700f75d1700f65f1800e3591a00ce4c0e00b1451e00984123 +007f1e18007e1d17007d1c16007c1e1600671517004a082e00380e3400161632 +000b17250004162400081027000513200005111d00130d1900250e18003f1217 +00a43c1700c73a1700eb381700f8461600fa3e1800da146b00dd187400bc2d89 +00ad1965008d053500ae002500ac053d0085175400731f5b0026564000263e2e +001c312a0018251b001d1f1a00271c1800391515004c191600651c16008e3318 +00cc2d2900df131c00e9131d00f1022c00f4003600f9004400fe004800f8003f +00f3024700f0014400bb013200b1002a0062031b00460c3400342753001e2c4f +00003f500002536e00196dad004585e600247dcd001654830004516b00013445 +00002230000015230001091e00060117000e001700100018001c001900220018 +0024011900260516003a0a180053101700780f1600b0002400d0131a00de121b +00df111b00db0f1b00c300280090012c0069031b00440c1500001e2000211313 +"/> +<palette number="358" name="vchira_0001.jpg" data="009d4b3300da3cce00e530e600f125ff00f41cf800f814f100f315e800ef16df +00c042fb007872f80030a3f60021b6f40012c9f30014ccf40016d0f60012e2fa +000ff5ff0012f4e00026e6d5003ad8ca005adfc7007ae6c4007af0b1007bfa9f +0060fa9a0055fbae004afdc3002eece10012dcff001adbfa0023dbf5004aeec9 +005efab9009eddae008eeea2007fff970090e19000a2c38a00bfc39700dcc3a4 +00eca67500f2bc5d00f8d34600fae92300fdff0000fdf20b00fee51700f8cf13 +00f1c82e00e2c75e00d1bf6500c1b86d0085c595004ad2be0029dbcd0008e5dc +0016d1b6004fd4b70088d7b800a5babf00c39dc600dc95c700f68dc800f28b9e +00d78abe00c288b800db64d800f440f900f03bf300ed37ee00e915e300d00de5 +007b0da40089069e0097009900aa1a9600be349300cc559300db779300ca8460 +00be5b3400a6398800b949ac00cd5ad100d55ec400de62b800e87e8000f89252 +00f9be3400fba05800fe837c00fb5b8e00f834a000f128d000e80fcf00d010d7 +00c5009a00710b4a00783025008055000084690000897d0000a4b50400afb306 +00ccec0b00dce80700ece50300e9d40400e7c40600f0bb1300f1b93200ddd737 +00d4dc6500a6b68700909b8c007a8191006f4e3d004f16390040005c0064116b +0097115600980e64009a0c72009f167a00a4208300d21b8d00dc14d900d107d9 +00e406e300dc09e400d714cb00d31fb200c61c63008a2b3300885d0000766110 +00486630003a5b18002d500000285104002452090027370000133100000d3117 +00003f32002591da002398de00229fe20004aad000037db0000a2a7f001d3b7b +007212a7008520cc00992ff100bf08df00cb06ec00d215ee00b148c800a13bdd +008a3ed400403c93003d347d003b2c6700014423001f2d0900150a120012090e +000507000004030b00030016000f152d001e14460025232e003f040000440005 +00560a24007c12430092358e005f82b80068d0ab0063e8bb0058d8f5002fc1fc +006faced008d85ee00ac5ef000cf32f300e51df200ac26f7008f2bfb00635cea +004cabe50029b2d60024bb920057c15f009abc0600b5bb0300bfb90100d4a517 +00ed714d00e74f6800ea398700ee0eaf00e82aa600f15d7d00ffbd5300e9ef37 +00e7f82e00d7e76000c7e37f00c9eb8d00a2da910097fb7f00b3f57100adef59 +009bca0c00ac9013008b60020095720a00b9950b00fbc72300e4ec4b00cef580 +00a4cb9f008ad8c80069b5f10078b0eb009cc8c900c7d8c800c8dead00accbc3 +00a887d800915df0009233c3006914a50076008c00470060003f00650031183f +001e183a00290011003c270000452300005c4e00006073070060bb44005ce273 +0028c286004b686e006f3d3e006b005c006a0051007e1309006c150e00420013 +"/> +<palette number="359" name="vchira_0003.jpg" data="005527bd008d17c300950ba7009e008b009300860089008200830286007e048a +005a0c940063098e006d0689006f03840071017f007b036f0085065f008d134d +0095203b009a510c009b5a0b009d640a0090690700836e0500836e0200846f00 +009c8f0300a8a11500b4b32700d9ca2300ffe12000ffe41d00ffe81b00ffe714 +00f5da0700bfae0600b29b0500a58904009b820800927c0d00886f08007f6204 +00932d2100801851006e048200670f9b00611ab4005e1aad005b1ba7005f0871 +0081253400a25c1e00a86e1600af800e00ba920d00c6a40d00c7a81500c8ac1d +00b77e1500bc553900c12d5d00c01f7100bf128600bf187a00bf1e6e00b72262 +00c1245700c4225b00c3206200c31e6a00bc197000b5157700a8008300870998 +00610e9a00640788006801770069016f006b0267006e01680072006a007d046d +00940c5800891c31008629270083371d007d3d1d0077431e006f3416006d2b11 +004d0d04004e1d04004f2e050058380700624209006b4b00007f6400008c8600 +00ae9e0300f27b5300e86c5000df5d4d00d04d4500c23d3e00af393500ae2b3d +00c1424d00d0495000e0515300cc3e4f00b92c4c00b1215600a5343800944713 +007e470700745c0200735d0300735e050073600400785e0000965f1f00a13741 +00a50d6000a9196500ad266b00ad266100ae265800b1422f00bd681500da9317 +00e89a1e00d6b80a00d5c20a00d4cd0b00edcb1200f8d00e00f4bf1b00ed8d36 +00e9843200dc872600d08a1b00c3821200b77b09009c68150076481600794106 +00773000007600450076004b00760052007d0057007d0461008a026800930571 +009f1b6700a2245d00a52e5400a13a3300a25e2100a76e1700ac790600ac7711 +00b2701900a2442200a53a2d00a9303900a4293e009e1958007b0f7f005d1da7 +004652da003e63dc003774df007d48e0008f11b3009e008b00ad057e00d22a65 +00dc426600eb765300db973600f4c92200ffdc2200fff92200fff31500f9d61c +00ef992800e88f2c00e2863100d0643300bb4f2b00ab2d45009a1647008a0058 +0088006700830976007e047b0094017600a2087800a10572008f0769008d0267 +008f075b009b0e520095153600951b3200982427008c4322008b4f1300826400 +008863000099680200a15e0300975c000089490c007c421c007230200082113c +0073005d0072006100620068005f00800051038b00520b8f005900890072048b +00800a78008c0377008c057b00960080009f068200950aad009113bf00810ec1 +006c16c3007d27c8006f32bb00612bc900572bbe0071099c00930f63008e262f +009e4c1d00a1660c009a7600008c6f09008c7d06009c840600a17e0800ac8401 +00bc900000c6950c00dca60800face1700fed12000f9d12400e2b62200df9f17 +"/> +<palette number="360" name="vchira_0012.jpg" data="00d3305b00711700004e2000002b2900001f1e1000141420001c0c250024042b +0076023100910b4400ac155800ab1f5300aa294f00d4526900ff7c8400fa8881 +00f5957f00c6c8b300dba9c300f08ad400da649300c43f5200a52b4e0086174a +0064122800380915000d0002000b0004000900060004090f000013190014083a +0035003800380f13003f130f0046180b00703c0f009b601400ab880a00bcb000 +00d2ff5000cbe05d00c5c16a00a4985a00836f4a0089503900903228007f2e01 +00a9622200aad1760091e76e0078fd660063f672004eef7f003cd979002bc474 +001a65a80029409700391c860043177b004d1270006e09700090007100940871 +00650f320023320900112d1a0000292c000035230000421a0024655100369279 +0035e779003be9820041ec8c0049ef840051f37c0063f1790075ef76009efd6b +00bdda6c00d4d09300c6d69700b9dc9c00a9d2900099c8840063a65f00638f76 +000d436500064c76000056880000709300008a9f000c84940000727500289a78 +002ac26d002ed46e0047e2730061f1780069f6720072fb6d0089eb640097fe65 +0090ff600083ff620076ff65006cff660062ff680062fc840062fe91006bfc9f +0069fb8e0087eb770086e7730085e4700095ff6b0080fa5a0077fc650066f663 +0031ca560031a65e003282670025856b00198970000895530032a143003fbc34 +0078c96200b8d08600dbc68000ffbd7b00fd7d7400da5e4200bba11800dbe800 +00fdff2400f4fc2a00ebf93000f5ed4400ffe15900d6f95f00c3ed59009efc66 +00a7ff6b00c1e67d00c8ee8300d0f78a00e4e79000c5ea81009af8880076ff84 +0075f0850084f2880093f48b00a5f699009ff3930086e78800589f6300266d69 +00093e5d0028214b00311049003b0048004000530041015700390d6400782b89 +00b212b400c356a300d59a9200dae22c00e9de1200bb8a2300b3592400b1314a +0078284f0047043700290b55003010710044138800885c9100a9b68000bfdea2 +0099e1bb00a8eab100b7f4a700bfcdbc00c1eacc00cad9de00b7a0f200b25bf8 +0096a9a50083a568006abd79003ee3940038eda00023e991001ef2b8003becdc +0074c5e30094e2ba0083f5ad0091f6a60084f98700a8f67f00b0de9600a9bb89 +00aa9b94007539750061294400510f330032222c0032361300382d0f00452d23 +0066430900744710004a80000045890e003177380049bf35007fcc6600aee98b +00c1e09000d7c89d00dbc88600dfc96300b1b06000b0433e00953e4400941834 +00821b2e00922f2a00ae392800ab7110008dcd380055ea5a005af87d004bff9e +0048e7c70079e9c30091f5c300a8f2d700b4ddcf00a5decb0095bad40064c8ff +0033cefc00586fdf002999cb0013daa30053ffa7008fdbc100a5c5ba00ff91a3 +"/> +<palette number="361" name="vchira_0013.jpg" data="00b4d7f3006760ea005d4bce005436b200592da0005e258e005d1e8e005d188f +00401fae003b2bae003737af004538bc00533ac9005f37d3006c34dd006f44e6 +007354f000726fd8005c67c900465fbb00415ebf003c5dc400395ac3003658c3 +004b4dd6006541e2008036ef006938e000533bd1004e3ccc004a3ec8004037c6 +00323db100555bd3005e59e0006757ed007d43e900942fe500a22dec00b02bf4 +00b33fec00ab42f100a445f700ac49ee00b44de600af59d900aa66cd009752bf +005c2c9900290d35001e062300130011000f0012000c0014001200180019001d +0020145c00390f7500520b8f006d08a4008905b9008e0abf009410c600922fd8 +009266fb00777aff00736eec007063d9007a72d3008482cd00d6ada900edd1ff +009470f8008c8af80084a4f9006c9fe700549ad6005099dc004c98e3005987e5 +005867e400404ec8003f3cbc003f2bb0003e26b0003d22b100451da400430a95 +00340c6c002606540019013d0019023b001a0339001c0231001b0421000b0d1a +0006072500090d3d00170c4700260b52002a0950002f074e0030024b00360057 +002b1770002b1c78002c218100262c8b00203795001b449600113e7f00141b6c +00111957000b0a2c000f053000140035001f033600340549003a0360004d0688 +00741bc1007a23cd00802cd9007a24cf00741cc600671cc1005321b400403da8 +003f4fa6006d4cd700764ed6008051d500833dc400732ec9006d1ab4005e098b +004400560055006f006700880073089f007f10b7009e1ed500ac4adf00b057ff +00b95afc00b46cf200ac67f200a463f300a244fc009520ea008f17db008918cc +004329a8003e2d9b0039328f00242b860029207300212c6200271c5400291354 +0036107500620a9200690c9800710e9f00661cb100532cbb00523bc7005948d5 +004f54ca004b49c900473fc800473fb800373aad002a359f002a2c9b00253ba0 +00224ca0001a5398002059aa002760ba001674b400236bc0003081d2002963c6 +002a3eb1002d34a400302a98003b1e8a00551b89005c269600702dbb007046c4 +008368c5007e46e7008738df008218c0007220b3006e27b3005e28b40041369f +003337900021568800213d7c002b357c00283078002d257200544272005a419f +006051ba005b43bb00513aae00542aaa005311990042058600450f8100320c7b +002a1385003f2097005717ac005a0db5005822c0005a2abe004b41c8003658d3 +00316bcf002e62d000255bbf003247b4003d3eaa0049308b004d167e00341d78 +00201c70001a1b5e00170366001700530021055c002b085a002d116800281f78 +001e248600163b820012315d0006185800040f4d0000092a000408130008000f +000e010b000503110007131300071e2e000021310006183c0000215000092241 +"/> +<palette number="362" name="vchira_0014.jpg" data="002de67e006eb7440064ad3e005ba4380051983c00488c4100338454001f7c67 +000c5e2d0007471f00023111000e3911001b41120028561b00366b250036652d +00376036005d93710038897100137f7200097969000073610000674f00005b3d +004574140074772900a47a3e007f6022005b4607004a3b030039300000233110 +001e37190019262c0018223100181e36001e262d00252f24002e47200037601c +0063770000727b1500817f2a006f543d005d2950004f20470041173f003d0d35 +003a0a20002b1c00003b1f16004b232c0088413600c65f4000b8883500abb12b +0093cc6300adce5100c7d03f00ded64d00f5dc5b00ece95000e4f74500e1f584 +00dee5b10092d0b700bfc8c500edc0d400edc3bb00edc7a200cab8880097a17c +0053644000464d3c003937380022252e000c13250006101900000d0e00001f0d +00002400000f521c001c5f3d002a6c5e00338e7d003cb09d004fded8005aeeca +000ebfad000a968900066e650003545400003b44000e162d0003061700000a0c +000011030000220000103b110020542300356138004a6f4e0079a3510084ba7e +0083a2b6007fb4d1007bc6ed006ed9e00061edd30050fad60022fbe60000f1fc +003dece50067d2da0077b2d5008892d0009287c90093919f0084727e007c7c72 +005575740056656a00585560005e5360006452600091597e008a467700610888 +003c056a00124b3c0013523200145a28001a5b21002b480800324100002f3c00 +00242c070014320300043900000234000000300000002f0000242e0000072700 +00002813000f452d00124a2d00164f2e0027403d00513565008c1cc900bc2cbf +00b9438f008e4678006349620046382f002f1a1f001d181f0019220d00121200 +00040d00000018020001190100031b00000f230800242c21002a283500262138 +001e324d00163342000e34370019331a00242a10002a1f09002d050d00240b0e +001617120000281a0002313b000d2b4700112f4900102449000f102c000f0913 +00002100000e2c05001d380b003c4e12008a882100b7a00400d4c92100a9bb27 +007bc528009eaa4800a1b05b009ab07f00a2a78700a393ad00b868a30087548f +008a92b9005c8bb7005d95c80073b9b7007dbab50077958b00738b6b005e8f71 +006aa4740091afa70092e5bb00ccecad00cdf09e00b7c68100ba9f8100a7a771 +00768a42006b5c3b004c482200203e2600145c2e003b60410086895c0098cb90 +0088c8b0007af2aa005ef5b00055f1b4004bff93007bdb5300c2d62900f8f500 +00d2ec2900cfdb5500dad56f00bec97a00b1c5860084c8b30070bed2004abfc6 +0028b4b500005f86002b435b001222560012173500000325000c0b2a003a033c +00560054006a008600750a9400c423b100b634ca008722c0005906880013213b +"/> +<palette number="363" name="vchira_0015.jpg" data="0068537a0000306e000020650000115c00252862004a3f690062376c007b2f70 +007d3d7900803f7d00844282009a719300b1a1a400c9c5c900e2e9ef00ebf4f0 +00f5fff200fff0be00d7e1c700afd3d1006a9cad00256589001a5386000f4284 +00120e5b001a08520023024900381f55004e3c6200553c68005d3d6e00491f75 +003b1562002c003c0035183d003e303f00453c6a004c4895006450a4007d59b3 +00aa43c800945bce007f74d4007d80bd007b8ca600809ac40085a8e20097c1fd +00c5aef200cde0e400dbeccf00e9f9ba00f4fcb300ffffac00ffffa100ffff96 +00f7da1400fbdc6000ffdfac00f5dac700ebd5e200e8cef000e5c7ff00ffd2ff +00ffc3ff00f1bce600f5a4c500fa8ca500f28ea900eb91ad00b3628b009d7c97 +008fad7b0075c072005cd46a0053946d004a5571005153710058517200636069 +0096827700d9cd9900dcc1ac00dfb5bf00dfaaa200e0a08500fab16200f18e4b +0076575d00a3748200d192a700d69ba700dca4a700c1b2af00b3b29e00748e9f +00596c7a004d324100472c3c0041263700502c49005f325b00733a65005e2f65 +00211837003224410043314b0052415e006152710078829d00869fa600aec8d7 +00cac8de00fff5ff00ffecfe00ffe4fe00cbcee100b4cae200a78cd9006c73aa +004b30a3003e36a800323cad002842a0001f499300295f9d001c62b8000c6ac2 +002167bd00608cd3007294d900849de0009f9bef008694d3005896c90065c0c1 +0055bf8e00719973008e735800b1825100d4914b00eaa93300f9b61d00ffc955 +00f3d18a00d1e1b000d0cec300cfbbd600bcc8e000c3d3e300bcc8e000a8cbe1 +006f7daa005971a30043669c0031468700002f8e00071c77001c1680006614c1 +009007c700c708eb00c607ed00c507ef00941be6007b29ef008b4fed00953bc1 +003c0a49003a08300039061700340d000031100100260000001700110012003b +000e193700201e4f002b385b002f325d00281777003c005d0033014800420026 +0035130000331a000032210000382322003627460039404a0052317800801d94 +007c0ba1005619a2003571a500598cce007d9bcf0097c1e900b3ecff00cffcf9 +00f7ffff00ffece500e0bddb00baa3d7008675a100686d8a0050537600263f75 +0008245300001f3c00090d56000b014a000010440000023d001f083c00400823 +0093202d00ba123500d03b1a00ce6c0700b9670400c35019007f441a00742000 +0060140000520400004c0000001e0002000206290001103100110e2d00411c00 +006e2b2500963e3c00ae433b00b7754100aa8f3400cf781b00e9542900e95429 +00ea483300cf545600b65f6700925a630078374b006c2d4a0056303d00472e2a +00432040007d0a41009e05550098203900c82d2900b6440000982a1100770700 +"/> +<palette number="364" name="vchira_17.jpg" data="00173b370008804300149b4d0021b6580026b853002bba4e0021b2550017ab5d +0000826a0009707000135f760009598e000053a700104a9700204188002a358c +00352a9000750aba007f08960089077300740466005f015900470b5b0030165d +000065620009647c00126496002454a5003744b4004141bf004c3fcb006833cc +007b20c600a305cb00af09c900bc0ec800b016d100a41fda008745e9006a6bf9 +001387860020a56f002ec458002fcd640031d771002fdf7d002ee7890029eb95 +001ce1990017cf85000cbb750002a765000fa06d001d997500129d850007a195 +001597c9003a6cd4005f41df00912fe600c41eee00dd1fe700f721e100f2408c +00ba525b00700077005a2ca3004459d0003963cd002e6dca001698bc001da97a +0015a7520020ae4f002cb54d002ebe510030c7560031c7550033c755003ad361 +0037db6a003adc6c003fe06b0045e56b0043e0640041dc5d003dd254003ad35e +0033d3650025c4640018b564000caa6700009f6a000d7b780011577000173365 +00352e7400420a7700460f92004b14ae004a15b1004a17b40055139b005025a8 +003a42c100344fc0002f5dbf00266cc0001e7cc200067fac0000a49900008790 +000388830000747a0004586f00093d64000022500004222000001d0d00134812 +000082620010a7670021cc6c0026d271002bd977002bdf880012d3a40001d7bb +0006badf0030b6ff00309ff0003088e200286ac8000d4d950010396d00171459 +0082005600810f5600811e5700771973006d159000762cc7005150dc004353b2 +001c7a860003706a0011605c001f514e00234f4e000b6f55000b846100109c5f +000cb678000db97e000ebd840004b89f0006a5a9000cabc10014a9c1002a91de +00418cf2002f9ef00020b1db0011c5c60016deaf0023ec9e0030f29b0033f49b +0030f29b002ef19a002cf09a0020e99d0015dea70012d3b60028a3e7006484f1 +009c38f200dc14fd00ef15ef00e602eb00e200e000c101ae009d2c62007e1d52 +002400280016062f00090c37000b175f00191d740046237f003e199d00362ca6 +00422697004f0e7200310e52003f0049004600410062004900640346007a1040 +007a391d002d811f00239535000d8a3c00148640001e9c480018a556001bb763 +0020d07b002be789002ce98d002cec960031f2990037f08b003af08b0038ec88 +003bef84003fe875003ddf650037d45f0036d4630036da6a0038e371002ae78b +0024e9990020e99b0024ea9b0024ea9d001fe79e001cde950012d09200199d75 +00027e660000405b0024052e0044091d001f01250012021c0014430d00176a1a +0023872d002d904f00169f510017ae5d0019c4760026d3790024e48f0027ec9a +002aef9d0028ed9d0026eb990022e89b0017d9930016cb840020bb60002fb949 +"/> +<palette number="365" name="vchira_18pp1.jpg" data="004a07b700660fd0006c42e7007375fe008074fe008e73fe008d6ffc008c6cfb +00c534b300c636b000c839ad00b74ecd00a663ee009882f6008ba2ff0082a5fa +007aa8f6006a77f7007d73f800916ffa00a263f000b457e600c051d500cc4cc5 +00f26ab200e14ca600d02e9b00c21f9200b5118a00b7118900b9118800b91188 +00c1209200e2689700ef779800fc879900fda7ad00ffc7c200fdd3c600fbdfca +00fafdf200fcfbf800fef9ff00f5f8fa00ecf8f600beebf10090dfec0078cad8 +0091a2ff00ffa7ff00fbabea00f8b0d600f195cc00ea7ac200dc57b600ce35aa +008b0aac008410b7007d17c3007d1dcd007e23d8008428db008b2ede008f48e6 +00965cff009c85ff00ad9bff00beb2ff00b59bf800ac85f2009d6df700a140db +00a90e8e009e097200940557007f045b006a035f0075016100810064008e0174 +0094038200a60a9100af0d8c00b8108700b80f8400b80f8200b90d7d00ba0f82 +00bf1b8c00cd2d9600db3fa000ea4b9000f9588100fd4c6600e92c7000dd1764 +00ce1769009d045700a5035e00ae026600b4066f00bb0b7800b80c7a00bf1180 +00f5486600ec437800e33e8b00dc388500d5337f00d7298a00c1148000ba0c7b +00c70b6a00b80c7800b2067300ad016f008c007800880390007d099e00820293 +0098079400a00a9300a90d9200a9119900aa16a000ca2da200c441a900cc47be +00d866d700f887c500ee87ce00e487d700e8aae900bdbdff00b2dbf100f5bfd9 +00fec0c500f2aaa700e6948900f2837800ff726800ff5a8500f85d9700e7579c +00d7329b00ac088100a40684009c05880081007c007400870041127c004c04a6 +004205a8004302ad004400b3003b02c0004a00c7006012d700704af700895cf7 +009b4fe700ab22b600ac1fad00ae1ca500a815a3009b12aa00822da6007b3ad2 +007170e7008c6aeb00a764ef00da72e100f680cc00fa8fb900f498cb00f39bcb +00bb90d50074aaf4004495e70055c0d4007ee7e000cfffe200f5fff400eef5fd +00ffefff00f5e6ff00ecdeff00f0c7f300d99bee009670fb005448f0004d00c4 +004800cc001b01de003759d5002f99c9003ca5d400249fc0001c96bf002b77e5 +005658f8007012c0007507b600890dad00a315a700a726a500a06fc100769fee +006da9f20077a5fa008e90ff008760f1009933d4008d1ac000990ea500a40c93 +00b3118b00b8148f00a8169d00920fad008b1ac2008a1dc6007e17be00890fb2 +009e0ea400ad1ba400af159b00bc1e9900d432a100df51a500ec679e00ff87ac +00fb8faf00f2a9bd00f9dec000ffe3da00fdeded00fff0ff00f6e4e400ffd7df +00e9b9f500a873f500974dea008527d700750cc000720ab5006605b700650ab0 +00710a9a007200a1006405b9006111d6005151ef002c79e5004bb1d90034a9ca +"/> +<palette number="366" name="vchira_19.jpg" data="00e180a100f6d45600e7e94100d8fe2c009ece1700659e0300667e0100685f00 +00bd970600cec10800e0eb0b00d5f51800cbff25009bf938006bf34b0062f462 +005af67900cff35b00c8e67400c1d98d00ade492009af0970079f28a0059f47e +000df4d40007beb00001888c00015d6c0001334c0009253e0011173100071717 +00030c1100062d00001b3e0200314f05005a740800839a0b0089c0220090e639 +00ade17f005da86d000d705c000c5846000c413100073b3a000236430013365e +00232e6e000d265f00253334003e410a003f420b0041440d002b420a00154008 +0002290a00232b0500452d0000684600008b5f0000a07a0000b6950000e2e500 +00f8ef0c00f1fa0000f7fb0000fdfc0100fafb0500f7fa0900f5ff0b00e5f91e +00f1e92c00f8a85d00ff678f00fa539300f6409700f6648e00f6898600ffa062 +00fb9d3900ab9501007d6f0000504a0000375b10001e6c20000a895600009f83 +003bfdbe0059ddb40078bdaa0087c0a50096c4a0006586a5002d926a004a6032 +0025490b0000251d0000241c0000231c0001232a0003233800052a4400181155 +00260b52001f053300190015001c0318001f061b00210132003800410059014f +006a006e0092008600a8019600bf02a600ee3c9400ee6c5200e58e2700e9cb00 +00b47a1900945c0c00743f00005d320000462600002a0800001c0100001d0a0c +00290a08005700210077063e00970d5b00c00a8100c902b300d507b100d20bc0 +009016d1004851a400018c770001816d0002766300076a3e000544290002321a +000a280e00015a3e00016550000171630006885a000998630000ad8a000fe0a7 +002ea966002b9d400028911b00305507003a630300389101003490230046b01c +0036b63d007ad9410053b034002d8727001a3d0700161000000b080000001200 +000803070008030300080300000201090003030d000201060003000400080000 +000402070006000b000f0015001d061a002b001c004b003d00630156006e005d +004603500037014a00290045001c0436003b0117004a14120062171c008e2e22 +0094411500a34f4400ca495b00990f40008a1434008715390084083a00711730 +005603370037090b0035050500371605004b2a0900383f0c002f2009001d2a00 +0020270000644703009c5a1000c8750f00ecc50e00f8f22000fffb2200f8fc0f +00ebff0c00e9fc1400c5e22800a4be07006b7e010059590000418a00003b9400 +00609f0a0075af0d008bbb0000c2d81300b5ae1500b7493a00c82c5c00fa26b8 +00d803bd00d805c300e507d800fd1bde00e58fb400eab28100ebb96200dfd341 +00b1ff4700e1e53600e9e12600f2b91400c46e190077411200472b1300331316 +00241e38001f1e6c006a006e009004af00ac0cb6009509a800713d6d00094172 +"/> +<palette number="367" name="vchira_28.jpg" data="0000022c000047b1000c65c3001883d5000d75d6000367d700055bbe000850a5 +001a446c001d374f00212a33003c332d00583d28004b453c003f4d50002f414e +001f354c0019232f0026141a0034060600360c080038130b003f1a0a0046220a +00722906004f260e002d2317002b180c002a0e02001b0a03000c070400030200 +0004010a000d03040036101200601e2000823e1f00a45f1e00b2611b00c06419 +00a67c4a00ac906f00b2a59500d2aa6800f2af3c00f8c72b00ffdf1a00fce945 +00fef27a00dde1fa00bcb8c1009c8f8900737071004a5159004743530044364d +00282c3800374a610046688b007a93ac00aebecd00b7c6d300c1cfda00c1c7e7 +00adc2d7006589a100525491003f1f8200400f55004100280032031300480610 +00690c17006d0f140072131100630c160054061c00580525005d052f00850535 +00a51a130099161b0067314400364d6d00315083002d539a001853a300345ea8 +000343bf00113ac1002032c4003626d0004c1add005827d0009717d000cb01d1 +008906b4006e23bb004e3cc3002e55cc001a47c0000739b400002882000b2b54 +000c094c00110a5700160c630013147900111c8f000233ac000b34b400102eb2 +003d0ba20033064b002204380012022600070e160000061600010b2400000a25 +0000094600060747000c0548000f03390012012b00230031003c080c00731a00 +00ab350300c7612300b6703b00a5805400c09c9e00cbc1c900dacbc600dcd4c9 +00dfcea000dcc8a000dac3a100d3b99400ccb08800bb8b4d00dc953900d57d0f +00dd5e1700dd247000c7167800b10980009f028f00a501c000d00ab500ff30c6 +00da91a200cf96a600c49bab00c8719300df238100b3059800970187006c02ac +005700550010061e000a03160004000e0005060a00220c0100381d0a00622602 +00ba2c2200bd1e3000c1113f00cd2d4900de117000bc2872009d7750007e6b99 +00477199004073a2002482cc003078cc005748d5004d14b9004e198100680c3b +008a480c00944a07009e4c0300b7520200cb680200db660000e2740100d07407 +00d1751000c0692200a7693600555c620055595a00393c31002b27260043230c +006f360b00b05a0f00de603700edac4400deaa5600b37d3f0090643700865334 +004b3827001b222800101d2d00010a3300071b4d00011554000a326300002172 +0002207a0001389300115eac004793c40069a8d3009abad300c7d5d800dcdadb +00dfe0e200ded9d300c2d1d80086d6f70079a4d9005eb1e3004d94d6004e9fd6 +0038b5eb001b96e4003d90d4003e51de003e24bd005b029800650159005f014b +003402330054032c0091093700c4126800db247700d3139a00e001d400d505d7 +00b901af0071228d007d0052007b123d0081674c00ae8d7e00e8ded400d9bda8 +"/> +<palette number="368" name="vchira_2pp1.jpg" data="00b3b50000e7a10300ef990100f8920000d2740000ad570000a55200009d4e00 +0085141a006c0f3b00540b5c00411d5e002e3061001727a200011fe3000428f0 +000732fd000ca5c700119ea000179879001c935400218f300027972b002ea026 +00105a5d0009448c00022fbc001626d3002a1eea00330fd0003c00b7005c158d +007a213d00eb8c0000dfbf0200d4f204009df2090067f30e004ef3150035f41d +0011ec760027bb73003d8b710036875400308437001f834d000f8263000f4271 +0003479000028d7a00086474000e3c6e002e236a004f0a6700540a64005a0a61 +00382964002f57410027861e0015b91e0004ed1f0009f01f000ff3200027fa19 +0028f80f0056c5210069a910007c8d0000568c0000308b0000008700001acb18 +0075ea2c00b4d53c00f4c14c00f4c04200f4c03800f8c63200fccc2c00e1f718 +00e6ff2000fee30000f9b30000f4840000f9670000ff4b0100fd2b0a00ff170c +00f7034b00980282003a02b9002409c3000f10cd00080cdd001309e6000a10fc +000721fe000655cb000f58c400185cbd000e58d5000554ed00154aee00213ad5 +00ac926f007ec2540050f33a0030ee3d0011ea410016ea570016d1800003b085 +00278bbd001708d300450abc00730ca500bc027100e2014300d5083300e41618 +00e3333e00b21e5d0082097d00620591004201a5003706c2001e02c8002f03a2 +004b0277006e0d5000800e470092103e009b054c009a0f3900c31d1d00fc2e09 +00f34d0300da430b00c1391300af3f17009d461b008544280080293a006f4d27 +002d8e2f002ec8460038d53a0043e22e0050f9060080ee0300cddb0800e9d31d +00c06a0000b95a0000b34b0000a2453300664c710033565c002d8c380025c645 +0015e219001be3070023ea0f002bf1180049f00a004ee10c0038cf200042d642 +0044cefc003190f1001f53e7001e30f6000116fb00010be6000313ec001517f8 +000b26ef00002bd5000021ce000917ab0006309200072f86000b2e7f000d197b +0053423b00555920005771060094840000b0860000c1a00000bcaa0000c7bc00 +00cfb40300e0961b00de8e2d00de775600ffa84700f2923b00ed552e00f33d0b +00dc460900c55b0f008f4a0700215203002f8c07003bc609007ce30000c7f703 +00d7e70b00e2e40700f0b60d00ea9a0f00dda70900a4b52b0098bc120076d107 +00a8c400009fa30e00a58500008f8b03008b9e000059c301003fd300003ddb00 +0077eb0400a4f40500d7ea1200edeb0c00ffc32800fd8e0800f5700700dd8007 +009c8e000078c8050046cc13001cf123000bfc310042e42e0080f20900b2e504 +00dad02000f1b40e00f0930700e8760400f9340700fa170e00df011800c10b22 +00cf051500da000e00e30c0700fe220800f64b0300e46b0200bac94c00c17d18 +"/> +<palette number="369" name="00017" data="0056a2b4004fa4bb004fa3bd0050a2bf0056a3be005da4bd0060a4bc0064a4bc +0069a3b90066a7b70064abb60061b0b4005eb6b3005abeb20057c6b10057cab0 +0058ceaf005fdfb20066e2b2006de6b20075e7af007de9ad0080e8ab0083e7aa +0091e2a40095dfa40099dca4009dd9a400a2d7a400a1d6a300a0d6a300a1d2a2 +00a3cea400a6c4ac00a7beaf00a8b9b300a9b2b500abacb800ada8b700b0a5b7 +00bd95b400c08bb500c382b700c37bba00c475bd00c172bf00be6fc100b86ac5 +00b167ca00a365d1009c67d300956ad6008e6cd500876ed5008570d3008472d1 +00837ac800877ac7008c7bc6008e78c4009176c2009074c0009072bf008d6eba +008b69b4008867aa008566a9008365a9008164a9007f64a9007f62aa007f62aa +007d63ab007e67a9007f6ba8007f6caa007f6dac007e6dac007e6dac007d6baa +007d6aa700806ba6007e6ba9007c6cad007b6bb0007b6bb300796ab7007567bc +006c62bd006867bd00646cbe00626fc0006072c2005b79c8005780ca005386cb +004e8ecc00459ec5003ea1be0037a5b70037a7b30037a9b00039afac003ab7a8 +0039bea00037bf9d0035c09b0033bf9b0032bf9b0032bf960036bf91003dbf8d +0044bf8c0052bd880054bc870056bb87005cb5810066b27d0070b378007bb673 +008cbb6a0092b8660098b5620098b2620099af62009ca96200a3a46200a9a067 +00af9d6c00b69a7e00b5978100b5948500b78b8b00bb818e00c3799300cb7397 +00dd6c9e00e266a200e760a600e75ca800e858aa00e852ae00e74eb200e64bb3 +00e54ab200e44eb100e34fb000e351af00e251ab00e24fab00e34cad00e347b1 +00e540b600e23fb500e03eb400da3eb200d43db000cc3dae00c53eac00be3fad +00b83eac00ab41a400a7429f00a3439b009a46910094488b00904987008d4886 +008e4784008d4783008d4783008f4784009143840091408300913c8800903590 +00912d98009126a2009120a7008f1da5008d1da4008c1ea2008a20a0008b249e +00932495009424940096249300992091009b1d90009d1c90009d1b91009e1a8f +00a21a9200aa1c9600af1d9900b31d9900b61c9a00b51b9800b11e9500ac2091 +00a6248a009f288300972b7b00902e790089347900803a7b00763e79006d4178 +0069467800664b7a00634f7c00625382006255880060588f005d5c98005b609f +005c65a4005c68a5005e69a700616bac00636db200626db8005e6bbb005c6abe +005b6bc0005a6dc4005b72ca005f79cd00657fcf006986d2006c8cd3007091d2 +007295d0007195cd007098cb00719cca0072a0c900739fc900749bc9007797c9 +007991c8007e89c8008182c700867bc2008975be008772ba008671b5008373b2 +007f74af007978ae00717ead006d88ae00698faf006595b000619ab1005a9fb3 +"/> +<palette number="370" name="040208-115" data="0058afde0064bbea006ac0ee0071c5f2006cbbe30067b2d40062b1cf005eb0cb +00858ea8008f92a6009997a5008d9da40081a3a3006f8e86005e7a6900597b6d +00547c720033676400284252001d1d41003a1a590057177100661e8000752590 +004e488200507ea60053b5cb0044a7cc003699ce003598cb003598c9003098c8 +003b94c1003692c0002e8db9002789b3002378a1001f6890001c6178001a5b61 +000a242b000b1c1f000d151300060b0a00000201000001010000000100000000 +00000000000000000000000000000000000003030000060700060d10000d151a +001c181d001816240014152b002326340033383e00383e42003e444600405e58 +0081676e00aa7d8600ae919a00b3a6ae00b5a9b400b8adbb00b3b2c800bbcbe1 +00b5c3ee00b6cdf400b8d8fa00b2dcf400ade0ee00a7d5e700a2cae1009db4d7 +009db1d400a0a3be0096b0c6008dbdce0087bdcf0082bdd1007db8df0077c5ee +0077c0f40081cdf5008cdbf70091e9fa0097f7fd0095fcff0097feff00a0eeff +00b0eeff00b2ebf100a4d0dc0097b6c80095b8c10094babb0088bcbe0077a9b0 +008ab0be0085aec30081adc80082a5c400849ec0005b61b300675cbb00836ebd +00b685bb00998da8009c8fa100a0929b00a0828800a27d7e00a3656400aa4e4e +00be435300d4374700ea2b3b00da344700cb3e5300cc516100ce546a00e15881 +00de384800d75e7600dd607f00e3638900d4617400e15f7500ea647400e77183 +00db97a900d092a900c68da900bf8b9e00b98a9400a36a7000a3545900a03d45 +00a03345007d324a0072263f00671a35001b0d3300020b230005000700010002 +001c00230023032b002a073300500c5f0064285d006e1f3c008f2034007d2c25 +0076233a00640a6700690d68006e1069008d238400aa56a200b5649d0097769d +008c616c00885c66008458610081646a0081747e0063707a00415e7d003d5774 +0043476700824662008a3532008d3334009228390097203000902d3500a0333a +00a02a2c00a6303400ad363c00bb3e5500bd435500bb405200b3434700b03e42 +00aa434400ae3d4100aa404200a5414000a2414600a6535800a6585d00a3595b +009d6661009d6a7400a05f61009a605e0098727100907c800086818c00767b87 +00778f880072948900749b91006c9eaa0067a4a60066d3b60074f7ea0076f9f7 +0081f8fa0087faf70095faf7008df6f5008df9f00092f7f70092d3ec0094cbe4 +0090e2e40088c7e90087aede0094c1e100a6c0db00b6d0f400c5dbfa00d6defc +00d7dbfa00c1d8fc00addffd00a0defd0090ddf40081ceec007dcbe90066efe6 +0063ccc70054a9c500468995001577650018635b00183e3800172e28001a1a1b +001a201e00222e2a00235c4300306571003e6b77003e8ba0003e96b80048abdc +"/> +<palette number="371" name="040221-00" data="0070544a0061535000605350005f5451005c4d49005a47420056433e00523f3a +00432b280041242100401e1b00441a15004916100050130c00571109005a1008 +005d1007006f15070079190900831d0c0089200d008f240e0090230d0092230d +0094250d0095270e00972a0f00902d12008a301500842e15007f2d1600702916 +006023140045170d003d140b0036110a0034100900320f0900310e0900300e09 +00310c0b0036100e003b151200461e1a0051272200582b26005f302a006e3b31 +007b4439008d554900955e52009d675c00a16c6100a6716600a9726500ac7364 +00aa6a5900a46150009e584800954e41008c453a008a403500893c3100843427 +008734270088322400833327007e342a007c352c007b372e006f312a006d3430 +00733d350073423a0073473f006f4b43006c4f4800674d4800624c48005f4c46 +00624b4200754e3c00845a470093675300996e5a009f756100aa837200b08d7d +00b9948200be988600c39d8b00c7a28f00cba79400d6b6a600ddc4b700e2cec6 +00e2d5cf00dcd6d300dcd7d300ddd8d400dfdbd700e2deda00eae4e000f3ece7 +00f4efee00ede9e800e7e3e200e2dedc00dedad700d2cecb00cac4c000bfb8b5 +00b5adab00aaa5a500a9a4a400a9a4a300a9a5a400aca9a800b0acac00b2afaf +00b7b6b700b6b6b600b5b7b600b4b7b600b4b7b600b3b4b400b1b1ae00aea8a6 +00ada19c00a98e8100a88a7b00a8877500a87e6900aa7b6200ac775c00af755b +00be765700c6775500cf785400d2775300d5765300d8754f00d26f4e00c96847 +00be604100b2553400b2523000b24f2d00b44c2600b4492100b3481c00af4819 +00b04a1c00b44c1e00b94f2000c4552700d05a2e00d9633300df693600e26d3a +00e36d3b00df633800de5d3600dd573400d7513100d14b2c00ca482700c34521 +00c0451a00c0431a00c0421a00bf3f1b00bd3b1c00b93a1d00b13a1e00ac3f23 +00a8462a00aa4f3100ac543a00ae564000ae564300a75242009a4c3f008b453a +00723c31006e3a30006a382f0067342c00693129006f2e2400732c200078301d +007d331c0085371e008d3d1f0097442300a24a2900ae502f00b8563300be5b36 +00c15b3700c05a3700bc593500b85a3600b6583700b6573700b5563500b15131 +00af4c2c00ab462400a9432300a8412400ac452800b24b2d00b4533600b75b3c +00b9614100bc654800bd694d00c06f5700c2755f00c57b6900c5827100be8879 +00b6897d00af877a00a9827500a07b6e00976f64008e655a00825e520073554d +00654d44005b443b00553e330051352b00512e220054281c005a2519005e2217 +00622317006a261c00732a1d007e2b1d00872c1c0092301c0099301b009a331c +009b3624009a3d2b009943340095483b00935044008e534700865446007a5348 +"/> +<palette number="372" name="040221-11" data="001f0f7200281588002d179100331a9a00371b9f003b1da5003c1ea7003d1faa +004121b2004322b6004624ba004925bf004c26c5005128cc00572bd3005b2cd8 +005f2edd007035f3007837f9008139ff008a3aff00933cff00973cff009b3dff +00aa42ff00ae43ff00b244ff00b244ff00b244ff00b143ff00b143ff00ac42ff +00a440ff008837ea007831db00682ccc005a26bb004d20ab00471ea300411c9c +002d14840029127f0026107a002a1280002e15860032168b0037179100401b9e +00481fab005927c700602cd7006831e8006b33f0006f36f9006e36f8006e36f8 +006230e500592dd900512ace004b27c6004625be004423ba004222b7003e21b1 +003c1fab003b1fab003e20b0004222b6004323b8004424ba004424b8004322b6 +003e20b0003c20ae003b20ad00381ea900351da500321ca200301ba0002c1a9c +002a1b9c002d1da8003220b1003824bb003b25c0003e26c500462ad1004d2ede +005f37fd00663afe006e3dff00703eff007340ff007640ff007940ff007b41ff +007e41ff008141ff008141ff008141ff008141ff008141ff008041ff007e41ff +007b41ff007740ff007440ff00713eff006e3dff00673bff005d37fa005332ea +00492dd8003321ad002e1da2002a1a970020148000150c6a000c075800060349 +0001003b0003003c0005003d0007003f00090142000e044c00140657001a0b65 +001f0f7200281588002a168c002d179100331a9a00371ca0003b1da5003d1faa +004121b2004322b6004624ba004724bc004825be004c26c5005128cb00572bd3 +005f2edd007035f3007536f8007a37fd008139ff008a39ff00933cff009b3dff +00aa42ff00ac42ff00af43ff00b244ff00b244ff00b244ff00b143ff00ac42ff +00a440ff008837ea008034e2007832da00682ccc005926bb004d20ab00411c9c +002d1484002a12800028117d0026107a0028117e002e15860037179100401b9e +00481fab005124b8005927c700602cd7006831e8006e35f3006f36f9006e36f8 +006230e5005d2ede00592cd800512ace004b27c6004625be004222b7003e21b1 +003c1fab003b1fa8003b1fab003e21b0004222b6004424ba004424b8004322b6 +004121b2003e20b0003d20b0003b20ad00381faa00351da500301ba0002c1a9c +002a1b9c002b1ca1002d1da8003221b1003824bb003e26c500462ad1004d2ede +005632ed005f37fd00673bff006e3dff007340ff007640ff007940ff007b41ff +007e41ff008041ff008141ff008141ff008141ff008141ff008041ff007e41ff +007d41ff007b41ff007841ff007440ff006e3dff00673bff005d37fa005332ea +00492dd8003e27c5003321ad002a1a970020148000150c6a000c075800060349 +000301410001003b000100390005003d00090142000e044c00140657001a0b65 +"/> +<palette number="373" name="040221-12" data="0061512300525e2e00516131005064350053653600566637005e683700676a38 +008a723b0093743f009d774300a1764200a5754100ad713a00b56e3400bd6b2f +00c5682b00db632500d8622600d6612700cc602600c25f2500bf5d2200bd5b1f +00ba511300b64e1100b24b1000a94b1100a14c13009c4d1400974f15008c5318 +007f5418006f4d150068491400624613005c46140056461600504717004b4818 +003c4c1f00394c1f00364c2000364a2000364920003548200035472000364822 +0036482200394b23003a4d22003c4f22003e5022004051230040512300415124 +00465527004d57270055592700635a2500725c23007a5d2300825f2300916122 +00a0662400b9672400c4642000cf611d00d35f1a00d75d1800de581200e0540e +00d54a0900ca450800bf400800ae3c07009e380600963706008f370600803407 +00723007005a2606004b2205003d1e0500361d0600301c0700271d0800201e08 +002120080025220700292407002b2408002d250a0035290a003e2e0b004d350b +00613a090085490800964c0800a7500900ac510a00b2530b00be540b00ca5509 +00d7510600d24d0400cd4a0300c6470300bf440300af3e04009e3903008e3605 +00833408006d360f0068371100643914005e3c1a005a3f1d00594220005e4222 +007549220085542200955f23009d652700a56c2b00b47a3600be823f00c58a47 +00cd914e00dda25900dfa75d00e2ad6200e5ba6f00e3c17a00dfc58400d8c186 +00d5af7c00d8a77200dba06800dc9b6300dd975f00e08e5900de815000da733f +00d9662f00e1571300e2560f00e4550b00ea560800ed560800ef580800ee5709 +00ee570a00ed580a00ec5a0b00e75f1000e2651800dd6d2100d9742c00d37936 +00cd7c4100be7e4800b87e4900b27e4b00a37d4e0099794d008e764d0086724e +00786a46007467430071644100685f3b0063563300624c290067431f006e3a18 +00753512007c320f007e350f007d3910007b3b13007a3b13007a381100793610 +007635120074371300723a1400704119006e4920006f51260071592e00726234 +007b6a3700847337008e783600987b3500a57e3200af833200b1833600b68338 +00ba863900b9843800b27f3300ad792c00a77526009f702600976a2800916a2c +008f6d34008a723c008774410084784400847d4600887f47008c7d4500987b41 +00a2793e00ab763b00ad723800ac733700ab743800a9723700ac6e3400b2682c +00bb612500c3581e00cb541700cf521400d1521300d2541500d2541500d35314 +00d64f1300d94c1000dc460c00df420800e0410800e1410600df410500df4005 +00dd3e0400da3c0500d7380500d4360500d3330500cf330500c8340400be3606 +00b43b0900a93d0b00973a0a0089380b007f380d00763a0f006a3d130063471a +"/> +<palette number="374" name="040221-13" data="00497f7d00578d8800588d8b00598e8e0051868a004a7e870045788300417380 +002e5c6b0023505e001845520012354b000d26450011184500160b4500190846 +001d06470021154e00261e56002c275e00382f6b0044377900483d7e004d4383 +004d65900049718f00457d8e00437f89004282850041818300408181003e7c7a +0039737500255c5a001b504b0012443d000c393300062f290003282500012122 +00001415000014130000151200001c170000241d00072b24000e332c0020403d +00324952005660770063658000716a8900766e90007c7297007a6f9700786c97 +00685b88005c547800514d6800404659002f3f4b00263b44001e383e000e3033 +0005282500002b1400032f180006341c000a3720000e3b240014432c001a4835 +00265e4700306754003a7062004879700056827e005f868400688a8b00769096 +0081949f009499ae009899b0009c99b2009e98b200a098b3009f95b1009f90b0 +009f77a9009a69a500965ca200915aa1008c58a000815b9c0077599800705895 +0068509000584486004e4e800045587a00415f79003e6678003b7178003b787a +00438182004d888500578f88005c928a0061958d00699b94006e9e9c006ea0a2 +0070a2a40069a2a100659fa100629da1005a9a9f0050959d0047909a00469098 +00468e98004a8e9b004f8f9e00528e9f00558ea0005e8fa2006693a3006d96a8 +007199ac007b9db1007d9db100809db200849eb10088a0b30089a1b5008ca2b8 +0098a6bd009ca7bd00a0a8bd00a0a9bd00a0aabd00a0acbf00a1adc100a0adc3 +009eacc20094a8bb008fa6b7008aa5b3007fa1ab007199a300628d990054848d +003e6d71003967680034625f00295750001c4640001039320006312800012a22 +0001291c00002913000026100000240e0000200900001c090000190b00001a0f +0000190f0000160c0000140a00000e090000080b00000513000003210000002e +000f00360021003d002e034700371152003e1d5f0043276d00462b75004a2b7a +004a2f790046367800433e78003a4b7b002f577b00255d7d00225f7d00215e7b +0025647b002b6a7e003072820033798800387f8d003d8190004386910049898d +004e8b8d0050898f00558692005b7d93006175930066698f0064598500574777 +004c3b6a00422f61003b2c5a003b2b5b003e2b5e00382d5e00332e5e002e335e +002b425f00315465003c677300497b810054888d005e8e940067959a006d989d +00729b9f00779da0007a9fa2007ba2a5007ea3a70082a3aa0088a0ad00909ab1 +009590b300978bb500948bb700908cb7008c8fb7008a90b900888bb7008584b2 +007c7fad006f7da50060809b0052869100478989003d858000367e7900317872 +002f736c002c7365002f7562003178600033776500377769003b767100407a77 +"/> +<palette number="375" name="040221-14" data="008d7c9600947c86008c7f810084837c0074897f00648f8300599186004f948a +004e9b920050a29a0052a9a30058aea6005eb4aa0064b9b2006bbebb006dbebd +006fbfbf006ac9cd0063ccce005cd0d00061d4d30066d9d6006ddbd60075ded7 +0088e1d90079dacf006bd4c60053c1b6003baea60034a59d002d9d9400268e89 +002a817c00327865003470570036694a003b633b00415e2c00495f2c0051602d +0072733d007d82490089915500919b56009aa657009ca956009fad5500a9ac53 +00b3a95100bc995800bd905700bf885600bd7e4b00bc744100bf6f3900c26a31 +00cf471700d73a1200df2e0d00e4260e00ea1e0f00e81e0e00e61f0d00d6220d +00c4210d009e2010008d2116007d221d00792220007522230063292c00523134 +003d4b43003a5b4b00376b5300417558004b805e004d82610050856400518b68 +00528f690053976e00529a6f00529d7100509b71004f9a7200469475003b8d71 +00237c710018766e000e706c000d6e69000c6c67000f69620012665c00166457 +0019645300155e4f00165d4a00185c46001b5b43001f5b40002f5236003f4d2c +0059442400624123006b3e23006e402400714326007d3e25008a37210095301a +00a028160097201200922214008d251700832b1c007c312400783e2f0081433b +0083434f00874052008b3e55008a3d5700893d5a008c4c66009e587200ad6c7c +00be708900e06a7a00e2607300e5576c00e84d5f00e7455200d8504900c8564b +009f543b008d482f007c3d230077361e0073301a00673014005f37170053401f +004b4a26003b5a3400395a3800385b3c00395d42003b6347003a694d003e7152 +004b7f55004b7f54004c7f53004b7e4e004b7d4a00467a47004177470041794a +0045804f004a8a56004b8c57004d8e580050935900509459004f935c0052935e +0056956400559363005592630055906100558b560051844d00507c43004f743b +004b6b3300455f2b003e5729003c5223003a4f1b00424b18004e491400584813 +006d401000723e1000773c1100774310007f4d1900895a2700936c3900a27e4a +00b28d5700c2916200c1976300bd9e6400b3a26800a1a76f0093ac770089b17b +008fb6820092b7830096b57a0096b16c008daa5e0087a253007f964200868e36 +0091863100a27f2a00b17d2500b6782100bb762000b0751f00ab791f00aa7c24 +00b2822e00be8a3900c6934500d0985200cca06300c3ae7400b7ba8300aeca97 +00a9d7a600a9e3b700b1e7c500bdecd300c4eedd00c7ebe200c8ecea00c3ede9 +00c1ebe600bae2e000bbd7da00c0c7d000c6b2c000cda0b800d092ae00d185aa +00ce7ea500c87ca500c07ea900bc7aa500c078a200c673a100c569a800cc65ac +00d163ac00d365ac00cf6aad00c174aa00b77da400a37fa1009a82a10090819f +"/> +<palette number="376" name="040221-19" data="002391ad002c8ab2002b8ab3002a8ab400238cb3001d8fb2001c97a8001ba09f +002fac810040ae790052b1710062b7720072bd740080c468008fcb5c0094cc56 +0099cd5100abcd4500b5c84c00c0c35300c2be5700c5ba5c00c2b65b00c0b25a +00aeaa5a00abad5e00a9b06300aeb86f00b3c07b00b5c38200b8c78900b6cb9b +00b5cbab00acd0c200aed5c700b1dacd00b1e0d300b1e6da00b0e4df00afe3e4 +009bd1f10092c6f1008abcf20086b9e90083b6e00082b5d80082b4d0007cafbe +0077a3b100617e9000566a82004b577400434d60003b434c0038404400353e3c +00273924001f36220018332100123020000c2d1f000b2c1e000a2c1e00072d1f +00083022000d3f2a0016432b0020482c00254a2e002b4c3100354e3b00424c48 +00534c67005d517400675782006c678e0072779a00777fa1007d88a9008a96b6 +0091a3c000a1b3c6009dbcc1009ac5bd0096ccbe0092d4bf0088dfc50083eac9 +0087f5bf0092f6b2009ef7a500a4f79e00abf89800aff29100b3ee9000b3e78b +00b3e08900b9da7d00bbda7500bedb6e00bfda6e00c1d96f00bed07200bbc77a +00aca98c009b9a9a008a8ca9008389af007d87b6006d81c400647fcc005d7fc8 +005d79c500526bb4005269ad005267a60057659b00646a9100717786007d8182 +00909681008f9582008f9584008f9385009091870096938d00939099008f8f9f +008b8ea9006d91b9006292bb005894bd004d9ac100419dc800389fc700339fc0 +003595a2003395900031967f0031977d0031987b002f957d002e937e002f887b +003784770042866b00418a6d00408f6f003e937900379786002a96940023959b +001f95a1002098a000219b9f00289d9c0031a29b0034a09b00339992002f8d87 +00267a790019555400184f4c00184944001d403b001f3f330023463100254c33 +0024573a0023593b00225c3c00255f3f00255d4100225d4300235f460023604b +0022644e00236951002a705300357656003b7a59004b7f5d00568067005c7f70 +00597a7c0058797c0057797c004e777c0051767400557470005a716900576969 +005361640048555d003345540022354400142633000b1b220003131a00021016 +0005151500081f1b000f2e2400193c2d00224836002a533e002f5a4400335f45 +0032644800336b4f00377757003e826500499376005aa2810068ac840073b183 +007bb381007ab37c0077b17f0072b6870071b88e0070b890006eb6900070b289 +006ca87b0061986e00558b6500467c5e00356d5800255d540019504c00114143 +0008333a000429310002202900001b230000181f0000141c0000131900001219 +000113170001131400031314000313160003141b0003182100021e2a00052834 +000c3a3f00164b47001f505b0027596d0028678100247394002078a5002282b2 +"/> +<palette number="377" name="040221-2" data="002e1010002f1010003011110032121200331212003513130036131300381414 +003b1e1500391f14003821140036201300341f1200301e10002c1e0f002a200e +0029220e00242c0f002531110027361300293b15002b4117002b4217002c4418 +002b4719002a4618002a451800273f16002439140022371300213513001a2e10 +0013290e000a1c0a0008180800071407000612060005100500050f0500050f05 +00040c0400040c0400040d04000c130600151909001a1b0a001f1d0b002b270f +00363113004a471a004e4c1b0053521d0052541e0052561f0050561f004f571f +0054602200586524005d6a26005f6b2600616d2700626e2700636f2800667028 +006e782b00687028006068250058602200535b20004e561f00434d1b003b4719 +002e3c15002c3a14002a381400313d1500394217003f471900454d1b0050561f +005a5d21006f6f280077772a007f7f2d0081822e008485300086883100848831 +008389310081883100808831007f8730007f8630007f8530007e822e007c7f2d +007c7e2d0078792b0071752a006a722900646d27005f692500556323004b5e21 +0036511d002b471900203e16001a391400143412000e290e000c220c00091a09 +0007160700061106000612060006130600081708000e220c001b2f1000293c15 +00455a2000516624005e72290063752a0068792b006e7c2c00727e2d00747b2c +0076782b007b752c007f782d00837b2f008b813200948735009b8f3800a1953a +00aaa13d00ada63e00b0ab3f00b2ad4000b4b04100b9b54200bab64300b7b542 +00b6b24100a8a43c00a49f3a00a09a39009a9137008f87330086813000807d2e +00787b2c00767b2c00757b2c0073792b006f782b006b732900676d2700666925 +00676925007271290075732a0079762b007f7b2d00837e2f00857f3000858130 +008b8832008b8a32008b8c32008d9134008e9234008f973600919b3800939e39 +0094a13a0096a33a009aa53b00a1aa3d00a7b13f00b1ba4300bcc54700c3cf4a +00c7d94e00c7da4e00c8db4f00c7db4f00c5d94e00c3d94e00bfd64d00bbd24b +00b8cf4a00b2ca4900adc64700aac24600a9bd4400a7b74200a4b13f00a1a73c +009d9e39009e9839009d943800978e36008f85330089813100827a2e007b742c +00756e2a00706a28006f6628006961250061592300594f200050431c004b381b +00442d18003b231500361d1300351b1300341d1200341f120034211200342712 +00322b12002f2e10002f361300313c150033411700364418003547190035481a +00344a1a00334a1a00324a1a0031481a00344719003444180035421700374217 +0038441800394418003a4418003b4418003a421700393f1600383b1500353613 +0032321200322e1200322a12002e2410002b1d0f0029180e002b140f002c0f0f +"/> +<palette number="378" name="040221-21" data="008a6557008e6965008e6b67008f6e69009170690093736a0094746b0096756c +00906f69008969640083635f007c5c58007556520072514b006f4c44006e4a42 +006e484000693f3b00653b380061373600613735006137340062383400643935 +006b3f35006a3e3300693e3100653c2f00623b2e00623b2d00623c2d00673c2d +006a3e2e006d402800693e2300653c1f00633c1d00623c1c00623c1c00623c1d +00663f1f00633e1c00613e1a005c3b160058391300553711005236100050350f +004f3511005037130053391600563b1900593d1d005d3f22005e3f24005f3f27 +005e3e2b005c3d2c005a3d2e005b3f30005c4132005c4133005d4234005c4036 +00593e35004f3630004b332c0048312800483127004831260048312600493126 +0051362d00573a32005d3e380063423e00694744006a4947006c4c4a00715150 +0077585800886766008f6c6a0097726e0098736e009a756e0098736e0092716c +00846868007e626200795c5c0076595800745654006e4e4d00674646005d3e3f +005336390043262e003f2328003c2122003b2020003b201f003c201c003c211b +003f231d0041261d00432a1e00442c1e00452f1f00493522004f3a2400564028 +005c452d006a4e37006e513a0072553d00795c45008366500091766100a08671 +00b8a19100c2ad9e00ccb9ac00cebcb100d1bfb600dbccc500e4d8d400ece4e1 +00f3eded00f7efeb00f4ebe500f1e8df00e9ded400e2d4ca00d9c9bf00d4c4bc +00c4aea600baa29600b0978700a9907e00a38a7600957a640089715b007f6754 +00765f4e006c533f0069513b00674f3800614b31005a462a0055412500523d21 +00553c1e00573d1e005a3e1f0060422200664625006b4a2a00704e2f00765133 +007c5638008c603e008e6240009164430095684700966a4b00956a4f00936b55 +00936d5a00926d5b00916d5c00926e5e00926f5e00926f5f008f6e63008f6e68 +0091717000997c7d00a2888b00ac959800b49e9b00b8a19c00b8a19d00b09697 +009f8e92009c8d94009a8d9600958c91009086880089807e007e6e6e006e5e5c +005f4c490053413e004a39350043332b0041302400432e2000462f1e004b321e +00523721005a3f2500624729006c4f3000765737007e5f3e008768460090704f +00977756009a7b5c00997b5f00977a6100917461008b6f600086695f007f635b +00785d580070565200664e4c005c454400543e3f0051383b0051373700533837 +00583b37005d3f390060433b0060453d0062473f00674c42006e524400735846 +00785e47007c6249007a62490075604600705c43006d583d0069553800675332 +0066512c0067512900654f2500644d2100634b1f00624b1e00644b1f00654a22 +00674a25006749290068482a006b492d00704d3200765338007c574100845e4c +"/> +<palette number="379" name="040221-22" data="005b6c64005d6d620059695c005665570053625500515f54004e5c52004c5951 +003f4a470038424100323b3c002b343800252d3400222831001f242f001f242e +001f242d0021262b0021262c0022272d0023282d0024292d00252b2d00272d2d +002e38360037413e00404a4700525b5400656d62006d746800757b6e00808777 +008b918000989d8800989b8700989986008c907d00818774007b827000767e6c +00656e5e00606a5b005b6658005a655700596457005a6458005b6559005c655c +005f676000636c6400646e6400667065006570650064706500636f6300636e62 +0060675a005a625500555d50004e554a00474e44004348410040433f00383a38 +0031343400242a2c0020252a001c2129001b2028001a1f2800191e28001a1f28 +001b202b001b202c001b212d001b212d001b212d001b212d001b222d001c222e +001c232f001e25310021283100242c3200252e330027303400293133002b3033 +0030353200343a35003840380039413b003b433e003f474300454e4b004b5753 +00525f59005c6a6300606f660065746a0067756b006a776c006b786b006a776a +006d7b6b00717e6e0076827200768273007682740075827500718074006f7f73 +006e7e6f0067716300626b5e005e655a00545a5200494f4800414742003a3e3c +002f303300282a300022252e0020232d001e222d001b1f2d001a1e2c001a1f2c +001a1f2c001d212f001e222f002024300025293300292f36002d363900313b3d +003b4642003f4b4400435047004451480045534a0046554a0047554a0048564a +0049564b004d5951004f5b5400525e580059666000606f6800677871006e7e78 +0077878300798884007b8a85007d8e85008190850083928300848f8100848d7d +00828a7800808772008086710080867100808671007d8470007b816e00767c6b +00676f5f00636b5c005f6759005860530050584f00474e4a003f464400363d3f +00303739002b313500262b3300222731001f2431001e2230001e222f001f222e +001f242e0020252e0022272e00252b2f002a3031002e353500323a390037403d +003d464200424d45004751490049534a0049544a0049544b0049544c004b554d +004d584e00505d5000546154005a695b00647163006e7a6a0075806f00788272 +00788473007983720079817100777c6d006f74650064695c00585e53004c534b +00444946003c414100363b3e0031373a002c323800282e3800292e37002c2e37 +0031313800363439003a363b003e3c3d0045423f004d474200534c4500575048 +0059544b005b594e005f5e510064615500676358006965590069665a00676759 +006766590065645800626156005f5e5400595c5000555a4d0051584b004f574b +004e584c00505b50005460560055635a005664590056655a0055645a0058685d +"/> +<palette number="380" name="040221-23" data="006d231e0057161f00511f1d004b281b0049311700473a1300493b14004b3c16 +00574f210064522900725632007c473a0086394300893743008c3544008c3343 +008d324300831f3e007e1c34007a192a00721d1f006b21150068201200662010 +00662010006322110061251200592b170051321c00503721004f3c26004f492b +0051592e0039733200318240002a914e0027a14f0024b251001eb54d0018b849 +0010a34c000d994a000b8f48000a843d000a7a32000b7133000c6934000f5a3c +000d584a00116e5500126a580014665c001563640017606d001c636a00216668 +003e574c004d4946005d3b40006f323f00822a3e008d283d0098273d00a92b3e +00b6334900b52d6400b62b6900b72a6e00ba2b6d00bd2c6d00bd2c6e00ba256e +00b51c6800ba176100c0125b00c00b5400c1054e00bf044900be044500bc043c +00b9033600a70628009a0720008d09180089071400860510007f040b00760406 +00600505005b0506005705070054090700520e080048210b0042360e00444714 +004a4615005442120055471000564d0f0057490f005945100060340c0060200a +00500800004404000038010000330000002f0000002800020025000300220104 +002302040027020400280203002a0203002d0204002f0204002e030400280206 +001a0208001605070013080700110808000f0809000f090a0010070b00150b08 +00210e06003a100400400d0300460b0300510803005e0802006b090200770804 +0088030a008d020d009201110092011200920214008c02140087021500830214 +00800114006f010f0068010e0062010d00570209004f01060048010400420102 +002f0505002b06060028080800220c0b00230e100028101300311217003c151c +004a141b0069181a00721618007b1517008d161500a00f1700ad0b1b00b40e1e +00ad111700a61415009f1714008e201a007932230068423300544c3e0041513c +002e5339001b5536001458330011533600164c3300234131002f382f00403329 +005a2f23005a3023005a3223005933260057362e00573a3300593534004d3233 +00452a2b003b1f2800361d24003c1a2100441c2200501f22005c1b2900631532 +0069143c00731a43007d2846008b3449008f384b008c325000882d4d00832b46 +00822c390082302c00812b24007d241c00771b17006e111100660b0e0060070a +00590606005507040052090200530e0300581105005e150600621a0b00691b16 +006c1c2400741933007b153d007d153d0080113c007f0e3c00800b430085054f +00890353008b03510093024900990242009f074200a50f4600a6184c00a72150 +00a8244f00a9294b00aa2d4900a9364a00aa414c00ac474d00aa4b4c00ac4949 +00aa494900a8494700a64644009b454000973c3a009136340087312c007e2723 +"/> +<palette number="381" name="040221-24" data="0060574500665d4b00665f4e006761510064615300616256005f6258005e635a +006c726600727a6c00798272007e867500848b7900858c7900868d7a00868c79 +00868c7900868772008585710085847000898572008d8774008e897600908c78 +00989582009c978500a09a8900a19b8900a39d8a00a29c8b00a29c8d00a09d8f +009c9a90008e93890083897f00798076006b726a005e645e00575d5800515753 +00393f41002e353800242b30001d242800161e2100141c1f00131a1e00131b20 +00141e25001e2c360027353e00313e46003a464c00434f5200475355004c5858 +005d69660067716d00717a75007a827c00848b8300888e85008d92870096998a +009d9f8d00a7a38d00a8a28a00aaa18800aba08500ac9f8300ad9c7f00ac997a +00aa977500a7967200a4956f00a4946e00a4946e00a4946f00a5957000a69572 +00a89b7600b1a48200b1a88600b2ac8b00b2ac8c00b2ad8e00afad8f00abaa8e +00a19f88009a98820094927d00918e7a008e8b77008b867000877f6700857a5f +00837557007c6b4d0078684c0075664b0075674d0075694f00766c55007c745c +0091886d0099907400a1987b00a3997d00a59b8000a69d8300a19a86009b9685 +009592850084857a007f8177007a7d740072756c006b6d630063635b005a5a51 +004c4a44004b443c004b3f34004c3d31004d3b2e0051372900563324005b321f +0064332000703e2b0076432e007d4932008a543b0097624800a56f5400b07d5f +00c3917700c49a8200c6a48e00c6a89200c6ac9600c5b29f00c3b7a500beb9a7 +00b7b7a500a2a698009ba09200959a8d00898f83007d83780072766e006a6d65 +005d6055005a5d5200575b4f0054554a00525346005454450059554300605743 +00675b43007b6645007f684500836a4500876c48008a714b0090754d00947651 +00997956009a7a57009c7b58009d7c57009b795900937859008d755a0085725d +007e7262007c7567007f7a6e00858073008b867a008f8a7e008f8c7f008a8a7c +00767b720071766e006c726b00636c66005e6764005a64630056636400526569 +004d666f004a656f0044606c003c5b68003a5664003a515d00374b5700344852 +003247540031465400314653002e4553002e4554003143520030414f002f3f4d +002b3f5000273c4f0023384c001e344a001a324800193049001a314800203449 +00283c5100334557003e4e5a0047545b0050585b0055585700595350005a4a43 +0058443b00553f3500533d3100513b2b004f38280049372500443323003c2c20 +0032241e00271d1b001c141800140d13000e070f0009060d0007080e00080b0f +000c0f150012151b00181c220020232900292a2f0035303300403736004a4037 +0055463a0055473a005548390053493b0051493b00514a3c00534a3d00544e3f +"/> +<palette number="382" name="040221-25" data="00adda0400bbc20500cbba0500dbb20600daad0600daa90600cfa40500c49f05 +009e880600918504008483030075860400668906005f8e0600599407005c9809 +005f9c0c0073b4220087bb38009cc34f00aab65000b9a95200bda64b00c1a344 +00d4b25000d7a34b00da954700d4812e00cf6e1600ce691000ce650a00cf6407 +00d1590700d13e0500d22c0500d31a0500d90f0400df050400e0040300e20403 +00e1040500e3050400e5060400eb0a0400f10f0400f2130400f3180500f42306 +00f5290500fa2b0300fb2a0300fc290400fb280300fa270300f9230300f82003 +00e80f0300dd110300d3140300c81f0300be2a0300b7300300b1370400a84c0a +00a0621500a9924500b29a5800bca36b00bca66a00bcaa6900b7b45b00b3be5a +00b2b86400a8af4e009ea638008aa6210076a70a0071a709006da8080069ad0d +006db60e008bc40d009bcb0d00abd20d00afd90d00b3e00e00c5e70d00d7ee0b +00ebe80500dce10500cddb0500c5d70500bed30600b2ca0400a3c1030091b703 +007cac03005f9e0600599c0500549b0500529a0500509905004f960500529406 +00568d06005e7d0500676e05006e660400755e0400824d04008c430300983403 +009f230300a40e0600a3120500a3170500a4240400a03602009c460400985405 +00a0700500a56e0400aa6d0300ac670300af610300b3580300bf4f0400c34305 +00bf350500a12b06009a2b0500942c04008d2906008b240500902506008f2806 +009d260400ac1a0400bc0f0400c20a0400c9060400d1080600d60f0500d11a07 +00c8280700a8410800a14807009b5007008e610800867108007d830800768f08 +0079a205007ca4040080a7040085a9060085aa080083a5090084a20800869d07 +00889607007b8d0b00778c0b00738b0c006e890a006d8508006c860600688607 +005f8d08005f8e08005f8f080060940700619c080063a6070065b1070069b807 +006fbb090073bb0e0078c0100085c70f0094d10a00a7d80900b5d60a00b7d10d +00c5bd0900cbba0700d1b70600e0b10400e5aa0500e5a00600e58d0600e57706 +00e95f0600f04c0700f3400700f7390700fa370600fb350600fc360700fb3708 +00fa3c0700fc440700fb4b0700fb520600fa530700f94e0700fb450700f93c07 +00f6300600f2280700ec230800eb260800e9340900eb470a00eb591200e7711e +00e8852b00e3983a00e3b13b00deba3d00dac63900dac33700dbb53d00e1a637 +00dc893200d8742300d25f1400ce510c00d04a0600cb460600cc470600cc4505 +00d0460500d04b0500ca590600ca690600ca790600cc830700c8850700bb8407 +00a9800700978006008c83070081870600778605006f86050065830300638603 +0065920300689d05006ca704006eaa040074af040082b9020093c80500a1d705 +"/> +<palette number="383" name="040221-26" data="009d51530089465b007d405b00713b5c006b375b0065345a0065345900653458 +00783e5f00824360008c496100934d60009b525f00a1566000a75a6200a85b63 +00a95d6400ac5d6a00ab5f7200aa627a00aa658400aa698f00a86c9400a76f99 +00a3719d00a3709a00a46f9800ae759900b87c9a00be839d00c48aa100d198a3 +00daa3a500dda49800dd9f8d00de9a8200db937c00d98c7700d68a7500d48873 +00bf7b7100b2716f00a5686e00985b70008c4e72008749700082446f00783d6b +006e386b005e3569005c346c005a346f0061356e0068376e006d386d00733a6c +008844620091475c009b4b5600a34b5000ab4b4b00ad4a4900b04a4700b24a44 +00b14a4400a64b4c00a0494d009a474e0097444d0094424c00903f49008b3d45 +0079384d00733854006d385b00703b6000743f65007b43640083486300925666 +009f626b00ae797b00ae808600ae879100b1889300b48a9500b88f9600ba9096 +00b8909300ad8b9300a28694009d819300997c930092748c008e6985008f627e +00905d7700955f6f009b697200a1737600a4777900a87c7d00b3848500bc8b8f +00cd96a200d49dab00dba5b500daa9ba00daaebf00dab7c500dbbdc900debecc +00ddbfcf00e0c1cf00dfc0cd00dec0cb00d8bfc800d3bbc300cbb1bb00c2a6b0 +00b395a300ac8d9d00a6859800a5839600a5819500a2798f009e6d86009b627f +009a5a79009c526c00a1546a00a6566800b05d6600ba646600c56d6800cb776c +00cf817a00c97e8000c37c8600bd788800b8748a00b06e8c00a76b8c00a46a8b +00a66c8a00ae758b00af768c00b0788d00b1788c00b0798d00b27a8900b77a82 +00c87e7500c97e7400cb7e7300c97f7200c07e7500b67d7900ab787b00a27079 +009d67720094506000934b5c00924758009142530090405000933f50009a434e +00af4f4b00b5524a00bc564900ca5e4900d5654900df6a4d00e4705100e77857 +00e67e5f00df826a00d7847400d1857800c8807b00bc797c00b0727d00a86c7a +00975f7800975e7700975e76009a5b73009b576e009b5169009b4e62009a4757 +0096415000943e4a00943c4500943c4100973b3d00993b3b009a3a3b00983739 +00963637009634360095343700963638009a393900a13f3c00a9443e00b1493f +00bb4c3f00c44f4000ca514100cf514200d2524200d3544200d0534300ce5242 +00cc504200c94d4000c4483f00bc423d00b33e3b00a83b3c009d394000943744 +008f3848008f3b4b00913e4c0097414d009c474f009f4d5300a1525a00a55860 +00ab5c6400b3616500be626500cc656100d96a5d00e46e5e00eb726000ef7864 +00f0806900f1866e00f3896f00f4896d00f58a6b00f5876800f3846400f18363 +00ef866400ec886700e9886800df826400d47a6000c8705a00ba645600ac5852 +"/> +<palette number="384" name="040221-27" data="00c88b6400b4805e00af7b5d00aa775c00a7745900a5715700a26c57009f6857 +00935950009256490091544300955a3f009a603c00a76b3b00b4773a00b97c3b +00bf823d00d2924100d7954200dc984400df9b4600e29e4800e5a24900e8a64a +00f2b75500f6bd5900fac45d00fcc65e00fec96000fcc75f00fac55e00f5bf5b +00efb55700da9b4c00cf8e4500c4813f00b9743900af683300a9632f00a45e2c +0091492500873f21007e351d00792e1b00742819007327190073271a0075291a +00792d200084363100883e3a008d464400934e4a00995751009c5b53009f5f55 +00a2685b00a4695c00a66b5d00a56c5e00a56d6000a56e6100a5706200a97564 +00ad7e6700b78d7000bb916f00c0956e00c2966e00c5986e00ca9b6b00d1a168 +00e2af6b00e9b66f00f0be7400f5c47500fbca7600fccb7400fecc7300fecc6e +00fecc6900feca6000fec55d00fec15a00febd5900feba5800fdb65a00fdb45c +00fdb36000fdb56100fdb76200fdb86200fdba6200feb75e00feb55e00fdb45f +00fdb36000fcb36600fbb66b00faba7000faba7000faba7100f9b97000f7b76e +00f2ae6a00eeaa6600eaa66200e7a46100e5a26000e49c5f00e5965e00e4915d +00e28c5b00d67d5500d1795200cd754f00c16f4a00b86a4600b5674600b86849 +00c0715900c5756300ca7a6e00ca7b7200ca7d7700c8827d00c6857e00ca8b7f +00cf928100e0a68400e5ab8500eab18700f2ba8a00f8c28c00fbc58a00fdc885 +00feca7800feca7100fecb6a00fecb6700fecb6400fecb6100fecb5f00fecb5e +00fdca5d00fcc15e00fbbf5f00fabd6100f9bb6700f9bb6d00fabc7600fabf7e +00fbc68b00fac68b00fac78c00fac48b00f9c38b00f9c18900f8bf8a00f8bc8a +00f4bc8a00e4b27f00deac7900d8a67400cc996800c08a5800b57c4a00ac6c3e +00a2592e009e542b009b4f28009044200085391a00792f12006e240c00631908 +005a1405005a15090060170f00651d13006d251a0077312200823d2b008d4732 +00985e3f009c634300a1694800a9755400b2805f00bd8d6a00c99a7600d8a57f +00e3b18400edbc8600f4c48700f9cc8700fcd18500fdd08100f9cb7d00f4c178 +00ecb77000e4ad6600dba35c00d69a5400cf964e00ce924900cc8f4700ca8843 +00c6834300c37e4000ba783f00b3713f00a86a3f00a2683f009f6742009e6643 +009f674600a2674800a56b4b00a8705000ab715600af765c00b37c6000b78062 +00ba856300bf886200c3896200c68e6300c9916700cd956d00d0997100d49c75 +00daa27800e1a87900e6ac7900e8b07600e8b27300e9b37200e7b37000e6b16e +00e5b06c00e6b06a00eab36900eeb76700f3bb6600f8c06600fbc46500fdc865 +00ffca6300ffca6100fdc76100fbc16200f3b76400eaad6500dfa16500d39565 +"/> +<palette number="385" name="040221-28" data="0000000000000000000000000000000000000000000000000000000000000000 +000305040006090900090e0f000c1213000f171700101a1a00111d1e00122020 +00142323001b272800192527001824260015212300121e2000101b1e000f191c +0011181800111b1c00121e20001a2a2b0022363600243b3b0026404100305555 +00476b69005ca5a0006bb4af007ac3be00629d9b004b78780048777600467675 +00213a38001d31300019282800162525001423230013202100121e20000e1b1c +000e1b1c000d191b000b16180009131600081214000711130008111200091111 +0009111100091111000a1212000c1414000e1616000e1616000e1616000c1716 +000a161400071113000711130007111300070f1000070e0e00050d0d00050d0d +00020e0f00030e1000050f1200060e1000070e0e00060d0d00050d0d00040c0c +00020c0e0004181800081f1f000c2627000f2728001329290017282900182929 +00172828001425250012232300102121000e2020000e1b1c0012212100172828 +001b333500304d4d00365757003d6262003f656400416967003c626500425c5e +00375f5e0033565700304d50002c4749002842430028414000263f4000243636 +001d35300016242400141e1e00121919000c131300070c0d0003080900020403 +0002020200010201000002010000010000000000000000000000000000000000 +00000000000007090001080900030a0a00091111000c1618000d191b000f1e1e +0016242400162525001726260015262600142626001324240014232300162424 +00162727001827270018272700182727001728280016292900122d2b00162e2c +001c3533001c3532001d3532002135350024363600203636001d3130001e2c2e +0019282800112020000f1d1e000e1b1c000d191b000e181b00111b1e00162022 +00192d2c00192d2c00192d2c001d333300203636001e3535001d3131001b2e2e +00192d2d00192b2c0018292b00192b2c00192d2d001e3535001e373600233c3b +002b4345002b4647002c4a4a0031515200355759002e4f4d002d4d4f002b4848 +0024403d00233c3b0021373a001d3333001c2d2d001c2e2b00192b2c00182c2b +0018272700132222000e1b1c000c161800090e1200050a0c0004050800030407 +0002070800030a0a0004090a00050a0900050a0c00070c0d00070e0e00070e0e +000911110009131600071616000a1718000c1618000c1618000e181b000d191b +00121c1e00121e200012212100142626001728290018292b00193030001d3333 +001e353500203636001e383a00203a3b00203a3b0027403f00284140002b4b4a +002d4d4c002d4b4b002c46470027403f00263f4000213f3f00213a3800203837 +00213a3b00264343002b484800304d4d00355a5a00366262004b8183003c6667 +"/> +<palette number="386" name="040221-29" data="002c281c003532230035312400353125002f2f22002a2e200028291d0027241b +0023231900211f16001f1c13001c1b0f00191a0c0017180e001516110015150f +0015150d001614070015110500150f0300110d02000e0b02000f0c0300100d04 +0013130b0016140c0019160d001b1a12001d1e18001f1f1a0021201c0027231a +0029271a00363320003d3a240044422900564f3000695d37006e623a0073673d +006f6949006b664b0068634d00645d3e00605730005a512900554c2300413a1e +00373119002c26100029220e00261f0c001e1b0b0017180a0015160a0014140a +0011100b0012100c0014100d0013110c0013130b0012130b0012130b0013120d +0015110e0010110c000e0f09000d0e0600090c0500060b04000d0e09000e0f09 +0011100b001111080012120600171405001c1704001f18020023190000281e03 +001f180600201d0e00221f10002522130026221100282310002d220e002b2613 +00212212001c1d110018191100171711001716110017140f0019170b001e1b0a +001f200e0027281800292818002c2918002d2b18002f2d1800322c1600352d1a +003a341c003a341c003a341c003a351a003b3619003d3415003e3919003a361d +003a351f00403c2300443d2500493e2800574e2f006e6544007e735300887b58 +008b806200827a5b007a745400716b500068634d0055523f004b4535003f3c2d +00343225001f1c17001d1a13001b180f001a170e0019170b001b170b001f190d +00241f0b0028220d002c2610002e281200302a1400322d190036311e003c3626 +003b392c0041351f0041371f00413a2000453b22004c412b0062562e0073684a +009a916a00a7a06f00b4af7500c1b77c00b7ac7e00b4a375009e947000868265 +00686151004b4630004a422a00493f24004b431f00585220006c5e31007b6e41 +00a69a5e00a4996200a2986700a5997100a0977800a29b71009c9164008f885a +0079714c00665d3e00534a2b004c442000474121004a432600504d2e00625b41 +00606048005f6047005e61460053513c004d4b32004c492a0048442b0045432e +004a4833004e4c370056503600615b4100615b3b00695e3100584f2e00514326 +00433f24003f39230038372200342d1a002d2719002e2b1a00312e1d00312f23 +003e382800514a3000685d4100796f5400897d53009787560080775000695e42 +00514c2c00433c1f0039331900332d17002e2913002d2717002c2b1700302b18 +00312b110035311400383210003b330e003b3714003c331200382d1700322b19 +002f2c190029281600222013001f1d100018180e0014160b0015150b001b1809 +001f1c0b0025200c002c2512003b321500494226006c5e4100897f6400b9af8c +00ddd6ac00e9e0b900c4b78d00988f6e008076520071684100534e31004c4227 +"/> +<palette number="387" name="040221-30" data="0054241f00523e37005a3e3800623f3a0073373000842f2600882920008d231b +00920f0600840a030077060000680f0a005a18150055231c00502f23004d3428 +004a392e004b3f2b004e3f260051402200564427005b482c005f4c3100645137 +007d4d3700854431008d3b2b009a301b00a8260b00a6200800a41b05009c1c03 +00901702006c160a0058170e0044181300392319002f2f2000342a1f0039261f +005219130066100c007b0706007905030078040000770d030076170700732b1b +0078342d0087715f0090796d0099827c0092827d008b837e00847b75007e736d +006f453e0062312d00561e1c0049100f003c030200340201002d0201001e0000 +000f020000030000000200000002000000020000000200000003010100070504 +00131511001c1f1a00252a2300323930003f493e00454f44004c554a005d685c +0066706100646f5f005d665700575d4f00555e4f00535f4f00555a4d005c574f +007f75680091806f00a38c7700a4957f00a59f8800ada38b00aaa18f009b9e8f +008c8c84006e645f0062494500572f2c00522725004d201f0041151100390c05 +00290c02001e0c0100140d0100120b0000100900000c0500000a0500000b0200 +00130000002f0000003400000039000000400c040044180b0049140d004f180f +006723130064261100612a0f0062270c00642509004d2a0a00322b0a00251d07 +001d1606000a0904000806020006040100040300000202000001000000000000 +00000100000303020007060500080806000a0a080010141100171b18001c1f1a +0020271f002a241c002c2119002e1f1600321b110034140c00320f06002d0a01 +001c06010017040000120300000b0000000600000006020200080604000e0b08 +001b0c0800340b08003b0a0700430a06004e0302005600000059000000560202 +0046181100451c160044211c0045362c0046493b0052554e00626460006e766d +007e857b00878d86008d978c0091978c00908e89008b898400857d7c007a6e74 +006d6969006d6968006d6968006d696a00706f6e00777b73007c807500858172 +008d836f0089826f0089816a008a7d630081736300766b62006f63590067564a +0060483c005b3d350056383300593f360059473d005a4d4800605a560061635c +0062665b0063695c00696f60006d7467006e7b6d0072806f00727b6f006d776c +00606f6100535a4c0048493b003c382a003925170039150d003e0e0500480700 +0051010000590101005f01010064010100640101006302020063020100620000 +005d01000052030100420300003703000028040000150400000d0600000a0702 +000c0b060012140d00191a1200272215003c281a0053241e006a291e00783123 +007d3128007f342c007d332b007229230062241d005e1815005e0f1100581a18 +"/> +<palette number="388" name="040221-31" data="002e2b1b0034311f0033302000322f21002e2c20002a2a2000292a1f00282a1f +002e2e2400343325003a3826003f3b2400453e2200463e2300473f2500474024 +0048412300443b1d0040391d003c371e003b3419003a31150039301300392f12 +00342c100030270e002c230c0027200d00221d0f001f1b0f001d1a0f0019170f +0017150f00171711001b1a1200201e14002a271b00343023003b372900423e2f +005f584400635b4700685f4b00655d4800625b46005e5640005a513a004c422e +003e3621002a25130027211000251e0e00241f0f002421110025221200272314 +002c2819002d2919002f2a1a002e2818002e2717002d2615002c251300282210 +00241f0c001d1707001a15060017140600161306001513070014130700131208 +00101009000f0f08000e0e07000d0c05000c0b04000b0a03000b0a03000a0902 +000807010007040000070300000803000008030000090300000b0400000c0600 +00100a0200100c0300110e0500120f06001411080017140b001b180e001f1b10 +00242112002e2a1700312c1600342e1600352e1500362f1500352e1500322b14 +002d260e002a240c0028220a0026200900241f0900221d0800201b0500201a04 +00201a0300251c0400261d0500281f07002d230a0032290e00372c1100393016 +003a3521003c3725003f3929003f3b2a00403d2c00464330004c493400564d38 +0059543b005e593b005e573a005f563a005b543c00545039004f4d3a00524e3c +00605b4d006a635200746c580079715a007f775d008a82630092886700998f6a +009d926b009c956c0099936c0097916d00918b6a008b8668007c7c61006c6e59 +0051514000494b3b0042453600373a2c002d30230029281c0025231700222013 +001f1d10001d1c0f001c1b0f001c1b0f001c1c10001d1c10001f1e1100201f13 +0023221700232217002423170026241800292619002c2a1b00312e1b003a361e +0045402500524d2d005d57340069643b00746d44007e764c0080774e007c754a +00716941006d663e006a633c00655b3600645c350068603a00716c4400837b54 +009f956100b5ab7600c4bd8800cfc79c00dbd3a100d8cf9e00c9c09200b1aa88 +009e98790087826700716a52005d574000524d34004c482f0048452e0044432d +0043412b00413e27003e3b220038361c00323116002c2a100027230c00211d06 +001d1802001815010015130200141203001512040016130500181507001a1909 +00201e0e0028261100342f1600413b1d00504927005f572e006d6535007b703d +00867845008b7d4a00877b4b007e74480072684300655b3d00554e3500453f2c +00373221002c271900232113001d1c100019190d0016160c0014140b0012120a +00111109001110090011100a0014130b0015140b001f1c0f0026221300302b1a +"/> +<palette number="389" name="040221-32" data="00cec3b800dad0c600dcd2c700ded4c900e2d9ce00e7ded400e9dfd400ebe1d5 +00eadfd300e5dace00e1d6c900dcd0c300d7cbbe00d4c8bc00d1c6bb00d1c6bb +00d2c7bb00d6cdc300dbd2c800e0d7cd00e7ded400eee6dc00efe7dd00f1e9df +00ebe2d800dfd6cb00d3cabf00c0b6a900aea29400a49686009a8a7900856e59 +00775e48006344290061442b0060452e0063493300664d3800664d3800664d38 +005c443000583e2800543821005338220052392400533b2700553e2b005d4631 +00674e3600755e4a00796049007e634900785f4800735c47006b554100644e3b +00503925004c35220048322000543921006141230067482c006e5035007b5f45 +00886d52009b8a7800a0918100a5988b00a5988b00a5988c00a5988c00a5978b +00a9968200ae9b8500b4a08900bca68c00c4ac8f00c5ae9100c6b09400c8b298 +00cab59b00cdb99f00cbbaa300cabba700c9baa600c9baa600c5b7a600beb3a5 +00b9aa9b00b2a29400ab9b8d00a8978800a59484009e8d7e0098897900978778 +0099897a00a69a8d00b1a49500bcae9e00c0b2a200c4b6a600c9bba800cebea7 +00cdbaa100cbb69c00c9b39800c6b19800c3b09800bfae9a00beae9c00bbaea0 +00b9afa400b9afa500b8aea300b7ada200b5a99e00afa29500a69888009b8a78 +00806c5800755e49006a513a00674d3600644a330062472f00634730006b4d32 +007656370082685100876d55008c735a008f7a6500907e6b0095816b0096826c +0099856f009c8a76009f8f7e009f918200a0938600a3978b00a99e9300afa49b +00b3a89e00c1b4a500c5b7a700c9bbaa00cdbeac00d1c1ae00cfc0ad00c9b9a6 +00b2a29200ac9a8900a79380009b836c008c745d0083674d00795a3d00694c31 +00593e2700452e1a003f2a17003a2615003f2917004f3621005c4734006f5b4a +009d8c7b00a5978800aea29500bdb2a600cbc1b600d6cdc300e0d6cd00e5dcd3 +00e8ded300e9dfd200e8ddd000e6daca00e3d6c300e0d2bf00ddd0bd00dacebc +00d9cebf00d9cfc100d9d1c400dad1c700ddd4ca00dfd7cc00dfd7cc00ded5ca +00dad1c600d6cdc200d0c7bc00c7bdb200beb4a900b6ab9e00b1a39200b09f8c +00af9e8a00b09d8700b4a08a00b5a49200b5a69600b3a69900b2a79c00b3a79c +00b2a79c00b2a89f00b3a99f00b4aaa000b5aba200b7ada300b9afa400bab0a6 +00bcb3a800c1b6aa00c7baab00ccbeae00d0c2b100d4c5b300d6c8b700d8caba +00daccbb00dacdbf00dcd0c200e0d3c300e1d5c600e1d7ca00e2d7ca00e0d7ca +00dcd4c900d9d0c500d5ccc100d2c8bc00d0c5b900cdc3b700cec3b700d0c6ba +00d3cabf00d9d0c600e1d7ce00e7ded400ece3da00efe6dd00efe7de00ede4db +00e9e1d800e6ddd500e0d8ce00dcd3c900d5cbc100d0c6bb00d3c9bf00d1c7bc +"/> +<palette number="390" name="040221-33" data="00875c79007c4c6e00754469006e3d65006a3b6400663a6300633b6400603c65 +005c467c005e4f8900615897006863a1006f6eac007677b0007d80b5007c82b6 +007c84b800777fb600767eb500757eb500787bb1007c78ad008078aa008578a7 +0092769a00956f920099698b0097618400965a7d009456780093527300934b6b +00904769008a4568008a466a008b486d008e496d00914b6e00944d6e0098506e +009c5773009c5c79009c6280009d6888009e6e91009f709400a0739700a67899 +00ab799700ad759000ab748d00aa748b00a37288009c7086009a6e8400996d83 +00986677009a6475009c6373009f687700a36e7b00a2707d00a1727f00a27685 +00a07b8900a17b8d00a17a8e00a1798f00a47d9200a8829500ac889800b291a2 +00af9eae00a499ab009995a9008b8ba4007d81a000777b9b0071769700666e92 +00616a8d005b678600536984004c6c8200476d8300426e8500396b8200316481 +002a5579002a4d71002a4569002a4262002b405b002c41520030434d00354651 +00384b590043576b0047536e004b4f71004b4e70004b4d70004c4b6c004c4869 +0046496b0044506e0042577100405973003e5c75003862790032687800306876 +002f6774003a767d00407b7e0046808000548e8800629b90006ea899007bb4a4 +0091c3b5009fcbbf00add4ca00b5d8cf00bedcd500cfe5df00e0ede900ebf0f0 +00f2f1f200f1eaf100eee7ef00ece4ed00e4dee900dad9e300d8d9e200d4d3de +00d0cfdb00d2cfdb00d5d0dc00d6cfdc00d7cedd00d2cfdc00d4d4df00d7d8e2 +00d6d9e100dfe4e900e1e6ea00e3e9eb00e7ebed00e0ecec00d8e8e900d3e0e4 +00c6c8cf00c4c5cb00c3c3c700bcbebc00b6b9b200a8b3a50095a89800829989 +006f847a00535f5b004e58550049514f00474d4800445043003d54400034573d +00254a3600244534002341330028373200323737003e4041004c4e4f005c6262 +006d7472007c85820089948f00989d9a00a9a3a200b8acae00c7b5b800d5c3c8 +00eee0e300f1e6e800f4ecee00f8f6f700fcfcfb00ffffff00ffffff00ffffff +00fcfbfb00f8f2f400f3e7ea00ead9e100e1cbd600d6bccc00ccaec100c3a3ba +00ba99b200b18da900ab819c00a47491009c678200925b76008a4f6800834a60 +007c4c5f00785163007b5a6900826372008e717c00977f8700a3888d00ae8e90 +00b3959000b5979000b4989000ae938d00ad908c00a9908e00a78d8e00a8868d +00a8828600a77c8000a4757500996668008f585a00844d4f00784445006c3b3f +0064353c0062343c0064353f0069384500714150007a4b5b0083556500885e6f +008d667900916f8100967689009b789000a2829a00a98aa300b08fa900af90ad +00b392b200af92af00aa8fa800a2859e009b7d950095778e009370850089657b +"/> +<palette number="391" name="040221-34" data="009e7e5300b0956d00ab987800a79b8400b5a99600c3b7a800cdc2b400d8cec1 +00f4f0ea00f8f6f200fcfcfb00fbf7f200fbf3ea00f5e5d800efd7c700e8cebd +00e2c5b400b59d98009b89890082767b0071657000605565005b506100564b5e +00604d5700705057008054570090545000a1544900a7544400ad544000b1513d +00a84f3b0090413000813a2e0072342d00703a30006f413400754a38007c533c +009c7f6400b0937b00c4a89200d6bba300e9cfb400eed5b800f3dcbc00f4dcbb +00eed1b800e3aca200e5a59100e79f8000e1997100db936300d98e6000d8895d +00db885800d3895400cc8a5000c1814800b7784100b1713c00ac6b3700a15e32 +00954c280087371c008c3e200091452400964c29009b532f00a9643c00b37453 +00c59a8200cfa98b00dab99500d5b79500d0b69500c7ae9200bea79000a49993 +008d8a8b00626b7400565761004a444f00443f4b003f3a48003b364500373447 +00532b3400622b2b00712c2200732b2000762b1f00752e1c0073341f0071412a +00644c3200494b42003d4d4d00324f59002a545f002359650015586f000b5175 +00073873000c356a0011336200172f5b001d2c550028294a002e254000362235 +0039232b0053201a0058221a005e241a006c281f0074362a007d45330089513a +009b593b0098583c0095573d008e553d0088543e00764f3900684630005e3c2b +00583428005d3f320061463900664e4100736355008a786c00a18d8400baa596 +00d8bca200d3b69f00cfb19d00c7aa9a00bfa49700b2908500a77b6e009c6757 +0090554100783d3400793d33007a3d33008749350095583700a1653e00ab7247 +00c58f5800cd975b00d5a05f00e1ad6600e7b66b00e7b87000e7ba7300e8bb77 +00e9bd7b00ecc18200ecc48700edc78d00eece9c00f0d6ac00f2dcbb00f5e0c3 +00f9eddd00f9f0e400faf4ec00fbfaf800fdfdfd00fefefe00ffffff00ffffff +00feffff00feffff00feffff00feffff00ffffff00feffff00feffff00feffff +00fefefe00fdfdfd00fcfcfc00f9f7f600f4ede600eadcd400dbc8bd00c7b2a6 +00ab9992009185790078716300626550004e5b3d003b553600314b2e002d452d +0035492f00455230005c6a380074773f008c814700a1864f00b3875100c59456 +00d2a05d00ddad6600e3b66d00e3b87100e4ba7200e4b97300e5b97400e6ba76 +00e9bc7400eabd7100eebd6a00eebc6600edbb6600eeba6600e8b46600e2ab5c +00d49b5300c38a4900b57b4500a56c430096603f008550360073402d00613327 +00512c280043292f00362733002e26340027202f00201e2b00231d2b00211a2b +001d1c2b001816260011162400141c25001e212400282b2a0036342d00434139 +00555547006a674f007e79590095835e00aa8d6100a6865c00a38155009f8051 +"/> +<palette number="392" name="040221-35" data="00baa0b600be85a600bd799e00bc6e9700c2689700c9639800ca669900cc699b +00ca85a900d094b400d6a4c000d2aec200cfb9c400c8c1c400c1cac400c3cdc7 +00c6d1cb00c6cecb00bfc6c300b9bebc00bbbdbe00bdbdc000c1bbc200c5bac5 +00d3c5d100d9cdd800e0d6e000e0d4df00e0d2de00dcd0da00d9cfd700cecbcf +00c2c6c600a5a8a800969c9a0087908c00808b86007a8780007a867f007a867f +00818989007f8f8f007d9696007893980074909b00708b99006c869700607690 +005466830046476d0044396300432c5a0045225000481946004b1b46004e1d47 +0060375600664361006c506c00695e7500666c7f0064708100637483005e7483 +00556f80004f5c7300564e69005d4060005d395b005e3257005a285000582850 +005d385e005e3c600060406200584a600050545f004b5b6300466268003e6971 +003a6c7500386b6e003b656f003e6070003f5a7100405573003f4975003b4171 +0032325c002f2852002d1e49002c1a46002c1743002c1244002a0f42002c1243 +00311a4c004b3166005b3877006c3f890072459000784b9700835b9e00896ca3 +009882af009b86b0009e8bb2009c8ab0009b89af009a80a8009a7aa2009a739b +009c6a9300934c8900904687008d4086008b3785008b3683008b3d8100873e7f +0080437f00814982008350850083548500845885008362830080657e007f657a +007c5d73006e46650068405e00623a580056334e00472940003d1d370036132f +0038062400380c2500391327003a192b003c2030003f2a36004d3744005d3e51 +00674c6000756b760078737b007b7b8100828488008a8a8f0090919600949499 +00999b9f009a9c9f009b9da0009a9da200989ca100939aa0008c98a1008695a0 +0081939f00818d9900818a970082889600867e9500877493008a6589008e557e +0096416e0097416f00994271009b417200963c6c008d3162007a2e59006c3353 +00603f520053494e004a46440039413b002d3e3200284031002c4b3800395540 +00596f5e0065786900718275008a989000a2aaa700b4b8b800bdbfc000c2c4c8 +00c0c6cc00b9c5cc00acbec90099b1bf0088a3b6007698ae006890a8005e8ca5 +00548aa3005187a2005188a4005189a5005187a5004e839f004b7497004b648f +004c5788004b4c8500474d8000444b7e00444880004e4c83005e528c006d6594 +007a7a9d00888eae0099a7bd00afbacd00c3cada00ced8dd00d1d9dc00cbd7d4 +00c0cdc800b2b9b8009da7a700848e91006b7677005462630043464f00393249 +0035254b0039204d00432754004c315800513a630056477100585180005b5c8b +0058639100516891004d6f91004a7190004d778e00527691005a7b940065849c +00778ea3008ba0ac009dacb500a9b3b900adb5ba00adb2b600aeafb600b3aab8 +"/> +<palette number="393" name="040221-36" data="0008040b0009040d0009040e000a050f000b0612000c0715000e081800100a1b +001d172f00251c37002d21400030234200342545003424440034244400332444 +00332444003126470031254600322445002f213f002c1f3900291c3300261a2e +00170d1a001009140009050f0008050f0008050f000a0711000d09140014101d +001d17270032293f003c304900463853004d3e5a0055446200574765005a4a69 +00604f70005f4f71005f4f72005c4c6d005a49690057466500544361004c3e57 +0043374c002f273500241e2a001a162000120f18000b08100008060d0006040a +0002000400010003000000020000000200000002000000020000000200000002 +0000000200000002000000020000000200000002000000030000000300010004 +0004020b00080512000c091a00141025001d183000221c350028213b00322946 +003a304c004539570046395900473a5b0047395c0047395d00493a5c004a3a5c +00493957004636500043334900403046003d2e430036293e0033243b0032233c +0031233e00372849003d2c4e0044305400473257004b355a0055395f005d4069 +006a4e7e006e53870072599100735a9300745c9600735c9800735a9500725891 +006f548b00634a7c005e4778005a45750051406f00473969003e336100362d59 +002e2449002f22440030203f0032213e0035223e003d263e00442a40004b3045 +0053374b006446570069495a006e4c5e0079546600855c6f00906476009a6c7f +00a5779100a3789500a17a99009f799a009e799b009c789d0098749b00947097 +008e6992007b5d8700745883006e547f00624c770058446f004d3e660046375d +003929490036264400332440002d1f3900291c33002a1b2f002f1e2f00352332 +003c253400462937004629380047293900452838004327370042263600442837 +00472a37004729360047293500442632003b212c003019240023111c00180b14 +0010060e00090309000501060003000500020004000200040001000400010004 +0001000300010003000100030001000200010002000100020001000300010003 +000100050001000600020008000300090004010a0005010b0006010c0007010c +0007010c0007010d0007010e0008010f0008010f00080110000801100008010f +0008010e0008010d0007020d0007020d00090411000b0616000f0c1f0017122a +00211a35002c233f00372c4900423451004d3e590057456100604d6b006a5675 +00755e82007f678d008970970093769d009b7da100a280a200a683a100a9859f +00aa849e00a8829f00a3809f009d7b9d00957698008c6e910081668700775d7b +006e556f00644d63005b455b00513d530046354b003b2d430030253c00281f35 +0020192b0018122100130d19000f0913000c070f000a050c000601090008030b +"/> +<palette number="394" name="040221-37" data="00805c3900765333006c4c2e006245290051382400402b20003b272000372320 +002d2020002a2020002820200027202000272020002620200025202000252020 +0026202000272020002820200029202000292020002920200028202000282020 +0026202000232020002120200020202000202020002020200020202000202020 +0020202000202020002120200023202000272020002c2020002f212000322221 +003f2c290048332b00523a2e005b41300065493200694c33006d503500715238 +0073533900715238006e4f36006b4c340067493300634732005f4530005c432f +004d3a29004836270044322500422f2300412d2200422d2200432d2300442e23 +00462f25005037290054392b00593b2d005b3c2d005e3e2e00623f3100644032 +006a4532006e483200734b3200775034007c5537007c5639007d573b007f593e +007f5c40007f5d41007c5c3f007a5c3e00775a3e0075593e006e553d00634f3d +0051403a00473935003e323100392e2d00352b29002d25230023202000202020 +0020202000202020002020200020202000202020002020200020202000202020 +0020202000202020002020200020202000202020002220200025202000272020 +002b2020002f2020003021200032222000372520003b292200443227004f392e +00654c3f0072584a008065550084695800896e5c008e756400947a6b00987d6e +00997d6f009a8073009a7f71009a7f7000957a6d008f756900876e62007d6458 +006850440060473b00593f3200563c2e00533a2b004f3527004d3425004d3523 +004c3522004732200045302000442f2000412d20003f2c20003f2e2000403120 +00493726004a3827004c3a2800503e2c00524031005644350059473a005e4c40 +00624f46006b584f006d584f006f5950007059500073595000735b4f00705750 +006952510067505100654f5100675052006d5556007a615d00896f6800997f70 +00a4887600ac8e7c00af917d00af917f00b1938300b3978c00bca09300bda091 +00b5978200ad8f7900a587710092755f007c6353006d574d005d4a450056413f +004f3b35004a352d0047332500493421004b372000503a2200573f27005c442c +0062473100674c37006e533d00765b4100816243008c6a470097714b00a17a51 +00a9825800b0896200b58f6800bb946b00bd996e00bd986d00bd976d00bc956d +00b9946e00b5916e00b18d6d00ab896b00a0806800977662008c6d5c00826457 +007a5c500073554a006d4f4500674740005f413d00593d390055393700523835 +005238340052393400523a3300533b3700553e3a0056413d0058443e005c453b +005e493b00614a3900624b3700654c3700695038006e533a0075573b007c5d3e +008b6745008f6a45008d6741008b633f0085613e00825e3d00795735007d5b39 +"/> +<palette number="395" name="040221-38" data="00c5551600bf501400c04f1300c14e1200c5501300c9531400ca541600cc5619 +00cc642900d06f3400d57b4000db874e00e1945c00e6a26a00ecb17800eeb67d +00f1bb8300f6ca9100f5cb9200f5cc9400edc89100e6c48f00e1bf8c00ddbb89 +00cca77500c49e6d00bd966500b18d5f00a6845900a07f56009b7b530091734d +00896d4a0082684600806443007e6140007c5b3a007b5635007a5332007a5130 +00754d2d00744c2c00734c2b0076492700794623007b4521007d451f007e431e +007b421e006f4322006b412100683f2000663d1e00653b1c00633a1c00623a1d +00563a2100513a23004c3b26004e3c2600513e2700533f2700554028005a4228 +005f4428006b46280071472700784827007a4926007d4a2600834b2400874b23 +00914b2100944c2200984e23009b5024009f532500a0542500a1552600a45625 +00a4552500a15425009e5224009c5023009b4e21009a4d200098491d0096461b +009541160096421600984317009a4619009c491c00a1512300a55b2d00aa6335 +00ad683a00b6703e00b8734000bb774200bc784300bd7a4500bb7b4800b97947 +00b7774400ba794600bd7c4900bf804d00c2845200c78a5900c9905f00ca9565 +00c8956500c4916300c38f6100c38e6000bd885c00b3825800a6785000966a45 +007a502f006f482900644024005f3e23005b3d2300533b24004c3924004d3822 +0053361e0062351800673517006c361600733816007e3a15008c3c1200973d10 +00a73c0800aa3c0700ad3c0700b03e0700b3400700ba430900bd470b00c14c0e +00c24f1100c5541600c7551700c9571800cc571900cd581a00cb591a00c9581a +00c0541a00bd511900bb4f1800b34a1700aa471700a34819009c4a1d00974e24 +0096542a00965e360097613a0098653e00996c45009b734b00a17b5300a78359 +00bc956400c1996600c69d6800cea26a00d5a96d00daae6f00ddb27500e1b879 +00e6bd7c00e7bc7c00e5ba7900e2b47200dbab6c00d4a36800cc9e6600c59664 +00b4875900b1825400ae7e4f00ac734400ac6c3b00b0683400b1673300b16834 +00af6c3700b26f3a00b7733d00c0794000c87f4400cd824900cb844b00c7834c +00c4814c00c27f4a00c37f4900c47c4600c2774300be713e00ba6a3800b46331 +00ae602e00a85e2d00a35e2f00a05e31009e5f33009f5f33009e5e32009f5e31 +009e5c30009c5a2f009b592e009d5a2e009c5a2d009c592c009c582b0098572c +0093562d008e57300087583400825a37007d5c3a007a5d3d00775d3d00785e3e +007b5d3c00825e3a008b613900956537009e683700a56f3c00ac764200b57e4a +00be875100c98e5400d18f5400d38f5100d28c4f00cf894d00cb854e00ca854d +00cb814a00c97b4300c5733b00c26a3000c0612700c15c1f00c4591a00c65616 +"/> +<palette number="396" name="040221-39" data="002c29260027273000242d3b0021334700253b5700294468002c4a70002f5178 +0034669a002e68a500296ab0002163af00195daf001856a40018509900194d92 +001b4b8c0028467c002c427200313f6900393d5e00413b5300463c4e004c3e4a +006d534f008163580095736100a4866f00b4997e00b9a18500beaa8c00c7ba99 +00d1c7a800e5dbb800eae1bc00f0e7c000efe6bd00efe6ba00eee4b700eee3b4 +00e8d9a100dfcd9800d6c18f00c7b18400b9a27a00b1997300aa916d009d815f +0096744e008e633700926436009665360096684000976c4a00996e4d009c7150 +009e7f6000a0876900a38f7200a5987e00a8a28b00aaa69000acaa9600acb1a4 +00adb6aa00a6b3ae009da9a700959fa1008e989a00889194007f848a007c797b +00756b62006d655900665f50005c584900535243004f4f44004b4d46003f4a4f +003b4c5900335e740033677a003371810035758200387a8400387e8b003c828d +003e8a9700418e990045929c004b949800519695005d9992006a9b8b00719881 +007a997c00879a8000909c8300999e87009fa18900a5a48c00aea78e00b8ab8f +00bcab8d00b3a28600ab998000a4927c009e8b79008c7b730081716f007b6a69 +007b6b69007e6d68007f6e6800816f69007e6c6b007a6b7200766c750078767d +0090948c00a1a59400b3b69d00b9bba100bfc0a500c3c3aa00bdc9b000b5ccb1 +00aeceaf00a3c7a500a3c3a100a3c09e00a6b59700a3ac9200999f89008c947f +006d72630063605300594f440057483e00554239005236310051302c00502b2a +004d28270045212300412123003e22230037252a00342b350034303f00363a49 +00484b5b004d515e00535761005e65690067727400747c7b00808980008a9183 +009b968300b1997300b2987000b3976e00bd9a6900cb9e5f00d39f5500d99c4d +00e99a3300e1913000da882d00c87c2900b76f2300a2651d008e5c1c00875e1b +00856317007b5c170069551b0058491c00453e1a0033331a00222c1d00192b20 +0020332b0024352e0029383200353d380043403c004e453f00574a450064524b +00725d5500806a61008f7b70009f8a7e00ab9b8b00afaa9900aeb6a600adbfae +00aec6b400afcfbb00b6d5c100bfdbc600c7e2cc00c6e7d700c1ebdc00b7ebe1 +00abeae300a0e3e4009edfe5009edde30099dbe70091d8e90084cceb0073bfe2 +005da7d2004c92c3003f7fb00035709c002d658a0027597f00214d72001a3c5f +00152b4e00171c3d001d132c00251120002d151c00371b1e003e212100442726 +00482f2f004c39380056434100624f4c00715e58008070670092807500a09084 +00a69f9000aea99700b3ae9d00b4ae9c00b2ac9900aea79300aa9f8d00a09685 +00948c7b008680700076706300675e5200554f4400454138003a353000332d29 +"/> +<palette number="397" name="040221-40" data="006f362b005d2d25005f31270062352a00673c36006c44420067454500624649 +00504e56004b4e5700464e580034465200233e4d00183243000e263a000e2034 +000f1b2f0014121800180e13001c0b0f001f070f002203100023051200250814 +002d212f00352e41003e3b54004245600047506c0046547100465977004c5b7b +004f5b7a00514b5e00463e4f003b314000302331002615220022111e001e0e1a +00110e1a000c0c1900080b1900050c1900030d1a00030d1a00030e1a00060e18 +000b0c130017080a001c08080022080600280906002e0b0600310b0600350c07 +00410f0c0046120f004c15120051171500561a1800571a1a00591a1c005e1721 +00631e2c0073334700773a52007c425e007945620076496700694c7000605277 +00565e7f004a5774003e516a0033445900293848002935420029323d00282c36 +002a2429003215130036130f003a110c003b110c003d120d0040150f00441b15 +0064362a00784133008c4d3c008e4f3d0091513f009b544100a0553f00a8553e +00b6533b00b7533c00a64c3c0096463d00903e39008a3636007f292c007c2729 +00662a310055202b00441626003d101e00370a16002f040b0026040500210503 +001e05050023040a0026050a002a070a00310a0b00370a0c003e080d0046080f +0063121200761a15008923190091291d0099302200a03b2d00a8473600b24d39 +00b3513700a0503900954e39008b4c39007842360063352d00492a2300351c1a +0020090d0021070b0022050a0023050a0025060a00280608002c060600300605 +003306040032060400300603002e060300280503002104010019040100140201 +000b01000009010000080101000602020005050900060b130007121d00071525 +00081525000613210006142200061524000516260005142300030f1a0002080e +0007010200090001000c00010012000000180100001e01000022010000240000 +0027010000280100002a0100002b0100002c0000002e0000002e000000300101 +0037040200390503003b070400400c0800441615004d24270056343b0066474d +007a555500896560009f746f00aa878900b89ca300c8acb300d2b9bc00e1bdbd +00e4c1c400e0c2ca00d9bfca00cfbbc400c2a9ae00b49a9a00a4858600916f6f +0085615c00734a4200623a2c0051312000422b1f0040322d00423b3e0049444d +004f525a0056606b00626e7d006e8094007e8faa0088a0bd0095aeca00a2b7d3 +00abc1db00bbc7dd00bfcde500c6d3e800cdd5ea00cdd7ec00cdd5e700c5cee3 +00bac6d900adbace009eaac0008d99b0007d849e006e708900625e7500554e60 +004d3e4c004a2e3900492028004e161b004f1413005114100053150e005b170c +00691d1000742616007a312100753327006e2f24006d3024006e2e2000713526 +"/> +<palette number="398" name="040221-41" data="001a5264001a44590016405400133c50000f3a4a000c3944000a39410009393e +001043420012403d00143e38001339310012342b00103227000f3124000f3123 +000f31230011312500102c220010281f000e201b000c1917000b1715000a1613 +000b19130011211a00182a22001e332b00253d34002640390027433f00294849 +00274c52002454640025596c00275e74002761790028647f0027648100276584 +001f5d7f0017537800104a72000b40660007375a0006335400052f4f00032947 +0003243d0004202f00041e2800041d2200041e1d00051f180004201700042216 +00032a1600052f1c00083422000b3b2c000e42360010463d00124b440018554f +00206159002e796900357e6f003c8375003e84780041857b0042838200428189 +00418098003f7f9a003d7f9c003c7e9b003c7e9b00397c9b00377a9b0030749a +00296e98001a5e8a00135480000c4a76000a47720009446e0007406a00063d67 +00043c6b00033c6a00023d6a00023c6800023b660001365d0001325400002c4a +000029450001254300012544000125450001244400012343000123410001213e +0002213d00072540000c294300102d460014314a001d395000254256002c4b5b +002f525f00305b67002f5b68002f5b69002e5a6b002f5969003057640033545e +003049480029403d00233832001f322d001b2d2900132321000c1b1d0008151c +0003111d00011123000112230001132400011225000111230001112200021021 +00021122000212230003132400021223000212220002101f0002111d0002111d +0002142000041c2e00051f330006233800082a42000c304b000f385000144054 +001a4d5e001a4f60001b5163001b5165001b5065001b4d640018475d00194355 +001b3f4b0019373800183535001734330016332f0018333100193534001d3a39 +002d494500314c4800354f4b003a5650003c5b53003c5e55003b5e5500395c55 +003a5e55003b5f55003c5b52003d574e003a50480034493f002c40350021372c +000f3020000b301f0008311e0005321e00063823000b422b00124b320018543a +001e5d430022654a00276f53002d785d00307f6800378975003d8e8000459289 +004a9593004d9398004f929d005090a0004f8ca2004f8aa6005089aa00538baf +00578fb6005a92b9005c95ba005e96b9005d96b6005894b4005490b2004f8db1 +004b89b1004785ad004380a70040799d003d70900037688200305e75002a5469 +00234b64001b45620014426600104068000f3f6a00103f6a00113f6900134067 +00184268001c466b001f4c750022548100245c8e00266399002768a300256ba5 +00256ba000236a980021698f002069880020698100216b7d00236c8100256d85 +00276e850024677b001f6173001a5c6d001858670015565f0014535c0015505c +"/> +<palette number="399" name="040221-42" data="0093a0b500a6abba00aaadbb00aeb0bc00aeafba00aeaeb900aeabb600aea8b3 +009f9da9009097a7008191a600738aa5006584a400577ea2004a79a0004376a0 +003d74a100316ca400306ca500306ca600366fa6003c73a7004377a9004b7bac +006d8fb9007b9bc1008aa8c9009cb4ce00afc1d400b8c5d500c1c9d600c5ccd5 +00c5cbd200bfc1c800b4b8be00aaafb50099a3ad008897a5007f91a300778ba1 +00597492004e6b8900446280003c5b7c003454790032517600304e74002e4b6d +002f4867003e526c00475971005161770055657b005a6a80005a6b81005b6d82 +0057687e004f627b00475c78003c557400314f71002d4c7000294a6f00244871 +00214877001f4a7f001f497d0020497c0020497c00214a7d00244c7f00254d7f +00274d7c00274e7e00274f80002a5385002e588a00305b8e00335e930035639c +003767a4003567a8003567a8003567a9003567a9003567aa003567ab003568aa +003769a700406da7004a72a7005177a800587caa006987af007691b5008298b7 +008f9fb900a1a9b900a0a6b3009fa4ae009b9fa900989aa4008c909c00808695 +006d788700667181005f6b7b005c6a7c005a697d0056698200516a8a00496d90 +00416d910032648c002f6089002c5c870026578500205684001d5988001d598a +0027558600325a85003e5f8500456286004d668800526a8b00546a8c00536989 +00546884005c6579005b6478005a6378005663790053647d0056657d005c687f +00677184006e768700757c8b00787e8c007c808d0083858f00898b94008d8e99 +008f939c009699a300989ca5009a9fa8009fa3ae00a4a8b300a8adb700adb0b9 +00afb3bd00aeb3bc00aeb3bb00acb1b900adb1b500aeb1b500afb0b600afb2b5 +00afb4b700bcc1c300c0c4c700c4c8cc00c9cfd500cbd2db00cad3dd00c8d1dc +00b6c3d300aebccf00a7b6cb0091a3c1007b90b400667da500526e980045658e +003b5e8d00315a8e002c56900028559100275791002b5c95002f629a0033669f +003968a2003c69a100406ba1004970a4005578a6006182ad006e8cb6007d97bb +008da1c1009dabc400abb4c600b4bacd00bbbfce00bfbfcd00bebcc800b8b6be +00afaeb6009fa2b0009094a7007e849f006c7896005e729100506d9100456992 +003d6190003756870033527c00325176003553770038567a003d557900405575 +00445570004b576f004f5c72005560770059667c005e6c8100667283006d7786 +00747b880079808b007d859000818a9300868e9700888f9800878f9800818c98 +00778697006d7f920061758a00556a81004b6078003f5771003a4e6900384963 +003446600036466300354a6b00374e74003f547b0041598000445e8800436291 +00436698004a6c9d005172a0005b79a4006781a6007188aa007c90ac008899b0 +"/> +<palette number="400" name="040221-43" data="00354b4c003a5052003950500039514f00354e4d00324b4c00304a4c002e494d +002947500027434d0025404a00233c46002238420023353e0025333a00263339 +00283338003036390033383a00373b3c00383b3b00393b3b00393b3b00393b3b +003c3c380042403b0048443e004f494300564f4800585049005a514b005b524c +0059504a00584c4500594c43005b4c42005c4b41005d4a40005c493f005b483e +00543f38004e3b34004838310046393100443a3200423b3300413c34003f3d39 +003d3e3b00393c3c00383b3a00383b3800373a3700373a3600363a3600363a36 +00313533002e3131002b2e2f002a2b2c0029292a002a292a002b2a2a002c2b2b +002f2f2e002f3c40002f444a00304c54003150590032545f0037606c003d6873 +004871790049747c004a77800049798300487b8600477a850047798500487581 +004871780047656600465d5a0046554f0046524b00464f47004447410042433b +00413c3000453b2d00493b2b004b3c2c004e3e2d0052402f0053423400524338 +004e443b0048433c0045423e004242400041424100404343003d434700394349 +00303f4800293a430023363f0020333c001e303900192a350017283300172833 +001b2a350025373c00283a3e002b3d41003044460034484900384c4b003f4e4c +0053564e005c5b500066615300696253006c6354007067560072695700766b56 +007b6b57008e755d0090775f00937a6200987f680099826e0098857000948674 +009d8f7e009f918000a1948300a1928100a1917f009d8b770094826e008c7966 +00857260007a6a5b0078695a0077685900726353006c5b4b00655545005c4f40 +004d4840004a47410047464300424546003d42460039404500353d420032393f +002f363b002a333800293238002831390027313a0027313b0028343c002a373d +002e3e41002e3f42002f4043002e4144002c3f4500293f4500283f4500273f46 +00273f4500284044002b4042002c3e3f002d3a3a002d3634002f332f0030312b +003631290037312900393229003c332a0040362b0044382c0046392c00483b2e +00493c2e004a3b2e00483b3100463d3400443f390042423e0042464500444d4d +00495452004f5b580055615e005a6562005a6865005967670058676800566768 +0056686700586865005a67630058655e00535f5a004d5a5600475554003f5252 +00394f5100344c5000304b4d002d474b00284349002741490025414800244047 +00223e4800213e4600213b410020363a0021303300232c2c0027282500292521 +002b2520002e271f002e271f0030271f0032281f0034271c0036251900352318 +00352218003322190030221b002c231e00282321002524210021222200202224 +002124260027292a002b2e2e002e32320030393600323e3b0032414100324545 +"/> +<palette number="401" name="040221-44" data="0038200f00512811005b291400652b1700682a17006c2a170069281400662711 +00561c0d00511a0c004d180b004b180a00491909004e1a0900531c0900571d09 +005b1e0a00661f0d00661c0b00671a090064160700621206005e1005005a0f05 +00440c05003e0d0700390e0a0037110e003615130036171300371a14003d1e19 +00482519006836270073402c007f4a3100894c2f00934f2e00964c2b009a4a29 +00984b29008d4527008240260074331d00672715005f221200581e0f004c160c +0045160d00361e0b002d1d0900241c0700211b06001f1b05001f1c0500201d06 +001b1a05001a140400190e0400200d0400280d0500300e0500380f0600481605 +00591f07007b2e14008f3e2200a34f3000ad5b3b00b8684700c4825600d4915e +00d7915600d2905d00ce906500c2825700b7744900b06b3d00a9633100994d22 +008e3e1e008b2f1a008e3a250092453000974f38009c5a4000ab6a4d00b77450 +00c8795500c77b5700c67e5a00c27a5400bf764e00bc6c4100b7583400b24a26 +00ac4120009c3713009c3511009c3410009c330f009c330e009f340d0099340b +008d300600882b040084260200812301007e200100791d0100741b01006f1a01 +006b1901005d1603005915030056150400501507004a13070047110800431009 +0043100a00481009004e1009005211090056120a005f160900691a0a00721f0d +007c210e0085230e0083220d0082220c007e230c0077210d0070200c00691e0b +005a18030056160200531402005213030051130500520f0500510d0400500c05 +004f0c04004c0706004b0505004a040400430203003a04030030050300270403 +001c020100190200001702000013030100110401001103010013040100160400 +00170601001808030018080300190904001a09040019090400150a0400120a04 +000c0a04000b0904000b0904000a09040009090300090a03000a0c06000d110c +000d191100152116001f271a002e2c1d00433022004f38270062442c0071502d +00965926009b582400a0582300aa592400af5e2100ac622100ab601f00a45a19 +009d4e1a00974519008c401700843918007b3519006e2a1f006220200053171c +0044101700390f11002e0e1400240c13001b09120012050d000e0407000c0706 +000f090900150d0b00200f0d00311011004313150053171b00601c1f0069221e +0073241e007f241d0084231a00822218007b2113006e201000631c0d0055170a +0046110600390d03002d090200230702001a050200120402000b030100060200 +0004020000030100000201000002010000010000000000010000000000010000 +0001000000030001000400010005000100050001000500000005010100060100 +000602000005020000050300000505010008070100110b02001c1108002a180b +"/> +<palette number="402" name="040221-45" data="004e616c004a575a003d4a4c00303d3f003443460039494d004051550047595e +005c7881005f8594006292a7005f97af005d9db700559eb6004ea0b600479db4 +00419bb2002c90ac002a8da600298aa1002980970029768e00276f8800266882 +0023496a00243d5d0025315000202648001c1b410018173f0014133d000f0e35 +000d0a30000c0b31000b0f36000b143b000d1b3e001023420013284500162e49 +001e43630021496800244f6d00224e6a00214e6700204b65001f4864001c425b +00183953000b2a42000925400008203f00091e3a000a1c3500081b3300071b31 +000b1e35000e1e3100111e2d00121d2a00131d280013202b0013242f00152d3a +0015374500194e63001c5d7600206c8a0024739100287a99003388a8004193b0 +0056a1bc005fa1bd0069a2be006ea0bb00749fb800719db6006f9bb5006694b1 +005a8ead004286a5003784a1002c829e0027819f002281a0001c83a2001887a4 +001c8aaa00238bab002a8cad002e8dae00328eaf003794b2003b99bb00419dbf +00499cbf005a95b8005b98b8005c9cb8005c9db6005c9fb4005a9caf005a91a4 +0053778b00496d79003f646700385f6300325b5f002e4f5b002a465e0025445e +0020435e0015506b001654720017597a0018648800196e940017789c00167f9f +00187d9c0018789900197397001a7195001b6f94001d6992001e6790001f6890 +001e6b93001f71980020719700217297002375950023768f0023768b001d7387 +00166a810017677e0019647b0018647b0017657c0012647d000d6884000b6c88 +000b708d000d7294000e7093000f6f920012688d0016638700195f82001d5e82 +002e5d8200325e8200366083003c6383003f6a87003e708c003f759200417c95 +0048849a005890a5005b92a9005e94ae006597b200719eb7007aa2bc0084a4bf +0088a4bf0087a2bd0086a0bb007f98b200768ead006b87a7006380a0005e7d9e +005c79980057749400527392004f6e8f004a6c8c004765850042587800394e67 +0027364800223040001d2b3900151c2a000d0f1f0009071d00090922000a102c +000f19350014244100182d53001b3d66001d4c7a001e5b880023678f00296f96 +0030779c003880a300418aa9004a91ae005599b300629db9006fa3be007daac2 +008bb0c60095b9cb009dbccf00a3c2d500a6c5d800aacadc00aacfe000aacee0 +00add0e100adcddf00adccdd00a9cbdd00a0c6d90099c0d2008fb3c30082a1b0 +00748e9a006579840058676f004c5659003b4347002a3438001c273100192332 +001a253500202b3e00283549002b42590033516e003c5d7e00486b8d00577898 +006384a0006d91ab007598b1007a9eb6007ca2b7007ea3b7007ca5b9007ba7bd +007da9c20080acc40082afc50086b3c80087b5c900749db30065879c00566f81 +"/> +<palette number="403" name="040221-46" data="004c51530055595f005c616a00646976006e728100787c8c007c809200818599 +00888ca5008589a3008387a1007d819d00777c990070718d006967820064627b +00605d75004f5069005250610055515900585256005c5454005c5656005d5858 +006d655d00736a60007a7063007c7265007f7467007f74680080756a00807770 +007e78770078777e0074757f00707481006a708200646c8400606884005d6584 +004f57820048507f00414a7c003a437800333c7400313a72003038710030386f +0031387000323b7000353e7300394277003d477b00424c8000444e8100465182 +00575d850065648800736c8b007b718900847687008576830086767f0087737c +00867078007c6776006c5e72005c556f00534f6c004b4969003b3f6300313660 +002631600026315f0027325f002b345e002f375e0030385e00323a5e00363f5e +0038415b003b4256003a4155003a4155003a4154003b42530038405200383f51 +0038405b003b4462003e4869003f486b0041496d00404b73003f4978003d477a +003a457c0037427a0035407700343e7400343e7300343e7200394071003f4672 +005b5977006c647d007d6f83008273860087778a008f818e00958791009b8d94 +00a0909500998e9d00968e9f00938ea2008a8eac00878fb100848db300808ab2 +007a86af007984a9007883a400767f9f00747c9b0077738f00756d8800776b82 +007e72820092879500978c9d009c92a500a39db000aea7b500b6b6b700c3bdb9 +00cbcbc800c9c7c500c7c4c200c5bebc00c3b9b600bdafb000b1a7ab00a39ba5 +009690a2007a7b930073768f006c718c006069860058608300525c8100505a81 +00576088005c648d006269920070769e008488aa00969bb500a9acc100bbbecc +00cbcbda00e7e5e700e9e7e700ece9e700e9e7df00dedbda00ccccd100bebdc5 +00a1a0a6009b999f00959398008988910082838e008083920080839100828591 +0086889400878a9b00898fa7008790b000828cb1007c86ae00737da8006e78a4 +006d75a1006f769e0071779c007778940080788d00897d8a0095838b009e888d +00a9909000b4959100c09c9600ccaa9d00d4b2a800dabeb600dfc9c100e4d0c9 +00eadfcf00f1e8d600f5f0e100f0f3ed00e9f0f300dce7ef00ccd8e400c1cad5 +00adb6c90099a5c000828fb3006a77a20059638a00495175003f4663003a4258 +00363e5400363d4f00363d4f00383e50003e445400424a590049505d004e5563 +0051586a00545970005359760053597a0054597c00585e7f005c6182005f6485 +005e638800575d8800535986004f5684004b528100464e7d003e477700363e72 +002f376f002c336d002a3170002a3370002d36710031397400363d75003b4277 +0041497600474e73004a506d004a4e64004a4d5e00494c5800484d55004a5055 +"/> +<palette number="404" name="040221-47" data="008d805d008272570075665100695b4c0059534a004a4b49004b4b4a004c4b4b +004e4e4c004d4b48004d48440049413d00463b37004438350043353300433532 +00443632004c3c3300553e32005f413100654131006c4231006b4331006b4431 +00624534005a43340052423500493e3400413b34003b38330035363300283133 +001a2c3200052833000227320000263200002532000024320000233100002331 +0000233100002331000023320000233200002432000024320000243300002433 +000025340001263500082a3700102f3900213a3f00324645003c4e490047564e +006b72590077795c0084815f008e825c00988459009e855a00a4875b00ab895b +00b18a5900af855400a67949009e6d3f0099653b00955e38008b52320082472d +00793e2900773d2700763c26006f3a260068392700633727005e362800553529 +004c342d003f322e0036302e002e2f2f00292e2f00242d3000182b2f000e2830 +0001233000002230000022300000213000002130000022300000223000002330 +0000243000012531000125310001253200012532000125330001263300012734 +0002293400032834000428350006273400082734000d273300142732001b2930 +00232c2d002f2f2c00322f2b0035302b003a332b0041362f004b3b31005b4534 +007e5f43008a69470097744c0099764e009b7950009778530090755300897551 +008372540079705500766f5400746f540069675200585c4d00474e4300353f3a +0019272c0017232700161f2300161e2200171e2200171d2200171b2100171821 +001417200016171d0016171c0017171c0016191f00141a2100111a25000b1a29 +00031b2f00021b2f00011c3000011c3000011b2e00021a2b0003192700041825 +0006182200051a2400041a2400041a250006192500071922000d191f00161b1b +0026211b0029221c002c241d00312520002f2724002c2726002b2826002a2827 +002b2928002c2a28002e2a28002b292b0024282d001c272f00132531000b2433 +0001223400012234000122340001223300012233000023330000233300002433 +0000253300002532000026320000273200002831000029310000293100002930 +0000293100002931000029310000293100002931000029310000293100002831 +0000283100002831000028310000283200002732000027320000273200002731 +0000273100002731000026300000263000002530000124310004222f0009222d +0010232b0019262a00242c2b0034382e004445340054503900645b3d0071613e +007b643f007e65410082684200836b44007f6e48007a714c0075704c006f6a49 +006862470062594400615440005f523f0062564200695e46006e654800776a4a +00806e4b00876e4800856b4500846a4400836c460082714a0081765100837d5b +"/> +<palette number="405" name="040221-48" data="0064465c0065475d006b4e640072556c00765970007a5e74007b6075007c6276 +007c6377007d6478007f6679007e677c007e697f00826e830087738700887689 +008a798b008b828900858184007f818000767977006d726e00686c6a00636766 +00574e540053434d004f3947004a344100462f3c00442d3900422b37003e2c36 +003c2c340032282d002b242600252120001d1b1a001616150014141300121312 +00161516001c1b1e002221260029262b00302b3000322d330035303600373135 +00373031002f2d2d002c2a2a00292827002a2828002b2829002f2b2d00332e31 +004f4547005b52520067605d006c656000726b6300706862006f656200695b5e +0060515600523e4b004f3b4a004d3849004f384b0052394d005a3e550061455f +006d556e006d576e006d596f00685769006456630060545d005c525800574e52 +00544c4e0055464b00594652005e475a0061495d00654c60006f546b00785f74 +0087718800917c90009c8899009e8a9d00a18ca100a691a600b09baf00b7a1b6 +00b49eb300b3a0b300ac9caa00a598a100a2959c00a0939800988c9200958a92 +009a8895009b8698009c859c009e859d00a0859e009d809d00987c950095798c +008f758500827277007c6f7200776c6e006b67660060635e00575b55004c534b +0038453900333e33002e382e002c352d002a322d00282d2c002d2d30003a333b +00453a4500634d60006a52670071576f007961790082677f00846780007e6378 +0073556400664b570059424a00553e4700513b45004936400042333c003e3139 +003f333c004a414a004d474e00514d52005e585d00676267006d6e6b0073756f +00716f6b006f6b66006d67610069625d00675c5b00675858006a595b006f6164 +0077697200877587008a778a008d7a8d009480950096869600978a9300988d90 +009293890091928700909185008f8d80008b8b8000888a800086847d00807b77 +00787972006f746b006a696300686762006667610068645f0069616300685f64 +005f555e005b515900574e55004e484b0049404400453b3e00403739003f3439 +0041313a0042323c0044323d0045313d0047323d0046323d0045323f00493442 +004e394700534250005c475b00665163006c5c690072626e0071656f006e636b +006c5c6600665461005f4c5d005d445a005c415a005d455b00634b5f006a5566 +00725f6c007a687400816d7d0086708100837080007e6b7e00776278006a586b +005d526100514a54004442470042444300404541004141410049454300504747 +0054424900594449005e464a0064474e00654f530068555b00705b640073636a +0077666e007c6872007c6d72007e6f70008071710081757200807870007e776f +007d776e007b726b00776b6900736467006d5c66006b526500644a5f005f4659 +"/> +<palette number="406" name="040221-49" data="0081795f006e654e0062594400564e3b004b433100403828003d3626003b3425 +00342a1d00312619002f2316003024160032261600392e1c0041362300463b27 +004c412c0061563e006d614700796d500081755600897d5c008c805d008f835f +00978660009a875d009e885b009f875900a1875700a0855400a08452009b7e4c +00937544007e603000745529006a4b2200644720005e431e005c421e005a411f +0054422300514024004e3e26004d3d25004c3d25004d3d25004e3e2500524026 +005a4729006d57340076603b00806a420089734b00927c5400968059009a845e +00ac977100b4a07a00bdaa8400c3b28d00c9ba9600cabc9800cbbe9b00cac09e +00c8bc9d00bfb08d00b8a78300b29f7900ad9a7300a9966e009d8a6300907c55 +0075603a0069532e005d47230056411e004f3b1a004c3919004937190046371b +0045371c00483d25004e432a0055493000584c32005b50350062573a006c5d3d +007c6a4400846f47008c754a008e774b0091794d00927c5000927d51008f7b50 +008c794f008a764c008c794f008f7c5200917f560093825a00988a63009b916d +00a1987500a2977200a4967000a4946d00a5936a00a6936700a6916600a58f64 +00a28c620098825900967e5500947b5100907649008e7346009073480093784d +009d845b00a48c6100ac946800b0986c00b59d7000bea67800c7b08200ceb88c +00d3bf9500ddc89800ddc89600ddc89400dbc58e00d7be8600d0b67f00c5ad79 +00b0986800a38c5e0096815400907a4e008a7449007d673d00705b350065512d +005d4829004d3d23004a3b220048392100453620004234200042342100443621 +004c3b22004d3c22004f3e22004f3e2100513e2000513d1f00513e2000544123 +005945260067542e006b572f00705a3100775f33007d6334008065360083683a +00897144008b7446008d774900917c4f00958053009782550096825700928059 +008f7f5b008b7e5c00887e5f0087806400888368008b866b008f8a6e00968f70 +009f967200a0967200a1977300a0977400a19773009f9572009f946f009e926c +009f9066009e8c60009c875b0099835500947d510091784b008b724600866c41 +0082683d007e653b007d6339007d643a0080683e00846c430088724a008d7953 +0092815c00978764009b8e6d00a4977600ab9f7d00b4a78300beb08800c5b68c +00cab98c00cab78800cab48300c6ae7c00c1a77300bda06d00b89d6900b59967 +00b1966400ae936100aa905e00a68a5900a28555009d815100997d5100957a4f +008f754b00887149008069430077623d006d583500644f2f005c492b00574425 +0053412200513f2100513f23005041270050452c00544a35005b533e00655d46 +00726a50007f755900857d5e008a8162008c8465008b83670088806400847d62 +"/> +<palette number="407" name="040221-50" data="0064353300683a38006638350065373300613330005d2f2d005c2e2d005c2d2d +006331300063303000632f3100632e3000642d30005f2b2d005b292b0058272a +0055252a00502428005125290052272a00582b2e005f30320064343500693839 +007d4344008045450083474700814446007f4246007c3f4400793d43006e393d +00673637005a2c3200582c3000572c2e00562a2c0055292b0054282a0054272a +0052242700522528005326290059282b005f2b2d00642d2f0069303200743939 +0080454300995a5a00a2606300ac676d00a9686f00a76a7200a4687100a26770 +008c545a007e4a4e007040430064373700592f2c00542c2900502926004a2522 +0046212000421d1e00411d1d00401d1c00401d1c00411e1d00411e1d00421f1d +0044201e0044201e0044211e0043211e0043211f0042211f0042221f0043221f +0042221f0043221f0042211f0042211f0042211e0043211e0043201e0044201e +00482322004e262500552a2800592c2b005e2f2e00663335006c383b00733c3e +007c4143008a4c50008f51530095565700995b5a009e605e00a86a6900b1716e +00b16f6c00ae6d6b00ac6b6b00a8666800a46165009d595c0096525700914e54 +008d4b54009150590092535a0093575c00955b6000986162009a6364009a6262 +008b555200814d49007746410071403b006c3a3500602f2a00542924004a2620 +0044221c00401e1800401e1800411e190043201b0048211d004f252100572c29 +00713e3b008048450090524f0098585500a15f5c00b46f6a00c8837c00d28d88 +00dc919100ee939f00ec939f00ea93a000e78d9f00df7a9300db6e8c00ca667f +00a8506000a04c5a009949540086424900763a3a006c33310065322f00643231 +00653333006d3639006f37390071383a0071383c006c373b0067343800613132 +004f2727004a242400452222003e1e1c00391b1800361a160035191500351815 +0035181500361a1600391b17003c1e190040201c0044231f00482521004b2724 +005029270051292700522a2700522b2600502927004d2725004b262300472520 +0043221f003f1f1d003c1d1b00391c1900381a18003719170036181700361817 +003718170038191700391918003a1a19003b1b1a003d1c1b003f1e1c00401f1d +0042201f00432120004422210045212100462121004521200044201f00431e1f +00421c1d00401b1b003e1a19003c1a18003b1917003a19160039191600391a16 +00391b1600391c17003a1c18003b1d1a003d1e1c003f1f1d0041201e0044211f +00482221004b2323004c2425004d2425004e2524004f2526004f2527004d2429 +004c2429004b2529004d2529004f282b00552d30005b343600643c3d006a4142 +006e4746007148460073494700704444006a3f40006b4041006e4241006d3f3d +"/> +<palette number="408" name="040221-51" data="006a5e5700695c54006658500064554d005d4e460056483f0057494000584b41 +005b4e43005d4f43005f50440063524500675547006d5c4d0074645400786758 +007c6b5c00897a6b0090807100978778009c8d7f00a2948600a4968700a79889 +00a8998b00a4958800a09286009c8e8100988a7d0097887a0096877800938474 +009383710092836f009283700093847100938471009385720093847100938471 +0093836e0091826e0090826e008c7f6d00897c6c00877a6b0086796a00837564 +007f6f5e0077675500726352006e5f4f006d5e4e006c5e4e006b5d4d006b5d4d +006d5f4c006a5e4b00685d4a00655a4900625748006157470061574700645947 +00695c4a00796d580081756100897d6a008b806d008d837000918672008f8571 +008e836e008a806c00877e6b00837a6800807766007b736300776f60006d6658 +00645c4f0050493e004a423900453b350043393300413731003d332f003b302d +00382d2b00382c2b00382b2b00382b2b00382b2b00382a2b00382a2a00382b28 +00382b2800392c28003a2d29003c2e2a003d2e2a003e2f2b0040312b0042322d +0044342e0044342e0044342f0043342e0043342e0041322c003e2f29003c2c27 +003728230031211d0030211c002f211b002e1f19002a1e1800291c1600271a14 +00231610002417110025191300261a1400271c1600291f19002b201b002d211d +002d221e002f241f0030251f0031262000332a2300362c2600392e29003c302b +003f332d0041352e0044382f0046392f00483b30004b3e32004e4134004f4236 +004f4337004f4336004f4235004f4235004f4134004f4133004f4031004d3f2f +004b3d2c004a3c2c004a3c2c004a3b2c004a3b2d004a3b2d004a3b2d00493a2d +00483a2c0047382c0047382c0047382d0048392f004a3b31004c3d35004f4037 +00594a41005d4e450062534a006b5c530075655b007e6f650087776d008e7f75 +0094867a009c8e8000a3958800ab9d9000b2a49700b8aa9d00bbaea200bdafa5 +00bdafa300bdafa300bdb0a300beb0a400c3b6a900c8bbaf00ccbfb400cdc1b4 +00cdc1b500cec1b500c9bdb000cabdb000ccc1b400cdc1b500cbbfb200c8bcad +00c2b6a700b7aa9a00ab9d8c00a092820098897b008f80730086776b007d6e62 +00746659006b5d4f00625547005d4f4000594b3c0058493b00584a3b005a4b3d +005c4d3c005f503e0062544100665843006b5d460072644e007c6d5800857560 +008d7d690094847100998a78009e907d00a1938200a6998900ac9f9000b1a497 +00b6a99d00bbaea300beb2a600bfb2a700bfb3a700bfb3a800bfb3a700beb2a7 +00bcb0a500b7aca000b1a69a00ab9f9400a3988d009c918700988c8200958980 +00978b810094887f008b7e760081746b00776961006f60590065575000655951 +"/> +<palette number="409" name="040221-52" data="005e666700626b7900666f81006a7389006e789200737d9c00747f9f007681a3 +007884b0007380af006f7dae006877a7006272a1005c6c99005667920053658d +00516389004a5b760047576a0045535f0044505800434e5200434e5200444f53 +004d575d00535d65005a636d00626973006b707a006e737e0071768200797d8c +00808496008d90ab008f93b4009197bd009197c1009298c6009298c6009399c7 +00979dc700999ec7009ca0c7009ba0c7009aa0c700989fc700979ec800949cc9 +009299ca00919aca00919aca00919aca008f98c5008d96c0008a93bc008790b8 +007781a6006f799c00687293005f6a8b005763830054607e00515e79004c596e +0048556400414e5400404d5300404c5200404c5500414d580044515f004a5668 +0058637600606a7f00687288007079920078819d007c84a2008088a8008990b3 +009097bd009ea2c800a3a6cb00a9abce00aaaccf00acaed000b0b1d100b3b3d2 +00b6b5d400b4b3d300b2b2d300afb0d200adaed200a6a9ce009fa4c900979cc2 +008f95ba008089a8007a839f00757e9700727b92006f798e006a758700647083 +005c6a82005b6a83005b6b84005d6c85005f6e870066738a006e7a8d00768092 +007d8699008a92ac008c94b1008f96b600939bc00099a1c900a0a6ce00a5aad0 +00adafcf00adafcc00aeafc900abacc600a9aac400a4a6c0009ea1bd009b9ebb +00989cb900969ab900979bb800999db800989bb6009599b4009196b1008d93b0 +00898fae008b91b1008d93b4009095b6009498b8009a9dbb009ea0be00a1a3c2 +00a2a4c3009c9fc100999dbf00979bbe009297b9008c91b200858ba9007f86a0 +00747b8b00707786006c738200636b78005b646e00525b640049535900404b4e +00394443002f3a2f002d382b002c3728002b3623002a3521002a3520002b3621 +002d3925002e3926002f3a2800303c2e003340360039463f00404c4900495454 +00515c600059636b00606a7600656e810067738c006b7898006f7ca3007381ad +007988b9007a89b8007c8ab7007c89b2007885aa00727fa0006a79960062728e +005a6a850052637e004c5d750047586d00425263003e4e58003c4b4d003c4945 +003c483f003b483c003b463b003b473e003b4741003b4847003d4b4e00404e56 +0043515c00475662004b5966004e5d6a00505f6f00505f740051617d00516388 +00526591005266970051669c0050649b004f6497004c608e004a5d8600495b80 +00495b7b004a5b76004a5a72004a596d004958660046555c0043514f00414d44 +003f4b3b003e4a34003d4a30003f4a2e00404b2d00404c2c00404c2b00414c2a +00414d2900424e2800424e2800414e2700414d2800404d29003f4c2b003e4b2e +003d4a33003f4c3300424e3500485237004d563e00525a4600575f4f005c6358 +"/> +<palette number="410" name="040221-53" data="002c776f002f7a74002b8075002886770029887b002a8b7f002e8b8400338c8a +003a989e00419ea80049a4b30053a4ba005ea4c20062a6c50066a8c90067aacb +0069accd006fb4d80079b9d90084beda008fc7de009ad0e30096d3e70093d7eb +0090d5ea0095d3e7009ad1e4008dcee30080cce20078c6de0070c1da0063b5d1 +0061a9c8005499b4004b90a80043889c003c7e8e003575800033707900316b72 +002b5462002b5162002c4f630032556800395c6e003e5e7300436179004e6189 +0054629400586a9800596a97005b6a97005b6597005b61980057609700546097 +0046648a00415f86003d5a83003a588300375784003656810035567f002a5475 +00264f6c00254a6700264c6700284f680029546a002a5a6d002d657500327280 +004181950048889e004f90a8005496b1005a9cba005c9dbc005f9fbf0062a0c2 +0064a1c30064a1c300639fc100629ebf00619dbd00609cbc005c9ab8005999b5 +005192ab00498ca20042869a003d839500398190002f7b87002a767f00257278 +00226d73001f6c7100257178002b767f002f798400347c890040859600498ea3 +005e9fbd0063a4c40069aacc0069abcd006aadcf006baed1006aafd10068aecf +0064aaca00579fb900559cb5005399b2004e95ac004e8fab004e8bab005284ab +00527aa3004f749e004c6e99004b6b97004b6995004b66910048648a00456687 +003e6a85003b7686003c7988003e7c8b0044839400498fa1004f98ad00559fb7 +005ea5c1005fa5c30061a6c50061a6c40062a6c40061a5c30062a3c20061a3c2 +0061a2c20061a1c00061a0c00062a0c000619fbf00619ebd005d9bb9005996b2 +004a869a0046809300427a8c0038708000316774002b636e002a616b0029626b +002b657000357280003a768700407b8e004b889c005a8ead006391b8006b92be +006c8dad006d8ba8006e89a4006e8193006d798900686f8400616d7b005b727d +005b797c005b807e005e858a005f8996006091a800639bba0064a5c40067adc8 +0061abc2005ea8be005ca5bb00569cb5004f98ab004a93a200448f9b00408894 +003d829100387d8d00337b88002b7b850025787f00207479001f6d70001a6463 +00135f5a000c5b500004574a0003534400084b3e000e473a0013463700174536 +001c493800214a3b002b4d4100345049003c50510043565a00455e650048676f +004a6f7b004b7283004a758b00447791003a768e00337488002b6b7c0025606e +001c556400124758000b3d50000a344a000d314400122f4500182f49001d2f4d +0024355500273d5c00294762002c5168002d556b002e5a6c002c5e6c00255f6a +001e5f6500195d6000175c5e00165d5f00116060000e6263000a656300076763 +00086b66000c6f6b001073720015787800197a7e001f7c7c00247b7800297873 +"/> +<palette number="411" name="040221-54" data="00bb7d3600bf7b3100c1843400c38d3800c5933900c7993b00c79c3c00c7a03d +00c09c4400b69c4b00ad9d5300a29b5b0097996300848d650071816800657867 +00597067002f445d00263a58001e3053001f2e4f00202d4b00242d4800282e45 +003f3636004d3f34005c4832006b5a3a007b6c4300847347008d7a4b009f884d +00b28f4e00cb983900ce983600d1983400cd923300c98c3300c5853000c17f2d +00b7722000b06d1e00a9691c00975f1b0085551b007a4f1b006f4a1b005d431c +00503c1f003f331f003b321d0037311b00363119003631180037331a0039351d +004b452a006256340079673f008d794700a28c5000a6915500ab975a00afa065 +00b2a77400ae9b7700a38f6d00988464008e7d5f0084765a00706755005c5953 +0036324e0026244b00161648000f124d00080f52000710570006115d0006176d +000a1f79001426810016277d0018297a001729760017297300172a6b00162962 +0018214300151a3300121423000f101d000d0d17000807100004040d0004030f +000505150004072100030622000305230004052200060522000c082600160e28 +0030172900391c270042212500452425004827250050332a00553a2b005d4130 +0063453600694e48006852500068575800605e67005c6576005a688000596c8b +006572990064749d006476a1006275a2006074a3005c72a40059719f005e6f99 +00637090006b7485006d7585006f768500717a8700727e89007c868b008b9389 +00aaab9300a9af9b00a9b4a300a2b1a8009cafae008ca9b40082a2b6007896b6 +00738fb3005a70a3005269a0004a639d003d569300334a8a0035458100364475 +0047435b004c42520052424a005b433c00664330006f442700774e200080571f +008b5e1e00926a2b00936a3000956a350097713d0096784800957d5000908259 +007d8474007984780076847d00708485006c818600667b85005f778600587089 +00526e8c0055728f005c7b9300648496006d8ca0007291ac007496b3007a9db9 +008cb1b50091b5b20096bab0009bbbae0096b4a6008aa79d007f989200738b87 +00687f800060757d0050677f003e5880002e4780001e377b00122877000e2071 +000b1c6c00091966000c1a6000141c5700221f4c0033244100462f3a00563a37 +00604839006d553f0076624a007c665400836d6100837171007b728300737190 +0069729d005d6b9f00536497004a5b8e003e4f8200334073002e38660029315b +002a2f500031344a00383c4a003f424c00464a50004b525a004e5a6600536374 +00556e89005d7ba000678bb2007296c1007ca3cc0088aecd008db4cf0094b8d1 +0099bdd4009fbed600a1bfd600a8c2cd00b1c6c300bac7b200c3c7a400cdc696 +00cfbe8b00cdb07d00cbaa7200cda76700cb9f5c00ca9d5200c7984a00c28b40 +"/> +<palette number="412" name="040221-55" data="006f503600714e3300704d31006f4c30006b472c006742280069442a006b472c +006c4d31006a4e3300695036006b543a006e583f00705d420073634500776547 +007c684a00846d4b00876f4e008b7152008d775500907e5900947f5c00988160 +00a2886200a2846100a3816000a3866500a38b6b00a68e6f00a9917400ae9a7d +00b5a38300b6a17d00ab997400a1916b009484610088775800827052007d694d +00664f370057422b0048351f003a2915002c1d0c00251808001f130400160b02 +00100600000d0101000f02010011040100160601001b0802001e090200220a02 +002a0f05002c1205002f16060032180600351b0600381b05003b1c05003f1b05 +00441b0500481e0600492208004a270a004c2b0d004f30110057381900654123 +007f513500845537008a5a3900875b3900855c3900845c3800845d3800835d3b +00835b3a007f50340072452b00663b22005e351c00573017004a250f00411a07 +003d0e01003e0d00003f0c00003f0c00003f0c00003e0c00003c0c00003a0b00 +003a0b0100400d0300461205004d1808004f1c0b0052210f00582916005a2f1d +0055322600503125004c302400492f2400472f2500462f2500452f2600453026 +00412d270030201d002a1c1900251916001c131000160e0b00160c0800150b06 +0013090600110805000f0804000d0904000c0a04000e0b0400100c0400140e05 +001b0f06002e13060033170900391b0c004a2714005a3620006c4a32007e5e46 +00a1806300b08d6f00c09a7c00c39d8000c6a08400ccaa8f00cdb19d00ccb7a7 +00c5b8aa00c1b6a800bdb0a400baaba000b0a09400a28f8600947f78007f6c68 +0065524e00614d48005e48420058423900513a30004a3327003f291e00321e16 +0028140e001d0903001c0802001b0701001b0800001b0800001d090000200a00 +00291102002c13030030150400351a0600381f0a003b220c003b240f003a250f +003a270e003a270e003c270d003d280e003e290f003e2a12003b2b1600382d19 +00312b1b002f2919002e2818002b2415002a201200271d1100261d1100261c13 +00251d1400261d1500271d1400291d11002c1f10002f23110033271600382d1d +003f33260046392d004a3d30004d3e31004e3f30004d3f30004c3f2f004a3e30 +00493b300047372f0046312b00472a240046231c00461c140047170d004a1308 +004d11050051100500551103005a1203005f150300651c060069240d006b2b13 +006c3119006b382000683a260063392900603d2c005f443300624c3b006a5645 +0076655200827461008b7f6f0092877900948c7f00948e8200938c8200978d81 +009c8d7c009d8c78009e8a730098846d008d7a63007c6d5a00705f4f00675243 +005f4a380060453300593a27005736200056362000583822005d3a25005f412a +"/> +<palette number="413" name="040221-56" data="00000000000000000001010100020202000404040006060700080709000a090b +0019141800201a210028212a0035283400422f3f00483645004f3d4b00503e4d +00523f4f004d3d480041353d00362e32002c242800221a1e001c151900171114 +0009070a00060407000402050003020400020204000101030001010300010101 +00010101000000000002010100050203000a070800100d0e00151113001a1518 +00352f3400453b42005547500062505d00705a6a00765f6d007c657000846676 +0088677800896874007d636e00725e6900675461005c4a5a0056465700504355 +004a3a4b004c3b4e004f3c51005846580062505f006a556500725b6c00896b79 +009c7f8d00caadb900d6bac200e3c8cb00dfc5cd00dbc3cf00d3bcc200c4abae +0094809200887585007d6b7900746371006c5b6a00695766006653630060525c +00594d54004a3c47004136400038313a00362e3800352b370033273900332739 +0038283b0038283b0039283b00382738003826350034222d002d1e2a00261a24 +0022151b00150813001306100011040d0010040c000f050c0011090d00180e12 +002d20220038282b0043303400483339004d373e00553d490058414c005b4751 +00624e5a006f5c6d007361720077667700807182008a7989008f7c8e00938091 +009b8390009b8290009c829000a3848f00aa868f00b8969800bc9ea700c5a0a8 +00c9a4a000b1919300a68786009b7d7a00846660006f565600614b4a004d3a43 +0042374300413543004033440042334400443445004a3746004e3848004a3543 +0046323e0030262d002a212700241c220019151800100f11000a090b00060606 +0001010200000101000001010000000100010102000303030005050500090909 +000e0d0e0019151c001c171f0020192200251d2900271f2d00281e2c00281c2e +001e1522001c111f001a0d1d00140815000e050e000c02080008010400050103 +0004000100030101000101010001010100010101000101010002020200040304 +000b070a000d090c00100b0e001a0f130024171d002b1d260033212d003b2a38 +003f303c003e303c003a2e3c00372c380030283000272027001d182000161218 +000f0d100008080a000404050002020200010101000000000000000000000000 +0000000000000000000000000000000000000000000001010001020200040305 +0008080a000e0d0f00141017001c152000281d2a00332434003b2b3f0046344c +00523d5400584259005a495f005d4c5f0059475a0050405300463a4800382e3b +002b22300021182200160f15000d0a0e00080507000502030002020200010001 +0001000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +"/> +<palette number="414" name="040221-57" data="00161a190015181800101212000c0c0c00080707000403030002010200010001 +0000000000000000000000000000000000000000000100000003010000030100 +0004010000110102001b02060026040a00290b0e002c1313002e171300301b14 +003c2f1d003733240033372b00343a2900353e2800343b2a0034392c00302f2f +002b2b2b00212121001c1c1c0018181700131412000f100e000d0e0d000c0c0c +0008060700050405000302030002010200020001000100000001000000010000 +0000010000000200000002010000020200010305000205090004060a0006080c +000f10140016161a001d1d2100242425002b2c2a002d2e2c002f302e00343331 +00363735003b3c3c003f434200434b490046514d004a57510057645200686e51 +007e8352007e8557007f885c0083835800877e5400827c56007e7a5900797e6d +007a857d009a9f9700a0a19900a6a39b00ada59800b5a89600b8ac9600b1a490 +008e796f007d6c61006c605300625b500058564e0048494600393a39002c2f2e +00242625001719180014161500121312001213120013131300171717001e1e1e +00343534004e483d00685b470077664b00877250009a846200aa956d00b3a16c +00b1ac6500939568008a8c630082835f00657750004a624100374b3b00343936 +002f2f2f0033302f0038322f00423631004d3b340068443e007b4855007e445b +0080465b0085505e007d4d5f00754b61005f475d004f464c004a4c490048514a +0045544d0049514c004e4f4b004e4d4a004e4c4900454746003e403f00373938 +00343333002a2a29002828270026262500212220001e1e1d001a1a1a00151616 +000b0e0e000a0c0c00090a0b0006070800040606000203040001010200000001 +0000000100020202000303020004040300040a0200070d0500090f08000d0f0d +0011170d0011170e0012170f00121312001013120010110f000f0f0d000c0c0a +000a090800080706000805040007030200070201000601030008000500080106 +0005020500050206000602070006020800040307000203040001030300020304 +000305050005070600080a07000c0c0a00140c0b00190d0a001a0d0a00160e0a +00180c0b00190b0800140909000c0a0800060809000408070003080900040a0b +00050c0c00070e0c0008110f000a1617000d181b00131a1d0018201e00232b21 +002c2e20003d2c200049231a005e2815006a2b0d007938150075362100743828 +006b332700673f2b005743340046433a00363938002d333100262b2a00212524 +001e2120001f1b1e00251720002c122800371734004c1c3d0065274500762d45 +0079354d007a3a5100784052007543470065413c004e393300372e2d00252424 +001a1b1c00131515000f1211000d1110000f12110013181700161b1a00161c1b +"/> +<palette number="415" name="040221-58" data="0048ac86004aaf8d0045ae8f0040ad92003fb79a003fc1a30040c6a30042cca4 +0041d2a6003bcca20035c69e0030bd9b002cb598002bac99002ba39a002a9c99 +002a9599001f8293001a758a001668820017577a001847730018407200183971 +001e2e6700232e6200292f5d00342f5a003f2f580043305700473256004e3555 +00543754005d4853005f4f5200625651005e5e52005b675400586c5500557257 +004c855e004b885f004a8b600048875f0046835e00447f5f00437c6100427663 +00416d6200435e5b0044545600464a52004440510042365100403251003f2e51 +003628500034284e0032284c002e2749002a2647002726460025264600202646 +001a2446001628460014294600122b4700122d4700122f4800122f4b00133150 +0018345a0019355c001a375f001b375f001c375f001c365e001c355e001c325b +001a2e5700172849001426440012243f0011223d0011213b000d1b39000b1634 +00070f2f00091030000b1132000c1134000e11370011113b0013113e00151240 +0017154300251e450033254600412c480048344a00503d4c005c4f5400656661 +007590800081a08b008db1960094b99b009bc1a000a4d4af00a7e6bd00a4f3cd +009df4d30088e2cd0083d8c7007ecec10073bab20069a7a7005f94980052848c +0045606f00424f6000403e520041384c0043324700452b42004a2b3f00522c3d +005b2f4000683f4300694444006a4945006d5548006d6149006b6a4e006b7053 +00608a66005f9a70005faa7a005eb17f005eb9850060c28e0063ca98005fd0a0 +005ed7a80052deb4004fdeb4004cdfb40048ddb30044d4af0041c8a60039b99e +00249085001f887e001a80770014706b0012605d000f5255000f4650000d3d4c +000d3c4c001b454b001f454a0023454a002c464d0031464d0035495400394c5b +0040546a0041536a0043536b00434c6700414364003d3b5e0038365f0035365f +0034365d0035375b00393857003d384e0041364a00463647004a374500503b44 +0056474400564a4500564e460054534d004f5754004a595900465b5b003f595d +003c585d0039545e00364e61003649640037436300333c610032375d00323257 +00332c54003a29520041284f00482a4c004f2d4900553247005a384500643f46 +0073474d00815551008e6256009a705b00a37d5d00ab885f00b78f6700c29a70 +00ccaa7b00d1bb8d00d3ca9d00cfd8a800cbdeb000c8daaf00cad3a600c3c7a1 +00bbba9f00b2ae9e00a6a6a2009ba09e00959c92008d9a8b0085978500819582 +007b968b007b9b930076a2950070ab9a0067b09e0062ae9d005daa9f005fa19c +00609693005c8a88004f7e7f00456e78003c5f710038526b00394d66003d4f60 +003c565c003d615c00406b5e003d666100386868003a736e003b8175003c917e +"/> +<palette number="416" name="040221-59" data="0057819d006288a400648ba600668ea800658ea900658eaa006a93af007098b4 +0083a9c70089aecb008fb4cf0091b6d10093b9d40094bad50096bbd60096bbd7 +0097bcd80099bedc009abfdd009bc1df009dc2df009fc3e000a0c3e000a1c3e0 +009fc0dd009cbcd9009ab8d50093b2ce008dacc8008aa8c40087a5c100809fba +007997b1006f88a20068809900627991005a708900536881004f637d004b5f79 +0040506a003c4a640039445e00353e580032385300303652002f3451002c314f +002a2e4e00262c4d00252d4d00252e4e002630500028335200293454002b3656 +00303b5b00303c5c00303e5e002e3d5b002d3d59002b3b57002a3a5500273651 +0024304d001b264400192342001721410016204000161f4000161f3f00171e3e +001a2241001f284600242e4c002e395700384463003d4a680043506e004d5a78 +0055627f0059677f0056667e0054657d0052637b0051627a004c5e7700495c75 +0043526d003e4e68003a4a63003747610035455f0030405d002b405b002a405b +002a405a002f425e002f436000304562002e4662002d4762002a47610027465f +00263f5900263c5600263a5400263a5400273a5500273a5500293d57002c415b +0033476200455774004a5d7b004f638300586d8f005e769700637b9b00647c9c +00637c9700627b9700617b97005f7a96005e7a96005d7894005a739000556e89 +004f6981004b6278004b6177004b6177004c6076004c5f77004d5e75004a5d74 +00435b7300425c7300415d7300415d7300425e7300465f73004a6175004c6277 +004e637a004e667f004d677f004d6880004d68820050698300546a8400596986 +005a67860058658400566382004f5c7b00465272003d486700333d5d002a3453 +00232c4a00181e3d00151b3a00121937000e1432000b0f2f00080b2c0006092a +00020829000208290002092a00030a2a00040c2c00060e2f00091033000c1436 +0010173900111a3c00131c3c00131d3d00131e3d00141e3e00141e4000171f42 +001b2144001b2143001b2143001b2040001a1f3e00181d3d00181e3e00192040 +001c244400212a490027334f002f3c570035455e003c4e670042566f00495d76 +004f627b0051667e00556a8100586d84005b6f86005c7288005e748b0061758d +005f768f005f7790005d7890005d7891005b799300597b9400587c9500557d97 +00527f99004f7f98004d7c97004a78940047738f00436a86003d5f7c00355674 +002d4c6a0027436000233d5800213b5400223a530025395500293e5a002e4461 +00344b68003c536f00425d77004b6a820053748d005c809900658ba5006e94af +00759ab800789ebd0079a1bf0076a0be00719ebc006d9ab8006b98b4006b96b2 +006d97b4006d97b300638da9005985a2004f7d9a004878940044738f00487591 +"/> +<palette number="417" name="040221-60" data="004b5561002b2e3300272a2f0024272c002224260021222100202020001f1f1f +001b1c1c00191a190017181700121413000e1010000b0c0c0008090800070807 +00060707000a0b0d0010121300171a1a00202323002a2c2c002e302f00323533 +003f413f00414342004345450042444500414445004144450042444600434547 +0043474c00454a520043495300414855003c44520037414f00343f4c00323d4a +00363a41003a3e43003f43460046494a004e4f4e004f51500051535300545556 +005859590060626400666969006d706f007174740076797a00777a7a00787b7b +0075787700727473006f716f006b6d6b006769680064666500626463005e5f5f +0057595900474948003f41400037393900343636003234330031333200323332 +00414241004d4e4d005a5b5a0067696800757776007c7e7c00838583008b8e8c +00959a9a00a0a6ab009da4a8009aa2a500979fa400949ca3008e969800868a89 +007b7f8000747778006d6f7000686a6b006466670058595900494a4a003c3c3e +002e303300191e2500181f27001820290017202b0017212e00162331001e272f +001b2129001b1f23001c1d1d001c1c1c001c1c1c001d1e1d001f211f00232524 +00282a2a002f3031002f3031002f3131002d2f30002c2d2d00292a2a00252625 +001d1f1e001a1c1b00181918001617160014161500111312000e0e0e000b0b0b +0008090a0004050c0005060c0007080d0006070f0007070f0009090d000a0a0d +000a0b0f000c0d12000e1016001012180013151b00191c200020232700292d31 +0033393e00565b6200606771006b738000868e9800a8afb500b9c2cd00bcc6d0 +00c5cbcf00b8bfc500abb3bb009da6b000969ca10091969b0090979e00999fa2 +00a5a7a700abb3b900a8b0b700a6aeb60098a2aa0089949d007b838c006a7077 +00545555004e4f4f00494a4a00414242003d3f3e003b3c3c003a3b3b003b3d3d +003e3f40004042420042444400444646004547490046494a00494b4b00494c4d +004c4f50004c4f50004d4f50004d5152004e5251004e504f004d4f4d004a4d4b +0047484700434443003f4040003b3c3c00353736002f3130002c2d2c00262825 +001f201e001a1c1900151714000f100e00090b0a000607060003040300000202 +0001020200030303000606070009090b000c0d0e000f10100012121300131415 +001515150015161600151618001516180013141600121315000f0f11000a0b0d +0008090a0006060600040505000506080007080b0009090b000b0c0d000b0c0e +0009090a00070807000506050004040400050605000a0b0a00101110001a1b1a +0026282600333533003e403e00494b4a005255550053595c00555c6000586068 +0057606900586066005d656b0061687000666d7500697179005a6268004d545d +"/> +<palette number="418" name="040221-61" data="00b48aa000aa688c00ab568900ad4486009e4b8500905284008a578200855c80 +00695d6d005059640037555b002756520018584a001758440017583f001b5540 +00205241003b464a004c3f48005d394700722d4a0088224d00941c5000a11754 +00c70d5e00cd0a6000d4076200d3086900d20a7000cf0d7300cc107600c61478 +00b91773009f1d6700941f63008a225f007c255e006f295d00692b5a00632e58 +004d3d4e00494351004649540051555d005d62670064676b006b6c6f007c7b7b +008c858b00b8a0a100bba2a400bea5a800b69ea700ae97a600ac92a500ab8da5 +0098668e0085588000734a7300673a6e005c2b690058266800552168004f2463 +00442b5800253b43001d3d4100163f4000163e3e00163e3d00123d3900123e37 +00123a3f0011354700103050000e2f54000d2f58000c3259000b355b000b3c5b +000a455b000b5657000b6059000b6a5c000c6f5e000d7560000f7d600012825d +00187f53001b7c52001f79520021764f0024744d00276c43002c6437002c5e2e +002c5a2a002f5c2f0030643400326d390032753a00337d3c003487440036944f +003d8d600040856100447e6300487c64004d7a66005c6c63006b566400763d61 +0083275f009a145b00a0125900a6105800ae0c5400b1094f00ae0b4900a01144 +00891c3d00851c3900821d35007f1e33007d1f310077222f00792231007e2234 +008a1f3900991b41009a1c41009b1d42009a2841009b37430090454c00805051 +00625357006454520067564e0066564b00655649005b4f46004e4a45004c4444 +004e423e004a473500464c350042513500365839002e61380029673500286935 +002d633a002d5f3b002d5b3d002e523c002d4a3c0028413d00273b3f00223446 +001d32480017314e0018304f0019305100222f5a002f2f60003d306400473168 +0055317200582f75005c2e7900612d7c00652e7c006434720061426c005a4d65 +0051555f004c565c004a5251005254490058513f0059523b00554e3c004b473e +004a38420049364200493543004833420044364100453c3e004a433a00504438 +00574238005d3e3d006a383d0075383d007e373f00813644007a3b4e00723e53 +006a4756005e51590054575b004a6664003f7468003a826900378a6c003e836a +004f786b005e6c6a006761640069585b006d4e5100744446007c3e3d00793b36 +006c3e2f005a432f004a4a2d00435431003d573a003e5841003f564f003f5057 +003f515c003e4c60003f465f0042416500443b69003f3d6a00393f6a00304264 +002a455f0026475b001f4859001d495800194a57001a4c5600194e5300145052 +00155554001858580022605f00366b6500477a75005f90880079a19a008db2ac +00aabfb600c0ccc400c9d6cd00c8ddcd00c4cbcb00c1b4bc00c4a0b200c184ab +"/> +<palette number="419" name="040221-62" data="006e3b2200582c19004f231a00461b1c00411a1e003c1a21003a1a2200381b24 +0034152b0036182d00381c30003e21320044263500502d33005d353200623931 +00673d31007f502b00814f2600844f2100824b1b00804816007c461600794416 +006835140064311600612e19005f2f1c005d311f005e3121005f322300603327 +0061312b0062393200674138006d4a3e00755142007d594700805d4700846247 +00967345009c754400a3774300a8783f00ae7a3c00b07c3c00b37f3d00b68342 +00b4834700a87d5100a4774f00a1724e0098694b008f6048008b5c4400875841 +00754134006b382f0062302b00582929004e2328004a212800461f2800401c25 +003d1c23003d1f24003f1f25004120260043202600462127004b24290051272a +005c2d2b0060302b0064342c0065372d00663a2e0066392d0066392c0062362b +005e312a00502320004a1e1e0045191c0043171b0041161b00401518003f1417 +00471e1c0052261d005d2e1f006132200066362100703e240077452900804a30 +00854f34008555380080523a007c503d007a4d3b00784b3a00734733006f422c +00653a27006435260063312500622f2600612e2700592c2a0052282d004c272f +004823310046213300482335004a2537004f2a3c0058313f00673c450074464c +007d4e4f007e504e007f524d008051490082514600824f400085513e00885741 +0094624800b2846500b58a6a00b9916f00bf987a00c3a18300c7aa8d00c5ad90 +00b2968300a88e78009f866e00987f6700927860008064500072523e00644430 +005c3725004d2218004a201600471f1500461c19004b23210050282800532e2d +00533233005332320053333100512e2b004e2724004a24200048241f0047241f +004b252400634139006c4d410076594a008d706400a98d7800c0a68a00cbb894 +00d2c1a400d3c1a400d5c1a500d0bea100cdb69c00c5ae9b00c4ab9a00c2aa97 +00c7ab9400c4aa9000c0a78d00ba9f8600b8997800b6926a00b08e6100ac8860 +00bc956800c49e6d00cda77300d9b47f00debb8800dfbe9000e3c09000e3bd87 +00dfb27500d4a66900c2925700ac7b44009764310086542900744623005f371e +004c281b003f201a00361b1a00311619002f111600341115003612170038151b +0038141d003f151f004419220049212b004d2b340055373d005e3f3f00684543 +006e4a4500704f4800724f4600724d4400714740006d433d006a3e3b00693c3b +006b3e3c0071433c007b493c0086503d008f583d00945c3e009a5f3f009d633f +00a1654000a1664500a0664d009e695400a06e5b009e7361009c7665009a7868 +009c7b6900977762008d6f560082624c0079574300724938006c3e2d006a3627 +006a3424006d34230070372200773b2400814626007e442400753f20006b361f +"/> +<palette number="420" name="040221-63" data="005567520056756100587a68005a7f6f00587e6f00567e70005c867700638f7f +007fa8950089ab980093ae9b0092a7960091a192008b968800858b7f007f8479 +007a7d7300695f56005a4d44004c3c33003e2d2600311f19002919140022130f +00110806000b06030006040100050601000408020004090200050a0300070c06 +000a0e07000d1107000e1107000f1107000e1107000e1207000e1107000f1108 +000f14090010170c00121a10001321140015281900172b1b00192f1e001e3624 +00253f2b003d5440004a6350005873600065826f0072927e0074988300779e88 +0081a9940083aa980086ab9d0086a99a0087a7980084a4940081a29100789a89 +006e8e7d005872620050655500495949004554430042503e003f4b39003f4a37 +003f4f3d0040544300425a4a0043625200456a5a00476f5f004a756400518371 +0059917f0068a896006aad9c006cb2a2006cb3a3006db4a4006eb6a5006fb7a6 +0071baa90072bcab0073bead0073bfae0074c0b00074c2b20075c5b30078c7b5 +007ccab8007fcdbb007accb90075cbb70071c8b3006dc5af0066bca30061b196 +0053977d0049876f0040786200386f5b003166540024554300184331000e3322 +00092717000a180d000b190f000d1a120013221b001d2c25002738300035453d +004e605600577064006180730067887b006d91840074a394007fb2a4008cbfb0 +0095cabc00a0d9cc00a2dccf00a4dfd300a5e4da00a7e8df00aeebe300b6ede6 +00c7f1ed00ccf3ef00d1f5f200d1f5f200d1f6f300d3f6f300d3f6f400d4f5f2 +00d5f4f000d6ebe700d4e7e200d3e4de00cddcd300c6d4ca00bccdc200b0c9ba +00a2c0ae009ebdab009bbba90096b4a00091ad99008ba8950084aa940080ad95 +007eb19a0079b29c0078af990078ad970077a39000749a860070917d006f8a76 +007b7f6900807e6800857d68008e796700977764009a7561009a74600095715e +00936f580094705b0092766000957e68009789710095927b008b9680007e927b +00617f68005a79620053735d00476a53003e634e00355f4c002f5d4a002c5b47 +002c5c4800335e4c003b625100466a580052756600618175006e8f83007c9e94 +008aaea40097bdb300a4cdc100afdbd000bde7dd00c9f0e800d3f6f000dafaf6 +00dcfbf900dbfbf700d5f9f500cef7f100caf4ec00c6efe500c3eade00bce2d6 +00b3d5c700a4c6b80092b6a70082a5960073948400678775005c7b680054715b +004d69530045644e0041614c00405e4c00435e4e00445f4f0045614f0046604f +00455f4d00425d4b003f5a49003f5849003d5547003d5143003b4b3d00384335 +00343a2a002f3121002d2919002a2414002c221300332617003a2f1e00433827 +00514b39005e5745005a54420053503f00514c3d004c4b3b004447350046503f +"/> +<palette number="421" name="040221-64" data="00366d59002061470015503b000b402f00134b2c001c572900265f2a0030682b +004f7c320054793400597637005a7135005b6c330054602d004d552700494e23 +0045482000352f1300372f1100392f100045350d00513c0a00543b0700573b05 +004e3806004a36080047350b003b2c0c002f240d00251f0d001b1a0e000e1511 +0005141500011a1f00021c2000031f210003251d00032c1a0003301900033418 +00044019000a452100114b2a001e5639002c61490032665000396c5800407164 +00436d6c00465d730042576d003f51680033455800283a480022343e001c2e35 +0012211900161f13001b1d0d0020200b0026240a002a2708002e2a0700343005 +003b300400493407004e390900533e0c00523f0d0051400e00524110004b4415 +003d411800343c15002c38130022391300183b1300143b1300113b13000b3a13 +000b3811000c3616000c3319000c301c000c2d1e000c2a20000a24250009212b +000b212e000d263200102b370015323d001a3a43002947480036514700445a46 +00475a43004963430046633a004463320040602e003d5e2b00335b2a002a592a +0023553200275940002b5e4e002b5f53002c615800335e6000355765003c526d +0045527400585d72005d606f0063636d006d696800747167007e6f63008a7159 +00a5754700a46e4200a3673d00a0643b009d613900995d3500996435009c6c34 +00a06f3a00a9845100a88b5c00a8936700a9a37b00aeac8b00abab9100b3ac8e +00a6998800978d800088827900817c6e007b7764006e6e4e006267430061613d +0060654b00747b6b007a86710081917700939c8200a4a58800aca99000b6a892 +00bbaa7e00b9a57300b8a16900a9975500948746007c783600656e2e0052632b +00465d26002d572b0027552b0022542c00174d3100114433000c413500083c37 +00043a3700063a3900083b3c000d4647000c5355000b606500086f6e00097c73 +0010897200169174001992780014927700108e78000d8a6b0010865e00177e54 +0017745000156f5400136b5800116659001260590016645c00196a5a00196461 +0019595e00164b5800133d5100113949000d3346000c2c43000a264000061c3c +0004163b0004133d0008163e0013203f001f293d002d3237003e3e34004e4f35 +0066683b007d7e450098914f00a79d5000aca65700a5af5c0095ad5a008fa85f +008399540079884f0065764700475f38002e4a2e001d34230015262200151e25 +00141b2b00131b3100151e38001421420017294a00162d4d0017314d0018374b +001734490017324600132b40000e233900091f3400051c2d0002192900061422 +000f0e1c00190a18002910120031181000382010003b2615003d262100482d2c +0051383c005a4c47005d6856005878680049726f003f66720039586a00335c5e +"/> +<palette number="422" name="040221-71" data="00d3d0c100cbc3cc00ccc1d200cebfd800cebfdc00cfbfe100cbbee300c7bee5 +00bbbdf100b2b9f000aab5ef00a5b4ea00a1b4e600a2b1da00a3aece00a3abc3 +00a4a9b900a78f95009e848f00967a8a008e738600866d8300826880007e647e +00735877006c5b7c00665f8200596185004d64890049618700465e86003f5583 +00404f7d00524c6200574c52005d4d43005c423c005c3836005c3437005c3138 +00672e440074374c0081405400914e6500a15c7600a5658000aa6f8b00b6819f +00c292b400d8b2cc00dfc0d500e7cfdf00e7d9e500e7e3eb00e6e6ed00e6e9f0 +00dcedf400d7ebf400d2eaf500cde6f400c9e2f400c7dff100c6dcee00bfd5e3 +00b6cbd200acb9af00aeb49d00b0b08c00b3ad8200b6ab7900b8a46300b7994d +00a67e2800a97e2200ad7e1d00ba832600c7882f00ca883600cd893e00cb874f +00c98a5a00c5996e00cfa17100daa97500dda87600e0a87800dc9e7c00d3977e +00b4937f00a7947e009a957d0094937e008f918000888c89007f8b97007188aa +006787bc005d92d5005f99de0061a1e80060a3eb005fa5ef005fa5f40059a3f5 +006b98f4007c97f0008d96ec009493e8009b91e400a095da00a893d300b390c4 +00c68ab900df749e00e3729800e8719200ec708a00ed737b00ee746d00ef775b +00e25f5000db585600d4515d00d2535c00d1565c00d3644e00d8683f00d96c35 +00d86e3400d2634e00ce645300ca665800c4695d00bc6c5a00ab6f57009c6c5c +007d5e7400746388006c689d00666ca4006170ab005c7ab5005681bb005385c0 +00558eca0072afe2007cb9e70086c3ec009ad4f600acddfa00b8e4fb00c2e6fb +00d0e0f700d5ddf600dbdbf500e6dcf200eedff100f3e2f100f3e6f200ede1f3 +00e1d2f100c2c0eb00babbe900b2b7e8009eb5e70091b9ea0085b6ed007eb4ef +007db0f0007baef0007aacf0007cabec007dabeb007dace9007cb0eb007fb0ec +007eb1f1007ab0f20074adf0006baceb0061a9e50059a2de0055a0d90056a2d8 +0062a2d40066a5d5006aa9d70074a9d8007fabd9008ab4da009bbcdc00a7c0db +00b1cae100bbcfe700c4d2ec00c8d9f100cfe2f400d4e6f100d8edf000dcf3ed +00e3f5ea00e6f7e600e8f6e300e9f2e000e5eddd00deebda00d5e5db00cbe2db +00beddd900bad7d600b6d0d100b4d0c900b0cdc500b0cec200aacec100a9d0c3 +00abcec800aed0c800b2d1c900b6d3c500bbd1bf00c5d4af00ced4a300d5d39c +00d9d6a100d7daa700d4dab000d6dbad00dadfa700e1dea100e5e1a500e7e7b0 +00e3ebc300e0ecd600dcefe200dceee600dbebe900daebea00d9eaea00d8e8ea +00d4e6e900d3e4e500d1e1e000cddfd900cde0d300cfe1cd00d1e2ce00d4e4ce +00d5e5ce00d1e2ca00cedfc400cfe0c000d2e1c000d5e1bf00d9dfc000d9dcc2 +"/> +<palette number="423" name="040221-74" data="008e2b1000a2351f00ab402b00b44c3800b4564400b4615000b1655400af6a58 +00b0756600ba807200c48b7f00d09a8f00dcaaa000e2b6ac00e9c2b800eac3ba +00ecc5bd00edc5bd00eac0b900e8bcb600ddb5ae00d3afa700ceaaa100caa69b +00bb908000b5807000b0716000a45e4d00994c3b0091433100893b28007b2d1a +006f231000641a0a0062190a0060190a005a1a0c00551b0e00511c0e004e1e0f +003d271500372b16003230170031311700313218003131170032311700332f15 +00322f1500342c1200392911003e2611004a210e00571d0c005e1b0b0066190a +00841005008f0d05009a0a0500a00b0400a70d0400a90e0300ab0f0300b01102 +00b4130100ba130300b3140500ad160800a7180900a11b0a0097220c008d2a11 +00863a1b008d432600954c31009b583e00a2644c00a66c5500aa745e00af816d +00b5947e00ceb09e00d8bcad00e2c9bd00e6cec400ebd4cb00f1dad300f1dfd5 +00e7d0c700e4c2b800e1b5a900e0ada200e0a59c00e2948d00e3877e00e57b6e +00e16f6200d95f4e00db5f5200de5f5600e0635b00e2676000ec726b00f07c75 +00dd878200cd878600bd878a00b4868c00ab868e009c848f0092808c00867c84 +007c7278005f555b00594f540054494d004c4144004e41420055474400645149 +007e65580087685900916b5b00946b5900986b58009c6a5600a1685400a36752 +00a16653009d584c009a534600974e4100914333008c362600882b170084240d +0087260a008c301200913a1b009540210099462800a1503400a6523d00a7543f +00a6523f0096534100925542008e58440083624900776251006b6454005f6051 +00414642003a3f3c003339360029332a00232d2300202a1f001e2a1b001a291b +001b241b001c1a1c001e171a00211519002b101500390f0f0044110c00531408 +006c1d120070201500742419007f2b20008b30240096342600a0392200ac391e +00b53a1b00bd3c1a00c3401b00c7411c00c8401e00c73f1c00c73b1700c73411 +00c82b0600c72a0400c7290300c4260100bf240000b6200000aa1d00009e1400 +0091110000840f0100770d01006c0f03005f1105005116070047180a003e170b +003c170c003e160b0045140a0053110b0060120b0071150c0080160d008f160d +009e170c00a9160a00b2120900b9100a00bd101200bd121b00bc141e00bc1820 +00bb1c1f00b51e1c00ae201600a220160091211b0083231f00792423007a2a28 +0082322c00903d2e009e493300a7543d00ad604d00b06a5c00b2746a00b87e76 +00c2888100cd8f8900d3908a00d3908900cc8c8700be858100ab7b7900987672 +0089726c00796b62006661570058564c004c4b3f00443c30003f322500413020 +004b311d0051341c0062371f006e3920007a351d0082301800872b15008d2812 +"/> +<palette number="424" name="040221-78" data="00985729009d4f1d00934616008a3e100076320e0063270d0060260c005d250b +005a2007005e1f0500621f0300682103006e23030073260300782a04007a2b03 +007c2c030089310300913304009a360500a23a0700ab3e0900ac3e0a00ae3f0b +00a53c0b0096380c0088340d007b320f006f3012006b2f1400672f1600642f19 +00622f1a0063301a0066331b0069361c006d381e00723b2100743c2200773e23 +008040240081402300824123007f3f23007d3d24007c3d24007c3e25007c4127 +007d4329007d462b0077442b0071422b006b3f2900663d2800633c2800613b28 +005f3d2a00593a2700533725004a2f1f0041271a003a231800341f16002a1a13 +00251712001c120e001d110d001e100c001e100b001f100b0020110b0022140e +002e1e170039241900442b1c004f301e005a3621005e382100623a2200663e26 +0069412900714629007446260077472400784622007945210078442000754121 +00703d21006e3b1f006c3a1e006a391e0069391e0066391e0063381e005e361e +005b35200057321f0056301d00562e1b00572d1a00582c190058281600562413 +00521f0d00541f0c00571f0b005b200b005f220b006b260e0078291100843015 +008f371900a1421e00a5461f00aa4b2000b3542400bc5b2600c4602800c6652b +00c0612900b85c2600b1572300ab552200a65321009c4e1d00924a1d0088491d +007f431c00703819006d3518006a331800652f1600612b15005d2c16005b2c17 +00562a170053291600502815004e2714004d2613004b25120049251200482513 +0048251400462617004526170045261700442617004426180044271900462819 +004528190043271800422618003c23160036201400301d12002a191100261810 +00261810002b1c12002d1e12002f20130036251400402a15004b301600573619 +0070421e0074431e0079451f007f4a1f00864d1d008f501c0096521b009c531c +00a1511d00a44d1c00a2491c00a0471700a3451300a8470f00b04c0d00b8520f +00c35b1700c25a1800c25a1900c4591a00c2571b00c1551800c0561700c05816 +00bc561500b3521500ac4d1600a44716009e3d14009a3712009c3613009f3913 +00a33e1400a8451900ae532500b55b2c00bb622d00c0683300c16a3700c36e38 +00c26d3600c0733e00bc734500b9754200b5714200b0673f00ad5e3800ab4e2b +00a9422100a5361d00a03017009b291400962110008e1e0d008a1a0a00851708 +00831408007d1607007716090070150a0066180b005e1a0b00571b0a00531b0a +00501b09004c1e0a004a1e0b004b1f0b004c200b004d220b0050230b0053220c +0055230c0054240f005325120054271600542d1a00583420005e3b280068432d +00754d3000825630008255300081552f0081532d007f532e0081502e0084512e +"/> +<palette number="425" name="040221-80" data="003b3c5c003335540032335300313253002e2f51002c2d50002b2d4f002b2d4e +002c2d4b002d2d4c002e2e4e002e2e50002f2f53002d2e52002c2d52002b2c4f +002a2b4d0024254400212241001e1f3e001e1e3d001f1e3c00201f3d0021213e +002d2d470033334f00393a570040416000484869004b4c6d004f507200555679 +005e5f82006c6d90006e6f9300707297006c6e9500686a93006566900062638d +0055557d004d4d740046466c003e3e620036375900323254002e2e5000262648 +001f1f40001a1938001d1b3700201e370026253b002d2c4000302f4400333248 +0042425a004b4b640054546e005d5d760067667f00696881006c6b84006f6e89 +0072718c007c7b970084839e008c8ca5008f8fa8009393ab009a9ab0009d9eb4 +00a2a2b600a1a1b500a0a1b5009c9eb300999cb1009598ae009295ab00888ba0 +007f809400686879005a5a6b004c4d5d00454655003f404e0033333f00292931 +001c1b1d0019181700161511001514100015141000151513001516170015161b +0016161f00161622001514210014132000131220001312200013122100131222 +0016152600191829001d1c2c001f1e2e0022203100282538002f2b3e00353144 +0039364a003f3c56003f3d5800403e5b00403e6000403e6200403c60003c3a5a +0034324d002e2c440028273c0024243800212235001c1c2d0019182500171622 +00181723001d1d2a001e1f2e002021330024253b00282942002a2c48002f3151 +003d3f64004749700051547d00575a83005e618a00696c920074779b007e81a1 +008789a600979ab1009c9fb400a1a5b800acb0c000b4b8c600babdcc00bdbfcf +00babdcd00b6b9ca00b2b5c800acafc600a4a7c0009a9ebb008f92b3008385a7 +0076789b0058587c00515174004a4a6c003d3d5f0031315300252646001d1c3a +000f0f24000d0c1f000b0a1a000807140007060f0006050b0006050a00060609 +000606080007070800090808000a0a08000b0b08000b0b08000a0b09000a0b08 +000a0b08000a0a08000a0a08000a0a0800090907000809070007080600060705 +0006070400050603000506030005060200050602000405020004050200030403 +0003040400030406000404070004050a0005050c0005060e0005051000050512 +0005061400050615000506160006061700060619000606190005051800050518 +00060618000707190009091c000d0d21001212270016172e001b1c35001e1f3b +0021223e0022233f0023243f0024253e0025263d0026273d0027293d00282a3c +00292a3c002b2b3d002f304000363644003f3f4b004a4a540054565d005e5f67 +0067686f006e6e79007272810077788a007c7d92007f81980080839c0081849b +0080829c007a7c980072749200676a8a005c5f80005154770046496b003f4163 +"/> +<palette number="426" name="040221-81" data="00a8250100a8230100a81e0100a9190100a6140200a30f0300a10e0300a00e03 +00a0160800a7200f00ae2b1600b3351e00b9402700bb472900be4e2c00c0502c +00c3522c00d05d2e00d5623300da673900dc673a00de673b00dc633800db6036 +00cd4c2b00bd462a00ae412900a53f29009c3d2900983b2700953a260094331f +008e2f170080300c0086340a008d3809009e3c0800af400700b6410700bd4307 +00cc4b0c00cd4c0f00cf4e1300c5491300bb451400b2411400a93e1400963613 +00822f1400742212006d1c0f0067170c00621409005e1106005c1106005a1206 +00701005007d1005008b11060091160500981c0400991d05009a1f07009a2107 +009a200800941c0900881e0a007d210c0077220d0071230e006b2714006d2e1d +007f433000834f3900885b42008a6447008d6e4c0095714b009d754b00ae7b48 +00bd7e4600c97d3b00c6773400c4722d00c4702900c46e2500c56c2000ca6f21 +00ce772e00d17e3a00d5864600d78b4a00da904f00e0995800e9a46100efaa67 +00f2ad6c00f4ae7300f6ad7400f8ac7600f9ad7700faaf7800fcb27c00fcb884 +00fcc38f00fbc29000fbc29200fbc09100fbbe9000f8ba8f00f5b58a00f2b085 +00f2a67c00f2936c00f2906700f28d6200f1865800ee825300ee7a4d00f0764b +00f16e4900f0734900ef784900ee794800ee7b4700ec7d4400eb784200e86e39 +00e4623100da502300d84d1f00d64b1b00d34a1b00d1471900cf441700ce4119 +00d4432900d74f3400da5c4000dc644600de6c4c00e27e5800e7906500ee9b74 +00f4a97f00fcc08c00fcc38b00fdc78b00fdc98500fcc47d00fab97200f9ae65 +00f3984a00f1944300f0903d00ec883100e57d2400de721900d5620f00ce5508 +00c94d0400c3480200c3480200c3490200c3480200c0420300be3b0200bc3502 +00b82b0300b92b0300ba2b0300b72a0300b2280300ab2403009c2006008a1d09 +007d1d0e007920140078251700822d1c008a38250090422f0092503a009b5f49 +00b0755500b9795800c37e5b00d4805e00de815d00e6825d00e8835b00e78554 +00e7874e00e7864a00e4824400e0753d00d7693500c5602e00b3592600a25523 +00925624008c5127008c48260089422600893d26008b3b28008945310090513e +009f5e4800ae6b5000c0775900d4826200e08f6c00eb9d7900f2ac8500f4b88d +00f5be9000f5c29300f4c09200f5bc8e00f5b98900f6b48100f6ad7800f5a76c +00f4a16100f1995600ec914a00e88a3b00e4803200e2762700e26e2100e26a20 +00e16b2100de6f2000db722100d76f1e00d3651b00ce591b00cb4e1a00c8481e +00c2451f00bc441b00b53d1500ae321000a52407009d19040097110300941003 +009211010094180100982100009a2000009d200100a1200200a31d0100a41b01 +"/> +<palette number="427" name="040221-84" data="008151340074473200653e2e0057352b00533126004f2e2200522c2100552b20 +00602b1c00632b1b00672b1b006a2b19006d2b18006d2b18006e2c19006e2b19 +006f2b1900742b1900772c17007a2d16007f2f150085321500883517008c381a +00973f1e009b401c00a0411b00a2421c00a5431d00a5441e00a54620009e4822 +009848240080412300743e2400683c26005b3e27004f4129004a412800454128 +002d4128002a3e2800273c29002d3c2800343c2700353b2700363b2800353c28 +00363b2a00353b2b00353c2b00363e2c00304031002b43370028453a0026473d +001d5145001d5b4c001d6554001e6856001f6b58001f6b58001f6c5900206552 +002765500034664d00396146003f5d3f0047563a004f4f3600523f2c00573727 +005c2d1f00592d2000562e2100503324004b382800483c2a0046402d00394731 +0030493400254a3c00214a3e001d4b40001c4a40001b4a40001a483d001b453a +001d3a34001d3732001e3530001d342f001d332e001d332e001d332e001e342f +001e3730001f3e36001f4039001f433d0020433c0021443c0024443d0026443d +002a483c0028493c00274b3d00264b3d00264b3d00254a3e00254b3c00254b3c +00234b3c001e4b3b001c493b001b483b001a473a001a453800194338001a4136 +001b3e35001b3d35001b3c36001b3c36001c3c36001c3c37001c3d37001c3e36 +001c3f36001c4138001b4139001b423b001b433d001a443d001a453c001a453c +001a443b001a423c001b413d001b403b001c4039001d3d3700203b330024392d +002b39270045372200493821004d392000523a1f0057392000573a2100573f24 +0060502c0061532d0062562f006556300063542e005b4d2e00564b2e00554a2e +0054492d00583f2800573b25005637220051301d004e2a1b004a291a0049271a +004b261a004b251a004b241b004b261c0049261d0045281e00422a1f00412a20 +00422b1f00462c1f004a2c1e004b2b1e00482a1e00422a1f003d2b20003a2b20 +00452a1c0048291b004c291a004f291a0052281b0052271c0053281b0055271c +0057281b0057281b00542a1c00502b1d004b2d1f00472d2200422f23003d2e22 +00382d22003430220034302200382f21003e3121004830200052301e005d2f1b +00682e1900742f17007c301500853413008b3713008c3814008a3a1500853a18 +007b3a1b0071391d006a3b1e0063391f005f361f005d3720005a362200573423 +00593322005e311f00652f1b006f301900773017007e331900833a1d00884125 +009041280093412b00953f2800953c2700963a250091402800933f2b00913e2e +008f3a2c008c3529008a2e2100832e1c007e2d1c00792f1d0078331f007b3822 +00814025008d4d2a00995130008c523300835034007a5235006f4d34006e5232 +"/> +<palette number="428" name="040221-85" data="000d2105000d1d06000d1b06000e1a06000e1a05000f1a05000e1905000e1906 +00131e0c0019230c0020280d0026340d002d400e002f4f0c00325f0a0031650b +00306c0d0034700c00356f0c00366f0c00356f090034700600317006002e7106 +00256502001f5602001a47020016390200132b02001228020011250300112403 +00122702001b3d02001e450100224e0100224f010023510200224f0200214d03 +00214f0400225203002455030022520200214f02001f4902001d440300183703 +00142c060014240e001b2b1300223318002d3f2400384c300040533700485a3f +00657859006f7f5b007a875e007d885b00818a5900828b5c00848d6000839467 +00849871007d997800738d67006a825700627a4f005b7347004c683b003f6034 +002f6035002b5c330027583200235028001f481f001d441a001b401600173a0f +00143607000e2d09000d290a000c250c000c220d000d200f000d1c12000e1d14 +00162f230022402f002e523b00385a440042634e0054716100688071007a8f85 +008c9e9500a7c2b100b3d0b800bfdfbf00c1e1bf00c3e3bf00c1ddbd00bbd1b5 +00a0b19f0091a38d0082967b007a8f720072896a00617b5b004e6d4d003c6042 +0030553d002f503d0032523e0035543f003e5a450047614e0049645200496556 +004a695b004b6858004c6855004e685400506953004e664c00485f440040543b +00364d3100223b1b001f3817001c36140016340d001334080013320500123204 +001435050016360a0019380f001b3c13001e411800284b230032552f003e623a +004a6d45005d7d56005e82580060875a0064915900669a5a0066a0580067a154 +0063944c005e8e49005a894700507d3a0045742e00396a21002e5f140024510d +001d4407001329070011250700102107000f1d07000e1b07000e1b08000f1c09 +00101e0d00101f0e001120100011221100122413001225140012261500142617 +0014271900142a1c00142c1e00132e2300133126001433290017372d001e3b34 +0039524a00415a530049625c005b736d006d837e007b928c008a9e9a0099aaa6 +00a8b6b100b5c3bc00c1cec700c9d6d000cbddd800cae3e100c9e7e400c3e7e6 +00b9e3e200b0dedc00a7d8d5009ccdca0090c3c10088bbb8007fb4b20076aaa8 +006ba09d00639792005b8c8400507d760049746a0043706800416b65003e6762 +003a6761003c6a6200406b6300456e63004c766900537a72005a7e78005a847f +005d888300608a8300628b8200648e8000658f800068917d0067937500669a6b +0062995d005e9854005b9a50005b9a51005f9d5a0068a0640077b0710083b973 +0090bf6c0096c5620097c458008fba520085ab51007ea3550076995900728e56 +006d854e00687e42005a7430004a651e0039550f00284508001a360600112a05 +"/> +<palette number="429" name="040221-86" data="0086796f0079726f00726e6a006b6b650072726700797a6a007f7e6900858269 +00949163009694610099985f0092905f008c895f00838161007a796400787865 +00767767006d7068006d6f67006d6f6700726e6400786d6200796a5e007b685b +0075624d00715f4b006e5d4a006b554900684d4800664c4800654b4800684e4b +0070584d008d6d4e009d775200ad815600be8d5800d09a5b00d59e5800daa256 +00d9ac5b00d7b06600d6b47100d3b16e00d0ae6c00ccaa6800c9a76500c8a163 +00c79d6400c8905d00c5845100c3784600c4774400c5764200c6774400c77947 +00c17d4f00bb835700b68a5f00ad8c6900a58e7300a08c76009b8a7a0093877d +0091887b00978676009b8477009f837900a4867900aa8a7a00b5917f00c19c83 +00c2a68e00baa39200b3a09600b0a49c00ada8a300adaca800adb0ad00abafb0 +00a9adb000aeaeaa00b5b6ac00bcbeaf00bebfae00c0c0ad00bdbca500b9b699 +00aea58600ab9b7800a9916a00a58b6100a28559009c794b00956b4100915d35 +008e502a007f39160078321000722b0b00722b0b00732c0c00782f0b007c360f +00864115008c49180092511c0094541d0097581e009b5b1e009f5b2000a05b21 +00a25a23009f5b26009c5b2900995b2c008e593300845439007d523f00764f41 +00624f4c00604f51005f4f5600624e5400654e5200694e4a006f4d4500724940 +007d4a3f008f4e3500924e3200954f3000964d2b009c4e2b00a3582d00a8602e +00ac672f00af683200b2693500b46b3700b66e3900ba743d00b7773d00b1773d +00aa733f00a76c3d00a76c3c00a76c3b00a9733b00ab794200aa7d4600aa804b +00a27d53009f7c57009d7c5c00967862008d766700817368007b6e620077685c +00745d56006b49440068453f0065423b00623e3400603d33005d3f33005b3c31 +0047353200423332003d313200323034002d2a2e002826280025222300232020 +002522230026232500262428002b272e002f2c340039363e004646470053544e +006d6a5700736d5800797059008779580095815800a1865300ad894e00b3884a +00b5874700b4834400ae7d3f00aa733600a3672d00945b2800875324007b4a1f +0075431900793f1100783c0f00784112007d47140086501800975f1a00a86d21 +00b47b2c00ba893a00c1944c00c6a05a00c8a76400caaa6c00c5ab7100c3a876 +00c2a77a00c0a57c00bfa17900bb9d7200b7926600b2865800ac7c4d009f7048 +00926a4800876448007e5f46007f5f40007c5b3a007958360077563600745536 +0079593500805c31007f5a30007a542c00714b2a00664229005f3f2500523927 +0047342a003b322f00362f3300393338003d383d0048414200534d490061574c +00716352007e6c5a008e7b62009d896c009b876b00958369008c7a6700817266 +"/> +<palette number="430" name="040221-88" data="00473d23003e4327003c4930003a4f39003654420033594b00375d50003c6255 +0046735c00497a62004c81680053866e005b8b7500678e7c0074918300799385 +007e9687008b9c8d008a9e8b0089a18a0085a2870082a4850080a485007fa585 +007d9f820077987e0071927b00698a7100618268005c7e6300587a5f0053765a +0055735600576f5800576b57005868570056625300545d4f00545a4d0055584b +0055524400574e4200594a410062433a006b3d34006e3b3400723a3400753b37 +007c3d3a00854f4d00905757009c5f6100a3656500aa6b6a00aa6c6b00aa6d6d +00977268008d736a0084746c007e706500786c5e0073665a006e615600625147 +00534135003a281f0033221a002d1c15002b1914002917130025121100210d0e +001b090b0018080b0015080b0013080a0011090a0011090900120a0900140b09 +00180c0700210c0400240d0300280e0300290d02002a0d02002b0d02002c0d03 +00310c0600350c0700390c09003b0c08003e0c0800410c0700430b0700450a05 +004409070040080a0040080900400809003f0808003e0908003d0a05003c0904 +0036070400320504002f0404002c0404002a0504002508030021080300200a04 +00200c050020100600201107002113080023170900261d0c0028250e002d2e10 +003a3c17003c3d18003e3f1a003f3f1a00413f1b003f3d1b00403f1a00424119 +0048411a00523a190055361800593317005c2b17005d2719005e291b00602d20 +0064352e00693530006e3632006d3632006d37330070393300723f360073443f +00744e49007d6059007c625b007b655d0078685d00766a5a00756c5a00746f5c +007c7a64007f7b6600827d6800867e6a008c79640090715b0095685300925d49 +008e533f0083413100803d2d007d392a007830210079281c00742318006a221b +0055312a004f3932004a423b003f514a003c5b540040635a00446d66004e776e +00527b730059867e005c9187005b928b005c8e83005a877d005b7f7200576e60 +00515747004c504200484a3e003e3e320032312a00272821001f1f17001a1710 +0018130b00190f07001c0d0300210a030025090400290a04002b0b05002b0c06 +002b0e07002b1208002c1308002e1509002f170b00311a0d00301d1000302114 +002e2618002c291e002e2e220033342800393c300040443700484b3b004f533f +0053574300575a46005c5e480061624c0064645100696851006d6a52006c6a4f +006a654b006a6046006a583f006a4f3a006c48330070402e006f3a28006d3322 +006b2e1d0068271800622112005d1d0d0059170900541304004f1002004b1103 +0047130500421809003e1e0e003b241200372b16003431190033321a00363019 +003c2f1800462f1800462d1800452f190044331e0043372000403722003e3922 +"/> +<palette number="431" name="040221-89" data="00192435002028450021294a00222a4f00232b4f00252c50002430560023345c +0020447800224a830025518f00295493002e57970031599800345c9a00355d9b +00375e9d003e6aa000456da3004c71a6005173a8005775ab005a74ac005e74ad +006574ab006a73a9006f73a8006e73a7006e74a7006c74a6006b74a500656fa3 +005f679b0052527f004a4a750043426b003c446b0036476c0034486e00324a71 +00375b820043658b004f6f95005e7ea1006e8ead007496b3007b9eba008caec7 +009abed600b2cadf00b9c8da00c0c7d600bcbac600b8aeb700b2a8af00ada3a8 +008d8187007a70770067606700544e5800413d49003a36430033303e002b2a38 +002a273600333841004148500050595f0058616700616a7000707d8200808c93 +009da8af00a5adb500aeb2bb00adaeb700adabb400a9a6af00a5a1ab009e999f +00908d92006f6e76005d5b64004c485300433e49003a3540002d272f00221d21 +0015141400131313001212120011121100111211001212110012121100121210 +001111100010120f000f110f000e110f000d100e000d100d000c0f0c000c0e0b +000d0e0c000e0f0e0010111000101112001112150013161c00151c26001a2433 +00202f45002c4768002f4c70003252790034588600325b8d002e5a8e002d5a8d +00295788002c5886002f5984002e5a85002e5b86002a5985002857810028577f +002d5a7e00516d84005b758900667e8f007a90a0008ba1b10099b1c300a3c1d3 +00c0d8ec00c3daee00c7ddf100c5dbef00c4d9ed00bbcfe400a8c0d80098b2c8 +0089a1b900667f97005c778f00536f8800415d7500304b6400213d5200183043 +00101e2a00101b26001019230013161f00171921001e1f270027263000322f3d +003c394b00504a6200534e660057526b005a5873005e5e780062617d00636683 +00667091006672930066749500637699005f749a00596e9600536691004a5c8a +0046578700435285003f5186003f518a0040508e00424e8f00404a8e003f4687 +00353a730032376e00303469002c306000292b58002729520025284b00242745 +002326400020253d001f263b0020243b0021233e0022244100242646002b2a4c +002f2f560036395f0041446d0050557e00616790007078a0008186ad009093b8 +009c9ec200a5a4c800a7abcc00aab1d000a9b5d300a7b8d400a7bbd400a9bbd2 +00a4b0cd0098a3c5008992b8007681a9005f6e97004a5f85003e547300354965 +0031405b002e3854002c334f00282e4b00202d4a001b304b0017354f00153b55 +00143e5c0013426200144265001341650012406400103e63000f3c62000d3a60 +000b395d000a3455000a2d4a0009263d00091e3000091725000b111e000e121e +000f182500121c2b00151d2b00161e2a00161e2a00151e2800191c2500181e29 +"/> +<palette number="432" name="040221-90" data="0002000100000001000000010001000200010001000200000003000000040000 +00080401000d090400120e070018140d001f1b1300231f170028241b0028251c +0029261e0026221c00201c16001a17110014120c000f0d08000d0b06000c0904 +000e0c060014110b001b171100242019002d292100322e2500383329003e392f +00403d3100443c2c00413b2b003f3a2a00423c2c00463f2f00494233004c4637 +005c5646005f5a4b00635f5000605d50005e5b50005b574c0058544900514e42 +004a473b003c382f003a352c0038332a003b352b003e382d00433c2e0048412f +0068603d007e734b0094875900ac9f6d00c4b88200c4b98b00c5ba9400bcb488 +00b4ae7e0089845d00857b50008172430084784500877e4800978d5400a69862 +00a8a378009a9571008d876a007a755d00676351005d594600534f3c0046412c +003a371f00242210001f1c0a001a170400181504001614040015120200151201 +00161305001613080017140b0017140c0017150e001814100015111100131110 +0012100f000a08080009090600080b0400080a0400090904000c0d0500131306 +002b261500322e1b003a37210039351f0039341e003a362800312e2200242014 +001c180f0017120a0016120a0016120a0019130a001c190c001e1c1000201c12 +00211d1400211c1300211c1300211b1200211b1100231e0f00262411002b2713 +002d291400322f1f00322e2000322e2100312d2400312c2600322d2700312d25 +0034312300343122003532210035322100353321003533230036332500373225 +003732230037302300362f2200362f2100322c1e002f271a002a251800272216 +0027201400282115002a23170031291c003a33200047412700585233006c653e +007f764c008c835a008b825c008b825e00877e6000756d550067634c00615b47 +00554d3b00534b3b00514a3b00514a3b00524b3a00534c3d0055504000595342 +005b5444005a5446005953450058514500574f4400534d3f0050493b004c4535 +003b37240037322200332e200029251900201c12001a15120017111000150f0e +0015100e00191411001f1b150027221a00302c230038362c00413e340049443a +004c483b004e4a3800504736004e4232004a422d0049412a00463e2900423c28 +003f3c25003b38230036332000312b1a002a25170025211600211c14001e1814 +001d1915001b1813001c1713001d1912001d1a0f001c180c001b180c001a1709 +001813060015100500100d03000c090000090800000506000002030000010300 +0002020000020100000300000004000000040000000400000004000000050000 +00060100000702020008020300090404000b0507000c0508000d0805000d0805 +000c0804000a0901000807000007050000040300000301000003000000020000 +"/> +<palette number="433" name="040221-91" data="0076595a006f555800645153005a4d4e004f4b4a00454a4600404944003b4843 +0029413d00253e3a00213c38001c3b3700183a3600143a3800113b3b00113b3b +00113b3c00113e3f00114043001243470013414600153f4500173e4300193d41 +001d393a001b343300192f2c001728240015211c00151f1a00151e1800131c14 +00111d1500081c1700051b1700031b1700031b1800031c1900031c1900041c1a +000a1e1d000c201e000f22200012272400152c2900182f2c001c3330001f3a38 +0024403f0038525100475a5800566260005c6260006263600064625e0066625d +00685c58005f57530056534f00474a460038413d00303d3900293936001c3432 +0011302e00052624000524210005231f0005231f0006241f000a262200102924 +001e2e2b00263432002e3b3a003c4344004b4b4f00514f5300575458005f595b +00605b5d005b5c5b00575c5a00545d5a00515b58004e5a56004657500040534b +004558510055605a00656963006e6f680078756d008c7f77009c8a8100ab908a +00b6928f00b18d8a00a2858000947d77008b767000826f6a006d615e00555352 +002f3f3b00243935001934300016322f0013312e0011312e0013312e0018312f +0020323000353b3800393d3a003d403c0047433f004e443e0055454000594740 +005a48420057453e0055433b0053413900524038004b3e3400473d3400443e33 +00433f3200414134003f4235003e4437003a483b00364c3d00344e3e00324d3e +002a4a3e0029493c0029483b002a4639002b4538002d4137002e3d340030372f +0031342b002f2e25002d2d25002b2c2600272a2700222828001d2826001a2826 +00192e2e001c3132001f3537002b404300394b4b004c5554005f5f5e00726967 +00877470009f7c7a00a47f7d00aa828000b6868700c3908e00cd969500d29999 +00d9a3a700dba7aa00ddabad00e2b2b500e7b7ba00edbfc100f2c6c700f4cccb +00f4cdcc00eec9c600e8c3c000e0bcb900d8b5af00ceaba500bb9c9600a68883 +0071605b00665853005c514c00484440003a3a3800303433002e343300383938 +00463e400054474a00635053006f5b5e007c6a6b008c737600997a7e00a27d81 +00a37c8000a07f82009a7f8000937c7c008e757500856c6b007d6364006f5b5c +0061535300514c4b0042444400363e3f002a3a3c0021373a001a363900163639 +001437390011383a000d363a000c3439000b3438000c3537000c3637000b3537 +000c3235000d323600123638001c3c3c002a4544003c4d4c004b5455005a5d5d +00696868007b74740091818100a4898b00b38d9100ba8f9400bd8f9400bf8f94 +00ba8c9000b1858800a77b7e00987070008a6565007a5c59006b554f005e4e47 +00564c4300544c43005c4e470062514b006b524e007252500071545200785657 +"/> +<palette number="434" name="040221-92" data="003c2b070037290900322509002e220a00261f09001f1c08001f1c0600201d05 +00231b0400201805001d15070019110900160e0b00130c0b00110a0c0010090d +0010080e000d0610000a06110007061200040611000206100002050f0002050e +0005030900080307000b0306000d040500100604001106030012070200140801 +00180800001f08000023080100270802002b0905002f0b08002f0c0900300e0a +0033130c0031110c002f100d002f0d0f002f0b11002e0a11002e0a11002f0912 +00300b1000350c0c00340b0a00330a0800320807003107060030070400300803 +00360e02003c12020042170200471a02004c1d02004e1e020050200200532404 +005729060067350d006f390e00773d0f007a3c0e007d3b0d00813a0d0080380b +007a390b0072390c006a390d0060340c00572f0b00522b0b004d280c0044240c +00442613004c301c0050331b0054371a0055361a0057351a0055321500533018 +005e331f0063391e0069401e006a411d006c431c00684213005d3f0c00513a09 +00463607003034070029340a0023350d0020340d001e340d0019310c00172c0b +000d2406000a23080007220b0005220d0004220f00052112000a1f1400101e15 +00161f1300252211002724120029261400332c1a003f341f004d3d23005a4826 +007a5c2c0088622b0096692b009b6b2b00a06e2b00ab712c00b3752700b37c2a +00b47e2800ad7a2200a8751f00a3711d009a671a00925a130083500d00754408 +005530060046270400371f0300321b04002d17050024100900200c0d001b071a +001705290011032f000f022e000e022e000b032d000b05270009072500080b30 +000e183700101a3700121c3700172034001c2629002028190021291400222a10 +00242c0f002729100027281000282810002a260d002a210c00271b0900251706 +001d0d02001b0a01001a08000018050000180300001a010000210100002b0100 +00350102003c030200400602004307040041080700420a0b00450d0c004b0f11 +0053191200531c1100531f11004f24100048261100402810003c2b12003b2d15 +003d3115003f381500423f17004943190050441a0053461a0057471e005b481c +005e481a005e4b1c00634e1f006e501e0075501c00774f1e00794d1a00764713 +006b410e005d3a0b0057360800522f05004e2b05004c2803004a260300492404 +004422070041250b0040270f00412b1200423213003c3613003a3c1400394917 +0039571a00375e1d003560200037652500316625002a60250023642800226830 +001a663000135d2e0011563100104b31000e392f000a2e2d000e2a36000f283a +001225390015223800171c31001714290017101f001a0f1a001d111a00221419 +002e1a1a00381e1600371e1500381f1200391f0e0039210b003222080034260a +"/> +<palette number="435" name="040221-93" data="00babb9300d0ceb700d9d7c600e3e0d600e9e7e200efefee00ececea00eae9e7 +00dad8cd00cfccbe00c5c1af00b9b7a200aeae9500a2a58900969c7e00919777 +008c92710079815300727945006c713700686e3200646c2e00636c2e00636c2e +00646f2e0067702b006a7128006a7224006b7321006a721f0069721d0062701c +005d6c1b004e63160048601300425d11003d5b10003959100037591100355a12 +00325617003255190033551b0036561c003a581e003c5a1f003e5d2000425f24 +00466127004d632b004d6128004e6026004b5e2200495d1e00475b1c0045591b +003d5317003b5014003a4d1200374b0e00354a0b0033490900314808002d4807 +002c48070036500e00445a1700536521005a6d290062753200718244007e8d57 +0095a073009da37600a5a77a00a9aa7b00aeae7d00aeae7e00aeae8000acb084 +00adaf8600aba87d00a7a17100a39a65009e965e00999257008e8b4b00858344 +007f7f4000858244008b8648008f884b00938b4e009a9252009f995b00a29c65 +00a5a17000afaf8800b8b79400c1bfa000c6c5a600cccbac00d8d5b900e0ddc4 +00e4e0c900dadac200d0d4bc00c9ceb400c3c8ac00b7bc9b00a8b28c009aa47d +008e976c00707e4c00677744005f703c0051632d0043582200384a1b00303f14 +002a330c002c350a002e380900303b0a00333e0b0038430e003c470f00404911 +00444c12004c5514004e581400505b1500546217005568160054691600526916 +004d6816004c6617004c6418004c6418004c6518004b64160049621400476012 +00435d10003f5410003f521100405012003f4c12003d48120039431100363d11 +00323b1300333b1400353c1500383e17003c431b0040471e00474a23004e512a +00585a3100757240007e7a450088824b0099925900a8a06800b4ac7800bfb589 +00d0c6a500d4c8a900d8cbad00e0d3b700e5d9c000e9dcc600ebdcc600e7d9c4 +00e0d5bf00d9cdb400d3c6a800ccc29f00c8bd9700c3b78b00bdb07d00b5a96f +00a29752009d954d0099934900939146009290470093924a0097964f009e9a55 +00a29c5c00a59f6100a19f62009b9a610094955e008b8f5900838754007c7f51 +0076754e006c6d49005f6042005154390041482f00313e220025361800203012 +001f2e0e001e2c0d001f2b0f00212b1200242e160029341a00323d1e003d4925 +004b562d005c6337006b714900797e5a00858a6b0090947900999c8200a0a486 +00a9a98300b5b18800bfb78e00cabe9600d5c69e00dcc9a300dbc8a100d7c296 +00d4bd8a00cfb67e00cdb07500ccb07100cfb26f00d0b16e00cdb06a00c7ad63 +00bea95b00b5a15300aa9b4e00a29847009b94420096933d00919039008c8d36 +008a8c3400888936008e904400929754009b9f6300a3a77100acb08000b5b98e +"/> +<palette number="436" name="040221-94" data="00758fa0006d849200617b8b00567384004764760038566800325163002d4c5e +00183e560012374e000c3047000c2c41000d293b000f2e400012344500153647 +0018384900273a4500273a4400273a4300253841002436400024343d0024323a +001f232a0018202700121e2500182832001e333f00253a47002c4250003c5261 +004a64750068899d007795a90086a1b5008da5b80095a9bb0094a9bb0093a9bb +0086a0b3007a96a8006f8c9d00627d8d00556e7d004d667600465f6f00395261 +00324b5a0033495600384d5a003e515e00495b6700546571005a6b7800607280 +00748c9d007a90a1008095a5007a91a200758ea000708b9e006b889c00617d90 +00546d7e0035485600283a47001c2d390016253000111e27000a111700040709 +0000000000000000000000000000000000000000000000000000000000000000 +000000000000010300030c0e00071719000c1f2100112729001e3838002b4345 +003c5d6200436a71004b7780004e798300527c8700547b8900557a8b0051798e +00547a91005f81960069889d007490a5007a96aa00819db0008daabc0098b2c4 +00a7bdcf00abc4d500b0cbdb00b0ccdc00b1cede00accddd00a6c5d700a3c0d1 +00a2bece00a1bcca009fb9c7009db7c50098b2c00094afbf0094afc00094b1c3 +009db6c600a3bbca00aac0ce00abc1cf00adc3d100adc3d000adc0cc00afbec9 +00afbec500a4b7c100a0b4be009cb1bc0095aab9008fa8b6008da8b7008aaabb +0090aabb008da4b3008b9eab008497a4007e919e006d7d8a00606c7600545a61 +0047494c00232528001b1c200013141800080f1200071515000e232300193433 +00334d50003a565900425f63005270760063868b0075929900849ca5008fa4af +0099a8b600a6b1be00a8b3bf00abb5c100afbac500b2bcc900b6bfca00b7c1cc +00b8c2cc00b6c2cc00b5c3cd00b2c4cf00adc2d000a8c1cf00a3bacb0097b2c3 +008aa9bb00779baf00638ba20053768c0045617400384f5f002a3e4b001a2f3c +0004101800020b110001060a0001010100000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000010000010200000b0a0002141200021b1d +000323280006232e00072b380009353e0008353e0006343d00062a3500072130 +0007212c00061a210004121600060e10000b0e120011191e0018252d001c3137 +00243f4500314e56003e5f6a004b6d7e004f7a890051828f0052839000508390 +004f7d900048768a00417385003d6e81003b6e7d003c6f7f003d708100417485 +0049778c00557e9000608898006790a0006c96a6006f96aa007294aa007391a6 +007190a5006f90a5007092a8006e92a8007799ae007c9cb1007c9baf007e9cae +"/> +<palette number="437" name="040221-95" data="005773480055734a005a784e005f7e5200668255006e8758006e8558006e8359 +006d875b00708e6000739565007aa16d0082ad760088b67e008fbf87008fc087 +0090c288008ac2850088bf800086bd7c0083ba780080b775007db473007bb171 +00679a5c005c8a4f00527b4300496d360041602a003c5d2700385a24002f541f +00274e1900183f1500143314001128140012251600132218001422190015221a +001428180014291800152a1900162c1b00182e1e001b2f20001e312200253825 +002e3f26003c502a003f572d00435e3000436031004463320044623100456131 +00445c310043593200435633003e503400394a350036473300334432002b3c2c +00243227001a241a001a211a001a1e1b001b1f1c001c211d001e281f00202f22 +00203e1f0021421e0022461e0026491f002a4d20002e522300335826003d652f +004670370055894b005b8b4f00628d5300658c5300698b54006e8c5400728852 +00718753006e8451006b824f00697e4c00677b4a00617443005b693900535d31 +004a552b004152270040562a003f5a2e00405b2f00415c3000425a3200405633 +003d4e35003a4b390037493e0035483e0034473f00324340002d3b40002b343d +00282d3b002421380023203900231f3a00221f3c00231f3e0028243f002f2e43 +00454b5000505d5a005c6f650060776900647f6e006c8c7700769b810080a789 +008ab691009dd0a3009fd6a700a2dcab00a3e2af00a3e6b200a2e5b1009ee2ad +0093d3a00089cb97007fc38f0079be890074ba840068ae76005fa1690056935b +004c844d00376a3700326632002e632e00245b26001e531e001d4d16001d4810 +00213c0a00223b0a00233b0b00253c0c00253e0f00284012002d461400344c17 +003d541b004c672b004f6c2f005371340057773d005b7d43005d82480061884c +00649355006596570066995a0065985d0062935c005c8a5900567f53004e7149 +00446341003c593b00344f38002d42340026382f00203228001a30210015301d +00143d1d00153f2000174223001b4428001f472900234a290029522b00325b2d +003c672f00457237004e794000567d4600597c48005c7a47005f774600627543 +0063764400647a4700637f4b0060864e005c8a5000588d5300588f5400588d53 +00588c5500558c5500538f580051945a004f986100519f660055a56b0059a56f +005ba471005ca472005ca4700058a36c0056a06700549d630052965e004e8d59 +004d8554004e8050004b804e004c824c0050864c00528a5000558d5500578d59 +005d8b5a00628b5e00699061007199650079a36b0081af760087ba81008dc289 +0091c68f0094c5900094c38e0092bc86008fb77f008cb0790086a9750080a572 +007ba5700075a06c0072a16b00709f67006c9b610069935a006587520060834f +"/> +<palette number="438" name="040221-96" data="00b39a4500a58042009b763e00916c3b00906d3e00906e410094714400997548 +00a17e51009c7d5000987d4f00967948009576410096774000987940009a7a40 +009c7b4100a4804000af823800ba843100c88b2c00d6922800da962900df9b2a +00e9b02f00edb73000f2be3100f6c13400fbc53800fbc53900fcc63a00fac93d +00f9cc4100ebc55000ddba5500cfaf5a00ba9e5800a58e56009c865300937e50 +00685e49005551420043443c00343b3b0026333b0020303a001b2e3a0013273c +00141e4100211b45002a204f00332559003a2a6000412f6800463065004c3163 +006b3a52007a474b008a544400925f3a009b6a31009f6e2b00a3722600a6761c +00a576140099701100906a150088651a0085631c0083611e00795c25006e552a +00513f2a0045342a00392a2a00372b2c00362c2e00392e2c003c302b00433629 +004739250049321c004c33190050351700563919005d3d1b006c471e00744d1d +00704f26006d532c006b5833006d5c380070613e00776b44007d734c00807a59 +008382660098937500a0997700a99f7a00aaa07c00aca17e00aca48500aea888 +00b7a78400b9a78400bca88400bba98600baab8900b6ae9100b0ae9700a8a893 +00a2a48e00978e7b00918875008c827000807365006e6257005b5748004f463d +00503a2100573919005e381100623b0f00663f0e006f4612007f511300925c17 +00a4681a00c27a1e00c67d2000cb802200d0842400d4862600d7882600d98926 +00dc8b2600df8d2700e28f2800e38f2800e5902800e6912600e6912700e59027 +00e18e2600da882500d7862300d5852200cc7f2000bf761e00b16d1b00a36617 +009c6113009c6112009d6211009f621300a2671400a26a1800a6721d00b0802b +00bf913900dcb35e00e1b96500e7bf6c00edcb7200f2d67700f7de7800fae680 +00fef09800fef29c00fef4a100fdf7a500f9f3a000f4f09c00f0ee9f00efeca7 +00eeecb400f1f0c500f1f2cc00f0eecc00ece7c100e9ddb200e7d3a300e8cc96 +00eac38200e9be7b00e9ba7400e5af6000e1a44c00dd983a00d88f2e00d58a29 +00d3882900cf852a00ca842c00c0823300b3824000a7814c00a2835300a38459 +00ab875700b38d5700b7956100b79d7300b7aa8600bcb49900c7bea300d8c8a1 +00e9d09f00f4d59900fadd9600f9dc9500f3d99400ecd08d00dfc28c00d5b385 +00d1aa7800cda06800cb995a00ca944900c48a4000bd813f00bc7d3e00bc7e3e +00c2823f00ca8b3d00d0943f00d69d4800d9a65400dcae6100e1b86f00e5c078 +00e7c88600ebd19700e9d7a500e7dbb300e1dbbb00d9d9bc00d0d3b700caceb4 +00c0c6ac00c0c1a300bfb79500c0b08500c1aa7300c5a86500c3a85b00c9ae53 +00d0b14c00dcb44500e8b73d00dca83100ce9d2d00be992e00ae963300a2903a +"/> +<palette number="439" name="040221-97" data="008a631b0095701f008d661d00865d1b00855818008553150084501300834e12 +00784016006b3715005e2e15004c2413003a1b11002c1911001f1811001b1d17 +0017221d000c4e3300095a390006674000066f50000678600007856800089370 +0012a37800128b6f0013746700116860000f5d59000f5a55001057510013443e +001632280019190f0021170a0029160500351b040042200300482402004e2902 +0065370200703802007b390200843602008e330200953102009d300200a53a05 +00a83f0e0091481f00874d22007d5326006f5b2b0061633000576430004d6530 +00375e250036551f00364d1a00484511005b3d0900683b060075390300833902 +00893601008533010085300200862d0300822b03007f290300762504006c2404 +005d1e0300541a03004c1603004817030044190300421b0300411e04003d2105 +003e230300492c04004f340700553d0a00594009005d440900664707006b4c03 +00654d0800574807004a43070041400500393d03002a3602001e2d0400142704 +000d1f04000514000006130000071200000a1200000d13000015160100251a03 +00492a090056340b00643f0e0069410f006e4310007845100080470e00834810 +0082490e006f3c0b00693708006332060053290200462501003a250100302a01 +00213801001d3f080019460f00174c1100165313001a5914001b5f0f001b6011 +001a591600184e19001a4b15001c4811001d3f0b001f37090020300900252f07 +00433e0500554a090068560e006e590e00755d0f007b6310007969120078721a +0081852900989637009594360093923500838430007a842e007c8631008a872e +0098741e00966f1800946b120091660b009066060093640400976404009d6606 +00a4690600b6670400bb690400c06b0400ca6c0900d1740e00d7801500dc801b +00e4882700e58c2900e6902c00e0973300d19c3a00bfa13c00b19b3c00ac993b +00ad903600ad8b3500a28a31009b862c0098832a009a7d2300a5782100ab761f +00ae7a2200ad7b2100ad7c2000ad7f2200b1802300b8842900bd853100c18833 +00c28b3500c18d3400c4913600c4903a00c38f3b00c58e3700c28c3100c08b2a +00bd872700b9822600b77b2300b3701f00ad671a00a65d1400a15912009e5810 +009e5810009e5c12009e601100a2691700a8752000b0812700b88c2f00ba9230 +00b8932c00b38e2d00a6822b0097782900866b2600745d1a0063511100514209 +004039040032310200272a0000202800001d2c00001b3302001d3b0300244006 +002c42080034450a003c490c00404d0f004a4e1100544b14005c471300604210 +005b3f1000563f1200514219004a472100454b26003e4c2700364c2500334d23 +00324f26003d562a0054663600636a35006a6a2c006a63250067551600775c18 +"/> +<palette number="440" name="040221-98" data="00d96f4400e1834a00eb904d00f69d5100f8a35300fba95600faa85500f9a755 +00f29a4e00f0944d00ef8f4c00ef8a4b00ef854a00ef804700f07c4500f17b44 +00f27a4400f2734000f0703f00ee6e3e00ee6b3e00ef693f00ef673f00ef663f +00f45f3d00f85c3c00fc593b00fc593c00fc5a3e00fa5b3e00f85d3f00eb603d +00de5e3c00c6583a00b9513800ad4b3700a2433600973c350095383600943537 +007c2b310076252e0071202b00701925006f1320006f0f1d006f0c1b00730617 +0080031700930517009c0a1900a60f1b00b2181e00be222100c4282300cb2e26 +00e3483000ec543400f5603900f76b3e00fa764300fa7c4500fb834700fb904e +00fc9f5500fcbd6500fcc96d00fdd67600fdda7900fddf7d00fde68400fdea87 +00fded8800fdeb8500fde98200fae57c00f8e17600f4df7300f0dd7000eed46c +00eecb6800eeb86200efb46000f0b05e00f0ad5d00f1ab5c00f6ac5a00f0b059 +00eeb25c00edb36000edb56500edb66800eeb76c00efbc7400f2bf7d00fac488 +00fcce9100fce4a200fceca700fcf5ad00fcf7ae00fcf9af00fdfab000fdf9ae +00fdf5a700fdf1a300fdeda000fceb9e00fcea9d00fce49700fcdc9000fdd289 +00fdc58100fdab6d00fda46700fd9d6200fe8d5900fd805300fe754d00fd6a48 +00fe554200fd4e3e00fd473b00fd443900fd413800fe3d3600fe393500fe3834 +00fe383300fc383300fc383200fc383200fb383300f6393300eb383400df3836 +00c7363700bb343600af323600a92f3500a42d34009c2731009d222a009b1b26 +009a152400980a21009808200098061f0098061e0099071e0097091f00a00d1d +00b6141b00bb151b00c1171b00cd1b1b00da1d1a00e4201900ef241800f32718 +00f62b1800f9311700f9321700f9331800fa361a00fb361c00fc371e00fc3a21 +00f7462500f54a2600f44f2800f3592c00f2612f00f26a3300f3713800f3783d +00f57d4200f8864100f78e4200f69a4100f5a74500f3b24800f3bb4c00f3c24f +00f4c45700f5c35700f7c35800f9c15a00f9c05800fbc45a00fac75c00facb61 +00fad16600fad56d00fad57300fad37800f7cd7d00f6c47f00f7be7d00f7b679 +00f7b07600f7ab7400f7a67300f8a06f00fa996a00fa906400f9855e00f97856 +00f96a4c00f95b4300f94d3b00f73f3500f7313000f6272b00f21f2700ec1925 +00e8142200e6102000e50b1d00e6081c00e6081b00e8081b00e9071900ea0818 +00e8091900e60b1a00e50f1c00e4131c00e5181d00e7211f00eb2d2200ef3925 +00f5462900f9532d00fb613200fc6f3a00fc7a4000fc814500fc864800fc894a +00f9894c00f3874d00e8834e00de804e00d9814e00d8854f00d88a5300d99058 +00da925900de925900e28f5700e18a5400dc815100d8774c00d7704500d76b42 +"/> +<palette number="441" name="040221-99" data="00b04a2200993f1c00913a19008936160089331400893012008b3114008d3317 +008d3d20008e442200904b2500965429009d5d2d00ac663500bb703e00c07341 +00c5764500d37d4d00d1794900d0754600ce6f4200cc6a3e00cb673c00ca643a +00ca693c00ca6c3f00ca6f4300cc744800cf794e00cf7a4f00cf7c5100cf7f50 +00ca855300c2966300c7a37000ccb07d00d4bb8900dcc69600ddc89800decb9b +00d5c59a00cbbf9300c1ba8c00beb88a00bcb78900bcb68600bcb68400bdb27c +00c0ad7800baa16800ae9b6500a396620096915e008a8d5b00878a5900848857 +00808251007f8154007e8058007c815a007a825d0079815c0078815b00717d57 +006d784f006e6f46006c6b43006a68400068673d0067663b00636236005a5b2f +004a4c210045471d0040421a003a3d170034391400303612002c331100242d0c +001b250700131a02001318020014160200161602001816020020170200281802 +00331b0200341b0200351b0300341d0300331f0300382304003e2906004d3008 +00593609007241100075471400784e180077511b0076541f00785a24007a5d26 +00825d2900865928008b5528008d53290090522a0095532b0099522a009b502a +009a4c28008d3a1d0088351a00833018007c2b1400792a14007c2d150082351a +00934929009650310099583a00995d4000996346009c6f4e00a27b5800b08a64 +00c19a6d00e2ab7a00e8ad7c00eeb07f00f6b37f00f9ae7d00f9a97700f6a370 +00ef995f00ee985a00ee975500ee965500ef965500f0945300f0915300ef8e51 +00ea8e4f00e28c4f00df8e5000dc905100d7905400d08e5500ca895400bc8353 +009a6b470090654200875f3e007452360063462f00563e2a004b3827003d3523 +00342f1f00202516001c2313001922110019231000202610002a2c13003a3318 +005e452200654924006d4e27007d572d008c5f32009a643600a9693800b86c3a +00c76f3b00d2703d00db724000e4754300e6744500e7704400e36c4300e0693e +00d25c3000d0592c00ce562900c7512500bf492000b3431f00a9401e00a5411c +009f3f1b009d411900a1451a00a74a1b00aa512100a8572700a95f2e00a96435 +00a76c3a00a9733d00b27b4300bd864a00c4905000c9995600cd9c5b00c89e5e +00bf9b5d00b5965c00ad905700a58a5000a0864d009d804500977b40008e743c +0084703a007a6c3b00746a3a0070693d006c6a3c0067683a0060643900596236 +00506236004d6135004f603600536134005b613200655f33006d5b310070572f +0072532c00774c2a007a47250080441f0088401b00913d1b00973c1c009a4122 +009f472b00a14a3100a2503400a2533300a4543300a7543100a7593100a86135 +00aa663900ad6f4000b0713e00b46f3c00b9693600bc612f00ba592900b94e21 +"/> +<palette number="442" name="040222" data="005c6e69006a656000685f5b0066595600625454005e5053005e5253005f5454 +006f6660007d746a008b83750093907f009b9e8900a5a99500b0b5a200b5baa7 +00bbbfad00c9c4b900c5bcb200c1b4ab00bbaca200b6a49900b5a29500b5a192 +00b0908100ae887700ad816e00ac7e6800ab7b6200ab7a5f00ab7a5d00a97a5c +00a9775e00a67360009f6b5d0099635a008b5951007d504800754b42006e463d +0053332b004a2c2500422520003c241e0037231d0034231d0032241d0031271e +002f2f2000334124003d4c2a004858300056633c00656e48006a794f00708557 +007e935d0086915d008e905d0090875d00937f5d00907d5c008e7b5c00847155 +0079674d00604e370052422d00453623003f301e003a2a19002f221500261f11 +0017231300142416001125190014271f00172a25001a2b2c001e2c3400243b40 +002c474a0034585c0036566100385567003755690037556b003b586b00425969 +0053625d005c625900666356006a6455006e6555007762550083655100906b4f +00a0755400b78b6200ba916a00be977300be987400be9a7600c19d7500c2a175 +00c0a27600b8997200b0906e00ac896900a8836500a17b5d009970540091664f +00895c480077443c0074403900713d37006f3932006d3832006b3a31006a3d30 +0067402c00673f2d00683f2e00673f2f006640300062423200634637005f4d37 +005f503b00675f480067634b0068684f006d6f5600727a5a00737d5d00788062 +00888a7000948f7600a1947d00a4968000a7998300ab9b8700ad9a8800ad9585 +00ac908400b5877c00b6887a00b7897900b88d7800b68e7100b18d6a00ad8862 +00a5755000a1734e009e714c00986b49008f664400876343007c5e4200765641 +006f4f4200593e3e00543b3c004f383a0041333700362e3400322a36002e2836 +002a25320028242f0027232c00222323002220210021211f0024221f00242321 +002423210025271f0027252000282822002e312a00353b340041463b00515543 +006f61490075644a007c674c00836b4f008e6d500098725100a6735700ae7454 +00b0735500a96f4f00a06a4d0093664a008f644e008d6856008e7066008a7a70 +00838377007a867a0077867a0077877a007e878100898b89008e8f8e0092938d +00949386009593780096906b0099886200967f5d00947b59009277540096754e +009b764b00a2744c00a7745000a7735900a5736800aa7a7300b2857e00be8e8e +00ce9c9c00d6a5a600d6a8b300d3a7b600c9a7ad00bb9ea400b0979c00a38d8f +00978184008d6f7b00805e6f00754e62006f4558006b4053006c465300715258 +00795f6400837172008c7f80008e8a89008e9195008c999b00849da0007fa7a3 +007daca60080afa4007bafa20079a398006f938e0065858200597876005d6e6d +"/> +<palette number="443" name="040222-00" data="005e5d4d005566410055644300566245006369480070714b0074754f00797954 +008f7c4c00987e4b00a2814a00b08b5200bf955b00cb956300d7966b00da986d +00de9a7000dd997d00d78b7300d17d6a00c06f5c00b0624e00ad5e4a00aa5a46 +009e5b2a009f642400a16e1e00a27f2100a4902500a8932600ac962800b1902d +00b18d3700a79b5700a19a60009b996a008d986b007f986d0078966b0072946a +00637d5c0063665300634f4b006439440066243d00651d390064163600641132 +0064173000582b36004a2e3f003c3148003c3655003d3b62003f3a6900423a70 +00513e7d005c437f006749810078517a008a5a7300905d6d00976167009b615c +00985f5700865949007648420067373c0061333a005b303800522b36004c1d33 +0049043b00510340005a03460065074900710b4c0074124f00771a5300862755 +00a1374b00be673600c8763800d2863a00d8873c00de893f00e8933f00e48d3d +00dd6c4400d45a4200cc484100c83f4100c4364100b42d3b00ac273800a6253a +00ac264200af373d00b1403500b34a2d00af4e2b00ac532900a0512500984e21 +008b3c250081302e0077253800741d3c00721641006e0d4c00670d51005f1852 +00512148002d2638002a2d3400273530002d4120003a3b1b004c3011005d330e +00874609009b4a0800af4e0800ab500a00a7520d00985c13008f651900886a1d +00796925006a5c40006d564300715146007549450079494300804b47008b4e4c +009c6354009e755d00a1876700a08a6c009f8e7200a5908300ac938c00b09992 +00b1958d00b88e9200bb979300bea19500c8aa8d00d0a98100dd9c7a00e09f73 +00ea995500ee8f5000f3864b00f5834900f68a4700f6974900f2985000ef985b +00ec926200e7816400e07b6700da756a00c66d6d00b66b6900ac7364009d7c69 +00859f870086ab8c0088b792008bc18f0086c5910081c18d0083bc920084b288 +007dad800076a47600759e750072916d006d8c6a0063856a005f7d6e00566969 +003e4f5f0039485f0035425f002e2f58002f2046002e2035002c2931002e3236 +003f3d3600544c29005b5f1f005b671b00646e21007d661f00925d1a009a4d0c +008b450f00773917006d2f2400712b2400723131006a384300694056006f4d5a +00825a62008e6666009b746e00a5867100b1977500b8a97100bcb56900bfba64 +00c7b55800cfaf4a00cfa23800c38e3200b6762700a5691e009762130088611d +0079612a006a6b2f005f7327005a722400516c30004c713500507e370058872c +00598e2c005a923200619c47006ca5560070b65d0070b960006bb4680066a870 +005ea27500589c6e00599b68005d9b6200629c6100679e5b00709e5300779851 +007f8c550081855900867f5a0084755a00886b5900786755006c6654005a5f52 +"/> +<palette number="444" name="040222-01" data="00365e31002b5e2b00295d3200275d3a00265f3d002661410025623f0024633e +0019584500154e490011444d00103f42000f3a38000f3630000f3229000e2e28 +000e2b28000f212c0010212c0012222c0014282d00162e2e00183230001b3733 +00234338002344390023463b0023493d00244d4000264e4100294f42002a4d4a +002c494c002b465f0030496a00354c750044577b00536381005d6b870067738e +009298ae00a3a9b800b5bac300c8c9c800dcd8ce00dfdbce00e3dece00dbddc4 +00c9d6b100a1bf88008baa7000769659005c85450042743200396e2b00316925 +0021501b001d4618001a3c16001836130017311100182f1100192e11001a2c11 +001c2c1100213b150027451a002d50200030542200345824003c5f2b00456530 +004d6f4000496a490046665300425c58003e525d003b4e6100394b650032466d +002a4578002444830023418000223e7d00223e7800233e740024436a0026485f +002647480025453c002544300025462c00254928002751260028532d002a5238 +002e52440034595f00385d71003c62830041658b00466993005270a900607cb4 +007a91c800869aca0093a4cd0097a6cb009ba9c9009eabcb009ca9d10095a3cd +008f9dcd00798ab6007488b1006f86ac005f83a100557f95004d7d8600477175 +00416761003d645b0039625600375e5400365a53003351550031495e002f4567 +002f44700036477c00374a7f00394e82003b5387003b568d0039568d00385491 +0036539600315094002c4d9300294a8f0027488b0024418400223b79001f376b +001c335c00192d3d00192b37001929320019292700192b1f00192f1900193514 +001538200015392600153b2d00163b3d00163d48001740530017425a00194362 +001b47690026566900285b66002b6064003267610037745e003e815c00458f5a +004e9b6900509a6d005299720056957d00578f8400568d870056868d0057848b +005a8184005b807d005882730058846f00568d6a0057966100569c5800509e51 +00468e5600448a590042865c003d7a5b00367053002e65480029584100254d3f +00223f440021394500203845001e3845001c3c4000193b4600173c4c001b4453 +00214d5900275956002a6451002a694c002d6c43002f6e3c00336d330034692b +00326125002f551e0029491700243c11001e2f0c0019240900151c0600131904 +0012190300111c0300111d0300122004001324070015280a0017300e001a3812 +001f411600244b1a0028511e002a5520002a5820002a591f0029591c00275619 +0022511600204c15001f4914001f481600204b1600214f190026571f002e6225 +003a712f0045843700508e400059964f005c975f0064976f006d9b780070977b +0072907a006a8378005b727400566a6f004d616200495b5400455b46003a5736 +"/> +<palette number="445" name="040222-02" data="008c6dcc007565cb006d64d0006663d500625dd2005f58d0006559cd006b5acb +008568ce009674d900a780e500b888f000ca90fc00d892fc00e695fd00eb95fd +00f096fe00f799fe00f096fe00e994fe00da8dfc00cc86fa00c380f400ba7aef +009762cf008456bc00724aaa0060419c004f398f00453487003b2f7f002b276e +001d1f5b00080e350005092a0002042000020422000205240004082b00060c33 +00101c520014236100182b7000172a7000162a7100152a7100152a7200152a72 +00152a7200182d760015296c00132563000e1d52000a15410008113900060d31 +0001031a00000218000001160000031b000106210003092900050d31000b1543 +00111d55001d2b76001e2f7e00203386002034880021358a0021368b0020368b +0023378e00253a9500273d9d002d3ea000333fa400363ea400393ea4003f3ca3 +00473aa1005a41b0006c4bc1007f55d3008a59db00955ee400a867f100ba6cfb +00d072fe00d674fe00dd76fe00de77fe00e078fe00df79fe00db79fe00d077fb +00bf74f2009c63d4008958c100774eaf006e49a60066449e00533c9000413480 +0020235d00151a4a000a113700070d2f00050a280002041d0001011700000015 +00000014000000140000001500000016000100180001021c0003052300070c34 +00181c590023236b002f2b7e00342e85003a318c00443596004c3ca7005343b8 +00574ac8005850d400584fd300584fd200554cc8005449c2005349c200544bc9 +00524dcd004a4bc800434ac3003e46ba003943b200313ea4002d3a9b002c3796 +002f3491002f3189002d2e81002b2b7a0022256900171d56000d154200070d2f +0001031500010212000101100001010e0000000c0001000c0001010e00010110 +0002041600080f2e000a1236000c163f00121d5100182563001b2b72001e307d +001d3180001c3180001b3181001c3181001d3081001d2f7f001d2f7c001a296e +00162360000f1b4e000a143d00050c2e000205220000021c0000001700000016 +00000015000000150000001600000017000000180000001a0000001b0000011c +0000011d0000011e0000021e0000021e0000021e0000021f0000022000000323 +0001062800030a330009124300121a55001e2367002b2c780036338700403895 +00443da1004543ae004547b7004649bc00474cc000494fc2004f52c8005153ca +005155ce004c55d2004753d1004152ce003c4ec7003b4ec6003c4fc8003f52cd +004256d7004257d7004055d4003c4ec6003747b8003340a9002f3b9e002c3a9c +002a3b9b002b3d9e002f3e9f00373f9f00443f9e0053409f006043a2006a49ad +007451be007d5bd0008664e100956bef00a871fb00bb77fe00ca7afe00d37efe +00d883fe00d88afe00c887fc00ba83fa00af81f700a37aed009772e0008b69d3 +"/> +<palette number="446" name="040222-03" data="006c3d7400652a7c0063257b0062207a005e207a005b217a005a217900592179 +00602d8a00673395006f3aa1007242a500764baa007252a6006f59a2006c5b9e +006a5d9a0061638a005e5f84005c5c7e0057577800535373004f5170004c506d +003e475e003940550035394d0034334500332d3d00342b3a00362a38003d2b38 +0046303e005d4452006b505f00795d6d008568780091738300977788009e7b8d +00b68fa200c197ab00cca0b500d1a4ba00d6a8c000d5a9c100d5abc300d3acc4 +00d0acc200c7a9bd00c1a5b800bba1b300b098ab00a68fa400a08aa0009b869d +008e75900089728e0085708d007e6e8c00776c8b00746a8a0071698a006b6589 +006464870060577e005f557b005f5379005e5276005d5173005a4d6e00564c6c +004c4a65004a46600049435c004b435a004e4459004f43570051435600554455 +0059445400624b5900624c5d00624d6100614f62006151630060526400615263 +00695262006d5562007159620071596300715a6500705c66006f5e6700705d66 +00735b66007a5664007c5663007f5662007e5662007d56630079576300725661 +006e535f006e505d006e4d5b006d4b5b006d4a5b006c465c0068426000613d65 +005e396a005f30780062317b0066327e006f3886007e408f008b4899009752a3 +00ab68bb00b572c700bf7cd300c280d500c685d800d18fdc00d898df00df9edd +00e1a2d900dfa8ce00dda9cc00dbaaca00d5a8c400cea6bd00c8a2b700c19cb1 +00af84a100a57995009c6e8a009769840092647f00875a74007c536900714e5e +00644a55004d394a0049384900453748003f3545003f34440040354400433847 +0049415200494154004a4156004a435d00494863004b4b69004c4e6d00515271 +00575775006a5985006e57880073558b00795390007d5097007e4b9b007f459f +00813fa000813da200813ca400863aa9008c3cad009343b100984ab4009e50ba +00a359c000a85fc500a667c700a66ac800a66ec900a876ca00aa7ec700ad89c4 +00b79ec600b8a2c600baa7c600c0a9c700c4a7c700c6a5c700c7a0c500c89dc1 +00ca9cbf00ce99c000cf96bf00cf91c200d28cc600d586c800d77ec700d576c6 +00d470c600d26ac400d166bf00cb61b900c35db900bb5cb900b45ab800a959b5 +009d58b4009057ae008655a2007e539300724f8800684c7c00604a7200574967 +005048630046475f003e445b0039415300363c4c00353945003535410035323c +0037313900383039003b313a003d323b0041343f00473944004e404c00574755 +00604f5c006a54650074596d007d5c72008660770091647b009b688100a66f88 +00b1778f00bc7f9800c386a000c688a400c689a500c286a200bf819d00b77b97 +00b0778f00a9728600a16d8000996678008f617500835974007a517100704570 +"/> +<palette number="447" name="040222-05" data="00619a8a003c776d003b756d003a736d00417c7200498578004e8b7b0053927e +0068a68e006fad930077b598007ab79d007dbaa20080bda50083c0a80084c1a8 +0085c3a9008ec6b20095cab5009dcfb800a2d0b600a8d1b400abd3b400afd5b5 +009ebfa40094b29b008aa5930076998b00638d8300618b81005f8980005c8883 +005f887e005e8b7b005b847500587e6f004c7c6c00417a69003d756600397064 +00326a61002f685e002d665b002b665900296657002865550027655400276354 +00286555002d675b00316b6300356f6b003a7470003f7a7600417d780044807b +0049867d004a877d004c887d004884790045807500417d73003e7a71003a756e +0037706900377269003e766c00457b6f004a7d74004f7f790059847f005d8a83 +0067939100679b950068a399006ca89a0071ad9c0071ae9d0072b09e0077b39f +007cb8a20084c1aa008ec7b10098ceb8009cd0ba00a1d3bd00a9d7bf00b0dbc5 +00bcdccb00bfddcd00c2ded000bfdccf00bcdace00b8dacd00aed2c40097c5b8 +007db6ad0057928d0048827f003a737100356f6c00316b68002c665f002b6459 +002b6a560030705a0035775e00377b5f00397f600040866500458b6c0046906c +00468d6d00488671004b8370004e806f00547b6d0058776e0062796d00687d69 +0065876e00608a6f005b8d7000588e710055907300509277004e91790051927d +00549282006089800061887f0063877e005780780050786d004b7164003c6c5e +002c685b00306c5e0034716100377465003a7769003f7f6f004788730050917b +00559782005fa0890061a28b0063a48d0065a4910065a6900063a38d005e9d89 +004e8b7b0049867800448276003f7a73003d7872003e7b750046837c004f8c82 +005694870063a28f0064a38e0065a58d0063a58b005fa18500589b7f00519479 +003e7c67003a77630036735f00306a59002a625400255f4f00235e4c00245e4e +00255e51002a645800336f61003c7a6d0049877a005898860068a791007ab49a +0098c7a50099c8a5009bcaa5009acaa70098c8a5008fc4a00083bfa2007dbba4 +007bbaa2007bbaa30079b7a50076b5a20073b49d0071b397006bae920064a98e +0062a889005da38300559a800051947c004d8c790046827600417c7300417a74 +00427b7600447f76004b887a0051927f00579983005fa1870064a78d0067aa91 +006dae940072b2980074b59a0079b99a007fbe9a0082c29c0086c69d008dcaa0 +0099cda40098cca80094cbae0099caaf0095c7ae008bc4ae0087c2ab0086c0a8 +0082bfa5007ebca2007cba9f0079b69b0073b3980071b0970070ae96006faf94 +0071b0970074b19a0074b39a0073b39d0073b09c0070aa98006ca196006d978f +00708f86006e8988006f908c0079998e007e9f96007caea00070ae980065a08c +"/> +<palette number="448" name="040222-06" data="0065000000600001005e0001005c00010056000000500000004e0000004d0000 +004a00000047000000440000003d00020037000400320002002e0100002e0000 +002e0000003b0000004d0000006001000072000000840000008a000000900000 +009c0000009904070096090f00880407007a000000720000006a000000620000 +005c0100004f0000005200000056000100570000005901000055010000520100 +0046020100400100003a00000038000000370000003700000037000000380001 +003a0001004400010045000200470004003e00030035010300300103002c0204 +001106040009050200020400000302000004000000070000000b0000001e0000 +00270000002e0000003200000036000000380000003b010000430804004a0f15 +00350b0f0032050a00300005002f0104002e0203002d0101002d0100002f0200 +003401000048040300511313005a222300671b1a00741511007a18170086050a +008c000100840000007d000000790000007500000067000000610000005b0100 +005301050049010400400105003801060035020500320404002f0103002c0001 +0031010100350001003a0001003e0001004200010048000100500100005a0201 +005d0000005f0100005d0201005b030200570301004f010100450100003a0000 +002f0000002c0000002a0001002901010028020100270001001f0000000d0000 +0007000000000100000001000000010000000102000001050006000400160000 +003b0002005602020071050300790b080082120e009a201d00a3080c00ad040b +00b7071100bb020000b4050100ae09030097030100880000007b0100006a0000 +004a000100430000003d000000340000002e0000002d0000002d0000002d0000 +002c0000002c0001002a0001002901020029010100290000002c0000002d0000 +003500020037000200390102003e000100450001004b01020050000100550101 +005900000059000000510000004e000000490102004302000038000100300000 +0021000000180000000f000000070000000100040004000400080000000f0000 +0021000000280000002b0000002d00010032000100360000003a000000410100 +004400000046000000470000004700000047010100480001004a0000004a0000 +004b0000004f000000550000005d000000640000006c000000780f0900771719 +00611311005a050c00500b0e004b030600500001005b00000067000000730101 +008901010094000000ab020000ad000000ba010000c3010100df0d0c00ea0b0c +00ec000000d7000000d5000000c2000000b6000100a8000000970102008a0000 +0085000100800000007b0000007a02010076000000720004006d000300670001 +00640300006303040061010200610000006600000067000000720200006c0000 +"/> +<palette number="449" name="040222-07" data="005b314300512d3e004d293a004a25360048213200471e2f00471b2d0048182c +005315310054173300561a3500591e3b005d234100662a490070325100773556 +007f385b00a0497300ab547e00b7608a00bd6b9300c3769c00c3799d00c37c9f +00b97b9a00af739100a66b88009a647d008e5d7200875a6d008157680074515d +006549530047373900392c2d002b212200251b1e0020151a0020161a0021181b +0033232d00422b3d0052344d00613d590070466600784c6c0080527300906484 +009b729100b78ca900c193b500cb9bc200ce9bc200d29bc200d29cc100d39dc1 +00ca96b800c590af00c18aa600c181a400c278a300c0729f00be6d9b00b96692 +00b2618a009f5075009344680088385c0086335800842f54007d284f00772248 +006a203d005d1f3300511e2a004418200037131600310f12002c0c0e00220608 +001b01040013000000100000000e0000000d0000000d0000000b000000080000 +0004000000020000000100000000000000000000000000000001000000020000 +0003000000050000000500000006000000060000000600000006000000070000 +000b0101000e0104001201070013000700150008001701080017010800160209 +0014020800110206001102060011030700110208001102090012020900110309 +000c030500080303000403010003030000020300000002000000010000000100 +000102000005020100070202000a0203000f03050017070a001f0c1100281219 +003e1f2b004c2234005a253d00622640006a2744007927430081274600882a4a +008a2d4d0085324e0082304d00802e4c007b2e4f007829450071203d00681a35 +005112240049101f00410f1b00310a1300220813001b08100018090e001a0b0e +0020101300351f24003c22290044262f00532d3c0060344a006e3b58007e4263 +00985579009f5b7f00a6618500b46f8f00c17a9800c982a300cf89ac00d18aaf +00ce8ab000c787ab00bb82a400ae7c98009f768900906c7b00836670007a5f66 +0070545e006e515d006d4f5d00694b5a0065495700614854005c45510059434c +00594248005c41480062444c006a495100754f5900825963008d606e00956977 +009c707a009f737c009f747c009e747c009d747900a0767b00a5787f00ab7d84 +00b3848c00ba879300bf8b9600bf8c9800bb8a9400b7869100b37f8c00ae7886 +00a9738300a66c8000a2687c009c647700965e6f008e566800864c5f00804257 +00793b5200783450007b2d56007c295d00832565008a216e00922578009a297f +00a02c8500a6318700ab338c00ae379000b13b9300b4399800b33b9a00b13c9a +00aa3c9600a23c8d00983d82008e3e770083426a0078415f006e3e5600693f51 +00633f4c005b3e4500543a410052383f0053353d0054353d0053323c0056303f +"/> +<palette number="450" name="040222-08" data="003f4b8a004444910043408e00433c8b004236850042307f00412d7c00412b7a +00432b7b004331820044378900433c8c0042418f0040428b003e4488003c4284 +003a418000353c6d00343c6b00343d6a00353d6d00373d7100393e75003b3f79 +00433a8a0048358f004e319500522c990056279d0059259d005c249e005f219c +0061229c00622da3005f35a7005d3dac005945b100554db6005550b7005554b9 +00545ab000555aaa00575ba500585ea5005a61a5005b63a6005c66a7005b6cab +005c6fb3006075c2006470c600696cca006e68d1007464d8007763db007a62de +007f67e3007c6de5007973e8007374e3006d75de006972d800656fd3005d69c8 +005661bf004c56a60048529d00444f9500434e9200434d9000424e9000404d90 +00404995004446980048439b00503f9c00593b9d005d399e006238a0006a3da8 +007243b3008654cc008c5dd8009266e4009469e800966dec009972ec009871e6 +00916dd3008c6ac7008768bc008466b6008164b0007561a4006b5e9b00645a90 +005b5283004b3c6a0045325d003f2950003c254b003a21460035193c00311334 +002d0b2a002e082b0030062d00310530003305330039063e0040084c00460b5b +004c0d690054128100551284005613880058138b0058128c0058128c0058128c +0057128b0053148b004f178b004c188a004a1a8900451b8300401c7b003a1c71 +00341c6700291c5100261e4e0024214b00202648001c2c48001a3047001a3347 +001b394c001d394f001f3a5200213a5300243b55002a3d59002e406100354368 +003d4671004f4f81005153850054588a00545e910055639600566a9b00596ba1 +005f6fb300626db800656bbe006b68c6007067ce007266d5007167d6006c6cd4 +006b6cd100696bcd006969cc006a67cc006d62ca00715dcb007656cc007850c9 +006e49b8006b48b2006947ad006345a1005d41930058408500513f7b004c3d74 +00483d6f00433b6b003d37660038336100332e5d00302857002b235100261d4c +001a163f0018153c00161539001313330011123000100f2d00110d2c00130d2c +00160a2e001a0a30001d093200200a3600230b3800260e3a0029103b002a133d +002b193e002b1e40002d2043002e2243002d2444002e2547002e294b00322e52 +0033355b003642680035517400375e8200376b8c003579940031829b002c899e +002a8ea000288fa1002992a4002898a7002a9eae002ca4b5002eabbc0031aec0 +0033b0c40037adc4003ca9c30041a1c5004498c5004991c3004d8ac0004f86bb +005180b6005180b5005080b4005183b3005184b3005083b7005082b8005181ba +005180b900527db500507bb2004c79ad00487da8004283a3003d87a100378aa1 +00328ca1002e899e002c8397002c7990002f6c890032618400355883003a5085 +"/> +<palette number="451" name="040222-09" data="008168410058443a00422e32002c192a00230d25001a0120001b011f001d011e +0029001700310012003a010e0043010a004c010600530405005b0705005f0a07 +00630e09008023100091331400a2431800ad551d00b8672300bb6d2600be732a +00ce792800cd762400cc742100bf6f1f00b36a1d00ab631b00a35c1900954b13 +0087380c0067160100580e000049070000420403003b0106003901080038020b +003e0a1300491116005419190064201c00742820007b2a2000832d2100903623 +009d412200b3532b00b5563600b85a4100ae5c4d00a55e59009f5d5a009a5c5b +008e57600080536d0072507a005c4f8f00474ea400404ea9003a4faf00364eb4 +00354db2003458c0002c60d0002468e1002268e7002069ed001b66f2001862ed +001c53d6001c4ccb001d45c000203eb3002437a7002b339e00322f9500442c80 +00542f690073384800803c3c008d403100923e2b00983c25009e3b19009f3b15 +008c3814007a2f190068261e005e202200541a2600400e32002c0944001e0a5b +0012117100051f99000325a700012bb500012bbb00012bc100022cc900022acb +000227bc000125ae000123a100011f9b00021c950002148b00020c8200030474 +000603640015094800190944001d09400022093f002308400025073d0024083b +002e0a27003209210036081b00390719003c0617003f06150046081600510d17 +0060131600771d11007b1f0e0080210c008922070090220700982506009d2707 +009c250600941f04008c19020087160100831300007b0e0000770b0000710800 +006b050000630101006200010062000100660101006c0300006f050000720b01 +007f170100851b01008b1f01009a270100a82f0100b63b0300c2470500c85008 +00cc590b00ca5c1500c85c1600c75c1800c55d1c00c1581e00b7531d00a94920 +00833124007c2d26007529280070262b0072272a00772a280083332800893a27 +00924127009a4a2700a5512700ae542300b8592000b9581c00b9561700b25113 +009f400a009c3c0800993906008e3107008428090077220c00691b13005c151c +00511323004a132900471332004b163600501a390058203b0060243a00672935 +006f2f32007c362c008c3f26009f4a2000b3511800c3561000cc580900cd5403 +00c84e0100bb480800ae4214009f3e20008e382f007e2f39006b263e00561c41 +0042124600340e4b0025105900201767001c1d7800162487000f2691000c2290 +00041b8f00071a85000e187f00191f7c00282b7d003d347700503d7100634962 +00765053008b5d43009f6d3800b5782f00cb852900df922500ed992300f69f23 +00f8a12300f59b2300ec8f2000e3821d00dc771900db711700da711700de751d +00df7c1f00dd822800da8c2f00c67e2f00b1743000a16c350091653400805c38 +"/> +<palette number="452" name="040222-10" data="0069613c00383423002d251c0023161500301a13003d1e1200411f1100462110 +004c1d0e004a1e0f00481f1000412412003b2914002d28180020281c0019281d +0012281f00052922000427200004261e0003211a00031d1600041a1400061812 +001a110c00270e0800350b0500440c0600530d0700590d08005f0d0900670c09 +0062090600590c09004e0c0b00430d0d00310c0d001f0b0e00190c0e00130e0f +00161c17001f241a00292d1d002e37200034422400374725003b4c27003d502a +003b4f2b00324b28002949280021472800173d27000d34260009302500062c24 +000328200002261f0002251f0003251f0004251f0006261d0009271c00152b1c +0024311d004e462a005f573700706944007a734900847e4f00938f4e009e9948 +008b9452007c9055006d8c58005a814a0047773d003e6e3c0036663b002b553e +002a4c45004253460052574800635b4a0068584a006d564b00765b4a00855d45 +009d5837009b513300994b2f0097492e0095472d0098462f009f493000a64d33 +00ae5c3500b27b3e00ac793f00a6784100a1773e009d763c008a733e00797939 +005b602d00544a24004e341b00462f18003e2a16002e201400251b11002b170f +003e160c00521a0e00531c0f00541f10005322140059251500642b1400642d17 +00572c19004b2816003f24130037211200301e110021180e0013140d00080f0c +00030e090001100a0001110b0002130d0003181100041c140005221800052920 +000f393d001e4855002d586e0036637a00406f8600547f9600668ea5007797b5 +007f99bf00839bc2008198b9007f96b10076899d00677181004a5c6800364451 +0019282e0015232800111f2200091b1900061915000c181500171c1600232218 +002f291c0040372200483a2300503e24005e4726006d4c2a007150290071512a +00754e2600784d26007c4c2700824826008545250087432500883f2400843b28 +00823c30007d3f3a00794345007b505800745c6c006f6c78006b8181005f8579 +004c847300457f6e003f7a6a003d7b6600357354002b693c001f552e000f3c1f +00082b1900082116000e2014001a231400242917002f3d20003e4b31004d5e45 +00606c5a007173660086836a0099876e00a78f7400af8d7900a7807700a47369 +00965d5600894d4500793d39005f3330004c2c290035232400231e2100121a22 +00071a2200021d2000011f1f0001231e0002251f0004271f0005272000042821 +00042721000526200005251e0006221c00061f1a00041d1900041b1900041b18 +00041a1900041a1800041b1800031d1a0005201d000c272400152f2f00223f43 +0038555d004f6d75006c868c0086989e009babb200b3c0c900c6d6dd00d7e7e4 +00e6f0df00ebeacf00e5debb00e2cea900c0b08e00a09b77008a825f00686c4a +"/> +<palette number="453" name="040222-11" data="00cbac7b00d1b38100d5b78300d9bb8600dbbc8700debe8900debd8900debd89 +00d1af7c00c9a77400c19f6d00b9966400b18d5b00aa845400a37c4e009f774a +009c7347008f643b00895e36008359310080562e007d542b007c532b007c532b +007b532c007b532c007b532c0079512a0077502900764f2800754f2700714c23 +006d4a210069461f0067441f0066431f0064421f0063411f0062401e00623f1d +005f3d1b005e3c1b005d3c1c005c3c1d005b3c1e005a3b1f005a3b2000593920 +0056361c004f2e16004b2a140047261200422210003e1f0f003c1e0f003a1d10 +0031190e002e160b002b13090028100700250e0600230c0500210b05001c0904 +0019090400160a0400180b05001a0d06001c0f07001e11080020130a0021130a +0020130b0020130a002013090024150900291809002c1a0a00301d0b0036210f +003d27140047311d0048321e004a341f004a351f004b361f004b361f004b351f +004f38210051392200533b2300533b2300543c2400553c2300533b220050381f +004e351d004a3218004d3318005034190054361a0058381b00614121006a4a29 +0080603b00896b440093764e00977b52009c805600a5885c00ad906200b39768 +00b59a6d00b69c7000b59b7000b49b7000af976e00aa936a00a58f6500a28960 +00977c540091744d008b6d470087684300836340007d5c3a0076563500725230 +006e4e2d006b492a00694829006848290064442700614125005c3d2200563820 +00452b17003d25130035201000311c0e002e190d002814090024110700220f06 +00210f060025130a0027150c002a170e00301d1200372216003e291a0047311f +0060472d00674d31006e5335007c603e00896c470095764d009d7c5100a07e52 +00a07e500098774a0094754900917348008a6f4600836b44007b644100725c3c +005d4a310058452d0054402a004d38240049342100493422004c382500543e29 +005c452e00634a32006b503400735435007a583600805b3600845f38008a6238 +008e6536008d6435008c6334008a613200855d300080572c007a532a00775128 +007650280077512a007a562f00805b350086643e008e6e490097785400a08460 +00a98f6a00b1967100b89e7600bea17900c0a37a00c2a57c00c2a57d00c0a57d +00bfa57d00bba27a00b79d7500b3966f00ae8e6700a8856000a27f58009d7750 +009b734b0099704700966e4500956c4200946a3f0093683d0094683c0094693c +00976b3e009d704100a4784700ab804f00b1885700b6906000bb976900bf9f72 +00c2a67d00c9ae8600d1b88f00dac29a00e3cca400ead7ae00f1dfb600f6e6bc +00f8e9bf00f8e9bf00f6e6bc00f2e1b500edd9ad00e6d1a300dfc89900d7bf8f +00cfb68600ceb28100cdaf7e00cdae7b00ccab7900ccab7900ceac7a00cead7c +"/> +<palette number="454" name="040222-12" data="003d3f37002b343300253232001f303200223235002535380027373a002a393c +003b423f0041413d0047413b004a4139004d4138004f41390051413a0052423a +0054433a0058483e0057483e0057493f0057493e00574a3e0058493d0059493d +00694c3500735135007e573600845b39008a603c008862400087644400846c4e +008371550086765c008b785d00917b5e0092795d0094785c0090775d008d765f +007a705f00726a5c006b6559006c6253006e5f4d006f5d4b00705c4900715b48 +00715e4d006c6d5c006772630063786b005f7b6e005c7f7100597f7200578074 +0045817e003d84850035878c002f8b94002a8f9c00298f9c0028909d00288c99 +002886920021727c002069710020606700215d6300225b600022585c00245558 +0029525300294c4b002946440028403d00283a3700273834002736320028332f +002a322e002f3330003034310031363200313632003236330034363200383730 +0044382c004b38290053392600563a2500593b25005f3e2500643f2400694123 +006a42220068431f00643f1c00613c19005e3b18005c3a180057381800553718 +005137190050361900503519004f3318004e3217004a301500452d1400402a12 +003d2711003d2412003e24120040251200442712004a28130051281200552912 +00542d16004f311f004b3628004a3a2d00493f3300464a42004a564f00565f57 +0063695c007a7662007a7966007a7c6a0079837300758c7d006e9387006e948c +0077978a007e908100858a780087877400898471008a826d00867f6a00837965 +0083756000926f4f00976c49009d6a4400a5663c00a8663a00a8673c00a5693f +00a07653009e7a59009c7f5f0099866600978d6d00919375008a977c0081957e +0074917f0058878200518481004b818100407a7d00357578002c71750026676b +001c5052001a4b4c0018464700163c3e0016323400182c2b001b282600212824 +00282c2500333026003e3527004a3b2a0059422d0067492d00724e2e007d522e +008d542d008f532c0091522b0091502900904e27008f4b24008c4822008b431e +0089431a00883f1700893b13008b3c12008c3c10008d3d10008f401400944418 +009b4e1c00a3582200ac5e2700b5642b00c06a2c00c56d2b00c96e2a00c96e2a +00c76e2a00c5702c00be6f3200b46d3600ac6b3900a3683a009c643a00955f39 +008f5a370091593600945c380098613e009c6949009f725400a77d6100af886f +00aa917b00aa9a8700aaa38f00abab9800abb4a300a7b9a900a2beae00a5c1b3 +009ac1b5008dbeb50081b8b10078afaa0071a8a2006b9f980066968c006c8f81 +00728774007480690076785e007870540079694b007b6142007b5a3b00795436 +007a503000764d2e00704a2e006a4a3000614a33005949360051473800444338 +"/> +<palette number="455" name="040222-13" data="00210603001a090400170b0400150d05001f0f0400291204002d150300321803 +0047270500532e0a005f350f006c3d160079461e00835228008d5f3300926437 +00986a3b00b5844e00bf8e5700ca996000d29c6200db9f6400de9f6400e29f64 +00de975d00cc885600ba794f00a664440092503900884832007f402b006d3525 +005a281d00441b16003e1a120039190f00351a0e00311c0e00301e1000302012 +002824100022230f001d220e001a1f1100181d1500171d1700161e1a00141c1e +0017211e002c2825003d2f2a004e362f00603a2a00723e25007d41210088441e +00b15b2200b4572000b8541e00ab4816009e3d0f00963b0e008f3a0e007c3a11 +00662f120035120c00280e0c001b0a0d0019090e0017090f0015060c0016050c +0019060d001c050b001f0509001e0406001e0303001c0303001a040400180508 +00170709001d100600251709002d1e0c0033210f00392413004b311a005d3c20 +007f58280091603000a3693900ab6e3f00b4734600bd7a5000c3895e00cb9164 +00d1966300df9c6300dfa67400e0b18500e1b78800e3be8b00ecc78600f4cb7b +00f3cf8300f5d58b00f8db9400fbd99300fed89300fcd18400f4c57d00e9b879 +00dbab7300b9876000ac7e5800a076510088674500735a380061522e00574b27 +00474a2600434825003f4625003e4222003d3e20003f3a200040371e0042301d +003e2a1900351509003613060038110300411502004a1c060054250d005a2f15 +00633c2700613f30005f433a005b423e0058424300513d410045363f00392d3a +002b2434001714250014111f00110f1a000f0e11000e0d09000f110700111709 +0016220e0017230e0018250f001a270f001b2910001d280f001f290f0020270d +0021240b001d220c001d230c001e240d0023260f0026260f0029280f00282910 +002729100027260f0028240f002a1d0c002818090024120400200e02001d0a01 +001c0600001a0300001601000012000000100100001003000014060100190902 +002c15030031180200361b0200401d0300471d0500501b050055190500561a02 +00531702004c130200460c02003f050200380300003502000032040000300800 +002d0900002a0b01002b0a01002c0a02002d0c02002a0c0100240e0200210d01 +00210c0100230d01002a0f0300341507003f210e00522e1500623c1d00704825 +007d4e2e00835539008c5b3d008b614100876642007c6043006f5b4d00695654 +005e515900534f5a0043465400363f5400343b560034385600333555002f304a +0028283f0027213800291f3200291e32002c1f33002d243600342a3f003c324a +00423b5700474362004c4c6e0058567300605d7200655f6e00665b63005d5059 +0059494d0056403e0051362f004f2c21003e1e150030140c00260c07001e0704 +"/> +<palette number="456" name="040222-15" data="0099683f00bd654a00bc5e4c00bc584e00d34b4100eb3f3400f0352e00f62c29 +00fb101400f0100f00e6100a00c90f0700ad0f0400941307007b170b0073190d +006c1c10003d2e1a00344024002b522f00336744003b7d59003f88630044936e +0051b785004eb787004bb88a0042ad870039a2850032987e002c8f7800227969 +00176256000d473f00134945001a4b4c002a5e5f003b727200427e79004a8a80 +0062b493007aca9a0092e0a200a8dfa200bfdfa300c3d59c00c7cb9500d0af7c +00db9c6100f4774400f7693c00fb5c3400fb5e3200fc603100fa643100f86932 +00e8642500dc612300d15f2200cd5c2500ca5a2900c8502400c6461f00c12f12 +00bb170500c1140200c7140300cd150500c8160400c4170300b01d05009b280a +007343160061501a004f5e1e00386123002264290019612b00115e2d00105a2d +000f5427000c3e23000830200005221d00041e1a00041a1700041b1600052621 +000e4f470015665b001c7d700021887b002694870028a99b0034c0b3003ed7cd +0049e7da0053f1e6004fe8df004be0d8004bdad4004cd5d0004fcec60051c5bb +0043bf9c0042bd950042bc8e0044b2930047a998004998a4004c8ead004e91b9 +0053a1b6006496ad006b91a800728da3008185a8008e94a100a39a8b00b29a73 +00d7834200da773c00de6b3700dc663400db613200cc4f2300bd441c00a23c1d +008a4025006b573a00635d3c005b643e00496b400036714d00327a5b00307f68 +003280620039775600416f4a004b6a440055653f00625a39006f5a310077642c +006f6d2900717b1900747f1700778316008793250083a33d007bb3520072bd5d +0069d45b006bd65d006dd85f007adf6b008bd0700098c46600a3b45a00a2a248 +00a89b4000af914f00b4895400ba825a00b4706700b15b6700ab516a008d566e +005a6a7c00506a7e00476a80004d6c870046798a0047878500459d8d0045af96 +0056bda70067cabb007bd5c5008fdfc700a1d8c400b4ceb900c6b7af00d0a09b +00d0846d00ca836500c5835d00b8805700a97f51009e854600948a4200938f3f +0095924200959243009b923c00a08d3900b1883200c6842e00cc812d00c37f2b +00ae7e3000967e3100887d31007788350063943c004da050003daa640037af77 +0039b8840040c08b004dc6930062cf9c007bd9a40093e0ae00a7dfb300bad5aa +00cac79800ddb87b00ecac6200f69c5200fb894400f5763400e8662500cc5e18 +00ae561100934f10007a450d006a390e004f341200343017001c2c1800092815 +00052313000421120007231600092619000b2d180009351b00063b1b00053e1a +00063d1b00073d1a00073e1c000741210007412300093c22000a3622000b3020 +000d291f0014261d002a27190049341b0049412800504a340053573d00605e42 +"/> +<palette number="457" name="040222-16" data="0064869400587b8a00527483004c6e7d00496a79004666750045657300456472 +0040616e00416270004364730044677600466a7a00476c7c00486e7f00486e80 +00486e8100486e8100496f82004b7183004e7384005176860053788800557b8a +005c8291005f85930063889600648a9900668d9d0068909f006a93a2006f9aa8 +00739fad007da8b3007da7b1007da6b00079a0a900769aa20073959d00719198 +00627b83005b727a00546971004f636a004b5d6300495b61004859600045565c +004353590044505500424c500040494c003c44470039404300373d4100353b3f +002e3439002c3337002b3236002c3337002e34380030363a0033393d00384043 +0040484b00535c5f005d666900687173006c757800717a7e007a8386007e898d +008a959a00909b9f0097a2a5009faaac00a7b3b400abb7b800afbcbd00b8c5c5 +00bdcdce00cadadb00cfdfdf00d4e4e400d5e5e500d6e7e700d8e8e900d8e8e8 +00d7e7e700d5e5e500d3e3e300d2e2e200d1e2e100d0e0e000d0dfde00cfdedd +00cedddd00ccdbdc00cbdadc00cad9dc00cad8da00cad7d900c8d4d600c3d1d4 +00b8c7cb00b1c0c400aab9bd00a6b5b900a2b1b6009baaaf0093a3a9008d9ea4 +008799a0007a8d9600778c9500758b9500728994006e8994006c8894006a8995 +006788950066889500658895006487940064869400618290005f7f8f005e7e8e +005d7f8f006284930064869400678896006b8b9a006f8f9d0070919f007192a0 +006b8b9a0065839200607b8a005b76850057718000506978004a626f00465b68 +00435663003f5260003f5260004053610042576400445a6800455d6c00445e70 +00436074004360740043617500436275004362750043617400415f7300425f70 +00415e6f003f5d6f003f5d6e003f5d6e003f5c6d003f5c6d00405b6b003f5a6a +003b53630039516000384f5e00354a5900324553002e404d002a3b4800273642 +0024323e00232f3a00212d3800212d3700212d3700212d3800222f3b0024323e +002737470027384900283a4b002a3c4f002b3f52002d4154002f44570033485b +00384c5e003d51630043576800495e6e004f647400566b7b005c718100637887 +00697d8d006e829100738896007a8e9b007f94a000869ba4008ca1aa0092a7af +0097adb3009cb1b6009fb3b700a1b3b5009eaeb20099a9ac0094a3a6008e9ca0 +0088969a00829296007e8e94007b8d9400798d9500798e9600788f9600788d96 +00778a93007687900076858c007582890074808700747f86007581870076848b +007a89920080929900869aa1008ea2a90093a8af0098adb4009cb0b7009db1b7 +009baeb40098aaaf0095a4aa0090a0a6008e9ea4008a9ba10085969c00809198 +007b8e9500778c9400758c9500738c9500708b95006e8a950068889300668794 +"/> +<palette number="458" name="040222-17" data="0091563f0078443100693d2f005a372d005a362d005a352d005a342b005a332a +004f29220049241e0043201a003f1c17003b1814003714110033100e00310e0c +00300d0a002f09070031080800330709003b0a0b00430d0d00470f0e004b1110 +00581e19005f241d00662a22006e30280077372e007b3c3100804135008b4a3a +0094524300a4514900a8514900ad514a00ad524b00ad534c00ab514a00aa4f49 +00a74242009d3e3d00933a39008937330080342e007d322c007a302b006f2b24 +0061221e004015110033110d00270d0900200a06001a07040019060300180503 +001a0806001f090800240b0b002a0c0d00310e0f00340e1000370f11003d1115 +00411619004a201f004b2321004c2724004b2826004a2a2900492e2a0049302a +00472d2300462921004525200046231f0047221f0048221e0049221e004b201f +004e2222005c31320069423f0077544c00805b510089635700966c62009e7069 +00a9777300af726c00b66e6600b2676000af605b00a253550091454e00843940 +007a2d3300641b1d00591719004e14160049131500451215003d101000370d0c +002d0806002d0907002d0b08002d0c09002e0e0a002f120d0031140e00361711 +003c1a12004321170042221800412319003e221b003a221b0038221c0037221d +0037282600392b2a003b2f2e003d2f2f003f303000453133004b363700553b3c +005d3f40006e43420071454100744740007d4c40008451430088594600935d49 +00a26a4c00a26c4b00a36e4b00a16d4a00a06d4a009968490092644800885c44 +007b543f00614332005c3f2f00573b2d004b332700412b21003a231c00341d17 +002e1713002c1611002b15100028100f00250e0c00230b0b00220a0b00220b0d +00210c0f00200d11001f0d10001e0e10001d0e11001f0e1100210e1200230c11 +0029090d002b080c002e080c0033090f003a0c1200440f13004e121500561515 +005c1916005d1b16005e1d1700601d1700601d17005f1f1600582015004f1d12 +003e1511003a14110037131100311213002c13120029121200291112002d1012 +00351014004111160052151800631d1b0071241d007d2c200086322300903728 +009a402d009d4631009a4d35008e52360083533b007a53400075534300745248 +006f544a006d594e006a5b53006a5b54006f575700765559007e5b5700876359 +008e6a5900946e5a009a6f5c009f6d5800a36e5300a56b4d00a3644500a16142 +009d5b40009a593d0095563b00915037008e4e3600894c380086503c00825540 +007f5541007d543e0079503b00734b38006c463500643e310060382a005e3225 +005c2e21005c2d20005d30220061372600683e2a007147330079513c00805a47 +0088654e00936b4f009c6b4e00a36d4e009a684f0092674f008e634d00895a46 +"/> +<palette number="459" name="040222-18" data="003464050032560600314a0600313e07002b360600252f06001f2f05001a2f05 +0009350600053205000130050004310400073303000f370200183b01001b3a01 +001f39010024360100203501001d3401001d3601001e3801001f380100203801 +00243201001d2e0100172a01000e2901000628010003290000012a0000002a00 +00002a0000002a0000002a0000002a0000002a0000002a000000290000002800 +0007200100091f01000c1e01000c1f03000c2106000b2307000b25090009280e +000b291200112c1a00132f1d001532210014372900143d3200183d3b001d3d45 +0032385b003e345e004a306200523259005b34500060345100663452006d3852 +006c3753006c3461006e315a00712f5400702f4d006f2f4700713b3a006a4430 +00464e21003b4c2500304b2a002d472b002a432c002b442b002c462a002a4822 +001f4d180010570f000b57100006581100085e16000a641b0014722e001f8241 +00439a55004a9f4d0052a4460052a5400052a73b0054a938004ca83c004ba641 +0050a3470051913c0049822a0042731800396b110030630b001e520200104500 +00072b020007240500081e0900091d0b000a1d0d000b2010000b2a0f0010320f +00153b0e001b460c001b470d001c480e001b461000174b100014500f0014550d +00135e0300115c0200105b01000d5901000b57010006520100034e0100024902 +0000450100004101000040010000400100003f010000400100003e0100003b01 +0000330000002e0100002902000026020001240300032206000321080003210a +0003220b0001250a000124090001230900032509000326090003290a00032e0b +000241090001460800004b07000153040001580200015b0100005b0000015c00 +00015f000001740100027b010003820100078e0300079406000793080009890c +00087b150007781600077617000c731b000e711d00156e1f0020632300295627 +003047280032352500312a25002b221f0029211b002c21180035261600483014 +0072481400774f14007c56140085621700896b19008e761a0097801b00a5851c +00ae872800ae943300aca24900a4ab5b0098b1670088b868007bb95a006da955 +005ba04800449847002f93480020894e00118a5000098c420006853400087b21 +000b711200156b0800276405003c640800506a0b0062750d006d7c0e0071870e +00728b0f00728d0f00748a12007587170079871c0077811f00707f1f0061781c +004d6f18003862130025541100174a10000f411100104011001b4310002b480f +003e500b0050540a005f570b006c550a0073580b007b5d0b0081610c008a690b +0093730b00987e0e009c7e0e00957f100089800f00777d0e00667b0c00597e08 +004e8807004c8b04004e870500508105004f7906004b720600446b06003b6505 +"/> +<palette number="460" name="040222-19" data="00c3481300df3f0700e5410700eb430700e9491000e7501a00e4512300e1522c +00c3454b00b1355200a0265900931e5800871758007f14620077126c00741275 +0071137e006513ac006113bb005d13ca005d12c7005d11c5006011c2006311c0 +006613b7006614b3006715b0006617a900651aa20060199b005c199500561687 +004f167c0047115d0049104b004c103a0053112a005b121a006111140068110e +007e1304008a110300970f0300a20f0300ad100300af100300b1110300b21203 +00ad110300981004008b0f04007f0f0400790e0400740d0400710d04006f0d04 +00650b0300590c03004d0d0400420c0700370c0b00350b0d00340b1000340b16 +00340b1c0041093700410a4700410c57003e0c5f003b0d6800320e7900290f8a +001e11a4002310b1002910be003311bd003d13bc004313b9004a14b7005815b0 +006316a60072188a0075188c0079188e007c178d007f178c0085178a008c1687 +0096157a009f166b00a8175c00aa185b00ad195b00b11b5b00b61d5c00bc1e5d +00c11e6100cb1f5e00d01f4e00d51f3f00d81f3700db1f2f00e21f2000eb2011 +00f51e0500f71d0500f91d0500f81d0500f71d0500f71d0400f61d0400f31c04 +00ee1b0400dd180500d5170600ce170700bf160b00ae1410009f13150090121a +007a12200076101e00730e1d00700d1c006e0d1c00680c1f00600d2b0059103d +00520f51004c1674004d177b004f18820053198c00591b90005e1c9600641fa3 +006221c5005922d6005023e8004a22ef004521f6003c1ef200341ae7003219d5 +003518c4004816a0005017970059188f0068198500751a77007d1f6a00862e5a +00943b4d00943b4d00943c4e00983e4f009b3f58009e3964009d3575009a3681 +00994389008844ab008243af007d43b4007741b4007336b4007029b400701bad +0080188c00851887008b18820091177900981667009f155500a1134300a01432 +009d1323009a111600971012008d101400810f1600750d170069091700590b14 +0037091200300a12002a0c13002010160017131700101518000e121b000d121c +000b101e000f112700141435001c174500271b550035206400412274004b2383 +00512188005d208a00681c8a00721b8a007e1889008b1a8700941b8300941b82 +008c187b00861673007f12670076115d006d0e5600670d5500660d55005f0d5a +00540c6300460c73003a0d83002e0e8d00210c8e00180a93001609970017099c +0018099e0018099e001809a0001b0ba100190b9400180d8300191174001a1565 +001b1857001a1a460018183d0018183d0017153e0015133c0013133b0013133a +0015153c0017193900171939001d1a3c0027183b0030133900390e3600410933 +00490632005a092e0065142b0072232c008233280093412300a6431d00b94618 +"/> +<palette number="461" name="040222-20" data="008dc4ad0095caa60096c89f0097c798009bc69400a0c591009ebe8a009db883 +0099a76700949c580090914a0088864000817c3600766f31006b622d00655d2c +005f582b0049452a00434029003e3c28003d3a28003d3828003e3828003f3928 +003f392d00403b2e00423e30004542360048463c004b4940004f4c450057554e +005b5854005c5c5a00595e5b0056605d0057635f00596761005b695f005e6b5d +006d755700737b5600798255007b865d007e8a65007f8c6800818e6b00899776 +0097a07900b7b37500c4b57500d1b87500d3b37500d5af7600d3ac7500d1a975 +00c59f6800c0995f00bc935700b88f5100b58b4c00b1884b00ad854b00a48449 +009a804b0084764f00807752007d7856007e7a5a007f7d5e0084866600898e6f +00909779008f9277008f8e75008c8972008a846f0088826f0087806f00847d6d +00817c6e0077766b00737468006f7365006e7266006d7167006e71690072716e +007a7970007e7a6d00827b6b00827c6b00837e6b0081816b0081846e0082836f +007f846e007473630068695c005d605500565d52004f5b4f0045534b003c4f48 +00334949002f4248002b3c4800293b4700283a4700283a4600283743002a353f +002a343e002d3138002e3136003032350037363200423931004b3b2e00503c2e +005b413200624932006952330071573400795c3500856633008d6b3100916f32 +0094713400947b3b00977f3d009b833f00a48d4600ab944a00af985000b09853 +00a8945d00a7945e00a6945f00a8955e00ab965e00b1976000b7995e00bf9e60 +00c5a36300c1ad6300bfad6000bead5e00baa85900b3a04f00af994500ab923e +00a4933a00a1933b009e943c00958f400088853e007a773b0066633600585330 +004d4728003c3f2600393f27003640280037422a0037412d003b403200463f33 +005e463100634c320069523300756139007f6b400088754b00937d54009e7f57 +00a37b5600a87b5400a77c5200a17b5000977953008d78570087765b0081725c +00806f5800816f560082705500857356008a785a0091815f00978a67009d976f +00a5a37a00aaad8100b1b58800b4b68b00b4b48c00b0ad8900a8a784009f9e81 +00929679008a907400838871007c826d00767a670070746100676c5b005c6556 +00526357004e625e004f65650055686a005d6e71006172730064747100647470 +006474720068787600747e790085887d0097947e00a89f7b00b6a67600beaa6e +00c1ab6600c2ae6300c4b16200c8b66200cdc06500d2cc6a00d7d57000dbd970 +00dcdb7300dbd97400dad77500d8d77500d7db7a00d7df8200dde68e00e1ec9a +00e4eda500e9efaf00e9eeb400e7edb600e4eab000e4ebaf00dee8ae00d4e3af +00c6dcb100bcd3b000b0d5ba00a5d1bc009bd0bc0093ccba0094ccba008dcdba +"/> +<palette number="462" name="040222-21" data="002e074600230555001f045c001c0464001603670011036b0012036800130365 +00120159001100540010004f001400480019004100230037002d012d00320228 +0038032400480312004c030d0051030800520306005403050054030600540408 +004f0410004a041300450417003b03180032021a002d021a0028021b001c021d +0013021e0007001f0006001d0005001b000600170007001400080012000a0011 +0011000b00160008001b0005002100030027000100290000002c0000002f0000 +0031000100380401003d080400430d0700491007005013080052130800541409 +00531308004d130700481307004513070043140800431408004314090043140c +00400f0d00330710002904150020021b001c011d00190120001402260011022c +000f0233000e0235000e0237001103340014053200170631001b073000230a2e +002f0c2a004a1924005b2727006d352b00763d2e007f4531008f563900a16848 +00b27a5e00ad786a00a9777600a4757c009f748200956e85008e6d9100867299 +0086759d007d6e9a0077679500726090006d588c0069508900604b8000624d75 +0076555e00835c560090644f0095654e009b664e009e664f009d694c009c6649 +00966045008e513700904e3500924c340092453300914535008f463700884439 +0071393200672e2a005e2322005a1e2000571a1e0055161b0056121900541016 +004f0f1500450b0f00400a0d003c090c0037070b0036060a003606090037070a +0036070a00310708002d0707002a07060027070600210504001e0504001c0405 +001b0306001b020b001b020c001b020d001a010d001a010d001b010b001c010a +001e010b001e010b001f020c0020020e0021020f0021020f0021020d0021020c +0021020a001f0208001e0208001d0208001b0208001802090015020a0012010a +000e010b000e010b000e010b000f010b0011010c0013010f0015011300180217 +001a011c001a0121001d01240020022500210228002202280024042800280428 +002d082b002e092b002f0a2c00300f2f00321231003414300037152d0037142b +003a1426003b1323003f162100441a23004a202500532524005a2823005f281e +0060251b005f2619005e241a005b291f005f302300643b29006c452d00764c32 +007e553400865638008b593e00925b4000945e4300996242009f664000a66a3d +00aa6c3900ae6e3900b36d3800b2693900af653900a9643b00a2653e009b623e +0092613e00865b43007a5347006d4a4a0063424e00573e52004d365600463355 +003d2e5b0035285f002a1e650022136d00190b750011057e000c028300070187 +000601890008018e000b028f000e02900012028e0016028b00190284001e0579 +0025056f002d0662002c075a002b0755002f0851002f064b002b084900280649 +"/> +<palette number="463" name="040222-22" data="0057617f005b6788005b6686005c6685005d6683005e6682005e6681005f6681 +0062688300666c87006a708b006e759100727a980071799700717997006f7795 +006d759300636a87005e6583005a607f005b607d005c607c005e627d0060647e +006f759000787f99008189a3008891aa008f99b200919cb400949fb60098a3ba +009ca7bd00a5aebf00aab3c200afb8c500b4bcc700b9c0ca00bac0ca00bbc1ca +00b8bcc000b1b4b700aaadaf00a0a3a40096999900919393008c8e8e00818383 +00777a7a006364650058595a004d4e50004243450038383a00323235002d2d30 +001b1a1d00141417000e0e11000c0d10000a0c0f000a0c0f000a0c10000c0d11 +000d0f14000e1016000e1016000f1117000f1017000f1017000e1016000e0f15 +000e0f16000e0f16000f1017000f1017000f1118000f11180010111800101219 +0011121a0012131a0013131a0014131a0014131a0015141a0017161b0019171c +00211e220028242800302b2f00342f340038343900413e43004b494d00565358 +00615e630078757900817e81008a888a008e8c8d00929091009a989900a2a1a1 +00afb0b100b5b7b800bcbfc000bec2c400c1c6c800c6ccd000cad1d500cad3d8 +00c6d0d800b8c3cd00b3bec900afbac500a6b0bb009ba6b100909aa600848f9c +006f788700666f7d005d66740058616f00545c6a004a52600040485600363d4b +002c3340001b202c00171b2700131723000c101a00080a120005070e0003040a +0001020700010206000102050001020400010204000102040001020500020406 +00040608000e0e12001111160014151a001c1d240024262e002c2f3900343843 +00444a5600474d5a004a515e004e566600515a6c00545c6f00555d7300565f77 +0057607a005a6380005a6481005b6582005e678500616a8600656d890068718c +006b738c006b738c006c738d006d758d006e758d006f768d0070778d0071788e +00737a8e00777d8f007e839300838998008b909e009297a400999fac00a1a7b4 +00aeb6c200b0b9c500b3bcc800b6c0cd00b8c3d100bac5d300b9c6d400b8c4d4 +00b4c0d200adbacd00a5b2c7009caabf0093a0b6008a96ac00818da200778399 +006f7a900069748800656f8100626b7d00616879005f6577005d6477005a6276 +00585f7300565c6f0052576a004e516300494b5d004647570044455300454451 +0046444f00484650004a4753004b4a55004d4c57004e4d58004e4d58004c4b56 +004848530043434f003d3e4a003838440035343e00313039002f2d37002d2c35 +002e2d36003130390032313a0032313a0033313900333139003331390033313b +0032313c0033323e0032323e0034333f00373643003a3a48003c3b49003e3d4c +00403f4f004342530045475900484b60004b4f67004d536d004e567200525a76 +"/> +<palette number="464" name="040222-23" data="007277880067708200626c7d005d6879005b64740059606f00585f6d00575e6b +005a616c005f657100646a76006e727e00787b8600838590008f909b0094959f +009a9ba400adafb400b2b5bb00b8bbc200b8bdc500b9bfc800b8bec900b7beca +00afb6c300a7b0bb00a0aab40099a2aa00939aa0008f969b008c929700868a8e +00828386007b797e0077767b0073747800717377006f7277006f7277006f7378 +0075777d00777980007a7c8400797c8500787c8700767b8600757a8500727884 +006f7681006f717c0072727d0075737e0077747e0079757f0079757e0079757d +00746e7300726b6e0071686a0070666800706567006e6567006d6568006a6369 +0064606800555259004d4b520045454c0043434a00414248003e424a003f4650 +0049536300515c6d0059657800627083006c7c8e0071829300768898007e93a4 +00859eb00096afc3009db5ca00a5bbd200a7bed500aac1d900b0c6de00b3cbe2 +00b6cde100b7cbdf00b8c9dd00b8c7db00b9c5da00bac5d900bdc7db00c1cbde +00c6cfe100d1d7e600d6dae600dcdde600dedde500e0dde500e2dee500e3e0e7 +00e3e1e900e0dfe700dedee600dcdce400dbdbe300d7d6e000d2d1db00cccdd6 +00c6c8d200b6bcc900b1b8c600acb4c300a2adbc0099a4b6008f9bae008693a5 +00768597006d7e910065788c00617588005d738400556a7d004e62750048596a +0044526200444d5900454d5800464d58004a5059004e535c0052566100545863 +00585f68005a616b005d636e005e646f005f65700062677300656a7800666c7a +00676d7e006875880069768b006b788e006c7b92006e7d940071809700768298 +0085899a00888c9c008c8f9e009799a600a2a3b000abadb900b4b6c200babecb +00c0c4cf00c8c8d300c9c8d200cac8d200cdc7d300cdc8d200cdc8d200c9c7d2 +00c1c1d000bfbfce00bdbecd00b8b9c900b5b5c600b4b1c300b2aec100b0adbe +00adabbc00aaa8b700a7a6b400a2a2b0009ea0ae009b9fad00989eaf00969eb2 +00909eb4008e9db3008c9cb2008595ac007d8fa60076899f006f849a006b8098 +006a7f99006b819b006f849e007387a0007888a0007c8a9f0080899b00818898 +0083889400878791008b8790008e8a9000918c93009290980095939d009797a3 +00959ca60099a0ab009ca4b000a1a9b300a5adb700a7b3bb00adb9c300b4bfcc +00b7c6d200bbccd800bdd0df00c2d3e200c6d4e300c7d4e100c7d3de00c7d0db +00c2c9d400b9c1cb00aeb7c300a2acba0098a1b1008d96a900828ea0007c879a +0077819600738094006f7f9200697c9000657a8e0061778d005e748a005d7286 +005f718400647383006b788700717c8a0079828f007f889500838b9800838b9a +00848a99008386930082838f00817f8b007f7e89007e7c88007c7b8700767886 +"/> +<palette number="465" name="040222-24" data="00260707002a0807002d070600300606003106060032060700300506002e0406 +0029010300280204002703060029050c002b071300300b1a0035102200371023 +0039102500391226003811250037102400351126003413290034122800351227 +00321321002f0f19002d0c120028090d00230609002204080021030700210509 +00240d12003a1f3000482a430057365600643e660071467700784f7c00805882 +0096738a009d758800a5788700a2708100a0687c009d6577009a627300905d70 +00835a5e006b4637005a3624004926110038170a0027080400200504001a0205 +000e0709000f0e0f0011151600171f20001e292a00202c2d00232f3100263434 +00273637003635390041393a004d3d3b0054403b005c433c0067463900684134 +006930260065251c00611a120063170c00651407006512050065110300641100 +00630f01006108000064090000670b0000690d00006c100000761701007f1c04 +00891d05008b1d05008d1d06008b1c06008a1b0600891e050087200700802209 +00781d090063140900580e07004e0806004c0605004a04050048040400490304 +00500307005202060055010600550005005500050053000400510003004e0003 +004a000500410005003e0005003b010500340104002d01030026000100210001 +001d0000001e0000002000000021000000230000002500000027000000290000 +0029000000270000002600000025000000230000001f0000001b000000170100 +000c020000080200000403000003030000020300000103000000020000000200 +00010200000503010007030100090401000d05020012050500170609001b060c +002605100027051000290510002d050f002e050f002e0510002d071100290714 +0027071600210813001f0913001e0a13001b0d1100151211000e1a14000a2019 +0007251b0008251b0009251c000c231a000f2019001120170013211800162219 +001a2117001f1e15002818110031110d003b090800420505004c0603005b0a09 +007b1f0f00832816008c321d009e452b00a0523c009c5c430097614e00916354 +008a67510086735c0091856b009592810090968c008a91950080839500726d86 +0061567400574b630057475c0054425600553e560053345000512845004a1735 +003e0c24003306180028030d001e03090016030500100302000d0201000b0101 +000a01000009000000090000000a0000000a0000000c0001000e010200110102 +0013000200150002001500020016000200160002001600020016000300160003 +0016000200150002001500010014000100130000001200000011000000100101 +000f0404000e090900100d0d00120e0e00130d0e00140d0f00130c0d00120c0b +00100d0c0011100f00171312001b1413002113140026101200280c0e0029090a +"/> +<palette number="466" name="040222-25" data="00866951006b4e39005c402d004d322100442b1c003b25180038231600352215 +00291a0f0026160c0024120a0027150d002b181100331f17003c261e00412921 +00462d24005a3c2d00634331006c4b360072513a0078573f0079583f007b593f +007958390076573600745633007357360073593900745a3b00755c3e00796143 +007f6747008b765000917d570097845e009b8661009f8865009e8765009e8666 +00917c5b00867353007c6b4b00746044006d553e0069513b00654d3900614935 +00604a35006a563900735d3f007d654500846a4c008c7053008e735500907657 +00927758008e7254008b6d500083644c007c5b480077564400735241006b4a3b +006943370069443700714e400079584a007d5e4f00826554008e726100987e6c +00ab917900b29a7f00b9a48500bfa98700c5af8900c5af8900c5b08a00c5ad85 +00c2aa8000b7a27300b39e6d00b09a6700ae986500ad966300a98f5f00a4895c +009a8057009a8158009b8359009d845b00a0865d00a58b6100aa916700ae966e +00b19b7400bfad8200c5b38600ccba8a00cebc8b00d1bf8c00d1c08d00d0bf8d +00cdba8e00c8b48b00c4af8900c0ab8700bda88500b7a17d00b2997500ac9370 +00a58a6b009679620092755e008e725a00896a520085664a0083624600836245 +0084664c00876950008a6d54008a6e55008b7057008d7156008d715500896d54 +00856a5300725e48006c594400665540005b4b35004e3e2d004333240037271c +00241b11001f190e001b170b001b160b001b160c001a130c0019110b00190f08 +00180f0600190f0600190e0600190e0600170c07001609060013070500120602 +000f0501000e0501000d0501000d0501000c0701000f08010013090100160d02 +001c10050027180a002a190b002d1b0c00311d0e00331e0e00351f0f00351f10 +00351d0f00341c1000331c11002f1910002d170f002b1610002c1610002f1610 +0033171300351a1500361a1700371c1900391d1a00391c1a003b1d19003a1e18 +00371e1400371e1400381f1400382114003c2315003f291600452e17004d351a +00573e2000614826006b4f2e0072563300765835007759350078583700795938 +0078593b00785b3e007a5d41007d61460084664d008d705700997b6100a4896c +00ae947400b8a07e00c2ab8500cdb58e00d6be9700ddc7a200e2cca800e4d0b0 +00e6d5b300e7d7b400e4d3b000ddcead00d4c5a500c6b69f00bbab9600b2a08c +00a9967f009f8b7200947e6400856d5600775c48006b4e3e006445340060402d +0060402c0064432e006a4a3100735339007c5d410086674800917250009b7e5b +00a68a6400b2986e00bca47700c5ae7e00cab48200cdb78600ceb98b00ceba8d +00ceb98e00ccb78c00c5b08500b8a07800ab906d009e83630094765b008a6d56 +"/> +<palette number="467" name="040222-26" data="004e2e5e00311e4800190f360002012500020126000301280002012800020129 +0003022b0003012c0004012d0003012d0002012e0002012e0002012e0002012e +0002022e00040231000a043500100739001c0f410029174900311b4e00392054 +005b346d006d4078007f4d840092599100a5659e00ac6aa300b36fa900bb75ae +00bc76af00b16ea600a3669d00965f95008353880071477c00674075005e3a6f +003d26590037225600321f54003b235b00452862004b2b6600522f6a005f3873 +00683e79007645810073427e00703f7b006338720057316a004f2d640048295f +00291649001c0f4000100938000b0634000703310007023000070230000a0333 +0010063700291549003d205800522c67005e336f006a3b7800824a89009c5a9a +00c374b600cc79bc00d67fc200cf7bbd00c878b800bf73b200b76eac00a0619d +0089508d0058336a0043275a002f1c4a00271744001f123f00150c39000f0835 +000d0733001008350013093800140a3900150b3b00170b3f00170b4100170b41 +00160a410012093e000f083b000c0739000a0637000905360006043200040430 +0002032c0001022b0000022a000002290000022900000229000002290000022a +0000022a0001022c0001022c0002022d0003022f000402300005033100070332 +000c0635000f083900130a3d00160b3f00190c41001e0f45002211480027144b +002e1750003b1e5a003e205c0042225f0048256200512a6800592f6e005e3371 +005d346f0058316b00542f6800502d65004d2b630046275a003d235100321f47 +002a19410020133c0021123c0022123d0028183f00301d46003c2451004c2f5e +0074487e007f5086008a588e00a0669f00b576af00c782bc00d78ec900e697d3 +00ee9bd900f39edc00f19cda00ef9bd900ee97d700e992d200e18dcb00d987c4 +00ce7fbc00cc7dbb00cb7bba00c377b500b871ad00aa69a3009b6099008c5591 +007c4a86006a3e790055336d0043286000321e550024144b001a0d420011083a +000805310008052f0009052e0009052c0009062a0008052a0007052900070629 +00070629000606290006062a0006062a00070729000b0929000e0b2a000f0c2b +00110d2c00100c2c00110c2c00110c2d000f0b2e000d0a2f0009082f0006052f +0003032f0001022f0000012e0000012d0000012c0000012b0000012a0000012a +0000012900010129000202280005042700090627000d092700110a2b00160d30 +001b1035002213390029183e002f1c4400311c4800321c4d00301a4e002c174e +002a174c00241446001f114100190d3a00110933000c062f0007032900050224 +000301210002011f0001011f0002002000030123000501260009042b00110933 +001c0f3d002c19490043275b0055316900522f65004c2b600041255600412654 +"/> +<palette number="468" name="040222-27" data="00b7918700bb806f00b4756300ad6a5800a05d4c00935140008d4b3b00874537 +005f2e27004a262100361e1b002c191500231410001e110e00190e0c00180d0b +00170d0a001a110e0025161400311c1a00472c2a005d3c3b006847450073524f +009f7d7700b3908a00c7a49e00c9aba300ccb2a800c8b0a600c5aea500bca19a +00ae8f8f00897373007b6564006e57560069535500654f5500644f5500634f56 +0075575c008565690096737700a3828400b1929200b89a9a00c0a2a200cfb4b0 +00d9c1b900dbc7bc00d5beb300cfb5ab00bba29800a89086009d847a0093786f +00654c46004f393500392624002b1b1a001d111000190e0d00160c0b00130b0a +00160e0e002e24240040333500524346005c4b4e00675356007d6367008f7475 +009d7d8300987a810094787f00917479008e7173008b6e7100886b700087696c +0089696800976d63009b6c6000a06b5d00a06c5d00a16e5e00a3706100a27063 +00976e5f008f695e0088655d0083625b007e5f590071595200624f4a00584541 +004e3a3b00413232003f2f2e003e2c2a003d2a28003d2826003926240036231f +002b19140024150f001d110b001a0e0a00170c0900110806000c060400070402 +00040201000100000000000000000000000200010004010100070304000a0608 +00150b0d00180f11001c1315001c1315001c1415001e1416001d1314001d1415 +001b1313001d1110001e12110020131200241614002b1b190034211f003c2a26 +005139350059403d0062484500664b49006a4e4e0073555500815e61008d6c6c +009a7a7b00b79b9b00bea5a300c6b0ac00d7c2be00e0d0ca00e6dad300e8dfd6 +00e8dcd400e7d9d100e6d6ce00e1cbc600ddc3be00d5b9b300ceaba500c09a97 +00b18a8a009a746c00956d660090676000895b5900885956008d5b550094645a +00a7746c00ab797000b07e7400b88a7d00bd948300c69c8900caa29000cea496 +00cfa99c00d8b1a300ddbbab00e1c0b400dfc2b800e0c1b900dcc0b700d8bcb5 +00c4a5a200bc9c9900b5949100a58583009776790088676e00785a6000695154 +00604a4d0059434900573f43005a3c3c00653d3800744139007c453b007b443a +00753e3500753a2f006f362c0063322b004d2a27003e232200361e2100351f24 +003520260034202500321f260031212a0032232c00312228002e1f23002c1d21 +002d2022003123250039282a00422c2e004a333600513b3f00574249005f494f +00614c5500624e56005f4e56005e4e53005b4e4f00594949005744440057423f +0055433c005743390058413900593e3900573d3700573c3500593b34005c3a36 +005f3b3800613e39006441390069453e00734b43007a534b007e554e007f5855 +00825b5a008962640093696f009c737900a37e8100a47f8300a7818500ad8485 +"/> +<palette number="469" name="040222-28" data="00659c7b00538d7400488273003e7872003e7c76003f807b003e7f7b003d7e7b +0032747d002a6b7900236275001c586c00164f640014495d0013445600144052 +00163d4f001c2b3f001f27340022242a00282322002f231b0033211a0038201a +0033221d003129230030312a003239340035413f0033454500324a4c00304f55 +0030545d0032555a003352540035504f00384a45003b453c003d413700403e33 +004d433000534e36005a5a3c005d65450061714e0062775500647e5d00678c6d +006b9d7b006eac87006bab890069ab8b0065a6850061a280005fa07c005e9e79 +005b957800518d7400478571003a7a6a002d7064002a6b630028666200265c5f +0021515b00113e4a000d354000092d37000829310007252c00041d210005181a +0007171400071b1300071f13000b2212000f2512001125100013250f0015250e +0014240e0012210f00121d0c00131909001216080011140800100d0a000f0910 +0015071500170714001a0814001a0815001b091600210e1700271116002c1611 +002b190d00231b0900211e0b0020220d0020250f00202911001f2b14001a2c18 +00102625001126290012272d0013282b00152a2a00172d27001d302500263421 +00343e210050562700525c2b0055622f0058683500586e3a005c724000657340 +00646b41005c663b0055613600565f3100585e2c00636322006d691d0077731d +007e80260082923f008295450082984b007c9f59007aa4670073a6730070a67d +00689f870064968300608e800060897b0060857700607c710060766f00597676 +0051707700466a6e0045686b00446769003e6e710037727c00377786003b828d +0052978d00559b8e00599f8f0061a1920068a3920071a78a007caa7d0082aa6e +0085a560007e8f51007b8a4a0078854400727b35006e6f260067611d0061521e +00524225005142280050432b004e4a3200504f3b004f5446004f584f004e5759 +004d5860004b5d620047605f0040615a00385a5800304e55002945510026404a +00295240002e553f0033583f0040603f004c673f005c703c0067813a00748934 +007c882a007e7e22007b701b006f651700625e140054501200453f10003a300e +0030260d002c240b002c2609002b280b002d2d0e002e3616002e3e1a002f411e +002e4324002c42290028473200254e380025503e002550400029493e002b473b +002e493600334f3600365636003c5938003d5a37003b57340039543300335233 +00305237002c523a0029523b0029513d00294f3c002a4e3f002a5244002c5946 +00356046003e6544004a6540004f633e004e6340004f6341004e63460053644b +0054614e005464590051676300516b6f00557a7e00598b8900689f900071ab97 +0078b099007fb499007eba980088c5940081ba880078ad80006f9d7a00619275 +"/> +<palette number="470" name="040222-29" data="00ca6b9300bf5b8400bc588000ba557d00b9547d00b9537d00b8537e00b85480 +00b6588200b65a8300b65c8400b9628900bc688e00c2709500c9799d00cc7ea2 +00d083a700dc99ba00e09ebe00e4a3c200e5a2c100e6a2c000e69fbe00e69dbc +00e290b000dd89aa00d882a400d47b9e00d1749900d0709600cf6d9400cd6790 +00cd608b00cb548100c94d7c00c8467700c4407300c13b6f00bf396d00be386b +00bd356900be376b00bf3a6d00c23d6f00c5417200c5437300c5457400c44774 +00c2497500bd477200ba446f00b7416d00b23e6900ad3c6500aa3b6200a73a60 +009a395b00943858008f3755008d3754008b3754008a3755008a3756008a3755 +008835530083314d007e2e49007a2b4600792b4500782b4400772c4500783047 +00843c54008b445c00924d640098536b009e5a7300a05c7500a25e7800a5637c +00a8677f00af6e8600b4738b00b9789000bc7a9300c07d9700c6829d00cd85a3 +00d789ab00da88ab00de87ac00de84ab00de82aa00db7ba500d6739d00d06b95 +00c7638c00b5537b00ab4b7200a24469009e4065009b3c610092355800882b4f +00761b3b006f143400680e2d00650c2a00620b2800600b2600630e280069132d +007219350084294700872d4b008b324f00943857009a4060009f476600a44d6b +00ae557400b35a7900b85f7f00b9628100bb658400be6a8900c16f8f00c17391 +00bf769200b8738d00b5718a00b36f8800af6a8300aa657e00a7637a00a7617a +00ac657f00b2698300b86d8800ba6f8a00bd718c00c1738f00c3749100c57692 +00c6789500cc829f00ce86a200d08aa600d691ad00dc96b300e29ab800e69bba +00ea93b800e98fb500e98cb300e584ac00e17da400db789d00d4719500cf6a8d +00c5638400b24e7000ad486a00a84264009d35580093284b00881f40007d1737 +0074122d0072122c0071132c0070152e0071193200731e380078243d007d2b44 +0081304a0089345100913858009a3f6100a4456800ae4c7200b7557c00c25f86 +00d6799e00d97ea200dd83a700e28baf00e792b700eb97ba00ec98bc00ec99bd +00eb98bd00ea98bc00e89abb00e79bba00e69cba00e59cbb00e49cb900e198b6 +00df93b000db8caa00d783a400d17a9b00cb719200c4698b00be638500b85f80 +00b25c7b00ad587500a9557100a4536e00a0516a009c4f6600974d6400944b61 +00914a5f008f4b5f008c4a5f008b4a5f008a4b5f00884b5d0087495b00834457 +007f4053007b3b4e0078374b0078344900793349007a354b007d384e00833c53 +00873e56008b425a008f475e00914a6100964c64009b516900a0567000a65d77 +00b0668100bb6f8b00c5779600cf7e9f00d585a600db89aa00e08bae00e48cb0 +00e78eb300e98eb500ea8eb500e98cb400e587b100e083ad00da7da700d4769f +"/> +<palette number="471" name="040223" data="00b7593900d7845900e5956500f3a67100f2a56e00f2a46c00efa26900eca167 +00e3945900dc854c00d6763f00ca6d3900be643400bb6a3700b9703b00bc723a +00bf753900cb7c4100c9855200c78e6400bd9b6c00b4a87500aea97300a8aa71 +008e97680086936c007f907000768c6b006d8966006a87630068866100658658 +0067855a0069755700686e520068674e006a5f42006c5737006f523300734e30 +00924e30009d542d00a95a2b00b15d2c00ba612e00ba633100bb663400af6a3b +00a1673d008d5630009047290094392300912c1d008e2018008b1d1500891b12 +0081150900751405006a13020057110100440f01003c0f0100340f0100260e01 +001c10020019100400211007002a100a002d120e0031151200381e1d003f2724 +0054312400582f22005d2d21005b2b2000592a1f0057271c0055241a00511d0f +004b1307003e0500003303000029010000240200001f04000016080100120d04 +000b190f000c2316000e2d1e0011332100143a250018452a001d4d2c00284e2d +00324b2b00463f24004e381d00573116005a2b12005e250f00621907005f0e05 +0051020500470106003d0007003700080031010900270106001f010600180107 +001501060020010400250103002a010200320304003807070042100f00511d1a +007b473500835d43008c7452008f7d5b009287650096946b009ea17200a6a976 +00abad7800b7ac7c00b7a77800b8a27400bf9a6a00c58d6200cf885c00d88055 +00d1703f00c46d3b00b86a3800b06a3800a86a39009864340087603300736135 +00666c44004f7661004b726200476e6300405d57003e5e4c003656510034524f +002940440026423a002445300019462700174c2400145328001c593600286440 +0033694300577042005e70420066704300747147007e694700836442008a5d40 +0079512d00734a29006e442500583a1c00482f190037251400241c10001b120b +00150b070014080400160b04001b0d0600201207002916080033180a00401c08 +00581b07005c1a0700611a08006818080070150600780f0500820b0200890902 +008c0a02008f0d0100910e0200960f0100970e0200940c03008d13060082170a +00751d1200641e17005119190040181a00371a1b00322220002e2e2400263828 +00203e2700203b290025382a0031342a0037352a003a3b28003839290035342b +00332a2d002d232c0028212700201e22001c1d1c001718190012151700121314 +00131111001c0d0d002b0b08003b0905004e0a03005d0c0100680b0200710f03 +007512080078150b0079180c0073190f006c1b1000611e160053231c004b2623 +00482c2400482e21004c2e1c00492d1800432a18003e2716003b221400401d0e +0046170600491002004c090000510401005f130d0075291a008e3d2500a45235 +"/> +<palette number="472" name="040224" data="00a48471009567510092553f0090442e0085361f007a28110071220d00691d09 +00490a01003c0600002f020000260100001e0100001901000014020000120200 +00100200000a0200000702000005020000040300000304000003040000030500 +00060500000c0400001204000019030100200302002303020026040300280704 +00280c0600291d0d002b2512002d2d1800332f1b0039321f003c321e003f321e +004f372100563b24005e4028006c422f007a4437008043370087423700954234 +00a43d3100c03e2400cc442500d94b2700e05a2b00e7692f00e9702f00eb7730 +00e5872800d5882700c58a2700b3903300a2963f0099984700919a5000859d56 +007d9c5c00588d5a00438354002f7a4f00257551001b7054000d6b55000d6757 +000b51530009494c00074246000745440008494300074e480007534e00135c5b +00276267004e607500635c7400785974007a5878007d587c00855b7f008c5e80 +0093577600984f67009d4858009944530096404f008d3c4900823f4c00714c4f +006a555a006d6a510074704c007c764800847649008d764a00967d48009f825a +00be827000cb776b00d86c6700dd626100e3585c00e7484900e03b3e00dd363b +00d8333e00d5354000d53a4200d6404400d94b4100d8573f00d85f3d00d7663e +00d36c3600d4703300d5743000d6783100d87c3200d77d3400d17b3500c57732 +00ba672b00ab4c1700ac4b1300ae4b0f00b44e0a00b9540c00a75b0e009a5913 +00805116007b4a140077441300814313008c431400834713007b451500694116 +00573c14002c280f002d240c002e210a002f2008002f1d09002a1c0800241e08 +0023280900252c070027310600333c080041420900524508005f4809006c490d +007844100085430c0087420c0089420c008a420c0088440d00814a1200774d19 +0061521a005b531a0056541b00495d1a003a6a18002e7a1c0020852500189331 +00109c38000c9e3b000c9a3b000a9433000c912e0009862900087e280006742a +0009562d000a4d2b000c442900133621001a281800211c0e0025120700290c05 +002c0805002c0704002e05040030050400320404003202020031020000300101 +002f0200003103020035030100390302003e030200470202004f020200580203 +00600304006b040300750403007c04040083040400880502008c0703008e0803 +0090090300920a0300920a0400900b07008d0a0700880c0900830c0a007c0c0a +00730c08006b0a0600640b07005e0b0700560b09004f0a0a0048090b0040090a +0038080600310807002b0b0900250d0b00210f0c001e110c001e120c0020140b +0028150b00371913004b1d1c005d2627006933390070434a006c5657006e6664 +0074777100897b7900a0807a00b7847f00cb868200c88b7c00c48a7a00b18c78 +"/> +<palette number="473" name="040225" data="00ae340500ad3c0700ab3a0600a93805009b3305008e2f0500882e0500822d05 +00702c0600712f090073320c0071351200703918006a371c006535200062331e +005f311d00632e1c006a311e007134200076311f007c2f1f007c2b1c007c2719 +0077160d0074130a00711108006e1108006b1209006b1308006b140800701208 +00741006007c0702008006010085060000930c0100a1130200aa170300b31c04 +00d12e0700d6340900db3a0b00d63c0a00d23e0a00d0410a00ce440a00cc4f0c +00c5540d00be5b1100b9551100b44f1100b04c1000ac491000ae4c1100b04f12 +00b0561600b3551900b7541d00b3532000b0522400aa502300a54e22009e4820 +0099451e00a0412000a2412000a4422100a5402000a63f2000ac3f1e00b4411c +00b85a2200b96d2d00bb803800c3914700cba25700c8a95a00c5b05d00bbc061 +00b5c46200adbf6200b3b26000baa65e00baa25800bb9e5300bd914900b58137 +00c3632800cb592300d34f1e00d44f1d00d64f1c00d9511c00dd561f00e05e23 +00e5662900ed6e2d00f1702d00f6732d00f6742c00f7752b00f9782a00f87927 +00e2722000d66a1d00ca621a00c5601b00c15e1c00bc5d1d00b55f1d00ab611c +00a3631a0090671e008f6920008f6b230098702800a4772d00b17d2f00bc832f +00c5883400cd863500d5853600d8823600dc803600e27d3500e5783800e07534 +00da6c2f00d0592200cd551f00ca521c00c4491800bd431400b63e1000b13a0d +00b5360500ba350500bf340500c2350500c6370600c83b0800cb430900d34c0a +00db540c00ec5c1300ed5d1600ef5f1900e66a2200de762800d7802b00cc8329 +00b1712200a66b22009c66230086602500765a24006a58210063591d00605318 +005e5319005b6528005d6c2f005f7436006a874000739649007fa94f008bb655 +00a1ba6000a6b86000abb76100aea85c00af9b5500b18a4700af733a00b35c2f +00b9472500bc321c00bc241600bb1b0d00b5130700b00c0400af080200af0402 +00b0010100b0000100b0000100af000000af010100b0030100b0060100b10a01 +00b30e0100b5120200b6170400ba1d0800bf240b00c42b0f00c8311100cb3413 +00cb341300cc351500cf361700d0371800d33a1800d43a1700d1371300cc320e +00c92e0c00c4280a00c1260700be260500b9260400ae240300a32303009a2306 +00912008008e1e0700902007009120080094230700992b0b009d321000a33612 +00af3a1300b93c1200c43a0e00cd390b00d2390b00d83d0c00dd400d00de430c +00e0450a00e0420700d93d0400d2380200cb340100c22f0200ba2d0200b42b02 +00ab270100a22102009f1c00009a150100960f0100940c0100930c0100920e02 +0099120100a4180100af1e0100b8210200be250200bc280200b72a0300b12f05 +"/> +<palette number="474" name="040226" data="00314e30002a5d370026673b0022713f001d7240001973410017723f0016723d +00176d380015643300145c2f000f5126000a471e000d3d1a0010341600153115 +001a2e1500392912004e2a1200632c13006c2e15007630170076301800773119 +0078391b006e381b0065371b0053311900422b18003c291700362817002d2619 +0026261a00222d1d0022342200233c270022452a00224f2e0020522f001f5531 +001c5735002056350024553600265333002952300029512f002a502e00354a31 +00454833006c50350078573400845e3400875e31008b5f2e008a5c2d00895a2c +00754c220064491d00544619003f3f15002a38110022320f001a2d0d0010250d +000b240c00052a0f00032a0f00022a0f0002280f0003260f0005200e00071e0f +000b1d10000e1a10001217100015130f00190f0e001b0e0d001d0e0d00210f0e +0028120f003b160f003e160e0042170d0041180d0041190e00421c0f00452112 +00402f1600363117002d3319002a321b0028321e002434200022352000203520 +001e321b001f26150023201100271b0d002a180b002d16090033130700381304 +0046120200491001004d0e01004c0d00004b0d0000460e0100420e01003e0b01 +00390a020026060100210601001d0602001606040014070500110905000e0903 +00080b04000a0d07000d100a0010110a0013120b001c150a0028180900381c0a +004e200a00722a0a00762b0a007b2c0a007d2e0c007b2d0b007b2c0d00762b0b +00692d10006b331c006d3a2900714530007550370075674c0087795f00978465 +00b2866d00d6a06400dda86600e4b16800e5be6a00eac16f00f5b76600f3b257 +00f5a33e00f6a33f00f7a34000f39f4400ec9d4a00e58a4600e3763900e4602b +00e3542000da511a00d7521900d5531800d84e1500da501400da541500d25d1b +00af5f1f00a55c20009c5a220090512100824f26006b4b260057422400413623 +00382a1c00372118003a1e14003f1d0f00431e10004b210e0054230e005c270d +0066270d0066270d0067270e0066260f00652710006325110064230f0066220d +0068210d0073280d0082320e00923e0c00a6490a00b3510d00c1561300cd5b1a +00d2641f00d0652100bf702a00ab7634009b763f008c7f4400867843007c8348 +006a925000569e5a0046af610041ac5f0046a95b0046a156003b9951002d8d4d +001f7d4500186a3e001754330013412700102f1b000e1f10000e140a000e0b07 +000b0606000a05050008060500090706000a0b05000b1107000c1807000e200a +0010280d00143313001a3c18001d461c00264f20002f5222003955270044532c +0048502f004e4e3000574c2d0062482c006e472d0078422d007d3f2c007d4028 +007c3c2500773d2600743c2700723928006f392800643f290053432c0041482d +"/> +<palette number="475" name="040227" data="00b4486800b2436800b1426400b1426100bb3c6000c5375f00c9365e00cd365e +00d3415a00cc515700c6615500b8775600ab8d5800979a620083a86c007ca56e +0076a37100668a7d0054828800437a93003d63a300384cb3003f3eb9004730bf +00542dd0004f3ed1004a50d3004762cd004475c700447cc4004484c2003c83c3 +003885bb00207ba9001d6ea7001a61a500284ca10036379d003f329900482e95 +00674084006b547a006f6971006b7b7500688e790069957f006a9d850068af8b +0064c495004dd5b10051ccc20055c3d30066bfd90077bcdf007dbde00084bfe2 +0092c5e40095c1e00099bddc00a8b0d400b7a4cd00b89fc800ba9bc300b38ebd +00ab81b400aa619b00ae4b9200b3368900b12c8800b0228800af198c00b21886 +00ba136d00bd0c6300c0065900c8065400d1075000d4074b00d7084600cd0939 +00c0063300b3053700b3054500b3065300af065b00ac066300a60d6d00a81579 +00a72c9d009f34ad00973cbe00913dc1008c3fc4009045c400924dbf009752b7 +009860be008864c700806bc4007973c100787bc1007783c2007692cb00738fcf +00598bd600588dc900578fbc005e8bb0006588a4006f84850071807600707a67 +007b785300a3782900ab782700b3792600b47d2a00b57c3100be7a3a00cb7742 +00e9606600e6566f00e34c7900e24a7900e1487a00e2427c00e7328000e42380 +00e2158200e1117e00e4127d00e7137d00e9177800e9177c00e6197f00e41f82 +00e5358b00e34e9900e268a800de71a900db7bab00d682aa00d17ba000d47aa2 +00d579a700ca6c9800c0618b00b6577f00a53d68009b2a57008d1d4a00891a41 +0079293b00742d3c0070323e005d3544005a3946005d4049006a404800794046 +007a394800873247008e2d450096294300a6243f00aa1b3a00ab163700ab1c3e +00b9235500bb235a00bd246000ba286400b1336800b1406d00b8497500c74e82 +00d3508d00d4549300d8589800db599a00e4569b00f14e9800f5468f00f73b87 +00f02c7800ee297200ed276d00ec225d00e6205100dc244800ce234600bc2746 +00ae233e00a41f36009d1f2f009d1d2e00a1213900a6224400ab204d00ae205c +00b8216900c92a7b00d7388800dd4c8c00d4609100c5739c00b986ac00ae9ab7 +00a0aead008dbe99007fc2850074c37f0076b887007ba687007a948a007d7883 +007b657f007e508500883b86008c2c8d008e1f9200851c91007d1f8e007f2781 +00883c7200975966009a765800998b4f00899747007fa543007bb843007bc445 +008ac4460087b84a007fa24d00739450006b7f5100786849008d5440009f4a35 +00a54f3200a5543600a3543b00a44b4200a9444800aa454e00ae4a5400b54f5c +00bc4a6300c53d6a00cb336e00ca2c6d00cb2f6900bc3c6500b8446200b94b62 +"/> +<palette number="476" name="040228" data="0014201400151b14001419140014171400141714001517140014161400141614 +0014161400141614001416140014161400141614001416140014161400141514 +0014151400161414001614140017151400161514001616140016161400161715 +0015191900141a1c00141c1f001522290016283400172b3b00192f42001b3851 +001d435e00215972002258700023576f001f4f64001c4859001c4451001d4049 +0018272d00161f250014171e0014151b00141419001414180014141800141418 +0014141800141418001414180014141900141418001514170015141600151516 +0015181500151a1400151d1400141d1500141d1700141d1a00141d1e00141d2b +00141b3f00182753001e295700242b5c00252d5a00272f580034375000434b48 +005d6f53006d8461007d996f0080ad890083c2a4007cc0aa0076bfb1006abcb9 +005fb7b00050b3bd0054aeb30059a9a90064ada50070b1a1008cb29600aead7b +00d49c5a00c88c4400bc7c2e00b0722400a4681a008c59170074521a00655a1d +00575e200064723a00808647009d9a5400a59c5500ad9f5700a9a16400a9a96c +00a29d66009a965900938f4c00908a47008e854200867b4100857d43008b8046 +00858144008399710090a284009eac9800adbdac00adc9bc00b1d8bf00afd2c7 +008da1b80073859b0059697e0046596e00344a5e001a2c4a00141e370015152b +001615230017151d0017151c0018151c0018161c0018161e0018161e0017151e +0015151d0014141e001414200015142200171525001f1b290030232a004c2d2b +00662e2c0074332800783327007c34270092302000ae331f00b5341e00b13b1d +00b84f1d00b9532600bb582f00b5643b00ad6e400099744200796d4a005b604d +0047514800303c3a002a363500253030001d242400191b1c0017171a00161519 +00161518001615180016161800161619001518190014191800141a1800141c19 +00141c1a00141e1b00141d2000141f250019252b0022302f002e383900374040 +004753530046575700455c5b00406361003f6863004265630041615900446152 +004767450053623a005a572b005d4c2300594a1c00534418004b3b1600432d17 +0041251700512416006a291600852c160098301500aa341400ab331400a12e14 +008c2f14007c3015005e2816003e1c180022151a0019151e001614240016172e +00162639001535400014384200162f4500162f460016384600143a3c00152d34 +00161e2b001617250016161d0017161900191717001f181600281815003b1b14 +00572914007a3e140095541f00ad6e3100c58e4c00dbae6000eac27000f3d87d +00f7e98000f4ed7f00ebe07300d8cb6d00c8bf5d00b7af5400aa9e4700898343 +00667343004b6448003e594500314a3a0024402f001d372700182d1f00162518 +"/> +<palette number="477" name="10000" data="00342c3e00322637002b263400242732001e26300019252f0017232c0016222a +00171520001c0e1a00210714002407150028071700270c190026111c0025131f +00251522002c162500341728003d182b00451f2e004d2731004e2e3400503538 +005d4c44006a52470078584b00845b4a00905e4a0093614b0096644c009b694f +009e6e5100a06f57009c6b5500986753008c614e00805b4a0078564800715246 +00534644004a414200413c41003d363d003a313900392f3700392d3600392b35 +00392a35003826360037213200371c2e00361729003513250035112300351022 +003413260033172800331b2b003521300037283500372a3800382d3c003a3544 +003a3d4c003c4b5d0046536100515c6500576068005e656b00737171007e7a77 +007f7e7a007a7a740075776e0074756900737464007475640075776500767865 +0072776700656e6700586764004b606100475f6100435f62003f5e6400425f64 +00586d680064736a00717a6d00778070007d86740087907f00959a8800a3a691 +00b1b19500c9b99200ccb99100cfb99000cdb58f00cbb18e00c5ac9100bea793 +00b39e8c00ac998600a6948100a28e7d009f897a00978070008d736b00846763 +00795c5a0066504d00634d4c00604b4c005b48440051413e00493636003f2a2b +00281212001f0a0c0016030600120204000f0102000b0001000a000100080002 +000902030009090900080b0b00080e0d000713120007171700051b1b00051d1f +000a2221000d222200102323001223230015232300192324001d212500202326 +0025252600282a2b00282b2c00292d2e002c31330030323800343741003a3f49 +003e505c003d5460003c586500395f6c0036617100385f72003f5c720047576f +004e516a005846610057445f0056425d00563b560057355000593048005a293f +00581b2b0055192800521826004a162300411622003b1a2400351f280030252c +002c282d00272c2d00222b2c001d272a001a252700192228001a232b0020232e +002c2333002e213200311f320034192d0032132700310e210030091e0034061b +0035081b00360b1d00360f2100331426002f1c2b002b2433002d2e3e00323948 +003a455000424d55004c51590056545a005a545b005f535d00635461006a5665 +006f596700755965007b5760007e5459007d4e500078474800754043006e3c41 +0068393f0066383e0066393f00663a4000643d4100633e3f00623e3c005e3a38 +005a35330058302f00562c2d0054292e0051283000512b30004c2f3300473436 +00423637003d3a3a00373b3f00333b4400313a46002c3c490029404c0027424e +0024485200204c56001c4e58001b4c5800184854001a424f001d394800223242 +00282d40002e2b3e00332c400033304200333345003234460033324500333042 +"/> +<palette number="478" name="Apophysis-040208-115d" data="00000000000300050001000c000001130002051a0004092100060c2400091028 +000f173600111a3d00141e440016214a0018255100192558001a255f001a2663 +001b2768001f297800202b7f00222d8600232d8a00242d8e00242b8e0024298e +0022238e0023238e0025248e0026258e0028278e0029288e002b2a8e002a298e +0026258e0024218e00221e8c00211c8a00201a86001f1883001f1781001f177f +001f1678001f15730020146e001b116900170f6500160e6200160e5f00170d58 +00170d5200140a430012083a00110732000f052b000e0324000e0222000e0220 +000c0016000b0012000a000f0009000d0008000c0007000b0007000b0007000a +0007000b00050212000d0b170016141d001a1820001e1d240027262900303030 +00393939003e3e3e004444440048474a004c4a51004b4953004b4855004d495c +00504a6200524d7100534e780055507f0056518200585386005c5a8d0063618e +00706d8e0073708e0076748e0074738e0073728e0072728e006e6e8e0068698e +0062658e0052578400474c7f003c427b00363c78003136760029307500222b74 +001e2c73001e3072001f3571001f3571001f3671001f387300213b7300213b71 +00203a6f002038650020386300213961001f335a001c2f5500182a5000142449 +000f1c4000121d3e00151f3c0017203c001a223c00212940002b324500343a4c +003c4353004c515c004f525d0052545e0057595e005a5a5c0059595900585858 +0057575700565656005555550055555500555555005151510050505000505050 +00515151005a5a5a005d5d5d006161610067676700686a6a00686d6f006b7174 +006e7980006e7b83006e7d86006e7f89006e818d006d828e006c818e006b818e +00687e8e005f768e005d748e005c738e005a708e00576b8e00566a8e0056698e +0057678e0057678e0057678e005a6a8e005c6b8e005f6d8d00626e8a00636d86 +00646b7f00656a7a006366740063646f0060616a005d5d680059596500575763 +004e4d5c004c4a5b004a485a0044425900403d59003d38590038335900353059 +00332d5900302c5900312b59002e2959002e2959002c285c0028246100252265 +00202169001e1f6e00191c710014177400121779000e157e000d1682000f1b86 +00101e8b00111f8e00111f8e00111d8e00111d8e00111d8e0011198e0011178e +0011178e0011178e0011178e0011198e00111b8d000f1988000d1680000a1579 +0008127100050e6800020c5f0000095500000b4c000008430000093c00000733 +0000052b000003220000001b000000120003000a000200030000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +"/> +<palette number="479" name="Apophysis-040208-115e" data="0000000000050100000c000300130007001a020d00210413002406160028091a +00360f24003d11290044142e004a1633005118380058193a005f1a3c00631a3e +00681b4100781f47007f204b0086224f008a234f008e2450008e244e008e244c +008e2248008e2346008e2445008e2546008e2747008e2848008e2a49008e2949 +008e2546008e2141008c1e3e008a1c3b00861a370083183400811732007f1731 +0078162d00731529006e14260069112400650f2300620e22005f0e2100580d1c +00520d1900430a12003a080e0032070a002b0506002403030022030200200402 +0016050000120500000f0500000d0400000c0400000b0400000b0400000a0300 +000b04000012020400170b0c001d14140020181800241d1d0029262600303030 +00393939003e3e3e00444444004a474700514a4a0053494900554849005c494b +00624a4c00714d5300784e57007f505b0082515d0086535f008d5a68008e616e +008e6d75008e7077008e747a008e737a008e727a008e727b008e6e79008e6876 +008e627400845268007f475f007b3c57007836520076314e0075294a00742247 +00731e4800721e4c00711f5000711f5000711f5100731f540073215600712156 +006f20540065204f0063204f0061214f005a1f4700551c420050183d00491435 +00400f2c003e122c003c152c003c172c003c1a2d0040213300452b3b004c3442 +00533c4a005c4c56005d4f57005e5258005e575b005c5a5b0059595900585858 +0057575700565656005555550055555500555555005151510050505000505050 +00515151005a5a5a005d5d5d0061616100676767006a686a006e686f00746b74 +00806e7f00836e8200866e8500896e88008d6e8b008e6d8d008e6c8c008e6b8c +008e688b008e5f85008e5d84008e5c84008e5a81008e577d008e567d008e567b +008e577a008e577a008e577a008e5a7b008e5c7c008d5f7c008a627b00866379 +007f6474007a65710074636c006f6369006a606400685d610065595d0063575a +005c4d50005b4a4d005a484b0059424800593d420059383e0059333a00593038 +00592d3600592c3600592b340059293300592933005c28350061243400652235 +00692039006e1e3a007119390074143700791239007e0e3b00820d3d00860f42 +008b1047008e1149008e1149008e1147008e1147008e1147008e1143008e1141 +008e1141008e1141008e1141008e1143008d114400880f4100800d3d00790a3a +0071083500680530005f022c00550026004c00240043001f003c001d00330018 +002b00130022000e001b000900120006000a0000000301000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +"/> +<palette number="480" name="Apophysis-040208-115g" data="0000000000050300000c010000130001001a0003002100050024000700280109 +0036050e003d061000440713004a08150051091800580816005f081500630815 +0068081600780914007f091500860916008a0914008e0a13008e0a10008e0a0e +008e0808008e0b09008e0e0a008e0f0b008e110d008e120e008e1410008e130f +008e0f0b008e0d07008c0c05008a0b0300860b0100830b0000810b00007f0c00 +00780d0000730e00006e100000690d0000650b0000620a00005f0a0000580c00 +00520d0000430c00003a0c0000320c00002b0c0000240c0000220c0000200c00 +00160c0000120b00000f0a00000d0900000c0800000b0700000b0700000a0700 +000b07000012030000170a07001d120e0020161200241a160029221e00302727 +00392e2e003e323200443737004a3c390051413b0053403900553f38005c4238 +006243380071423800784138007f40390082413a0086433b008d4540008e4c47 +008e5a53008e5d56008e605a008e5e59008e5c58008e5a58008e5454008e4e50 +008e484b00843a40007f3036007b262c0078202600761b210075141b00740d17 +007309180072091d00710a2300710a2400710a2600730a2800730c2a00710c2a +006f0c2b00650d2b00630e2b00610f2c005a0e2700550c230050091f00490619 +00400312003e0613003c0a15003c0c16003c0f180040151f00451e29004c262e +00532d37005c3b43005d3e44005e4146005e464d005c49490059494900584848 +0057474700564646005545450055454500554545005142420050414100504141 +00514242005a4a4a005d4c4c00614f4f00675454006a555f006f546700745667 +00805770008356720086567400895576008d5477008e5377008e5275008e5176 +008e4e73008e4567008e4365008e4264008e4060008e3d59008e3c59008e3c56 +008e3d53008e3d53008e3d53008e4057008e4257008d455a008a495b00864b5c +007f4d5a007a4f5900744e55006f4f52006a4d5000684a4a0065474700634545 +005c403c005b3e3a005a3d38005935320059332d00592f2800592b2300592820 +0059251d0059221c0059241b0059211900592119005c1e17006119120065140f +00690d0d006e0a0a007104050074000100790003007e0005008200070086000b +008b000d008e000d008e000d008e000b008e000b008e000b008e0006008e0004 +008e0004008e0004008e0004008e0006008d0009008800090080000700790009 +0071000800680008005f000900550008004c000a00430007003c000800330006 +002b000400220002001b000000120000000a0300000302000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +"/> +<palette number="481" name="Apophysis-040208-115h" data="0000000000050500000c050000130600001a0700002108000024080000280801 +00360f05003d110600441307004a15080051170900581a08005f1d0800631e08 +0068200800782a09007f2c0900862e09008a3209008e360a008e380a008e3a0a +008e3d08008e4009008e430a008e440b008e450d008e450e008e4610008e460f +008e440b008e4407008c4305008a42030086400100833f0000813f00007f3f00 +00783c0000733c00006e3c00006938000065340000623100005f2f0000582f00 +00522e0000432700003a230000321f00002b1c0000241a000022190000201800 +0016140000121100000e0f00000c0d00000b0c00000a0b00000a0b0000090a00 +000a0b0000120a0000171107001d180e00201b1200241f160029261e00302a27 +0039322e003e373200443c37004a42390051493b0053493900554a38005c5038 +006254380071593800785a38007f5c3900825e3a0086603b008d6440008e6847 +008e7153008e7356008e755a008e7359008e7158008e6f58008e6b54008e654e +008e60480084513a007f4930007b422600783d200076391b0075341400742c0d +0073250900721f090071190a0071180a0071170a0073160a0073180c0071160c +006f140c0065120d0063120e0061130f005a130e0055120c00500e0900490d06 +00400c03003e0f06003c130a003c150c003c180f00401c150045221e004c2d26 +0053322d005c403b005d443e005e4841005e4846005c504900594f4900584e48 +00574d4700564c4600554b4500554b4500554b45005148420050474100504741 +00514842005a504a005d534c0061564f00675b54006a5557006f545c0074565b +00805760008356600086566100895561008d5460008e5360008e525d008e515d +008e4e5a008e454a008e4348008e4246008e4041008e413d008e403c008e433c +008e483d008e483d008e483d008e4840008e4b42008d4c45008a50490086524b +007f534d007a564f0074564e006f584f006a564d0068564a0065534700635145 +005c4d3c005b4b3a005a4a38005945320059442d005943280059402300593e20 +00593d1d00593a1c00593d1b00593b1900593b19005c3917006138120065350f +0069310d006e320a00712d0400742c0000792e00007e2e0000822d0000862a00 +008b2900008e2d00008e2d00008e2d00008e2d00008e2d00008e3100008e3400 +008e3400008e3400008e3400008e3100008d2f0000882d0000802c0000792800 +0071250000682100005f1c0000551900004c140000431400003c100000330e00 +002b0c0000220b00001b0a0000120700000a0700000203000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +"/> +<palette number="482" name="Apophysis-040208-115i" data="0000000000030500000b090000130d00001a1000002113000024140000281601 +00362005003d240600442807004a2b0800512f0900583508005f3c0800633e08 +0068410800785109007f550900865a09008a5f09008e640a008e660a008e690a +008e6c08008e6e09008e710a008e710b008e720d008e720e008e7310008e720f +008e720b008e7307008c7205008a710300866f0100836d0000816c00007f6c00 +0078660000736400006e630000695d000065570000625400005f510000584e00 +00524b0000433e00003a37000032310000292a0000212400001e2200001b2000 +000f1600000b120000080f0000070d0000070c0000060b0000060b0000050a00 +00060b000012100000171607001c1d0e001f2012002324160027291e00302d27 +0039362e003e3b3200444137004a49390050513b0052523900555438005b5c38 +0061623800716d3800787038007f74390082773a00867b3b008d7f40008e8147 +008e8653008e8656008e875a008e8559008e8458008e8258008e7f54008e7c4e +008e794800846b3a007f6530007b602600785c200076591b007556140074500d +00734a090072430900713d0a00713c0a00713c0a00733b0a00733c0c0071390c +006f370c0065310d0063300e00612f0f005a2d0e00552b0c0050270900492506 +00402103003e2206003c240a003c250c003c270f00402b150045301e004c3a26 +00533f2d005c4b3b005d4e3e005e5241005e5146005c57490059554900585448 +005753470056524600555145005551450055514500514d4200504c4100504c41 +00514d42005a564a005d594c00615c4f00676254006a5a55006f555400745b56 +00805c5700835c5600865c5600895b55008d5b54008e5b53008e5c52008e5a51 +008e594e008e5a45008e5943008e5942008e5a40008e5d3d008e5d3c008e5f3c +008e643d008e643d008e643d008e6340008e6542008d6745008a67490086664b +007f654d007a654f0074634e006f644f006a604d0068604a00655d4700635b45 +005c583c005b573a005a5638005952320059542d005954280059532300595220 +0059521d0059501c0059531b0059511900595119005c5117006154120065540f +0069520d006e550a007154040074550000795900007e5a0000825b0000865900 +008b5a00008e5f00008e5f00008e5f00008e5f00008e5f00008e6300008e6600 +008e6600008e6600008e6600008e6300008d600000885d000080590000795300 +00714d0000684500005f3d0000553700004c2f0000432b00003c250000332000 +002b1c0000221700001b140000120d0000090a00000103000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +"/> +<palette number="483" name="Apophysis-040208-115j" data="000000000000050100030c0000071300000b1a00001021000012240000152801 +001e360500223d0600274407002b4a08002f51090030580800325f0800346308 +0036680800397809003c7f09003f8609003f8a09003f8e0a003c8e0a003a8e0a +00348e0800328e0900318e0a00328e0b00338e0d00348e0e00368e1000358e0f +00328e0b002d8e07002a8c0500278a030023860100208300001e8100001d7f00 +001c78000018730000146e0000146900001565000015620000165f0000115800 +000d5200000a430000073a000005320000022b00000024000000220000002001 +000016040000120400000f0500000d0400000c0400000b0300000b0300000a03 +00000b030003120000091707000f1d0e0012201200162416001e291e002a3027 +0031392e00363e32003b4437003b4a39003c513b003b5339003b5538003a5c38 +003b6238004071380044783800497f39004a823a004c863b00548d40005a8e47 +00608e5300628e5600658e5a00658e5900668e5800688e5800678e5400658e4e +00638e480059843a00507f3000487b2600437820003f761b003b75140039740d +003a7309004072090046710a0047710a0048710a004b730a004b730c004c710c +004c6f0c0047650d0047630e0047610f00405a0e003b550c00375009002f4906 +0026400300253e0600253c0a00263c0c00273c0f002d40150036451e003b4c26 +0044532d004e5c3b004e5d3e004f5e4100555e46004f5c49004e5949004d5848 +004c5747004b5646004a5545004a5545004a5545004751420046504100465041 +00475142004f5a4a00525d4c0055614f005a675400666a55006f6e5400717456 +007e8057008183560084865600878955008a8d54008b8e5300898e52008a8e51 +00898e4e007f8e45007e8e43007e8e42007a8e4000748e3d00748e3c00718e3c +006e8e3d006e8e3d006e8e3d00718e4000718e4200738d4500718a49006f864b +006b7f4d00677a4f0062744e005d6f4f00596a4d0054684a00516547004f6345 +00425c3c00405b3a003e5a38003b59320036592d00315928002d5923002b5920 +0029591d002a591c0026591b002559190025591900275c17002561120027650f +002b690d002b6e0a002a710400287400002a7900002e7e000032820000388600 +003c8b00003b8e00003b8e00003b8e00003b8e00003b8e0000368e0000348e00 +00348e0000348e0000348e0000368e0000388d00003688000031800000307900 +002d7100002b680000295f000024550000234c00001d4300001c3c0000173300 +00122b00000d220000091b000006120000000a00000003010000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +"/> +<palette number="484" name="Apophysis-040208-115k" data="0051515100515151004e4e4e004b4b4b00484848004646460043434300414141 +00333333002c2c2c0026262600212121001c1c1c001717170013131300131313 +00131313000c0c0c000606060001010100000000000000000000000000000000 +0001010100060606000c0c0c0012121200181818001818180018181800161616 +00131313000e0e0e000808080003030300010101000000000000000000000000 +00000000000202020005050500080808000c0c0c000d0d0d000e0e0e000c0c0c +000c0c0c000c0c0c000a0a0a00080808000b0b0b000e0e0e0010101000131313 +0021212100232323002626260027272700282828002828280028282800262626 +0026262600262626002727270028282800282828002828280028282800282828 +0026262600212121001c1c1c0016161600111111000e0e0e000c0c0c000c0c0c +0008080800080808000d0d0d001313130014141400161616001c1c1c001e1e1e +0023232300232323002323230023232300232323002323230023232300262626 +00282828003838380040404000484848004c4c4c005151510054545400565656 +005959590059595900595959005959590059595900595959005b5b5b00616161 +0066666600767676007a7a7a007e7e7e0084848400898989008e8e8e00929292 +009c9c9c00a0a0a000a4a4a400a6a6a600a9a9a900acacac00b4b4b400b9b9b9 +00bebebe00c7c7c700c8c8c800c9c9c900cecece00d1d1d100cecece00c9c9c9 +00bebebe00b9b9b900b4b4b400b0b0b000acacac00a9a9a900a9a9a900a9a9a9 +00a9a9a900a4a4a400a1a1a1009e9e9e009c9c9c0094949400929292008b8b8b +0084848400818181007e7e7e007979790076767600717171006f6f6f00717171 +007676760074747400717171006f6f6f006f6f6f0069696900616161005b5b5b +0054545400545454005454540054545400545454005656560059595900595959 +0059595900565656005454540056565600565656005454540054545400515151 +004b4b4b004b4b4b004b4b4b004f4f4f004f4f4f004f4f4f0051515100515151 +004f4f4f004f4f4f004b4b4b0048484800484848004646460041414100414141 +003f3f3f00414141004343430048484800484848004f4f4f0051515100515151 +005151510051515100515151004b4b4b0048484800484848004b4b4b004f4f4f +0051515100545454005656560059595900595959005959590059595900595959 +005b5b5b005b5b5b005959590056565600565656005454540051515100484848 +0043434300414141003b3b3b00383838003b3b3b004141410046464600484848 +0051515100595959006161610066666600666666006969690069696900666666 +00616161005f5f5f005f5f5f005f5f5f005b5b5b005959590051515100515151 +"/> +<palette number="485" name="A_Bit_Confused" data="00db8c9800f3a5ab00eda7c000e8a9d500d59dd400c292d400b886c700af7abb +0083549c006f4091005b2c87004e257300421e600036235a002a285400272a56 +00242c5900273c7f003546880044509100585888006c617f0075637e007f657e +00ab666c00b8595700c54d4300c04c3c00bc4c3600b44a3400ac4833009c3537 +00882937006a1f3500641f32005e1f2f0069182800741122007e0f1c00880d17 +00ac1a1000b41f1600bc241c00bb2b1a00ba331900ba391c00bb3f2000bb4730 +00bd4b4900b25c7100b56c8300b87c9600c77da400d77eb300de7cb400e67ab5 +00f374bf00eb6eb400e469aa00cc679b00b5668c00b0638c00ab608d00a75d8a +00ae558c00a7547200ac516800b24f5e00b94d5c00c14b5a00cd395100cd2f46 +00c9213700be233b00b32640009d27420088284500802a4500792c4600762e49 +00742e49006a273b0062263a005a253a0058243b0056233d004f223e004a1f3b +00381545002f134c0027115400231055001f10560019105400170f4f00171148 +001b11440030134500441a490059224e00622a54006c335b0071416c00704b82 +006e519a0077559c00815a9f00875da2008e61a5009667a0009a659d009e5d8c +00aa578800dd559600e8579d00f35aa500fd5eac00fe6cb600fe75bb00fe82b6 +00e090a100c9918f00b3927d00aa907300a18e690093915d0082995400779653 +0075934c00776e4700756b48007368490070604b0077654200826039008a572e +007d3625006b2f2d005a293500562c3c00532f44004d3b4e004a3e5400463a5d +0036365f001e41580019465200154c4c00135243000e5138000e4c2d000e4821 +001b3f1400203c1300253a1200303916003d341500512c1c006a2a2100863128 +009d433600c26d4b00ca735100d2795800de896e00dd988900d1ad9c00c2c6ae +00b4dac500b4d6cc00b4d3d400b1d2e400a9d9ec00aee7e800afe7d200b0d8c2 +00b5cebe00adc4be00b0bfbc00abaca3009c8d8b008d707c007c627d00795e87 +007a5487007b5186007c4f850077538b0080589000825f93007862940070698f +005d6a8d0055658700575f7c0050516d004c48590046414c003e3d4500413d42 +0047413f0055463e006e4f4200865f5800997075009d7f8a009683a1008c79a9 +00836fb9008570c8008168c7007963c4006751ae004c349a00392b8300321d68 +00331a50003f1c380042152600401619003e121400390f14003d0f15003c0e16 +00370e19002f101e0026132900211e3100202535001d29350017292e0011242d +000d252800112525001525230015211b00141b140019180b00221b0800312305 +0041270800482b0c0059300d006a360e007a3e0e008b3b0c0090340f00952a12 +009c221200a3221b00aa232000b1272d00b6323c00bb444c00c45d6a00cf7883 +"/> +<palette number="486" name="Afternoon_Shadows" data="0056493f004c443e0048413c00443f3a003e3a360038353200312f2e002b292b +001d202200191d1d00151a1900111413000d0e0d000a0a090008070600080606 +00080606000b0a0b00121210001a1a150025241d00312f2500373529003e3c2d +0058523f00615846006a5e4d0072634d007a684e007c684f007e695000826a53 +00846d550085715900826e5b007f6c5d00776658006f6054006a5b510065564e +004d40410041373b00352f35002e2d3500282b3500272e380027313b002d3a41 +0036454b00505d62005d696c006b767700757d7d007f85840084898800898e8c +009da09700a8a89c00b4b0a200bfb9a900cbc3b000cfc6b100d4c9b300d9ccb6 +00dbccb800d8ceb600d4cab200d0c7ae00ccc2ab00c8bea800c0b8a200b5b09a +009f9c8b00979484008f8d7e008c8a7a008a8776008984730088827100877e6e +00857c6900786f5f00716658006a5d510068594d0067554a00695344006e5343 +007e5e4b0087665200906f590091715c0093745f00917462008b706100846a5a +007c6254006d5147006c5146006c5146006c5348006d554a00705a5100756059 +007e6b6400806c6500836e6700846f6600857166008b776a00917f710099897c +00a7968700c4b29e00cab8a400d0bfaa00dac8b300e0cfb800e4d4bb00e4d3b9 +00deccb400d8c6af00d3c0aa00d0bca800ceb9a700c8b2a300c0a89d00b6a094 +00ab93860095796c008f736700896d62007c61560070544c00654b45005b403f +0048353500412f30003b292c0039272b0038262a0037252a0037242900372428 +0036232a002d232b002b212a0029202900271e2700221b2300221a2400231a25 +00291e29002a202a002c222c002f252d0031292f00332c3100332b300032292f +0031262e002e202a002d1f29002d1f29002b1d27002b1d24002a1e24002a1e25 +002c1f26002b1e25002a1d2400281a2300251721001f131d001b0e1700160c13 +00140b0f00130a0d0012090a0011080800110707001107080011070700100606 +000f0707000f0707001008080011080900110908001208090011080a00110a0c +00120d0f00151314001c1c1d0026282700323432003e413b004c4e450058594e +0065645800736e5f007c7967008886710095927d00a29f8800afab9300bcb79d +00c4bea400c8c2a800c9bea500c1b69d00b5ac9300a8a189009b957f008e8975 +00827e6b00767263006a685c005e5d54005250490045433e00383633002b2927 +001f1d1e0017131400120d1000130b10001910150022161a002e1e20003a2623 +00452f26004c362900513e2a0056432a005b442b005f462d0061482f00654b34 +006d4d3300735133007851330079553400775934007a5c35007f6138007d6139 +00745b3a006e543b0069513b00684c3d0064483d005d473e0054423c0053453d +"/> +<palette number="487" name="Air" data="005794c9005894c8005894c8005894c8005995c9005b97cb005c99cc005e9bcd +0075a0ce0087a2d10099a5d500a6addb00b3b5e100beb7e100cab9e200cab7e2 +00cab5e200bbb7e600b1b7e500a7b8e50095b1e00083abdb007ba9d90074a7d7 +0066a3d40064a2d40063a1d40062a0d30062a0d200629fd100629fd100629ed1 +006b9cce007e8cc0007a82b4007778a800706e9d0069649200655f8d00625a88 +0052467600484575003f45750046497c004d4d83005350870059548c00585d93 +005e689f006e7eb3007283b8007788be00708abe00698dbe00668aba006487b6 +005a73a100516d9c00486898004a6494004c6191004b5f8f004a5e8d00405d8e +00375f8f00315f93002e5b8f002c588b002954860027518100224370001b365f +000c1e3f000817360004102e00030d2800030a2200040c2000060e1e0007161d +00081e1f0009272f000d323a00113d450014434b00174a5200205a5f00275d71 +002f698f0034709a003a77a6003c77a8003f77aa003d73a60037699900325e89 +002d527c0022436d00223f6800233b63002b3a6300343a6300424168004d4d72 +00526d95005f78a4006d83b4007288b600788eb9007596c0006b9cc400649dc7 +005e9aca005994c5005792c4005691c300548ec000528bbd004f87ba004b83b6 +004276ab003c6ea30037669b0034629700325e94002e5b8f002b588e002c598e +002e5a9000336196003564990037689c003d71a400437aad004880b2004c84b6 +004d86b9004d87ba004d88bb004e88bb004f89bc00518abf00538dc1005590c3 +005893c6005e99cb005f9acc00609ccd005f9cce005e9acd005b97c9005690c4 +004579ae003f71a6003a699e00305b8d00274c7c001f3e6d0016336000102956 +000b2450000d285200102d570014325d001d3f6c00274f7e00305c8c00396a9b +004f87b800548cbd005992c2006698c700769bca00889ccc00989ccf00a49ed3 +00ada0d300b8a2d400c5a3d300c3a1d400bfa1d600b4a3d800a5a5d800a1a8d8 +0080a4d40078a2d20070a0d100619cce00548ab40048779f003c658c0030557b +002f578400284e770023466d001e4067001b3a600020437000234c7c00275285 +0026558900265689002b5588003755880048588c00545c8f005c5d90005d5c8c +006056860064567e0063567c0061547b005750750048436b0038375500232a43 +00131d320008142600020a200001071a000004190004041c0006082100080d28 +000a122f00071838000a1940000b1c48000c214f000f2755000d2e5b000e3160 +0011356500163c6d001d457700255182002d5d900036689c003f73a900487fb5 +00518abf005894c7005e9acd00629fd10064a1d40066a3d40067a3d50067a3d5 +0066a3d40065a1d300629fd200619dd1005f9bcf005d99cd005a96cb005894ca +"/> +<palette number="488" name="Angora" data="00573249005c3d4f006b485a007a54650087627700947189009c769000a47c98 +00b7849e00b487a000b18aa300ab859900a5808f00997884008e707a00896c76 +00856972007a5e720078586f0077536c0078546e007a5571007b5774007c5a78 +008e67830098708c00a37a9600ab7c9a00b37f9f00b37e9d00b37d9b00ad7897 +00a16c8b00884c6c00753e5d0063314e00582847004e1f40004b1c3e00481a3d +00401a3b00401a3c00411a3d00441d4000482143004b2345004e264800562d4e +005f3556007244660077476a007d4a6f007c486d007c466c0077416800733c64 +00632f57005d2d5300572c5000552d5200532e5400573056005b32590060365b +0062365d006436600063345a00623354005f314f005c2f4b00572b4500562a41 +004f2735004e2332004d202f004c1f2f004c1f30004b1f30004a1f3100491d30 +00481d300043192e0041182d0040182c0040182c0041192d00421b3100452036 +0052334b0059395600613f6200634165006644680069466900694866006a4463 +00683d5d00623147006230430062303f0064324100663443006b3a460072424b +00824f5c00854f5f00884f6300834b61007e485f007a4561007e4668008d4f75 +0091597e00a47da000af88ab00bb94b600cea5c700dcb1d400e0bad900dfbfd7 +00ddb5d200dcb2ce00dbafcb00d8aeca00d6aec900d3aacb00d4a6c800d1a3c2 +00cb9fb700be96a400ba939f00b7909b00ae898e00a67f8500a17b80009f7880 +0096717c00946c7b0092677a0093667a0094657a00956279009461790092627b +0095637f009e6484009e6684009e6885009d6e86009d6f83009d707d009b6d77 +0088626900845f6500805d620078585d0071515900694a560065465400604552 +005d4450005a3f4a00593e4a00593e4a00593f49005f424d006a455100794e59 +00956072009b627700a1657c00ae6d8100b4718300b4718600aa6d8800a36986 +009c637e00955e76008a59710083566e007f5369007a506200754c5c00704859 +006b4255006b3f53006b3d52006d3952006f3751006d345200682d4f0068284c +006625470061234500561e41004d1a3b004718360044183400411936003d1937 +003c1b37003c1c3600411c3700411d3b00431f3d0043203f0046213f00492240 +004c2541004f274200542b4500582948005c2b4b005d2d4d0060304d00602c4e +005f284e005f264d0061294d00622c4d0064304d006a324e00733851007a4056 +007e4a5e0084526200885764008a58670086596800845867007e55610079525c +00724f59006e4a58006844560067425400674354006f465a0078456200804868 +00854f6f008c5a740094647b00996f81009e7984009d7f7f0097817b008e8279 +008a82740088786800806a610072595c00674f570060424e005c394b00593349 +"/> +<palette number="489" name="Antique" data="003c122600481937004c1f3e00512545005226490053274d0052264d0051264d +004e214b0050204900521f48005421470057244700582645005a2943005a2941 +005a2a400056243b0055223a0055203a00561f3b00581e3d00581f3e0059203f +0059264300572743005629440053284200502741004e243f004d223e00491e39 +00451a34003d182a003917240036161f0034151c003315190033141700331416 +0031101200300f11002f0e11002e0d11002d0d11002c0d11002c0d11002b0d12 +002a0d1300290d1300270d1100260d1000240c1000220c1000220c1000230d10 +00271115002c15190031191d00331b1f00361e2100361e2200371e2300371f24 +00381f2500391e27003c1f28003f202a00401f2b00411f2c00401f2e003f1e2e +003d1a2d003c1a2f003c1a3100421d370048203e00471f3d00471f3d00471f3e +00481f3e004c21400050254300552a46005a2e4b006033500065375200673952 +0066354f005f2e48005928410056263e0054253c0057293f005e2d4200663341 +006d3c42007e4d480082504a0087544d0087544d0087554d0087564f0087544c +0085554500855543008656410085564000845640007f543e0079503e0070473a +00653c32004c25220047201f00421c1c003a16190036121900360f1d00391024 +00461a35004c1e3d00532346005424480056264b0057284c0058274b0059274a +0058254a005c2b4b005e2c4d00602e4f00623151005f314f005b2f4b00562a45 +004a1e3800471c3500451b3200461b3300471b3400471b3600471b3800471c38 +00461a3800461834004617330046173300481934004c1d36004e203800512439 +005226390051263800512637004f2534004e2333004e2431004f263200502833 +00522b3300532d3600522c3600522c36004f2834004c233100491f2c00461c27 +00411a1f0041191e0041191d0041191c0040181c0040171d0041161c0042161c +0044161c0048181c004b1a1c004d1a1c004d1a1c004c1a1c004b1a1c004b1b1d +005222220055262300592b250063342b006b3d300073453500774a3a00784c41 +007a4e49007e51540084595f008e636d00986d7a00a3778800ad809000b08298 +00b0819b00ad7b9c00a87599009f6e940096668e008c5f8800845b7f007b5476 +00704b6b0066415f005b3753004f2d4500452438003a1c2c0030152000281018 +00210b12001d080f001a060e0019050e0019050f001a0610001c0611001d0712 +001f07130020081500210916002209160022091700230a1700240a1800240b18 +00250a1800260a1900270a1a00270a1a00270a1b00260b1b00260a1b00240a19 +0023091700220915002208140022081300220712002208120023081100250911 +00260a1000270a1000290a10002b0b11002d0c13002f0d1600320e1a0036101f +"/> +<palette number="490" name="Arizona" data="00cd826b00d48a7200d3887400d2877700d9918e00e09ba600dd97a600da94a6 +00c768ba00ad54c7009440d500862dd200781bd0006e16c8006411c100600ebd +005c0bb9005e06a20060078f0063087d00610972005f0b68005d0a63005c0a5e +00570751005508500054094f0052074f0051064f0050064e004f064d004f0449 +004c0346003a033d00340239002e0136002a0037002700390026003a0026003c +0031014300350045003a0047003b0044003c0042003c0040003d003e003c0039 +00390033003a0234004103390049043f00550a460061114d00661550006b1954 +0077254f007b2c49007f3444007333390067332f00612e2a005c292500552424 +00521d2900450e3100480937004b043e004e04400051044200560447005b044d +005c0857005c0761005d066b0061067000660776006607770067087800630675 +006602730067055f005f04530057034800520243004e023f0040023500380330 +00320128003100230031001f0033011c0035031a00400717004d101400611813 +0069200f00682905006c2c0c00712f13006f2b17006e281b00641e21005c1a25 +005b0e360065183a0070223e007b303d00873e3c009c563d00b1673b00b86d37 +00c57a3100c0833900b5793a00ab703b009a593d0088494400763b4e006a2c54 +00681d5e00691a61006b1765006e16680072166c007917730081197a00861b81 +008e1c8d008c149d008b139a008b12970088119000810e8b007307840068047a +0056057400500376004b0279004e077600520c74005a196f006c2764007f3b59 +009c594f00c47d2a00c77d1f00ca7e1400cd801000cc851500c2761400ac5b11 +007f3623007b332a0078313200762b3f0070284c006826500068295500732f51 +007c394d00843f3e00833d3a00833b36007f3433007d312f007b293100782131 +006f162d0070162c0071172c0075182c007b1e24007d261a00792d1600712a17 +0069251d0063202100591e2500501b2b004c18390055174b005f1c6000692571 +0085368f008c37940094389a009a329a00a7358d00a62e85009f2880008f1a78 +008f126100890a4f007e0748006f074a006b085000690752006806510065084b +00640d4700601240005a16380051192d00491b20004619180040161200381212 +0031170f0030160b002f160c002c101100291016002910170029121900311120 +00390e2b00460f3800560c42006b0f5300800e64008a126f0094106d00981570 +009e157a0092107e00820a7900770c730075127200731172006f0f76006f0d7f +00750f82007c1283007f1784007d198e007814950074109a0071119f006a12a6 +006810ac006e0eb0007813b4007715b4007114b3006711b4006416af00611aa8 +00611c99005e1d9400662988007d4380009a617100a25c6800a6526300ac5764 +"/> +<palette number="491" name="Autumn_Garden" data="0057473e005b4a47005a4b49005a4c4c005a4e51005b515600584d5200554a4e +0051464c0054484e00574b50005a5455005d5d5a0063635b00696a5c006c6c5b +006f6f5b00787156007870530078705100776f4900776e4200776c3c00776b37 +007566290076622600785f24007758200077521c00784e1b00794b1a007a4618 +007e44150085471600884c16008b5116008d551a008f591f008f5c2100905f23 +008f6a370093733f00987d480098814700998646009887420098893f0092853a +008a843600817a37007e7234007b6a31007561270070581d0068511700604b11 +004c3a04004735020042300100412f0400412e07003e2c07003b2b0700392c0b +003a2b0c003f2c0c00442d0c004a2f0c004b300c004d310c0050310c0053300e +005c33110062381100683e11006d441500734a1a00744b1d00764c2100784d23 +00794c280079512c0079572d00795e2e0078612f007864310075683200736735 +006b63330066602c00625e25005f5d22005d5d2000585e1b00535e1a004d5d1b +00485b1d00415723003e5627003b552c0039542d0038542f0035523300334e38 +002d4b3e002c4b40002c4c42002e4c4300304d4500354c46003b444800443e44 +0046393c0047352b0048362900493827004d3d240055432200664a2300725320 +0086651b008b6d1b0090751c0090781b00917c1a0096861d009b8d1e00a1961a +00a99f1a00b0a41500ada11300ab9e1100a1991000968f0f008b860a00827f08 +00787703007573030073700400706e04006e6c05006969050065660700626609 +0060650e005f671d0060692100616c2500636f2e00697336006b763c006f7740 +00707446006f7447006e7448006d734d006e774e00707b4c00727e4900767d44 +0076793d00716d2b00706a28006f6725006f651e006e651800706513006f6513 +006b6016006a5c180069591b0067531f0064502400664e2800664f2c00674e32 +006a4d38006b4d3d006a4c3f00684a400067494000664b3d00644c3800634934 +00614729005f4525005e4422005a411e0055411b00524118004f4315004c4714 +004b4a14004b4c1400494c1800484d1d004a4c24004b4b2b004a4c32004c4f38 +0051503a0054513f00595246005e554b006356520066575a00695b6300735e6a +00775f6e007a6178007c657d00866d7f008e768800917f8c009a889000a08d8a +00a28f88009e8d84009e8c7700998b70009389660091895e008f8353008c7e48 +00857540007b6934006f602b0063572800595125004e4a2400434622003a4023 +00323a24002e3628002b332a0029332e00273233002634340026353500273735 +00283833002c3730002f392d0035392c003b3a2a00403a2b00443c2e00473e33 +00494037004b403600544a41005c5146005e5447005f5348006053480060534a +"/> +<palette number="492" name="Autumn_Leaves" data="009760220082823f007d7f3900787c3300686b3200585a32004f4f3200474532 +00292e210023281b001e23160020231300232410002b271900342b22003a3127 +0040382c0056504600615a4a006c654e0072674f00796950007d684d0081674b +008d713d0086773800807e34006c7d2800597d1d004f7a1c0046771b00396515 +0032540f00272f0a0027250a00271b0b0027180b0027150c0029180c002c1c0c +003b2713003f280f0043290b004a27080051250600511e0400511702004a1404 +00441208002f060d0026080c001d0b0c00240d09002c100600341308003c160b +00572614005f271400682915006025100059220c00511f0d004a1c0f00381412 +002a0f150016162e00222731002e393400344337003a4e3b004c5e3e0067703c +008d7a37009c773800ac753900ae743a00b1743c00ac7a3c00a7813d00a0804a +00978358008b835b008b7a5e008b726200876b5c008465570073594c006a4c48 +0050383f00453339003b2e33003d2a30003f262e00432626004d2722005f291f +006a311e008b462a0095502e009f5b3200a05e3600a2613a009b5d3700985632 +0081513600744c350068473500634736005f4837005646360051482e00505029 +0050533000565829005a592b005f5a2e006657300070532d00724b2900774724 +006e4326006b3d280069372a0063372a005e382b005a312f00572a31004f272b +004c2225003f211c0040211c0042221d0041292100433329004d3e3400584b3c +00745d39007f5d32008b5d2b008b5b26008c592100844f1b00784219006c3b19 +005d331e00402b1b003e291b003c271c003a271b003825110034250b00332a0a +002923050026220500232106001921030015190300120e03000f0901000f0600 +00160200002000090026000a002c000c00330011003d0218004d071600530c12 +005d200d005e240a005f2907005d2f07005b350a005b3d11005d3f15005a3c15 +00553d1c004e3f1f0045391b0042351c003e381e0038371d003a3421003a3420 +0039222000381d21003718220033101a002d0814002705130023060e00220c07 +00221305002216080029190900301b06003218070033160800330f04002e0a02 +00270b010022080000200703001e0c09001b16110019211d001d2f35002c4246 +003c534400416747004d6b46005d623400616429005b5c2500554b2300534a2a +004a4e33003e4f3b003e583d002f562f001d4d28001a492700133d1400133805 +001a370b0021351200333c14004a4222005a472e00694f33007d5a40008d6947 +0095834d009a9352009a9c4c00a2a84c00a4a84800a1953c00a9822f00a27c28 +009b7126009a622200875d2500785a2b00785c3100715d3b006c574300755640 +00795c3d00815d3e008f583600965729009c582100a5551c009d5a2900945d32 +"/> +<palette number="493" name="Autumn_Mountains" data="00bd9c7f00c3a78700bb9e7b00b3967000ac8d6b00a5856600a08061009b7b5d +0085634b00775235006a422000653c1b006137170063391a00663b1e00683d1f +006b4021007c522a00845a2d008c6230008d6432008f6734008f6634008f6634 +00875f3600835e3700805d3900805d3a00805d3c00815e3d0082603e00876044 +008b664900977356009c795800a27f5b00a7825c00ac855e00ae865c00b1875b +00b0835300ac7f4e00a97c4900a37844009e743f009c723c009b713a00996e34 +00976a3100926730008f662f008c652e0088602c00855b2a0084592900845728 +007d4a29007b46260079432300783e1f00773a1b007739190077381800753516 +00753415007b3d1e00804122008646260087482700884a280088492600874925 +007f4522007a402000763b1f0070331a006a2c1500672a110065280e005f270a +005c260a0058290e00572c1500572f1d0057312000573424005b372b00603d2e +0062473600604b3b005f4f40005f4f41005f4f4300624c430068493e0069463b +006943370067403400693f31006b3f2e006c3f2c006e3f2a006f3e2500703c22 +006d361f006b351c006934190067341700663415006435120064340f00653411 +00673514006c3a1b006d3c1d006f3e1f007243220075482800794e2e007e5533 +0086613e00896441008c6845008c6845008d694500916a4300946e41009c7749 +00a27b4b00a17b4b009f7848009d754600926837008e653500895e300083572f +0072472900673b1d005c2f1200592b0e0057280a005527060055250500562607 +00572a080061350f00653a1100693f14006f461b00734d250077532b007a5932 +0083653a0086673b0089693c008b6c41008d6e43008e6d3f008c6a39008b6633 +008a612a0083532100814e1e007f491b00784013006e350d00642a0600592003 +004d1203004c1103004c1004004b1007004a120a0047130f0042171200421a15 +00451e1600471f16004b22160049231500432318003e231a003f231b00412218 +004e2711004f28100051291000512c1400552e180059301b0062321d006c371d +00753e1d007d472100834d280086552f00895835008c5a3900905f3e00976842 +009e704900ab845d00b7967300c0a58700cab49b00d5c2ac00dac7b000e3d5c1 +00ede1d100f3ece000f9f5ef00fefefc00fefefc00fefefd00fffdfc00fefdfb +00f7f2ef00f0e7e200e7dcd600ddcfca00d3c3bd00d0c1ba00c7b6ae00c0aaa1 +00b8a09200af968700a5897800a3877200a0846c009f7e66009e7b61009e7960 +009b785e009b785e0099775b0097735500946f4e00916b4a008c674600886547 +0084644700836445008264420082633e0081603600815f3400805c3400825c34 +00865e38008a613d008e664100946c490099714f009f765400a77e5c00b38d6e +"/> +<palette number="494" name="Awakening" data="00d6c51d00d3cc5800cfc96e00ccc68400cbbd9900cbb5ae00d0adb000d6a6b3 +00d7839e00d2769000ce698200ce658500ce628800cc7a9200cb939d00c5989d +00bf9d9e00acb1a800a8aea400a4aba000a2a29a00a09a95009f9b95009f9c95 +00b3a7a700bbb5b400c3c3c200c3cdc400c3d7c700c1d6c200bfd6bd00afd1a5 +00a2c4860086ac56007aa53c006e9f22007ba2160089a50b0091a80a0099ab09 +00b5b11d00c5a92900d5a13500cba74d00c1ae6600bca96100b7a55d00bb9151 +00be9a4400b9af3f00b3aa2500aea50c00a39e0800989805008d970500839606 +00608c030062870100648200006a8403007186070074890900778d0b00768d0d +007487100051811d003d771e00296d1f0021672000196121000c58210003501f +00034b1300085010000d560e00135b0a00196006001a6204001b640300206803 +00256a0500256609002d681100356b1a00406921004c672900635a3700794938 +0085523f008d503b00954f3800954f320096502c00895f1f0078741f006a7e19 +0065801200567d100046771300367116002d6d1700246a190018662000106122 +0007542900074f2b00084a2d000e472a0014452800254b20003b531b00506115 +006a651000907d0900938207009688050094860600808009006e790c0057700c +00285b1100195913000b5716000b5916000b5c16000d5f160012631600146419 +001b671b00196d1a00176b1a00156a1b0014621d00105a1e0008561d0004541d +00175815002a6111003e6b0e004a710c0056780b00728a08008b9d040099a902 +009ea6020093a403008aa10200829e02006c8c02005b7b00004c730300467305 +004a710e004d741100507815005d851c006f912c007d983e007c9d4c007c9f4f +0080a14d006f9b4600669844005e954200558f39004d89260041811700377d11 +003578110036760f0037740e0039760a003c7a08003e7e08003f7b07003b7707 +00367307002e710c00276a0f001c5f1300145215000b471800063d190002361b +00002f1d00002f1b00002f1900043315000c3c1000154910001b540f00225e12 +0029661100316f1200377614003d7b1700407c1a003f7c1800407e190045821d +004a8226004a802e004c8437004e863f00488544003b7c4700347a490031764b +002e7346002a713c002d7432003d7630004b783000567d2d005a8129005e8228 +005f802600577a24004b7320003c6b1d002d681b0020601800195b1600165b14 +0012601500156517001c671b002d6c20003f732e00537f4200658e5b00799d6e +008da3760098a97f0096ad850089af86007ca87700719d650064955700568d49 +0049873f004d85360057863f006c885200809267008ea06d0098a96200a5a458 +00bfa75500ccb14f00d2bd3d00d1ba2100dcba0c00e5c10100eac60100e2c709 +"/> +<palette number="495" name="Baby" data="00a8968500c3999400c89d9900cda29f00caa19800c8a19100c4a39200c1a593 +00b3a89600a6a192009a9b8e0095938000918c73008b856b00867f6300857c5f +00857a5b007c785b0076775a0070775a006e775e006d7763006c7a65006b7e68 +007c8876007c9184007d9a920076a89e0070b6aa006fbaad006fbfb00068cab3 +0069d2b4007fcdb3008ec2b5009db8b7009bb4b7009ab0b8009aadb8009aabb8 +0098b2ab009cb3a400a0b49e00abb09400b6ac8a00b6a68800b7a18700b29c86 +00ac8b85008e70780089667500855d7200826075007f6379007e687b007e6e7e +005d7e8e0053838f004989910042828b003b7c8500417c8000477c7c00507e6a +00537e6500617c6500647c6e00687d78006b7d7b006f7d7e00767b8b007e798d +00857e9100867e8a00877e8400847a7d00827777008277720082776d00827461 +0085705a0085624a00835b440082543f00804f40007e4a42007c4645007b464b +008c5c610090676a0095727300957a760095837a0092918300869f910075ad9e +0066bdac0062bebd006bb6b40074afac007fa9a8008aa4a40098989800a29292 +00a292950092989e00829fa70079a6ab0070adb0005db1ad0048b4a80039c1a5 +002dbb9d0026af8e0025aa8e0025a68e0026a3920025a09500259a9800259798 +00259a940033988f0041978b004896880050958600559482006a8c7a007c8272 +007c8067007f7a5900807c5700817e5500807f5100817d5600817b5d00817a62 +00796874007a6a82007c6d90007b6e92007b7095007e729b00806b9b0083688f +00826486007b5166007b5363007b566100765c61006b68610060766800538171 +00399e7d00339d7f002d9c82002f9e80003c9e800047978200518c8300608680 +006e817800777f7300767f710076806f007a866e00759378006a9e840065a898 +0057b3b20057b1b60057b0ba0061b5bf0064aebe0064a9ba006bb0b1006ab4ac +0058afa2004daa960051a9980055a491005796890062958d00759a8e00869b8f +008ca78e008dac8f008fb2900088b794007ab3970069af990053ac9b0044aa9d +003da19c003f9d9c0047a4a00052a0a20067999f00769c9a007b9a9800818d93 +0085888b0085818500837782007f6d7e007a637a00795f7800765a7000735c64 +00725e5700765947007b5a3a007a5d3000795d270079602e007d6538007c6c41 +00787155007b776800828270008f8a7900a3888d00b88c9b00cb979c00dc999d +00e1939e00db909800d3928b00c68f8300bb897f00b5877b00b38b7d00b48c7f +00b3877a00af867500a9847100a07e6900977660009273590088725100826b4b +0081644500816142007f5b41007d5341007b52400077543e0076563800735f32 +00746d340079783800798037007d874200868f5800888e610090886300a29075 +"/> +<palette number="496" name="Banana" data="00c7b09900c3b09600cdbaa200d8c4ae00d5c2ac00d3c0aa00d2bfaa00d1bfaa +00d8c2ab00dac6b000ddcab500ddcab500ddcbb500dccbb700dbccb900d9ccba +00d8ccbc00d5cbbd00d9cdbf00ddd0c200e2d4c500e8d9c900e8d8c800e9d8c8 +00ead5c000e4cdb600dfc6ac00d8bca000d1b29400cfad8b00cda98300cca071 +00cf9d6200d4a05c00d39d5900d39b5600d19d5c00d0a06300ce9e6600cc9d69 +00c1946c00bf936c00be936d00c0967000c29a7300c39d7600c5a07a00c5a682 +00c7aa8900cbb39600c8b39900c5b49c00c4b39d00c4b39e00c4b39e00c5b49f +00c6b8a600cabcaa00cec0af00d0c3b200d3c6b500d3c6b400d4c6b400d5c3ae +00d6bea500d6b59500d3af8d00d1aa8600d0a78100d0a57d00ce9f7600c5976e +00b38c6700b18a6600b0896600ad8a6900ab8b6d00ad8d7000b0907400b5957b +00b9987d00b5977c00ae907300a8896a00a4846300a1805d009b775200947148 +0095693a0097662e009a6423009f652100a5672000ad6a2300b26d2300b26f23 +00b7732800bd7d4100bb814d00b9865a00ba875f00bc896400bd8c6c00bd9070 +00be937600bf967600c19a7700c19a7800c29b7900c49c7800c69c7900c69e79 +00c59f7a00c39f7b00c39f7d00c3a07f00c4a38200c5a48400c6a68400c6a685 +00cca78400cda68300cfa68300cea78400cea98600ceab8b00d0ae9100d1b196 +00d2b79f00d3c2ac00d3c2ac00d4c3ac00d4c1aa00d3bda400d1b59600ccaa86 +00b88f6200ad805000a2713e009a6a380092643300895f3000825d3000866236 +0088694600958166009b876b00a18e7100ad987e00b8a28900bea98e00c2af92 +00cab49800cbb59800cdb79900d0b89800d1b99700d1b89600cfb59400ceaf8c +00cda77e00c7965f00c4915900c18c5300bd814400bd7d3800c17a2a00c07c29 +00bf7f3900c1813b00c3843e00c58a4a00c9925600c5956600c19a7000c09d7b +00c2a28200c2a58900c0aa8e00c0ac9400c1af9800c3b19c00c6b49d00c7b5a1 +00c8b7a500c9b9a600cbbba800d0c0ae00d3c6b600d7ccbd00ddd2c400e4d9cb +00ebe1d400eee5d900eee8dc00f0e8dc00f0e8dd00eee5d900e8e0d500e4dbce +00e2d8cb00e0d5c600ddd2c500dad1c300d9cfc200dacec000d9ccbd00d7c9b8 +00d3c2af00d0baa300ccb19700c8a78800c19c7a00bd946f00ba926b00bc916a +00b88f6900b98f6b00ba937000c09a7600c49e7a00c7a17f00caa58300d0aa87 +00d7af8900d9b38e00d9b89600dabc9f00ddc2a500dec6ac00dccbb500dcd0be +00dfd4c500e3d9ca00e4dcce00e7dfd300e7dfd400e7ded200e5dbce00e3d8c9 +00dfd2c200dcc9bb00d8c1b000d5bba600d0b79c00d0b09500cea98f00cea58a +00c9a68800c7a68800c3a28700c19e8500ba9b8300b3967c00b89f8500c1a68e +"/> +<palette number="497" name="Beach" data="00836f9e00ad96a000b19eac00b6a7b900c2b3c400cebfd000d6c6d400dfcdd9 +00f0e6e700ece5e800e9e5ea00e5d6e600e2c7e200dfc1df00dcbbdc00d9bbdb +00d7bcda00d3b4d500cfadd400cca7d300c2a2d200b89dd200b69cd200b49cd2 +00b293c200ac8ab800a681af00a7819e00a8828e00ad888800b38f8300be9b7c +00c1a47f00c6b38b00cabc9100cec59700cfc89900d1cc9c00d0cb9c00d0cb9d +00cabc9d00bfac9100b59c8500a38c7b00917d710088757100806e7200715f7a +00664f7a00514183004c4491004748a0004e51aa00565bb4005b60b8006066bc +007e83cc008e93ce009fa3d000aaacc500b5b5bb00b9b7b600beb9b200c9bdad +00ccbeab00bfaea700b3a2a800a797aa009f92ad00978eb1008a82bb007d78c6 +006b6dd500696fd6006872d7007379d8007e81d9008484d8008b87d7009589d3 +009784cb009d6eac009965a000965d95008f58910088548e0078448d006a3683 +0050288000472b8a003f2f94003d3199003c339f003d37a3003e3aa6003f3ea9 +004140ad004143b3004241b300433fb400423eb300423eb200413cae003d38a8 +00382c9c00392b99003a2b96003b2d96003c2f960041339600473a99004d429f +00544aa4005d5bba00605dbe006360c3006664ca006c62c800715ac8007657c7 +007d5bd1007f5dd2008260d4008361d4008562d4008b66d6009071db009984e2 +00a194e700acaceb00aeafec00b0b2ed00b7b6ee00b9b3ef00b7b1ec00b0ace5 +009e95d9009987d2009479cb009274c500916fbf00896ab900886ab2008b69b2 +008c6db6009271bb009173ba009076b9008d75bb008a77bb008975b9008973b5 +008b729c008e74940091768d0097787d009b7c6f009e7e61009b7b5800987553 +00967250009c784b009d7b49009e7f48009f7e4a00a1804c00a2825000a88853 +00ad935500ac925500ac925600a78e5b00a58b6100a3856a009e7870009a6674 +0092547b00894a7c0086477d007b407b00713574006224710051186e004a1861 +0032154f002c124d0026104b001a0b5300190e52001f145700281e6200342b71 +00433b8300554d910069619b007b74a0008880a5009489a4009b8da0009b8d9e +009a8b9800938493008c7f91008a7a8c00887787008a7883008f7e7a00958778 +009e937600a99d6f00b3a46600beae5c00c1b25500c0b45500b9ab5f00a99c66 +009d8e6f008c807a0081798400786f97006c65a600655cac005e56ad005b53a3 +005e549e0060549c006550a0006c4da1006d4c9e006c4c9d00664b9a0060459d +005c3aa2005534a4004f30a700462ea600402ea6003d2ca600392ba100362a9d +00332998003427910036278b00382483003b2278003e1f71003f216700412767 +00472d690050336a005f396e006f486b007c5c6d007760790074648700786897 +"/> +<palette number="498" name="Beautiful" data="00d7813400c2830f00cc8e0e00d6990d00e9931d00fc8e2d00eb8e4500db8f5e +00be93ae00868ba8004f84a30047719900405e9000414e8700433e7e0041407d +0040427d006a6c610099755800c87e4f00dc833f00f0882f00f38b3400f68e39 +00dbbc4700d8ad4d00d69e5300ce884200c7723200be732400b67416009b7900 +00886c080093903100828b3f0072874e005d65660048447f0042457e003d467d +00268c9a002c96a60033a1b2002d9cb2002897b20021949f001a918d00349b7d +00608e4e00ad7f2100bb8d3e00c99c5b00c39c8600be9db200c0a1b700c3a6bc +00b799bb007ca2c30042abcb0030aec2001eb1b9001aa9b90017a2b900258bb1 +0046719b0093605d00aa6d4b00c17a3a00c57a3a00ca7a3b00cb7a3800cd7b2f +00ff8a2600fd8d2a00fc902e00f2ac2d00e9c82d00e3c24400debc5b00d3b09c +00c29cb100bf90b000b897a100b19f9300bb9c7400c6995600d48e5300c87b45 +00a66c5800aa4a7500ae299200a62891009f279100931e86009d137200862084 +0052347e00424882003c6c8e0036909b003190a6002c90b2002899b90031aecc +004d90aa0068868400837c5f008b765e0094715d0090687000906a7700607684 +00368bb2003063b200415da20052589200803989009c2e8f00972b9000862582 +00473c81003b547f002f6c7e003371790038767500428595004b84a1009885a3 +00b68cbe00548fad004a8daa00408ba80054849200977d8000af725600cc7b3a +00d07b2800c47a1b00b8790f00b7761200b67416008f8927006d774200677345 +00446c470023507a00274f7d002b4f810028437a002c3872003d286d004a3377 +0067187400631a74005f1d740055226f003c1e68003c276a002f3a70002b3f71 +0031426d0043297000561f7b006a1686007e15af00ba11c400be06c0009d009f +007a248f0064378d004f4a8c005266a1004896bc00499fb80051a0b10095a48f +00acbd530087c95b0065cea60037a8b80039a0b300319cac002d8da3001f8087 +002e42740030376e00322c680030275e002e0b4d001513520024155a0027225c +0036226700412d6c0066307e008f268d00a9298a00b95f6100976662008f5f5b +00553a5d0032376f0028306e001f386e00252e650024226d002f236d0030296c +003f3b7600775576008f68570099765a009b953500a5983a00b9b04700bbb350 +00ce9f4d00cb9a5800b7a15500aba85700a1a25200aba14c00ad805f00b28369 +00bb92a000ab7599009a35b7009232b0009f40b800bc87b100ba98bd00bd9cb9 +00ba9cc2003fbede0017dcef0017dcef0036b1d200399abb003a90a70031568a +00454285004a427b0069733e00ae7a0d00c7771400d0890000d1900e00cb970d +00ce8f0c00c8880d00bf7c1100b3711100a57c0000b1850000d59b0c00c59002 +"/> +<palette number="499" name="Before_Dawn" data="0055586f0050515e005b5a67006664710076758100878691008b8a9500908f9a +008f8e9e00868696007e7e8e006b6c7d00585b6d00494b5a003a3b470031333e +00292b360010121b000b0c130006070c00050508000404040003030300030303 +0002030200010202000102030001010200010002000000020000000200000003 +000000040000000600000007000001090001020c0003040f0004061100060814 +0010142200181c2e0020253a00242b440028324f0028324f0029324f0028304e +00242e4e0019234300141c35000f1628000c1224000a0f21000a0e1f000a0d1d +00090c1400070a1300060812000406100003050e0002040d0002040d0001030c +0001030b0001020800010208000102090001020a0002030b0004050f00050714 +00080c1b00090d1e000a0e21000a0e20000a0f20000a0e1d000a0e1b000a0d18 +00090c17000b0f1a000d111e00101323001215260014182a00191e31001c2238 +002a304a00333852003c405a003e425e00404563004249660042486700414562 +003c405c00282e46001f243800171a2a001416240012131e000b0e1800090c16 +000d0f1a00141724001c202f0021253500262a3c002e344f00323b5f00333c67 +00333a63002a325800232b52001d254d0014193b000d0f2600080a170004050f +0002020a0004040d0006071000080914000a0c1800111322001b1e3100282b41 +0033385200475070004d557600535b7c005d64840061688400626a84005f657d +00545569004d4d5d004745520042414d003e3d49003836440036344300383440 +003a37430045455b00494861004d4c6700545471005e5e7c00696b8b00747595 +007d7e96007b7e94007a7e930073768d00696c80005a5c6f00484b5c0034374a +00232538000d0e18000a0a130007070e00030307000100030000000100000000 +0000000000000000000000000000000000000101000102020002030300050607 +000a0b0d00111318001d1e26002d2e380041414c00545464006a6a7d007e829a +00a9adc700b1b5cd00babdd300c5c8df00d4d9ee00e0e4f800e9ecf700eaebf5 +00ecedf600eeecf500ecebf100e1e2ec00d6d7e600d1d0e000d0cdda00cacad8 +00c3c3d300bfbfcf00c0c0cd00bfc1cd00bcbdcc00b6b7c900afb0c200a3a6b9 +00979aaf00858aa200747892005e627a004a4d6500343952002329400015192c +000a0d1d000305140000020f0000010a00020207000404080007080d000d0e14 +0016171d0023252a0033363e00474954005a5d6b006c6f7f007d8192008e91a4 +009b9caf00a2a2b700a5a6bb00a4a5bd009d9fb8009294ae00878aa2007b7f99 +00686f8b00525a78003f486300323a5200262d42001a213500131a2d0013192b +00171c2e00212537002d3345003d4458004a516800444a5f0040445700414559 +"/> +<palette number="500" name="Beginning_to_Thaw" data="00cdefd400cde7d800cae2d400c8ded100bfd2c300b6c6b500afbdab00a8b4a1 +0083997300778d61006b825000707b4f0075744f00807c53008b845700918959 +00978e5c00b3a27a00b9a98800bfb19700bfbc9e00bfc7a500bfcaa900bfcdad +00bbbfb200b5b9a300b0b39500a9a88e00a39d8700a1968600a09086009b8a75 +00988c6a00978c67009c8b7200a28a7e00aa938400b29c8a00b49f8900b7a389 +00b09481009f8772008f7b6400796e510063623f00575b36004c542e00394d1c +00294211001f420800264608002e4b0900334f0b0038530e003b5613003e5a19 +0056783300617e3c006d8546006a84520067845e00638669006088740065938a +00699f9c0075a6a900719eaa006e97ac006e95ac006f93ac00748ea900808c9c +0087757c008a696d008d5d5e008958560085534f0086524d0087514c008e5453 +009a5d6000a7798000a6808b00a6879700a9899b00ad8b9f00b68ea100bc929c +00b4878000ad786c00a66a5900a26650009e6248009957380090522c008e5025 +008e4e25009051350086503c007d504400775144007153440065544300605243 +00564d4800525b4f004e6956004d7059004d785d005489640063986b0073ac7e +008ac59000a4e5ab00a7e7aa00abeaa900a9ea9f00a5e09700a1d38f0096c087 +0086996a007f85550078724000736638006f5b3100644a26005d3a1f00563517 +00563610005c3d12005c3f15005d4118005f4e2200696330007a773d008a8c50 +0097a673009daf8100a4b88f00a5ba9300a7bd9700a3bb960090b295007ea591 +0074978d00718d8c00708c8c006f8b8d006b8d8e00709190007c99950092a99c +00b7c4b400bcc9b900c1cfbf00c7d8c900cde0cb00d7e2ca00dde4c800dfe3c8 +00d9e5cf00c8dfd700c6ddd700c4dcd700c1dbd800bce1db00b6e2dc00b4deda +00bcd7d100bdd8d000bfd9d000c3dbcc00ccdac800ced3c000d7cdb600dac9b2 +00d7c7b100dac7b300d4c2b500cfbfb700cbbeba00c4bdba00c3beb800c4beb7 +00c3ccbb00c3d0be00c3d5c200c3ddc500cbe0c900cde5cf00d3edd600d8f6e2 +00d8fae900ddf9ef00e1f3f100e7eff000eceff100edf0f000ebf2f200e6eff3 +00e3eaf000dfe4e900dee0e100dadddb00d4d5d400d1cdcc00d0c2c400d4babd +00dab5bc00e0b2b900e5b4b500e8b8b000eebfad00f1c8b300f1d1bb00edd8c3 +00e7e1c700e0e6c700dce9c900d6e8cb00d2e3ce00cfddcf00ced8d000d1d6d1 +00d3d4d300d9d6d500dad7d200e0dbcf00e8dfce00eee3d000f0e6d600e8e9db +00dce9da00d2e5d700c8e0d300c4d5d000bacaca00b0bdc200acb2bc00aaa7b2 +00b0a0af00b39caa00b798a200c098a100cc989d00d89b9f00e3a4a000e7af9a +00e7ba9900e7c49c00dfca9f00dbd0a400d6d7a900d3e0af00d2e9bc00cfedcb +"/> +<palette number="501" name="Beige" data="006a5f530061584d0059514800514a430045403c003936350037353400353433 +0032323100323231003333310035343200383633003b3835003e3a38003e3b38 +003f3c39003f3d3a003f3d3a003f3d3b00403e3b00423f3c00433f3c00443f3d +00433e3c00433e3b00433e3b00443f3c0046413e00484240004a4442004d4645 +004f484700534a4800534a4800534b4800544b4800554c4900554c4900554d4a +00584e4a005a4f4a005c504a005e514a0060534b0061544b0062554b0066584c +006b5b4d00786252007b6454007f6757007e6858007e6a59007d6a59007d6a59 +007b6857007a6656007964550074615300705f51006d5d50006a5b4f0063564c +005f524900594c4300594b42005a4b42005a4b42005b4c43005d4e4500605149 +00695950006e5d54007362580076655b0079695e007a6a5f007b6b61007a6c63 +00786b630072665e006b615900645c5500605952005c565000544f4a004c4844 +00413d39003d3835003a3431003933300038322f0037312e0037312e0038312e +003a322e0041362e0045382f00493a30004a3b30004b3c31004d3e3400504136 +005a4a3c00614f4000685444006b5646006e594900755f4e007a6553007d6958 +00806d5d008572640085736500857466008674680085736700817265007c6e62 +0070655b006a615800645d5500625b5300615951005e564e005b534900584f46 +00544c44004c473f004b463e004a463e0049453f0049453e004a453e004a453e +004c463f004e4740005148420052494300544b4400584e46005e544b00675b52 +0073645b00947f70009d877600a68f7d00b49d8800bfa79100c5ac9600c6ae98 +00c3aa9500c2a99400c1a89400bda68f00b7a28b00ad998500a18e7c008f8071 +007d7064005e554c0058504800524c450048443f00423e3b003c3a3800383735 +00343534003435340034353400353534003535340036353400373635003a3735 +003c3937003f3b3900433d3b0047413f004e464300554b48005d534e00675b56 +0077676100796963007b6b65007d6d66007d6d65007c6c64007b6d66007a6b64 +00796a620075675f006f625b00685b55005e544d00544d47004b46410045413d +00403d39003c3a37003a37360039363500393634003936340039363400393534 +0038353400383534003834330038343200383332003833310039343100393432 +003b3633003c3734003f3a3600433d370047403a004c443d0051494000544c44 +00584f47005a5149005c534a005d534b005c534a005d5349005b524900595047 +00554d4500514942004c453f0046403b00413c38003d38350039353300373431 +0036333000383430003a3631003d393300413d3600464239004d473e00564f43 +00605749006c6250006e6452006f6553006f6453006c615200695f5100655a50 +"/> +<palette number="502" name="Berry_Bush" data="00a00a1800c30d1700c2111b00c1161f00b41e2200a8262600a22a29009c2e2c +008d3d3400844737007c523b006e563a00605b3a0053563a0046523a00434f3b +00414c3c0049463b0056423400643e2e006c352c00752c2b0078292b007c272b +0095262200a72d1d00b9341800c63f1a00d34a1c00d44f1c00d5551c00d0611c +00c86f1c00be8c2300be972700bea22b00baa82800b7af2600b1b02700abb228 +0083c03b0075c1420068c34a005fbc430057b63d0052b23a004eaf380048ae39 +0045aa43002aa04000249337001f872e002c7b2f00397031003a6d33003c6b35 +0034784700287e4a001d844d00237e4e002a794f002b7b4e002c7e4d0027854b +00229448001fb542002db135003bad290041a52400479d1f004e8c16004d8610 +004273100044681300475d17004d4f1a0053411d0053391e005432200054291b +0050241700612c16006c371700784219007b4519007f491a007d481500794413 +00683c0d00603f1000584213004f41130047401300363e130026391600143016 +000e2d130012351c001d3c2200294329002f472e00354c330043533b0051613f +006e744700777e480081894900818e4c00829350007aa3540074b05a006cb564 +0062ae5e004d9a4e0043974a003a95460029993d001aa4440010a840000ba43a +001b822c002c7622003d6b1800476d1600516f14006377100072800f00808015 +00947d1e00b3824b00b1865300af8a5c00a69a6b0093a878007db57c0073c48d +0059d6a8004bdca9003de3aa0037e0a00031de96002fd7880032d1770036cf6d +0039cd5d0032d2470034d2430037d2400036ce3a0032ca370031c9320028c62d +001bc428001abf280019ba280016b12a0018ae2d0019ad2f0016ac370016b13c +0016b4430013b7560012ba5c0012be63000fc476000dcc85000bd390000ad995 +0015d691001cd18f0023cc8d0033bf870045aa7e0057966e0065856200767652 +008965460099593b00aa4a3100b53a2700b62e2300b0272100a4212300972324 +00773027006e38290065412b00525336003d6344002b7352001e835f00138e65 +000e9d6c000ab0750006bf800006cb8a000ad6920011d893001fcf910030c789 +0042bc7c0056ab6d00669c6000709252007a874c00877f4a008e764400956b3c +009c5c35009a522d008f4c2800864e2b0076532f00645e3700566c3f004b7446 +003d7a4600338146002a864300218740001c8b3e00178e3d0014933d0011993c +000e9e3a000a9c39000a9734000e8b2e0014822a001d7727002773260031752c +003b7932004c7137005b6839006d5b3a00774f3a007e4739007a473700774435 +006f3e32006d383000643131005b2932004d2538003e2738002d223600231e33 +00221a2d002e1826004012290055112900690c2800770a27007e0722008f0a1b +"/> +<palette number="503" name="Biology_Class" data="009d351000a36004009e7504009a8a0400919f070088b50a0084bd0b0081c60c +0067d8090053d50a0040d20b0031c60b0023ba0c001ba90f00139813000e8d14 +000a8316000356160003441700043218000b301800132e1900183216001e3713 +002b4d08002e560400325f010032640000326a0000306902002e6904002f660a +002c5c1300233c2700242e320026213e00331a4d0040145c004913630053136a +00710f7f007e0f86008b0f8d0090109200961197009412970092139800891695 +007e1698005d1299004d118e003d108400330f7a00290f7000260f6a00231065 +001b134a001816430015193c00131f3a00112639000f2b38000d303700073831 +0003452d000d602800146925001b7322001c741d001d75180020740f0023720a +002d6a1c002c6127002c583200254e38001e443e001b3f4100193b4400143749 +00123550000f3452000d344f000b354c000a36480009374500083c3b000b4633 +001d652a00247723002c891c002f9018003298140038a40f0042ad12004db31a +0056b322005ea030005b8e3300587c370056763700547038004d633600435c33 +002a5b2700236323001c6b2000196f1f0017731f00197f1e00248a1d0031911f +003e952200569026005d8c260065882700727d27007a6e26008261210083521e +00803525007d272f007a1a390078153c00771040006e08450060054c00510355 +0046075f002f15690028196600221e640013245c00082c53000437470003463e +0013682e001f7627002b842000308b1c00359219003f9f150046a712004ea915 +0053a8180054991b0053911b00538a1c0054781d0057651d0059501f00613d20 +006e201e00701b1b007317180071141300701311006d150c00671b0c00611f08 +0057220400482b000048310000483800004d4700005351000054550300515706 +0043610d0040640e003d681000376a14002d6a17002167190013621b00085d21 +0002562a000150330001493c00033d3e000c32420019294c0028215100351a56 +0042074b00450447004902430050043a00580f32005e1f2d005f3127005a3f20 +0051481a004a531500445c130042641400406614003c5f13003d5616003d491b +003f3a22003e2d2900371d2a0031132f002d0f36002a0f3f0029124d00241655 +0019195d000e1e630004246800002b6e000032720000357500033775000a3771 +00133869001e3a5d00283a4f00303c4000383a35003d382d0042392b0042372c +003f3a31003b3e390032424300294c51001d535b00135960000d62600008695b +00077557000c7f520016804800207a3b002c6f2b0035631c00435a1700585215 +006c4619007e3d25008b322c0096273500a3223e00ad1b4400b3194e00b51754 +00b4145600b3115500b10a4d00af054200aa033600a5072a00a0111f009d2117 +"/> +<palette number="504" name="Birthday_Party" data="00374e48003f6a32003a822d00359b29003c9f3b0044a44e004aa4560050a45f +0062a76d006da7830079a89a0081a3ab008a9ebc008ea2ba0093a7b90094a5b8 +0095a4b8009aa9c4009aadc7009bb2ca0099adc10098a9b80098a4b10098a0aa +00907b99008f698e008e578300904774009338660094336300962f60009c295c +00a2245d00a5275200a92b4900ad304100b32f3c00ba2e3700b92c3300b92b2f +00b2202300b41b2800b7172e00bd143a00c4124700c7134c00ca145100c9195d +00cb216400d1357000d43a7900d73f8300cc3f8300c1408300b8407d00af4178 +00965e66008c635e008368570081694900806a3b007f6d36007f713100857637 +00896c3b00974d410097404e0098335c00962b6200952369009b196600951462 +007d2050007b314f0079424e007c5846007f6f3f007f783c007f823a00779040 +00729a4b0084ac60008bb1690093b773008db5760088b4790083a679007d9e73 +0081896700817a6700826c68008466690087616a00875a71008a547800905285 +0090529700935fbb008a70c4008182cd007d89ce007991cf00749bcd00799ccc +007e9eb900839bb1008898a9008c92a800918ca700937da400906da000886398 +007e588d006b4f7800684a7600654574005d41700057436a00584b6700605863 +007d5e78008c5f87009b619600a0649900a6679d00b06c9b00b76c9e00c06ea1 +00c46da400cf859700c98c9400c3949100baa58c00a5ad960094b7a40088c4ad +0066dab20055d8b00045d7af0040d7ae003cd7ae0033caaf003ec1a40054b695 +006ca58800929081009b8b8100a4878100ba7e8000cc727f00d56b7a00d46678 +00bf646800ba606200b65d5c00a75f4d00985d41008b5d3500825b3200835537 +00835a3b00746f4f00707254006d7659006e736b00766d8000836a96008672a5 +008a79b0008b78b2008c77b400966abd009a61c1009d5bc6009758cb008b53c0 +00834bbb00783db3007930a00074279b00741b830078156d007e145e0092184f +00aa2e4f00ab344f00ac3a5000a8485400a9536000a36277009b6e88008e769c +00807ea9007780ad007082b3006d7daa006370a2005c6397005b5587005a4f7a +00664767006b3b530074314000812c32008a3a2d009a4e2c00a9653400b56d39 +00bf6e4300c6734c00ca6f5500d0776c00d36e7f00d7618b00d7569100d64588 +00d23e8000c8317a00c22b6c00bf256300c5245100cf2d4300cc2a3b00c32b32 +00ba252f00bb212d00c7283400d5334100da414d00d04f5e00c55d6c00b36677 +00a4768400967d8a0085838e0076839500677da1005b7dac004e7ab8004c84b9 +004b8ab8005093bc00539cbc00549cbe0056a0b600559ca7005797a1004d9495 +0048858a0042717f00445a6d00473f6600433b5d003f3e500031464f0037514b +"/> +<palette number="505" name="Bistro" data="00b5453f00b94f4800bf4d4800c54c4800c4434100c33a3a00bf353600bc3032 +00ad292b00ab2a2e00a92c3100ab303300ae343500af3a3600b0413700b04235 +00b1433300b74c3000be532f00c55b2e00cc6d2700d37f2100d3831e00d3881b +00c4811100ba781000b06f0f00a8701000a17211009c711300987015008c6819 +00805b1e0070442c0071483300734d3a007c5c4500856b5000897054008e7559 +00a58a6800ad8e6a00b5936d00b4916c00b3906b00af8b6900ab876700a47b5f +009d6a55009a51420098493d0096413900973e3a00983c3c009a3d3d009d3e3e +00a2413e00a2403e00a23f3f00a03d3e009e3b3e009d3b3c009c3c3b00933836 +0086312f0065221c005b201600511e11005020100050221000542410005a2715 +006d322300753925007e40280089452400954b20009e501f00a8551f00bc6021 +00cd732800e18c3800e0903600df953500df943100e0942d00e49e2600e7a52c +00e5b54600e2b24c00dfaf5200e0ad4900e1ab4000e5a63100e8a12800e8a026 +00e19c3000d08d3100c5852500ba7e1a00b57a1600b07612009e6c0f00905f10 +0071441200683d0f0060360d005d340a005b3308005d2f06005e2c0600632b08 +0069290a007b280f007e261000822512008a23140092241600982519009e281b +00a72b2000ac2b2200b22b2500b32b2700b42b2900b32b2900af2b2600a52b27 +009a2d260094422d0094492f0095513200945d370092663e008e6943008b6948 +009e795700ab865e00b9936600bd976800c29c6b00c29c6c00c1926b00c08a69 +00b9806400a57652009e754d00977549008d6c3e00866235007c582e00784d28 +006e3a1b006a36190067321700602915005926140056221500561f1500581d13 +005a1b12004a161100441510003e140f0033140f002d130f0032120e0039120c +0047130900481309004a1409004a1409004b1409004d120a004c1109004d1009 +004b0f0800470d0600410d05003a0d0600300c0600280a0700200a0600180906 +00100c06000f0c06000f0d0700110e0900120f0a00160f0c00180f0e0019100f +0019120f001b140f001b160d001f170d0026170e002e170f003a180e0048170e +0053150b005d1609006516070068150700681607006617090066160b0068170c +006a160c0069140e0065150f005f15120059181500581c1a005e211f00672824 +0073312900833a31008e47380098574100a4644c00ae755700b88b6100c49a6a +00cda57200d5af7800dfb68200e2ba8a00e8c89300ebd29c00ecd7a100edd59f +00eecd9c00e4bc9300e0b08800d9a67e00d19f7500cb966800c58d5d00b97f4f +00b16d3d00a85d2c00a24c1f00a23d1200a4350f00a4300f00a22d0f009f2f11 +0099301500982f1500992b1900a3382800ac413100b6453a00ba4a4100bd5045 +"/> +<palette number="506" name="Blossoms" data="0099875b008f916500948b610099865d00a57f5900b2795500bb765500c47456 +00d9766300de776600e4796a00e7756800ea726700eb746a00ec766d00ea786e +00e87b7000dc937b00d39c7a00caa57a00c0a77700b7a97500b3a77400afa573 +008e9e6d007d9d6a006c9c680062936300588a5e0057845b00577f59005a724f +005d6e4900606b3e006a6a3c00746a3b00856a3d00976a4000a06c4300a96f46 +00be765500c37b5c00c8806400c7806a00c6817000c47e7100c37c7300ba7575 +00b56d7800a5616e00a05e63009c5c58009d594d009e564200a2563e00a6563b +00b5553100ba542d00c0542900c2562700c4582600c75a2600ca5c2700cf6429 +00d46d2d00d4703f00ca714500c1724b00bd734a00b9754900b07a4900af814a +00b9805200be7c5500c3785800c1745500bf715300be6d5100bd6a5000bb634c +00bd594f00bf505500bc525900ba555d00b7585e00b55c5f00b55e6200bb6666 +00b9717200b67c7700b4887d00b38e7e00b2948000baa38700c7b18c00d1bb93 +00dcc09900ddcba200dacaa200d7c9a200d9c79f00dbc59d00e4bf9700edb798 +00efaa9400eda59100eca08f00ed9f8c00ee9e8a00ee9b8600f09b8700ee9b88 +00eb9f8900e4b48d00e1bb8b00dec28a00dbca8600dacd8600dccb8700dbcb8b +00d8c59100caba8800bcaf8000b7a77c00b39f7800aa906f00a9836a00ab7e67 +00ad7a61009f6e4e00986d4900926c4400806c3c00717536006a8233006c8f34 +0086aa57008fb56e0098c0850099c68d009acc95009ed69c00a6d5a300b5d4a7 +00c4ceaa00ddbba600dfb89f00e2b59900e2ad8600e6a97200e4a55d00d79f4a +00c0902d00b88d2900b18b2500aa892000ad8c1b00a8901900a29317009f901a +00978f1d00988322009d832100a2832100ad871e00b9861f00c5891c00ce871c +00de781e00e3751e00e8731e00f0702000f6712400f7732900f9772f00f87335 +00f86d3a00f86a3a00f96a3a00f36c3d00f0744200eb794a00e2785200db7153 +00d7634f00d6624f00d6624f00d8635300d7605a00d75a5e00d6545d00db525b +00df555500e7614d00ef694c00f46d4800f66b4300f6694100f3673e00ef6e36 +00ed763300e77b2f00e3782900e1742600db6e2600d3672500cc642800c0632c +00b6632d00ac612c00a4622a00985c25008e5622008251250077552c006f5c35 +006a6c3e0066774600677c4700697945006b79450072784600797d4900808551 +00888a5600928856009a845900a4805900af7f5900b9825f00c28b6700cb926f +00d39b7900daa38100e1a98600e7ab8b00ebaa8b00eca68b00eba18900e79b85 +00e2937d00df8b7400e1826600e3755900e36a4c00e3624400e05c3e00dc5c3d +00d6643f00d06f4400cc774700bd764900af754800a6734a009c724b00937852 +"/> +<palette number="507" name="Blue_Velvet" data="00372f600037305f00372f5d00372f5b00352d5600342c5100332a4e0032294c +002e2644002d2542002d2440002c233e002b233d002b223b002b223a002b2139 +002b2139002c2339002c233a002c243b002c233a002d233a002d2339002e2339 +002f243a0030253c0031273e003228400033294200332a4300342b4500342e4a +00373251004143660042486e00444d7600444d7900444e7c00444e7c00454f7c +00464e7900424772003f416c003c3b65003a365f0038345d0037335b00342f57 +00332d5500332d5800322e5a00312f5c00312f5d00312f5e00312f5e0032305f +0035315f0035305e0036305d0035305a00353058003430560034305500342f53 +00342e5300353054003531540035325500353256003533570036345a0037345c +0038335c0037325c0037315c0037305b0037305b0038305b0039305c003a315e +003b3261003e3b690041437100454c790049517d004d56810056618c00657095 +008a94ae00959db200a0a6b600a2a7b500a4a8b400a0a4b200a1a8b7009aa2b5 +00929baf0071809c006378990055719700516f96004e6d96004b6a97004c6a97 +00526e9a0057729b005c769d005e779d0061799e00607ca100617da200637da2 +00637ca0005b6f9800586b9500556893004f5f8e004b5989004651830041487c +00393a6f0037376b0035356700343465003434630032325e0032305700312d4f +00302a47002e2539002d2335002d2232002c202e002c1e2b002b1e28002b1e28 +002c202d002d2232002f2538002f253a0030263c0031273f0033294100352b45 +00372d4900382e4d00372d4d00372d4d00362d4c00362b4c00342a4a00332a4b +0031294b0031284b0031284b0030284c00302a5000312c550033325b00383a64 +003c426c0045568000485a84004b5f88005169920055729a005779a000567fa4 +005a84a8005d86a9006088aa00668bac006b8fb0007491ae007c94ac008798a9 +008b98a5008a98a7008996a6008590a20081899c00777f930069728b005a6686 +0044527d00404e7a003d4a78003a447400383f7200373d6f00383c6f00393c6f +00393c70003b3d71003d40750042467800464d7d004b5281004f578300525b86 +00555d8600545f8500535d8400525b810050587c004e51760046496e00404067 +003938610036345c0035315700342e5300332d5000332c4f00332d4f00352e50 +00362e5100372f5300383056003831590039315b0039315d0039315e0039305f +00382f5f00372f5d00362f5a00362e5800362e5700362d5600362f5700373057 +0037325a0038355e003a3863003b3c68003b3f6d003c4070003c4273003d4375 +003e4377003e4277003e4176003d4074003b3e71003a3c6d003a396b00393668 +00373566003633640035326200353162003531620035306200362f6300362f62 +"/> +<palette number="508" name="Bluebells" data="00331f1800281d1a00251c2000231c2700251b3400271b4200291d49002c1f50 +0031286d002c2d770028328100233388001e34900022359100263793002c3c96 +00334299005766b2005873b8005a80be005885bf00578bc0005d8fbf006494bf +0096b3d000a9c3da00bcd3e400bdd9ee00bfdff800b7dbf600b0d7f400a0ccee +009bc3e80097add70091a2d0008b98ca00788bc500657ec0005b7bbf005278be +003060ba002454b2001949aa00163f9a0013368b001235850011358000103578 +0013357600193b7600203b6b00273c6100273d5500283e4900283e4700293f46 +002545590025486400254c7000244e71002351730022507100214f6f001f4c6b +001a456a000e3773000a2e700007266d0005226700041e620003165200020e41 +0002052e0002042b000203290003052a0005072b0005092b00050b2b0007112d +000b17310013223c0015233e00182541001824410019234100192542001b2744 +0024324f00293955002f405b0036455e003e4a62004f586b005f6673006c6e76 +007a76730077736d007c756e0081786f008a817700938a8000a49e9700baafa3 +00cec0b200c9baac00c4b4a700c3b3a700c2b3a800c6bcb700d0c9c800e4dcda +00f1ecea00eff6fa00e5f0f900dcebf800c8dff600b3cfef009fbee4008cacd9 +007c9ccc007095c700658fc200648fc3006390c4006390c400638dc2006f92c3 +008096bb009398a00098999d009d9a9a00a69e9600aaa09400aaa49a00aaa29d +009b9892008f8b7f00837e6c007c7761007670560068694a005c624600505c48 +0045584e00354e5600324b56002f4856002c415500293e4e0027394700223244 +00182441001623410015224200152144001621420017253e001926370019242c +0018212200192311001c2310001f241000242b0f002a3314002e3719002d371d +00292b1f0029271f002924200028211d002d1e1c00321e1d0033211e00372020 +00351d1f00311721002a132200250e2400210b25001c0c28001b0e2c001a1130 +00131a4500111e4b0010225100112b5f0013366d001a447f002f588c00456a97 +00587aa4006a8bb0007e9dbd0090acc70098b9d400accadf00c1d9e700d4e5f0 +00e3eff700f2f9fd00fefefe00fbfdf900f1f3ee00e2e9dc00d3d9c800c1c5b4 +00adb0a0009c9e92008e9387007e827d006b7471005864650045525900303e4e +001f2e4b00152b4f00132b5900163063001a386b00243d6f002e417100374272 +003a4374003a4375003c4777003b4d7c0040547e00465a7c0058637a006b7180 +007b79850088848c00908f9a00989ba8009ba4b700a2afbe00b4c1ce00c6d2da +00d9e1e300e9eeec00f6f5ed00f6f0e900ece2db00ddd1ca00cabeb700b6aaa2 +00a2989300928a8400817a710072675e0063554c0052423a004331290039251d +"/> +<palette number="509" name="Blush" data="00f5aca300f9b4ab00f8b9b100f8bfb700f8c8bf00f9d1c700f9d6c900f9dccc +00fcedd500fcf1d900fcf6de00fbf7e000fbf8e300fbf8e400fcf9e500fcf9e6 +00fdfae700fdf9f000fcf5ef00fcf1ee00fceae700fce4e000fbdfdd00fbdbda +00fad3d500fad1d400facfd400facfd300fad0d200fad0d100fad1d100f8d4d5 +00f6d7d900f6dbdd00f1d8d400edd6cb00e8cabe00e3beb200e1b6ab00dfaea5 +00e0978f00df8d8200df837600dc786800da6e5b00d9685600d8635200d85c4e +00d55b4f00d95d5800d95e5800d95f5900d35b5600cd575400c8555300c35452 +00af4e5500a34b54009848530085404900733840006c323a00652d3400512529 +00441e20003b1517003a1112003a0d0e00380b0c00360a0a002c0705002a0504 +002c0403002d0503002e0604002305040019050400140403000f030300070102 +0001000100000000000000000000000100000001000001010000000100000101 +000a0b0b001d141500301d1f003c252600482d2d005d3b3c0074515200826565 +0090696a00b97e7f00cd8c8d00e19b9c00e8aaaa00f0b9b800f1c3c100f0c9c6 +00f0cac800f4d3d100f8ddda00f9e3e100fbeae800fdf3f000fef9f500fefbf8 +00fefcf900fdfbf500fdf9f200fdf7f000fdf1e600fde6d900fcd9ca00fccbbd +00f6b8ab00f5b4a400f5b19d00f5af9900f6ae9600f6aa9100f6a38e00f5a08e +00f19e8e00e5978700e0938200db907e00cd827300bc736700a6665b0091534d +0067332f005723210048131300430e0f003e0a0b003b0709003e0b0e00491418 +00541f23007f373e00883c440092414a00a64a5400b9545e00c45b6500cd626c +00d3687300d2677100d1667000cc616b00c55b6300bc505700b2474c00a73e41 +009d35370092292a00912728009126270092262800942b2b00973032009e393d +00af5a5d00b2626500b66a6d00c27c7900cd8d8700d79d9600e3aca500ecbab7 +00efc5c600f2cece00f2d4d100efd7d000ecd2c900eac6bd00e4b6b000dfa5a1 +00cf8d8b00cc8c8700ca8b8400c98b7c00ca8b7800cf8a7500d18c7200d49079 +00d6968400dba29100e2ab9d00ebb3a700f1b5aa00f5b4ac00f6b0ad00f5adad +00f6a8ae00f5a5ad00f6a1ac00f59ea900f59fa700f6a4a700f5acaf00f5b5b6 +00f7bcbd00f7bec100f6bec000f5bbb900f4b7b100f2b2a900f1aca300f1a59f +00f19f9d00f2979700f2919200f28e8c00f18e8a00f4978c00f6a39500f8ae9f +00f8baaa00f5c1b100efc1b200e9c0af00e2b8a600dcae9900d3a28b00cb947e +00c0847100b3756600a5615800984e4a008239370072262600611818004f1210 +00430c0b003b0a0b002f090c0029080d002b0d11003216180040282500563a34 +006c4841007d564e00915f5500a6635900bb716800d0817800e38f8600ef9f97 +"/> +<palette number="510" name="Bluster" data="00412d35004a35390047313600452e3400472e3500492f3600482f3600483036 +003e2d3400342b34002a293500212a3700192b3a00152f3e00113343000f3546 +000e374a00093f55000a4359000b475d000c475d000e475e000d475d000c475d +000b3e52000e394b001234450015304000192c3b001a2a39001c293800222938 +00292c3c0031354700353b4d003a4154003e475c00434e6400404f66003d5069 +002f5068002e4f65002d4e63002b4b6200294961002a4961002b4a62002d4c65 +0032506a003a55700041557000485570004e567100545772005457700055576f +004b495c00453f5100403646003c313d00392c35003629310033262e002f222a +002c212a0031273400382f3e003f384800443d4d0049425300554f63005e5770 +0068688700696c8b006b718f00696e8d00676c8c00616a8b005c688a00526485 +00475f7f003d5571003b536c003a5168003a5065003a5063003c4f5e00404d59 +004e4d5200564c4c005f4b4700604a4500614a44005f494600584b4c00504d50 +004e4e53004c56630040596b00355c74002f5b73002a5a730023576f0025536c +00234b64001a465d0012415700113d5300103a4f0010364a0014324300182f3f +00192f3e001a2e3d001a2d3d001b2d3d001c2f3f001b3241001e344400203445 +001f2e3f001a2b3a00152836001425330013233000121e290012172000100e17 +000b0a110005080e0005080e0006090e00070910000c0b1200120f170018141e +0026242d002b2c350031343d00323641003339450033404e00314557002f4c5e +002f5264002c5668002b5567002b5567002b5465003053620035525f003f535c +004d5055004e4e5200504c500050454a004f3f45004e393e004d353b004f323b +00543038005f2a2e0060292b0062292800642b2c00683130006b393800703d3e +0078484c007b4d55007f535f0088627300936a82009a718f00a06f9000a17295 +009f7699009f739300986e8d008e5d7b007d4f6800644259004e3647003b2d38 +002619200022151c001e111800180c120012090d000d080a000b0608000c0607 +000b0608000a07090007090b00060b1000080f14000d13190012171f00161b23 +00181d27001b1f2a001f212c00242330002726330026273600242a3a00202e3d +001e3143001e374a001e3c510021415a0022476000204a6600214e6900204f6a +0022506c00264f6800264a640027445c00263f5600243f5500273f55002a3f54 +002e3c500032374a0031324400303041002e2e3e002b2b3b0029253300251e29 +0020171f001b111700160d1300140a1000140a0f00170a0f001b0c0f001d0d11 +001e0f14001e1017002112190025141c0028161e0029171f0029182100291922 +002b1923002e1a25003320290034242c0031222b0031222a002f1e280036242d +"/> +<palette number="511" name="Boquet_of_Roses" data="009a0e060096160900911a0a008d1e0c008b230e008a291100892c1200882f13 +008a3d1f00904a2a00975735009b5f42009f6850009f634a00a05f45009e5e42 +009d5d40009b654f009a654b0099654700a0765900a8886b00aa8f7500ad977f +00b8ad9200bbaf9700beb29d00b7ad9700b1a99200aea58e00aca18a00a69780 +009e8a7200916e53008b63450085583700844a2b00833c200082371c00813218 +007f280e007f261000802512007e2617007c281d007b2b1d007a2e1e00753520 +00713826006b3e2e0067402c0064432b0060412c005c402d005c3f2c005c3e2c +005031230051291e0053221900561a130059120d005a0f0b005c0c0900630a06 +006c080500770300007d0401008306020085070200870902008a0a02008c1005 +008f220c00912c11009336160097441d009b5325009a582a009a5d2f009a643a +009f6d4200a47b54009f7c5b009a7d63009a7d64009b7d66009c766200996f59 +008e5945008d4737008c3629008a2e220088271c00851d110082140b00820e07 +00830c070087140c0086180e00861c1100851b1100851b1100811e14007a2617 +00722d1a0072352300723e2d0072463200724e380074583e00795f47007e634e +0081664e008268490084664600866544008b5f3e008f5d3a00935d3900985a33 +009c4f2e009f523500a3553c00a5573f00a85a4300a8604900a96b5500b07b68 +00bb8a7600c09a8000c09b8100c19c8300c3987800be886900b6735400ae5b43 +00a1341f00972213008e1107008c0c04008a08020089040100890905008b120a +008d1f130094442f00984e37009c584000a3695200a4775f00a87f6400ab8263 +00a87b5e00a6785b00a4755900a3704f00a169470099643f00915e3c00915737 +00935133008e4026008d3c23008c3920008a341d00853119007a2e1800752e18 +00792c140078291200782611007a1f0d00821809008f120500980c02009f0b02 +00a30d0500a60e0600a30d0700a10f0700a0140900a1180b009e1b0e009a1f0d +00a13b1500a4411a00a8481f00b0572a00b7693300c27d3a00c7863e00c78844 +00c3854600c1834400b67a3e00a96d39009a6136009059320088553300865336 +0085553e0083584100825b43007f5c45007d5b4400735840006b4f380065452f +00683524006a291a006f1c100078150b00860c060098060400aa010100bb0101 +00c1030200c7080300c7090400ca090500c60b0600c1150900b8210f00b23017 +00b2422300b3583200b0684300ab784d00a9865800a78f63009e8d6a00938364 +00857659007d6a4f00755d4400715338006f4d320075503300815637008f6042 +009a6f5400a7826600b3906d00c09a7200c7a07600c7a17900bf936d00b9805a +00b6674300b1523300a93b2600a0281b009f160f009e0d06009e0b03009b0e04 +"/> +<palette number="512" name="Brushed_Silver" data="00b8bfc300b6bbbf00b7bbbe00b8bcbe00b9bdbf00babfc100bbc0c300bcc1c5 +00c0c8d200becad500bccdd800b3c7d300aac2ce009eb6c30092abb8008ca5b2 +00869fac00728b96006b838f00657b88005f7783005a747e0056717b00536e78 +00456067003c545b0034494f002c3e420024343600212e31001f292d001d2224 +001e21230023252900282a2e002e30340034373a003b3e40003e414300414447 +00525355005c5d5f0066686a00707376007a7f82007e84870082898d008a9197 +00929b9f00a1a9ae00a6adb000acb1b300aeb2b200b1b3b200b1b2b000b2b2af +00a9a8a600a0a09e00979996008e918f0085898800818584007e828100777b7a +00737673006e726d006a6f6b00676d6a00646a6800626866005c636100575e5d +004d5455004a505000474d4b00464c4a00454c4900444c4900444c4a00434c4b +00414b4a003b45440036414100323e3f00313c3d00303b3c002f3839002f3737 +0031393900353e3d003a4442003e474500424b48004b534f00535a59005d6362 +00686d6b007b7d7c008082830086888b00878a8e00888c91008a9095008b9297 +008d949a0090969c0094999e00959aa000979ca2009a9ea5009aa0a90099a0ad +0097a0ad00919fae00909ead008f9dad008e9dac008f9eac00919fac0096a2ad +009fa7b000a3a8ae00a8a9ad00a8a8ab00a8a8aa00a5a5a700a2a2a4009e9e9e +0099989800918f8b008e8c89008c8a8700898784008783800083807b007a7e78 +006977730060706d0057696800526565004e626200455c5e003e585d003b565e +003f565f00465e690049626c004d677000556f78005d778100647e87006a838b +007289910075899100788a91007e8a9100818991008388910085888f0086888e +0086878c00858285008481830083818200807f7f007e7c7d007a7a7b0075767a +006d727b006a717a0068707900656e7800626c7500616b7300626c7300656d73 +00687177006b747b0072798100788089007c869100828c990086909e008994a2 +00929ca800949ea90097a0aa009ba2ab009fa3aa00a4a6ab00a8a8ad00adaaaf +00b3adae00b6aead00b7afad00b7afac00b6aeaa00b3aca900afaaa700aca8a6 +00a9a8a600a8a9a800ababa900aeada800b1afaa00b3afab00b4b1ac00b4b0ac +00b2afab00aeaba900a6a6a6009da1a500959da4008f9aa2008b969f0089939d +0088919900888f9400888b8e0088898900888686008685830085838100838280 +0081807f0080807f007e7f7e007b7e7d007a7b790078787400787671007a7770 +007d797000807b7200847e760089837c008e89850093908e0097959400999798 +0099979a0098979b0098989a0097979900959799009397970091959600909495 +0095999b009b9fa0009fa5a800a4abaf00a9b1b500aeb5b900b3b8bd00b6bcc0 +"/> +<palette number="513" name="Bubblegum" data="00c2254f00c1316100c1326300c1346500c4336500c7326600ca326800cd326b +00ce2e6e00cf2e7400d02e7a00ce2c7c00cd2b7f00c8267e00c3217d00c01e7b +00be1c7a00bc1d7c00bc268400bd308c00bd3d9200be4b9800bf529d00c05aa2 +00bf6cac00bf75b000c07eb400c187b800c291bd00c395bd00c49abd00c7a3c1 +00c6a6c100c7a1b900c99db900cb9aba00ca96bb00ca93bc00cb90bc00cd8ebd +00ce77ab00d068a000d3599600d2509300d1479100cf459100cd449200cb469a +00c5459a00bc3b9300bc338a00bc2b8200b92b7d00b72b7800b5307b00b4357f +00aa538f00a85a9700a662a000ac67a800b36cb100b76db500bb6fba00c474c2 +00c97bc400cc8ac100cc87c400cd85c700cd81c600ce7dc500cc73c000c866bd +00bd51a900b5489800ad3f8700aa368000a72e7900a72a7600a8267400a92273 +00a8207200ab2f8400aa378c00a9409400ac409b00af41a200b642b200bf42c1 +00c642c800c843c900cb44cb00c744c800c445c600c245c400c042c200bf3fc5 +00c53bc700c92fbc00c62bb000c427a500c1259e00bf249800bb1a8800bb1481 +00c20f7d00c80e7c00cf0d7b00d10d7a00d40d7a00d60d7500d60e7200d50e6e +00d3106e00d30f6a00d40f6900d50f6800d8126800d9176400d9216400d82e67 +00d6487700d7528500d85c9400da619a00dc66a100df6fad00e179b800e286c2 +00df95cd00d09dd700c89cd500c09cd400b698d300ab8ed400a483d500a680d8 +009d7fd5009881d3009383d1009487cf00958bce00988cc5009583c0009e7dc0 +00a875c100ad65ba00ac60b800ac5cb600b05fb000aa629e00a85e9300a95289 +00b0367d00b12f7a00b3297700b6207a00b71a7b00b7177c00b6147b00b8147c +00bd137f00c9158400cb188600ce1b8900d2238f00d72d9900da38a100dc46aa +00de5ebc00de60bf00df63c200dd6ac400db72c500da7ac700d982c900db8bce +00dc94d300dd9bda00da9ede00d2a1dd00cca3da00c6a5d800bfa3d500c3a4d7 +00cca7da00cda7db00cea8dd00cea9de00ceaadf00cdade000c5abdf00c2abdf +00c3aae100c9a8e400cea3e700d39cea00d996e900db8ee500d885de00d37cd6 +00ce73ce00c96bc500c765bd00c661b700c360ac00be579f00b44b8c00a7407a +0099376e008b2e5f00812859007a23510078224b0077214c00761f4300722141 +006f2747006e2d4b00713758007140610076486d007b497d00845089008e5892 +00925b9a009c62a300a967af00b66bb700bc6cbb00bd6bbc00bf6bbc00c06bb9 +00be65b500be60b200bf5ab000c457ab00c74ca200c73f9500c4338800c0297c +00bc227400ba1d6900bb185f00bf175d00c6165c00cd155e00ce135e00cd135d +00c7155c00c51b6200c41a5800c31c5300c21e5200c4204e00c5214f00c72351 +"/> +<palette number="514" name="California" data="005079ad00537eb700517cb9004f7bbb004878bc004176be003c74bd003872bc +002e72c0003274c2003676c500407bc7004b81ca005784c5006488c1006987bd +006f86ba008680a600987f9e00aa7e9600b77a9100c4778d00ca758a00d17388 +00db607a00db587800dc507700d64d7f00d04a8800cc4a8d00c84b9200c6499c +00c244a100b93aae00b534b300b22eb800a42fbe009630c4009031c5008a33c6 +007a3bc5007e35be008330b700842faf00862fa800832ea600812da400772c9e +006f339900643f93006f428d007a4587008642830092407f00973f7e009c3e7d +009a407f009a3e84009a3d89009a408d009b4492009b4493009c4494009e4599 +009c4a9c00964ea4009951a3009d55a2009e55a0009f569f009d55a0009951a5 +00824cb1007d49b0007847b0007a44aa007d41a4007d3da2007e39a1007f2fa2 +007028a9005223b3004927af00402cab003f30a7003e34a300423a9e00423d9b +003e3fa1003a40a6003641ab003641ac003741ae003a3fb0003e3cb200433daf +00453aaf003f3cab003d3fab003c43ab003b42ac003b42ad003e42a9004041a8 +003d499b003a529c00385c9d003760a0003764a4003766ab003965b3003b65bb +003964bd003961c4003a62c5003b63c7004262ca004b60ca00525acb005853c8 +005749c1004f46be004843bb004642ba004542b900453fb6004d3bb2005b37ad +006735a7007b339b007e34990082359800813895007e3c9300823f9200834692 +00945497009c5b9800a4629a00a4619a00a5619a00a65e9800a55e9500a45c96 +00a25c9900a261a600a25fa900a25ead009f59b1009d55b4009f51b500a151b5 +00a55ac100a75dc200a960c400a863c300a762c200a45ec200a15dc3009d60c8 +009561d1008f61da008d5ed8008c5cd7008656ce00804dc6007948c2006e44be +005e4ad0005c4cd4005a4fd9005856df005b5be1005f62e300676dde00707ada +007d85d8008b91d700999bda00a2a3de00a6aae700a8b2eb00acbaee00afbcef +00b1c1ec00afbfea00aebee900a8b7ea009aafe9008ea8e600839fe3007a92e0 +007486db00717bd7006f73d3006a6cd2006667d1006265cf005d60cf005858ce +005352cf00504ecc004b4ecc004a51cd004a58d0004b62d4004b68d7004a6dde +004b6fe100476ee000436edf00406bdd003f6dda003e6dd4003f6ed1004270d1 +00496dce00526ccb005963c700605bc6006253c100634bb9005f48b5005a43b2 +005944b0005742af005740b100543fb400523db4004e3fb100473fae00413daa +003c3ca000393e9c0037459c00384aa0003d52a400445da8004b62ae005464af +005b64af006067ad006369ac00626bae006072b0005d77b5005d7cba005f7dc1 +006081c3006585c3006688c1006384ba005e80b300587fac00547bab00517bab +"/> +<palette number="515" name="Canyon" data="00c3937600be906c00b57b5a00ac674900b3754f00ba835500be8b5800c3945c +00ca9b6f00c9a07300c8a67700b8a17b00a89c80009a8b7c008d7b7800847471 +007c6e6a00565a52004b4c4c00413f47003b38480036324a00362f4d00372c51 +00313f62003a456a00434b73004c5a7900566a7f0059707f005c767f0066787d +00677c7a006a7c7600697c7000697c6a006071600058665600565d4f00555448 +003c3e2e00312f240026201b00201c1b001b191c001d1c1d001f1f1e00252323 +002f2b2b004b32340052312d005a302700633427006c3827006e35220071331e +00703d1c00794629008350360083593c008463430085644600876649008a6f50 +00877658007b785600716e4d0068644500635e41005e583e0056443500513631 +0050383f00553e43005a45480061575500696a62006f71660076786b007d7d6f +007e806b00807d55007970490072643e006c5c360067542f005a422100543e17 +005c3e1e0066472900705134007b5c380087673d00a3854e00ba985700d1a660 +00dea85b00dea35900d9995700d48f5600cd875500c77f5500b7785b00a87465 +00987a72008f847d00878f890085938e00849893008b9e910092a7920099a88f +0099a48800af936300b6885900bd7e4f00b6673b00a857300091532700864422 +00642912004f2f12003b3613003736170034371b00323019002d2d17002b3616 +002f3e240042493c00494f400050554400606152006d7158007a7e62008c8b68 +009d9c73009da27e009da88a00a2a99100a8ab9800a9baa700acc2ae00aac2b2 +00b3b2ab00b2a99700aca28c00a69c8200998269008b705a0082694f007b6347 +0074624a0076674a00786c4a00827749008a814e0098865c00a28f6200ab9966 +00aaa06600a6936e00a48f6e00a28c6e009f866200a17a52009f6b4000995f38 +008e4e2b008d4e2c008c4e2e0087533c0082554d0075545b006a556600615c70 +005e5c7f00525d9000515f92004e678d0056718a004e73a0005076aa005378a8 +00708e9c00748c9d00788a9e00807c930095767a00ac756400ba6f5600c6664b +00ce594000d5563800d1583500ca5b3600b8543500a45433008e542e0079562c +00685324005b53200051541b004a542500425a30003e6244003d6d4e00487058 +0051765d005c7c5f0064805800707f54007a7a520082765100856f47007b6544 +006a5b49005b525a0055506000524d620053525d005d525f0070576500855765 +009b5e6100ad645600c06b5100c7684a00c6664800bc664700b26b4000a96b3b +009b683c008a6445007e664b007e685300816c5a00806f620081766500887e6f +0098867600a5907d00ac957d00af997c00b6947800bf966f00c9956400cd945a +00d48e5500d78d5a00df966300e39d6a00ebad7300eeb58000e3ad7f00d29878 +"/> +<palette number="516" name="Carnations" data="00983031009932310094282a008f1e2300931f2500982027009b232c009e2732 +00b43a4700bb434f00c34c5700c4545900c55c5c00c25f5200c0634800bc5f45 +00b95c4200b4583d00b2593a00b15a3700b1593f00b2584800b2594700b35a47 +00a75b49009a5947008d5745008b503e008a4a3800874536008440340082372a +00872a1f00921a12008a150d00831109007514090067170a005f1b0b00581f0d +003d2a17003d2f1a003e351e00403b21004242240045442400484625004d4926 +004a49260048472300424020003c391d0036331800312d14002f2a12002d2711 +0022220d0020260e001e2b0f002130120025351500273817002a3b19002e3d1e +0032402300304125002e3d21002c3a1d0028371a00253518001d301600192f12 +00182706001a2207001c1e0900221b0800281908002e1707003516070043120a +004d110a00550b0700540d0a00540f0e0053110f00521310004d1113004b1215 +004d191c005a1c1f00681f2200722123007d2425008f2f2700a03a3100aa4338 +00b34b4200c1624a00ba644f00b3675500af665500ac655500aa625200a9584a +00a34841009d413900983b320093382d008e352900862f240078332500693926 +00573f280046442e0044482f00424d3100405434004659380051563a00625a3c +00816f3d008d6d40009a6c43009c6a42009f684100a06a3b0095663700865a30 +00744b28004d341600432f12003a2a0e002a2107001e18030018150100151500 +000e15080012180b00171c0f001b1f1000202211002926170035291c00422b20 +00502a210067271f0068281f0069291f0064291f005d2b1b00562d1700513216 +0048350e004a320c004c2f0b005b2f0e0067301200743116007e2c19008c2f22 +0094372900954a2e00914c30008e4f3300855437007553340065542c00544e25 +00383f2200333d20002f3c1e002d3a190036381a00453a1f00593f25006c492c +008151370095594300a5624d00bb6d4e00c87d5500d78d5d00d7966700e19368 +00d9906500d48f6400cf8f6300cd845f00bc745c00ad665200a25d49009d5741 +0098513b008f49330087412d007e3b290079342500712c1e00662716005c2915 +005a2c18005b2a1c005b2b1e005d2f23006036290065342b00672f2800672424 +0061221e00591d1a004f1911004a0e0b00450a0500480a06004e0c0c005e0e13 +0070151a0082222200932c2e00a0343600ac3c3f00b1474200b54d4500b14d44 +00b2494100af413e00b4383800b62b3100b9212800b8172100ba111a00b80a16 +00ad0714009f0c1100921a120085271600783020006e3d2600725131007c6b42 +00877b55008c7e5700967a5300a1795300aa7a5c00a9715a00a2624e009a5140 +0091473d008d3b3c008c363a009034370094383b009b3d420099393e009a3538 +"/> +<palette number="517" name="Carnival" data="00cb5c7c00c9526d00c84f6900c74d6500c54b6000c4495c00c3495900c24957 +00ba484e00b7464b00b5454900b1454c00ad454f00a9445000a6445100a44553 +00a3475500a4486100a74d6f00aa527d00ab5c8b00ad669a00ad6aa000ae6ea6 +00b67eba00bc84c400c28bce00c492d400c79adb00c79ddc00c8a0dd00c99fda +00c89bd500c98cbb00c680ac00c3759e00be6a9400b95f8a00b85a8600b75682 +00b5517500b5537300b5557100b65a7900b7608100b8648500ba688a00bf7395 +00c47a9e00cb88a600cc8aaa00ce8dae00ce8db000ce8db200ce8bb100cf89b0 +00ca81a600c77c9f00c4779900c3729100c36e8a00c26a8500c1668100bf5f77 +00bb566c00b2455b00b0405500ae3c5000ae3c5000ae3c5100ad3c5300ab405b +00ac4b7c00af528d00b2599e00b75fab00bc66b900be6abf00c16ec600c475d2 +00c57adb00c97be400c877df00c774da00c672d500c571d000c26ec300be6fb5 +00bd719b00ba729700b8739400b7729500b7719700b2709a00b6709c00b96f9f +00bd6fa400c073ba00c073c700c074d500c174d800c374db00c472d700c170ce +00b265bd00a862b9009e60b5009b5eb000995cab0098599e009556930098508c +00954b8b00954b9900994d9b009d4f9e00a459a300ae60a800b868b100c171bb +00c77ad000c77ed700c883de00c886e100c889e400c98fe800c794e900c696ea +00c193ec00c191ec00c191eb00c192eb00c195e600c299e000c096d900c091d1 +00c284c200c17cbc00c175b600bf72b300bd70b000b866a800b45e9e00b25596 +00b24e8b00b1438400b1408300b13d8200af3b8200ae3a8300af3d7f00b23e7c +00bf4f7c00c2547f00c5598200c9628e00cb6b9b00cc73a700cb7fb000ca88b7 +00cc90bc00cd9ac700cd9ac900ce9acc00ce99d100cc97d600c792d900c28ed9 +00be84d900be80d900bf7dd900c37adc00c673e000c76fe100c66de400c671e4 +00c670e200ca75e000d077e100d479df00d47bdf00d482dd00d187db00ce8fd8 +00cb97d600ca97d500c998d500c997d400c595d000c293cc00c18ec800c08bc4 +00c189c300c185c300c17ec200c278c000c36fc100c267be00c060b800be5ab3 +00bd55aa00bd54a000bf509900c14f9100c1498300bf447500bd3f6500bb3f55 +00be424a00c34b4800c9544a00cd5a5000cf615600cf665f00d26d6900d47475 +00d67d8600d9849800db89a900d98cb800d98ec500d88ed000d98ed800d88fdc +00da8ede00d98fda00d78dd500d58cd100d68ecf00d590ce00d592cd00d596cb +00d397c600d094c300cf92bf00cd8cb900ca85b700c780b300c67cac00c476a8 +00c372a300c5709f00c66e9c00c66d9c00ca6f9700ca719500ca739300cb7793 +00cc799200ca799700ce799900cf769b00d0739b00d06d9700cf698e00cc6086 +"/> +<palette number="518" name="Carpenter" data="008f9f9500627268004d5b520039443c00303b340027322c0027312b0027302b +0029322f002c3731002f3c3300413e2f0053412b005f472b006c4e2c00695033 +0067533a0057625c006c665400826b4c0093704300a4763a009e703400986a2f +006d471a00664216005f3e13006b461800774f1e007b5524007f5b2b00946f3b +00a57b4900c38a4500b4803d00a676360095693100855d2c00825b2c007f5a2d +0078582f00715a3b006b5c4700656656005f7066006074690062786c0062786c +005d736700505d54004b574c00475244003d493e003441380033403700334037 +00313e3500323f3600344138003b4a410043544a0048564e004d585200526257 +005c6e62006b7f7400847f66009d7f5900a4805400ab814f00a3713200986931 +0058472d0048423300383e3a0044483b0050523d005e5844006d5e4b0093754f +00a7855800c18b4b00b3804100a57537009a6f3900906a3b00776348005e6860 +005a675e0057645b00546158005d605000666048006c5e4400715e4000885f33 +009b6c3400835f3b00786a56006d767100727d760078857c00818c8400879b90 +008c9c92009e957900b08e6000b48f5f00b8905f00c2935d00c1945900b08b57 +009f764800715d42006b5e4800665f4f00616e67005f70660064756b00667a6e +00817b6b0093806400a5855e00a6865f00a8886100a8875c00a27f57009f7d57 +00986f4100835f2f00815c2c007f592a007a5828006b4a1d006749270060421c +005f3e13005d3f1b005c41230058452a00554931005b544400616c6400667a6f +00708075007c908500788d8100748a7e006f80760062726700525f5600425248 +00323f38002f3b35002d3832002d3631002c3230002c35300034362900453118 +004b3317005c3d11005d3d11005e3d12005a4122004a493700534e3a005d4930 +0072502b0072512b0073532c0065543a004e5b52004f5c53004a5a5000455048 +003b483f00353e39002f3a32002c372f0034362900493723004a32160052360f +0054361000513510004e3411004a3314004630180048301400472e1000472f15 +0042311700382f1e003030260029322d00242d280022282400292a1c003a2a13 +00402c1300442c12003c2d18003334260029342c002b36300029322f00282e2a +003c2c1500402e18004a3314005a3a14005e4421006752370069594200796145 +009a7a5300a8895d00ba966600c69d6500c79f6b00c39e6a00c7986400c5965e +00c4976000c2986600ba956900b7926500b6926200b6915d00b78b5c00c68c4c +00c2915700b48c5b00a989600079847c007f8c85007e8f850086968c0089998f +008b9b910088998f007b918400798d820077847b0073837900687c710069766d +0069746c0066766c00687c71006a7b710073897c007e8e84008b968e00b39164 +"/> +<palette number="519" name="Cellist" data="008d5b44005d392500502f1d0044251500412414003f2314003b211300372012 +002b1a0e0028190e0025180e0024170c0023170b0026190c00291b0e002b1b0e +002e1c0f00372413003c291600412e1a0049341e00513a2200563f26005c442b +006d5c44006f624d0071685700756654007965510074634f0070624e006a5d4e +00694f3e00694229006e41280073402700744026007541250074412500734226 +00693b23005e361e0053321a004b301b00442f1c00442f1d00452f1e004b3221 +00583f270083643f0096734900a9835300be986400d4ae7500dab37800e0b97c +00e7b87b00e7b77800e8b77500e1aa6800da9d5c00d79a5a00d5975800ce9250 +00c2894a00b5794200af744000a9703e00a56d3c00a26b3a009f6539009f6235 +008f5b300086552d007e502b00744d29006b4a280066472700624526005b3f24 +00573a220053361e0050331d004e301c004d2f1b004c2e1b00472b1900422a18 +0037251600312013002c1c10002a1a0f0028180f0026170e0025160d0026170d +00291b0f003b2718004b2f1e005c382500653b28006f3f2b008348330099533a +00c0614700c86d4d00d1795400d47c5500d7805700d07e5500c2785100b0764d +00a07248007c5a3500735331006b4d2d005e422700553c210051391e004f361d +0047301a00442f1800422e1700422d1700422c1800402d18003f2d1800402e19 +0044301b004f351e0051361f0053372000573a22005c3c240062412500684325 +007b482a0087492c00934b2f00994d2f009f503000aa563600b55f3c00bc6543 +00be684500bc684600ba674400b9664300ac623e009b5436008d472c00843c23 +0068301800612e16005b2d1400572d1400583117005b351d00603b21006a4626 +00734f2e00795436007b5535007d57340082593500845734007f4e300077472a +006f4022006d3e22006b3d2200613b2400593b2800523e2e00554231005c4432 +0064473400674a3a006b4c39007049320077452a0077422700723f24006b3a1f +005c2f1500592d1400572c1300522912004d261200492411004523100043210f +0043221000472410004d28130057301800643c2000754b270086592f00976839 +00a3754600a77a4f00a4785400a2764e009c724b0092684500855a42007d5038 +007b4b2f007f472a008b442a0099442e00a8493200b14e3800b9554000bd5746 +00c75f4900c7684900c3704b00b8714e00b6724d00b1724700a86f400098663c +008a5f39007f58350072513000654a2b00584226004f3c22004835200043301d +003d2b19003827170033221500302013002d1e11002d1f11002d2213002f2515 +00312817003428160036291700382b1a003b2d1d003f2d1d00442e1d004c3420 +00583d250067492c00775632008f644700a36f51009a6a4d0089603c0080573e +"/> +<palette number="520" name="Cherry" data="00b3312500b94c3d00c4675300d0826a00dc8a7400e9927e00ec917d00ef917d +00ef817000ec6a5e00e9544c00e0443d00d8352f00cd2f2b00c2292700bc2623 +00b6231f008d1b12007e150d0070100800680d0500600b0200600a0300610a04 +0076140d008a1912009e1f1800a6252100ae2b2a00b22f2f00b7333400c03b38 +00c13a3a00b33a3600ae342f00a92f2900ab262300ae1d1d00ae171900ae1215 +00b3091500b90a1700bf0c1900bf0d1900bf0e1a00bc121a00ba161b00b71f1c +00b6242000b5332900b7413200ba503b00c75b4600d5675200d96b5600dd705b +00e2745e00e4705d00e76c5c00e86f6000ea736400eb756600ed786900eb7a6c +00e5746900db716200c7625600b4544a00a5473f00973b3500752922005d1b16 +0042040800370205002d00020033000200390103003b0102003e020100400200 +00420301004d080400570a0500620c0700680c07006e0d080081100e00901213 +009d0f10009b0e1100990d1200950b11009209110085060d0076060a00670507 +005b0203004d00030049000100460000004400000042000000400000003d0000 +003b0101003b0101003b0201003b0200003b0200003a0100003c0201003e0201 +004002010047010000490100004c010000510300005a03000065040000710303 +00830206008c020600960307009602070097020700920107008e0206008b0204 +0086010200790200007602000074030000700200006e0100006f0100006e0100 +0072010000770401007d070300800a0500840e08008c190f0092211500922519 +00902517008825170084231700802117007719110070100b006c090400680402 +00600202005f0101005f0101005e0100005d0100005c0100005c0100005c0100 +005d02010064050500680606006c080800750b0a007b110c0082171100881c14 +008f1c10008d1b0f008c1b0f0084190e007d130a00760d06006f090300670501 +00610200005d0100005a0200005b0300005d05010062060400670908006c0f0c +00831e16008a211a0092251f009d2c2800a9352e00bb383100c73a3200d13934 +00d5393600d8383600d0393300c93a3500c0423e00c0474200ba4e4100bb4d3d +00b5564600b8584500b6564000b6482f00ad3d2900a4331f00972b1900871f10 +007b140b00710b050069060300610301005a010000530000004f0000004f0000 +004f0000004f00000051010000570200005e040000660700006d0a0400720c07 +00740f09007311080070150b006f140d006e160d0073140b0078130b0084130f +0093171200a51b1600b41a1900c11a1d00ca1a2000cb1b2100c6161e00bd121a +00b30d1600a409110095040c0089010900830009007f0007007c0007007b0008 +007d020800830409008a0709009b0e1100a4141500a016130097150c00a22215 +"/> +<palette number="521" name="Circus" data="002b5f34003a5c330047572e00555329005f492500693f22006f3a2300753524 +009023260099192100a30f1c00a80a1d00ad051e00ad082300ad0b2900ac0e2c +00ab123000a41e46009d235400972862008f2e6c008835760089397c008a3d83 +00903f9c008e419d008d449e008c4a93008b5088008c5282008d557d008f5e73 +008c6867007d7b44007c8136007b8728007b8c22007b921c0079931b0078941a +0075901f007789220079832600757b2f00717339006e6e3f006b6a45006d6450 +00705c5a007d486f007b4076007a387e0078338000772f8200762c8100762a80 +006421750057236f004b266900422a65003a2f610037305e0035325b00353455 +003a364e004d3a430058393d00633837006935320070322e007e2c23008a2519 +00991a0d009b180a009d1607009b1504009a1402009912010098100100950d02 +008f0a0700820d12007c0d1600770e1a00750e1e00740e2200730e2e006f113a +00601a440058204600502649004d294c004a2d4f00453554003f3b5600374057 +002f43570024485c00214a60001e4c64001d4a65001c49660019436700143b67 +000b306700092a650008256300092261000b1f6000111b5f001c1a6100261b64 +00311c6700462063004c20610053215f0060215a00681f56006b1e4c00671e44 +005c1c2b0056182100511518004d1414004913110040130b003a110700361207 +0034110900311314003012170030121a002d1120002a10270029133100291a3d +002a2452002c2758002f2a5f00332d6300383067004539710055427c00644a83 +00735087009156860099578600a2598700ae5d8800b8608b00bf608f00c35c8c +00c94c7c00c9487800c9457500c7407600c33a7300be336c00b52b5b00ae2846 +00a92b3800a24028009e4524009b4a20009756180094611400946f1300937e17 +008a91250088902900878f2d0087873300887b3700846e380080663700805b39 +00844c3c008e3c4100972d49009c244f00a1205500a51e5c00aa1a6300b0186e +00b61b8600b51c8a00b51d8e00b51d9200b61b9100b4188d00b1158900ab1286 +00a31084009c0c810094087a008b0571007f02670070015e0061025800520254 +004303500038044d002d0649002307460019094500100c45000a0e470006104a +0004104c00020e4c00010d4b00020d4900070e4900101148001912450020103f +00250e37002a0d300031122c00391929003e1e2700401f23003e1c2100391b21 +00321b23002b1e2800241f2b00201f33001b1c3900141a40000e1a4800071b4e +00041c5500031e5b00042261000525650007296900082a6c000a2a6e000c2a70 +000f2c7000112f700011306f00102f6f000e2e6f000f2d6d0010316b00133768 +00143c64001441600012455c0012495700164e50001d544600255a3d00295e35 +"/> +<palette number="522" name="City_Street" data="00492d35002a1a1d0020101000160604001c0a0600220e080027130a002c180d +0048332700563f3300644c40006d554700765e4e00795f56007c605e007a5e60 +00795d62006856600060525d00594e5a005547540051404f004f3e4d004e3c4b +004b414c004a4148004941440047383a0046303000452c2b0045292700432320 +003f1e1b003817100036110a00340c0500310803002e0501002c0501002a0501 +00200602001f0501001e0501001f060000210700002107000021080100220901 +00230901002b0e03002d1106002f150a002f1a0e002f1f12002f2013002f2214 +002a22180027201900241f1a00231b1700221714002114120021121000230e0c +00250a09002c030400300203003402020036020100390301003b0301003d0200 +0040020000400200004003000041040000420600004306000045060000490601 +004c0503004b0a05004b1108004c190c004c1c10004d1f14004e2519004f2a1d +0050371d00533b1e0056402000594122005c4224006044260062472800674e2b +006e532f00856541008d714d00967e5a0099825f009c8664009f8b6b00a08c6d +0098815f00927655008c6c4c0089664700876042007b513300704125006c3216 +0067250d006c1704006915040067130400600e0500560a08004f080c004e0b10 +004f151300511b170053221b0057291e005b312200653f2a00744d2f007e5a33 +00865d3600895d3300875a3100865830007f532c00744a29006c3d22005e331d +00432017003f1f19003c1f1c003e221e0040252000462d240046372d00483e35 +0049433b00504437004e4235004d413300493d3100453b310042382f0043392d +004f412e005445300059493200604f380065543c00695a40006c5b4400715a46 +00755e4d006d5e54006a5e5700675e5a00675b5d006c62640073686a007b716f +00837e7b00857f7c0087807e00887d7e0088757700876e700082625f007b554f +0076464000713534006f2729006e1d1d006a171000641106005f0b0200590400 +004b0400004505010040060300370805002f0a09002c0a0d002d0c120031131c +003b20290049333b0059474e006e5b6200837077009a858b00ac9da300b8b6b9 +00c1cccb00cededd00ddeae500e9f1eb00eaf2ef00dfecea00d3e3e300c7d8d9 +00c1c8c700b6b6b500a29e9d008b87830074706b00615b560052484200453630 +003a261f00301d13002d190d002e180a003216080037140500391404003c1806 +003f1d0b0041221000432413003f241400382317003423190030241e00332424 +0034242a0030242f002f2231002c1f2f002f1d2d00321b2a00321a28002e1927 +002716230020131d001a101800170f1200171211001a161200211d150028231c +00342c260043343200503c3e005b43440056413f00523f3b004e373700482f33 +"/> +<palette number="523" name="Clash" data="0055814b00184f8d001b4b7c001f486c00233e66002735610028335a00293154 +00212e3b00203031001f3327001e2e23001e29200028221e00331c1d0038191a +003d1617003f0f1200340e1800290d1e00210c2c001a0c3a00190a3b0019083c +00170c46001b0d48001f0e4b001e1055001d135f001a14640017166900131873 +00161774001e1c64003022570042284a00472949004d2b49004a2a4c00472a4f +0033186d0024137700150f820015167f00151d7c0016247500172b6e001c485b +001f563e00315e20003d5c1b00495b1600554f280062433b00673d40006c3746 +00541c7b0048127e003c0982003707810033068100360c79003a1372004e2561 +00622c4b00795430007a5924007c5e1800755b1d006e582300584e25003f3c24 +001a2f28001b3e1f001c4d17002b6a11003b870b004a8f09005a9808006ca00a +0077a60c0080a010007c961200788d15007588150072841500687a0b00667610 +00787e0f0080851100888d14008d8c1500928b170087811d0074763400655f53 +00584b5c005136720063346300753354007c394900833f3f008d3f2a00903a22 +0068410f00593d13004a3917004137130039361000332810002e201200281a11 +0023131700130433000e053a000a0641000a0f4b000d184d0007274b000d3c3c +001048280019462c002244300025383600292c3c003c214500592841006d353c +00784633008365110079660c006f6808005a650f004f57170042421a00323229 +003b1939003a144300390f4e00390b51003a075400360d5e0036106900311372 +002d127e003b1792003d1697003f159c004211af004b0fba004a0fc100390ec7 +002507ca001e07c4001808bf00110bb2000d10a600081393000d198500101b76 +00091863000c1a50000a164b00091347000b114c00090f4e000a094a0010094c +00200b54002a0f570035135b0046206400492a75004e2a860055288b004c2f91 +003a2a9000311f83002e1d710029195d0027134f00250e49002008460020054c +00120368000f076b000c0b6f001212670014195a00232f480036442f004a581b +0061720f00698406006d850400718404005f7e0500486b0e00445b1c00385624 +0022512b0021513300275f2d0029652400356c240032813300388050003f766a +002a7293001f60ba001a4fc6001240c6000934ba000435a7000c3591000b3586 +000b39830011357e00132c89002227a0002e2cae00253ac400303ad2004649c5 +004569b5005076930067816900788e4c007e962c007d9d2f0079974e00658e51 +004f9354003f9058003c8347003c8232003d8a1a004b8e0e004390210035903d +003c7a5e00266d7e000e658c0014449f00142da00011298b001b207400271b59 +00322c4400413b310052491c0062670e00757f0b00838d0700698431004e7a5b +"/> +<palette number="524" name="Clouds" data="0087b6cb009ebdcf00a9bccf00b5bccf00c0bccd00cbbccc00cfbbca00d3bac8 +00cdb4c100c7b0c000c1acbf00beabc000bbaac200baaac200b9aac300b7aac4 +00b5aac600acaccf00acadd100adaed400aeafd400afb0d500aeafd500aeafd6 +00a2aad3009ca2cb00979bc4009490b4009185a5008e81a1008c7e9d008c7c99 +008f7f99009b879c00a0889a00a6899900a68e9f00a793a600a497ab00a29cb1 +0095a6bd0087a1b7007a9cb2006893a800578a9f004e849900457f9400377388 +002b677e0022596f0022586e0022576d00285c73002e62790033657e00386984 +004d7e9d005487a7005b90b1005e95b700629bbd00649cbf00679dc1006ba0c5 +006c9fc5006ba2c5006ba3c4006ba4c3006ba4c3006ba4c30069a3c20068a2c1 +005fa8c0005aa7be0056a7bc0050a1b8004a9cb4004698b0004294ad003b90a7 +00348da10033889c0037879d003b879f003e88a100428aa4004c90aa005495b0 +00689ebb006c9cbc00709abe006e97ba006d94b700668db0005e83a800587b9e +00557190004d577100404c6400344158002e3e5600283c5400253c52002c3f56 +00474d64004d57710054627f0056688500586e8c005b799b006185a6006a8fb2 +006f98bb0073a5c70071a6c70070a8c70069a7c40062a8c20058a7bd004fa3b8 +003f99a9003b94a30037909e0037909d0038919d003c939f004295a3004897a9 +004f98ac00609cb600659fb9006aa2bd0076a7c4007eaccc0082add10084a9d1 +007fa2ca007b9cc4007897be007795bc007794ba00788eb2008388a5008b8096 +008c7483007d616c00765f6c006f5e6d006a606d0071677000756b7100746f70 +0067748100627887005e7c8e0061889b006b94a900769fb10082a6b50088a8b7 +008ca2b0008d8e90008b8889008982820084757500756f6f0066636700535459 +00353b3c0032353600302f3100292d30002631380025394500274251002b4b5d +00355367003f596d00465e7300496479004b6a80004a6f89004c729200507493 +005869840058657e0058627900555b710054586f00545a7100595e75005c6277 +0061677b00636c7e0064738600607287005e738d005b74920057759500537396 +00507a9c0048759400416d880039637e002f55700028456200243f5c00203956 +001c344f0017334a00113249000e3047000b2f4500092a40000a263c000b2339 +000f233900132437001926380021273800272835002726340027253700252535 +002326380024293d00282f3f0027344500243b4e001c42560013495d000b4f65 +0009566a000a5a6f000c5b70000e5d7100115d7100155d7300186074001b6277 +001e63780021637b0020647b0022647c0026667e002a6980002d6f850034768c +00367d9200378498003b8aa0004190a6004896ae00579fb60068a7be0078b0c6 +"/> +<palette number="525" name="Copper" data="00ffd9ba00ffcaa700ffbc9900ffaf8c00f3a17c00e8936c00e18c6300da865b +00bf6a4100b5613a00ab583300a3522f009b4d2c00974e2c00944f2c00954f2c +0097502d00a5593800ac613d00b36a4300ba6e4500c2724700c2724600c37245 +00b3663f00a45c37009653300083472700703b1f0065351a005b2f16004b2710 +003d1d0c003b18090046200e005129140065361e007a432900854a3000905137 +00be6f5000cf7d5b00e18b6600e9936c00f19b7300f29a7300f49a7300f49872 +00f0936f00e48c6200dc835900d57a5000cb744900c26e4300bc6a4000b6673d +009f533000934c2a0087452500793e1f006c381900663416006031140055290e +004c230a00371402002f0e010028090000270900002709000024060000200200 +001a010000190300001905000018040000180400001703000016020000120000 +000e000000060000000500000004000000040000000400000002000000020000 +0004000000080100000d0200001003000014040000190600001f060000210a00 +00240d01002b0e01002e0e0100310e0100330f0100351002003b150600441c0a +0064301900773d23008a4b2d00945132009e573800b1684400c5764f00d5825c +00e4906b00f8a98400faad8800fdb28c00ffb39200ffb69400ffb79600ffb993 +00f9ae8b00f0a48100e89b7800e1957100da906b00cb875f00be765400af6f49 +00a6633f009455370093553700935538009057380092543500945537009a5537 +00ab5e3d00af623d00b3673d00b4663a00b5663800b1623400ae593300a75730 +00a3552f009b5028009a4f29009a4f2b009a502f00a0583400aa5e3b00b56843 +00cd7e5300d1835700d6885c00de8b6200df8e6200da885e00d1835900c27b53 +00b16e4900884d30007f462a007640250066331c00572d19004d281400492512 +004b200a0049220b0048240d004724110048241200492514004d240e004c210c +004c210a004d1f0c004d251100542712005b28110060281100642c1000642b11 +005f2b11005d2a10005b2910005b2b0e005b280d005b2811005e2d1200623016 +006a34190073381a007a3d2000804123008447250087442400834121007a3d21 +0070391f006a351d0067301a0066301900682f19006c351a00743c2000824124 +008e4929009c4f2c00a7573000ad5c3100ae5b3100a9583100a3572d009b4f29 +00924925008c472100874321008b48270090502b009b593400ab684100bb7a51 +00d18a6300e69a7200f8ad8400ffba9600ffceaa00ffd9b900ffe2bf00ffdec3 +00ffe4c500ffdfc700ffdec700ffdfc100ffdbb600ffcfae00ffc7a500ffc59f +00ffbd9700ffbd9400ffba9300ffbb9400ffbe9800ffc19c00ffc6a300ffcaa9 +00ffceae00ffcfb300ffd6b600ffd7bd00ffd9c100ffdac500ffe1c300ffd9c1 +"/> +<palette number="526" name="Coral" data="009b4236008a3323008c3424008f3625008d3423008b3322008932200088321e +007f2918007b261400772410006d1f0c00631a080059140600500f04004b0d02 +00470b01004c050000560b04006112080072180a00831e0d00872110008c2514 +009a2714009924110099220f0093230e008e250d008c230c008b210b0085230c +0081260d007d2610007d2711007e2912007e2d15007f31180082311a0085321d +008e3c250098412b00a2463200b14e3a00c1564200c8574500cf594900de5e4f +00e55f4f00e25d4c00d7554500cc4e3f00bc463600ac3f2e00a83b2a00a53727 +00932e1d008d2c1a00872b18007f28120078250d0077220b00761f0a00761c06 +00721b0300791803007d1c070082210c0083220e00852410008a2817008e2d1c +008f3220008f3321008f3522008e3421008e3321008c3220008b322000862f1f +00832d1e00772c1c00782e1d0079311f007b3223007d342800883a3100914539 +00a5504a00a8544b00ac584d00ac584d00ad584d00ab514b00a84b4600a24841 +009b433b00923629008c342500863222008531200085311f0086321c008a341a +0095301a00993017009e3015009f2f1600a02f1800a3311b00a4332000a43826 +00a73d2b00ab433300aa433400aa433500a7433100a3412d009f3e2c009b3c2a +009a3f2d00a1453200a94b3800ae4f3a00b3543c00be5a4200c4604c00ce6d5d +00dc726100e16e6600e16c6500e26b6500df5e4c00d3514000cd483b00c53f30 +00bc3e2f00bb433400bb483a00b84a3c00b64d3f00b0503e00a94d3c00a04736 +0094402e0086331f0085301c00842e1900832c1800832d1800882d19008f2f1c +00983321009c352300a0372500a73c2a00af412d00b8483200bf4e3900c35442 +00c3594600b9564900b3544900ad534900a14c4100994437008e3c2e00833424 +00702613006a210e00651d0a0061190600601e090064221000712a1a00833d2a +009b4e3b00ae544400b6584b00be5b4d00c4554600bb4c3c00b2443100b03c29 +00ab382300aa362100a9351f00a8342000a8362200a6372100a5372000a43b23 +00a13f2600a04029009e442e009a4831009947320097433200974130009b412c +009e3e2900a33b2700a83e2700ab3e2b00aa3d2e00a9403000ab413400a84134 +00a8423200aa443200aa432f00ac422e00ab412e00a6402d00a13e2c009d3e2d +00983f2e00943f2e008d3c2b00843a28007c372500773422006f2e1b00672613 +0064230e00661d0a006919050065170200631401006716020067190300621a05 +00621c0900641f0b0068210e006a2110006c23130073251600792616007e2a18 +00812e1a0084301a0089321c008a341c008a341a008b321c008d321c008f301b +008f301d0092312000983222009d382a00a13f3300a64437009e403200983d31 +"/> +<palette number="527" name="Cotton_Flower" data="0064a0ba007eb1c30086b7c7008fbdcb0094bdc60099bec2009bbfc0009ec1bf +00aecac800aecbc900aeccca00a4c1bb009ab7ac0095ab9d0090a08e008e9c8b +008d9989007d8e88006e8784006081810055777c004b6d77004a6a70004a676a +004a5f6800515e6500585e63005f585b0066525300654e4b00654a4300653f35 +00623a2900623117005f3015005c2f1300543218004d351d00463723003f3929 +0033474b00304c58002e5265002e5265002e5366002e5365002f5364002e4f62 +002b4c5f002442580025404a00263e3d002c3b300033392400363920003a391d +00403a1b00413d1d00424020004543250049462a004a452c004c452f004c4433 +0048433700393a3500323737002c3439002b3339002b3239002a3339002a3339 +002b3233002a3032002a2f3100282f3000272f3000272f2e00282f2c002d3027 +0030332700353523003335200032351e0031341b00303319002e3217002c3012 +002c2f0d002c300e002c320f002c3310002c3412002c3414002b3414002c3214 +0030301500403318004d3519005a381a005f381900653918006e391600753b15 +00794012007b4311007e4610007d450f007d450f007b440f0076440e00704610 +007148120079440f0079400f007a3d0f007a340b00752c0c0070280c0072270a +007127070069220400611d0200581b0300501a0400441b09003c200d00372510 +00332911002a2b1100282b1200262b1300222b1600222a170022271800212615 +001a210c0016200b00121f0a00111d0900111b0900131d0800162007001c2406 +001f290700232d0800232d0700242e07002a310900323509003b390a00433a0b +0046360e0045350e0044350f004236120041371300413a1600433c1900433f1d +0044411e003e4320003b43200039432100354223003241270032402600324025 +00313d2200303b21002f3a21002b3922002837220025341f0024321a00212f16 +001f2d14001e2c13001c2e14001b2f13001c3012001d2e10001d2e0f001d2c10 +001d2d14001e2e14001f2f1500232f1400272f13002c2f11002f2e1100332e12 +003530160037351d00353a2a00343d360034444500374c52003b535f00415f69 +00466a7700487282004a798f004d8198005287a000598da10067919f00739399 +00798f93007e8a880082847d007e7f77007e7b7300817b7200797a770071767a +0068717800616d730059666b005b665f005a675d0058695b0051685a00516757 +0051615000585c40005f583200685424006d4f1900724c130075460f0078420c +00793e0c00763a090074390a0070380a006d380a006a39090068390b00663808 +006538090060380c005b3c0e005640130052441a004d4723004b4e32004b5241 +004d5a4f004c635f004f6c6e004c737b004a7c8b004c849c00518ba8005995b1 +"/> +<palette number="528" name="Country_Garden" data="00407f360040914000368c49002c8852002c735f002c5e6c002d5970002e5574 +002c3f70002e2c6f00311a6f003c136f00480c6f00560c6700640d6000680f5c +006d125900762e4400833f410091503e009c5a4400a8654a00a76e4b00a7774d +00b38b4400b3874500b3844600ac7a4400a5714200a3693f00a1613d0093583b +00824d3900683d2e0066312b006526290060222b005c1f2d00571f2b00531f2a +003f1a1f0037221c00302a19002c331600283c13002a3b11002d3b0f00343b0b +003d390d0055340e0068310b007b2f0900892d0a00982c0b00982e0c0099300e +0089320b007d35140072391d00663729005a363600533439004c323c003d3446 +00363550002e326300343864003b3f660042446600494966005857620068595b +00895a410098523800a84b3000ad412900b3382300b3352100b4322000ab2c20 +00a3241d00821f16006b28180054321a004b361b00433a1c003d461900395014 +002f5d100030591800315621003953270042502d00564c38006d4a47007c4859 +0085476500983c6e00943673009131790088327b007f337e0072347800652e6f +004d1b5e003c1355002c0c4c00280a460024094000290d3600330e2f003e1726 +00451f1f00483914004840160048471800505322005c592d006c532f007c5030 +00965f2600a3662800b16d2a00b66b2800bc692700ca6c2000cf6f1200ca7c13 +00bb8111008d7c1b0082771b0078721c0068692e005c5a3700574a3e005b4746 +00664e57006f4d6a00784d7e007f4a850087488c008d528a0087637e007e7271 +00697f69004d77670047795c00417b52003c7f3c0034882700358b1b003a821c +00586616005e5f17006558190070491600793d17007e32160082251100831e12 +0081181100761a1200711a12006d1a13005e1c15004e1d17004022170038281b +00312627002f2629002d272b002a2e2b00283c30002f472e0041482f00584b2b +00744f2600875c280096712a009d772c00a1772a00a36b26009d5d1f0093571e +006f4d1d00684a1e0061471f004e3f1900413716003835140031341000343912 +0033421200354715003451180033581700355c180034631b00316020002c5a2a +0027562c0027522c002a562c00315c2b00385e300044612f0052632d005f6726 +006e711e00767b1a007e841300828a10007f8d0c00778e080069920a005b9411 +00498f1a00378f22002587280015832a000e7b2e000b6b33000c5c3700104b3d +00153e3e001e30380028253500301b31003812340040104000481253004a1e67 +004c297700532d7a00552b78005b257d0055287d004b30870047328500443178 +0049266c0048205a003f21550034265000292d4800213245001c323e00173336 +0013393000154224001c4f1c0026531800245e15001f6a1b00257422002c802b +"/> +<palette number="529" name="Creamsicle" data="00ffaf2f00ffa32f00ff9a2e00ff912d00ff832d00ff762d00ff712d00ff6c2d +00ff5c2d00ff572d00ff532d00ff532d00ff532d00ff582d00ff5e2d00ff602d +00ff622d00ff6c2d00ff742d00ff7c2d00ff832d00ff8b2d00ff8e2d00ff922d +00f7a22b00e7a62900d7ab2700c8ac2500baae2400b4ab2200aea82100a39e1f +0096921d00937c2f00a56d4400b75f5900c2527500ce459200d341a100d83eb1 +00f732df00fb2fed00ff2dfb00ff2dfd00ff2eff00ff30ff00ff33ff00ff3dff +00ff4afd00ff65ef00ff76e500ff87dc00ff92bf00ff9da200ff9e9400ff9f87 +00ff9b6200ff905000ff863e00ff7c4300ff734800ff6d4c00ff685000ff5b59 +00ff4f6300ff417200ff3a7800ff347e00ff318100ff2f8500ff2d8b00f92c92 +00ef2aa500ec2aa700e92aaa00cd2ba000b12c9700ab2e9100a6318c00a8377e +00a23c670081453f00905036009f5b2d00ac602900b9662600c86d2300cc7128 +00e9814700f4845a00ff876d00ff827600ff7e8000ff749a00ff68b100ff5dc5 +00ff52d300ff3bdf00ff34de00ff2dde00ff2ddb00ff2dd900ff2dd000ff2dc2 +00ff2da100ff319600ff358b00ff398500ff3e7f00ff466d00ff4e5d00ff5951 +00ff654c00ff764600ff794800ff7c4b00ff7f5800ff806a00fc7c7e00f47699 +00e565cd00d95edb00ce58e900c755ee00c053f400b949fc00ba42ff00bf3dff +00c63efa00d836db00de33d000e530c600f231b000fb369600ff3b7900ff3f5f +00ff4b3e00ff513900ff573400ff5a3700ff5d3a00ff614200ff634800ff654f +00ff665900ff6d6700ff6e6600ff706600ff706100ff715a00ff755200ff7a4b +00ff7e3900ff7d3500ff7c3200ff7b2e00ff7b2d00ff7c2d00ff7b2d00ff792d +00ff782d00ff7c3100ff7d3200ff7e3300ff803400ff803400ff803400ff8034 +00ff7e3200ff7c3000ff7b2f00ff792d00ff772d00ff792d00ff7c2d00ff812d +00ff872d00f8912b00ec9d2a00dca62e00d1a83c00c2a24b00af9f52009b9c55 +0085836e0085797100856f75008d5b73009c517000ad496f00b73f6d00b9306c +00b42b6a00ae306600a33a6200963f6300844565007254660067686400697b5d +00748a530085974d0097a54b00aab24500bcbb3800cdba2c00ddb52800ecaf2a +00f5a92b00f7a02b00f5922b00f5842b00f4772b00f46e2b00f3652b00f55d2b +00f7562b00fa522c00fd502c00fe502d00ff522d00ff562d00ff5a2d00ff5c2d +00ff5a2d00ff572d00ff572d00ff572d00ff562d00ff512d00ff4a2d00ff432d +00ff412d00ff3f2d00ff3c2f00ff373300ff313900ff2f3c00ff304000ff3045 +00ff2f4c00ff2e5100ff315400ff385400ff415000ff474c00ff504900ff5c47 +00ff6b4000ff7a3900ff863300ff903200ff9a3200ffa43000ffad2e00ffb02e +"/> +<palette number="530" name="Cricket_Music" data="007026a8006825b6006624bc006424c2005e1fb100581aa000521799004d1492 +00391c660039235100392b3d002c362a002041180020471800204e1800254d23 +002b4c2e0036395400462f690056267e00601a91006a0ea5006c0bad006e08b6 +005600c6004703d3003806e0002a04e3001c02e6001801e0001500da000400d7 +000004d300000cb30000119e0000178900001f75000027620000265500002649 +0000342c00002c2a000024280000183200000c3d00010b4100030a46000f074c +001a0550001d004d001c013d001b032d001509250010101e000f101f000e1020 +000f0a2d00151037001c16410024184d002d1b59002d1c5b002e1e5e0026245d +001f315900174054000e375500062f560005295a0004235e0002176600060c6a +001e007c001e027a001f057800210276002300750020006e001d00680013085b +00030650000000370000052a00000a1e0000101a0000161700001c0800001b00 +00002c00000039070000470f00034b1300065018000b5928000e5d3b00065d48 +000359590006476600053d660004346700072d6e000a2775001d2787002f2c8e +005723ab006a1bb9007d14c7008113c7008613c8007f0eb8007008a0005c0b84 +004b1b6500272c3600212c32001b2d2e00162f2e001c2a2f00202440002f1f56 +003e046f003b087200390d750034146e00301b68001a1b56000e2a3d00053e33 +0004412400073000000d2d0000132b000028250e00300d200041003f004e0051 +00560072005500790054008100500079004c0072004c006600590062006a006a +006a0067007007800078078a00800895008c0ca2008d0fa900900cae009a08b3 +00a30db500a90bb300af0ab100b706b500c204c200c014cf00b818c700b725b2 +00a52c92008d359a0089339500853190007a2d75006d3579005b2f8200502a98 +00572daa005a2fab005e31ad006436b9006a33be007531c1007a2ab9008a20b8 +008917b200850fb0007c08ad007900b1006f00b2005f00b2005002b7005304c0 +006202da006102e0006002e6005d02e7005804e9005b00e4005400e0004900d1 +004100c7003b00b7003300aa003102990031079500340b8f0033128d002e1c89 +001f1c86001d228100262c8600262e900026379c001d369d002a3ca7003b36b7 +005d3fc800612cc7006d20c3007f14c600900bce009d05cf00a304c300a008b5 +008e0fa70075239c005f3586004d456e00364b5000245d400014602c000a612a +0006592d0003503500003f3c00002a4500001f5b00001a6d0000107a00000885 +0000008e000c0798002813a2003b14ae004d05b8005c00c7006500d0006807d7 +00620fd7005c17d2004625bf001f22ab0012319400073b7a0000475c00005d57 +0000584d00004f4500074745001c4541002633480035315c00432c820060309c +"/> +<palette number="531" name="Dark_Rainbow" data="005a9448008dbb4600a2b04300b7a54100ca943700dd842d00de7c2900e07526 +00bc421200a9300e00971e0b007f180b0067130c00501d0d003a270f00312a12 +00292d160014282e000e2833000928380008263b0008253e0006203f00051c40 +000a0b3d00120835001b052d002705230034051a003a051700400515004d0413 +005c06150074071e00700520006c0322005f032400530426004e04280049052a +00341630002c223c00242f480025374700274046002b464000304d3a003d5c38 +0048653a00496c3400436f25003e731700416c190045651c00435d2100415526 +002e443800254050001d3d6900212a810025189a0022129900200d9900140d95 +000c0d920007068e00120379001e0065002700570031014a0044023100530222 +0072040e0079090f00800f1100771b18006f282000682d210061332200503923 +00433a290037383e003737440038364a003a3548003d354600472b40004c213c +004f113d004b103a0047103700411035003c11340031133500210c3d00160d4e +00120e60001c108d00220f9800290ea3002f10a3003513a3004118a300551d9d +006e1b8300731b6e00791c5a00791d4f007a1f4500792a35006f3b2e0064522d +0066682c007b8923007d8c2000808f1e007998210073a0230075a629007ea82c +008f872b0090732800925f260095572700995029009e422500a6362400b02b1d +00ba271200cf1a0800d0180800d1160900cd110f00c5151100c11c1300bd2012 +00ba311200bf431700c5561c00ca5f1f00cf682300c0732d00a77a4200957359 +007f70720075638e00655e8f00565a910043469600272d94001b1d98001a0f8a +0012095c00120650001203450012063e00110a3a000e0f3a000c173e000f1b3f +00171c3c00191e3600191e36001a1f36001a213900271f3a002b1b3900321840 +002511580028105d002c106300330d700048137b0059228100622c84006b377e +006a39790072347300773769007e396100843b5600883f4c008c3945008d3139 +009b282b00a12a2b00a72c2b00b4372c00c6412500d54a2200dd4a1d00e34716 +00e2461500e3461300e44a1300e0481600dd431300d63b0f00d1350900d13803 +00d03a0300cc3e0600c53f0800b9410e00b7490d00b8541100bc631500c8751a +00c6872900c8992a00c8aa2b00c2b42700c2bf2b00b8c83a00adca4d00a3c967 +0094bc780088ad8600809c920079869e00726fac006f5ab4006b46b200703aa5 +007830940079267f00791d6a00691154005c083b004f062c0040062400380722 +002a081e0022061900160d150011171700172621002035320031423c004a5243 +00655e42007e713d00907d42009388470097955400998d5c00988759008d754e +0075614200575f3f003d5d4300305f490028664a00266a4a002e6c4a00408049 +"/> +<palette number="532" name="Dark_Rose" data="005c3f50004b394a0046364500423341003e303c003b2d3700392b3300382a30 +00362a2f0037343000393f31003d4a370042563e00515e450061664d00665c4d +006b524e00814862008440600088385f0084325d00812d5b007d2a55007a2750 +00682742005b283d004e2a38004729330040282f003d282c003a292900372929 +00352a2f002a3327002e2c280032262900322425003223210031212000301f1f +002e1920002a181d0027171a0023171c0020171f001e161d001c151b00121218 +00111611000c140c000d130c000f130d0012160f00151a1100151b1300161d16 +001b2522001d2722001f2a23001f2825001f2627001e2624001d2622001b2522 +001b231f00231f1b00261e1f00291e23002a1e24002c1f2600301f2400332023 +00371e2900361d2600351c230031191f002d171b002b161a002a161900261516 +002113160018130f00160f0e00150c0d00140a0e0013090f0011080d000f070b +0010060c000f070b000f080b0010090b00120a0b0017100e001d111600221317 +0027151900321b2600361b29003a1b2c003b1a2b003c1a2b003d1b2f003d1c2e +00401d2f00411f2e0042222e0043222e0044232f0045273300482b37004b313a +004e343a0050383c0052383e00553941005c3b4600613c4900683d4b00714153 +00834f62008e5068009a516f009c526f009e546f0095566a0091526c008c4b69 +008743640068364800613446005a3344005031400048313b00432f3100412f31 +003c312d003b2f2f003a2d31003a2c31003b2b320039272f0039222f00391e2f +003a1b2c003f152a0041132900441229004a122e004d142f0050183300551b35 +00611f4100612141006223420063294800632b4600642e4900612f45005e3246 +0056354500454c3900424d36003f4f34003c4e3100374c300033472e0034452d +003d372d003a2f2b0038282a0036242c0032222400332c240032362400323723 +002b361e002c361e0029341e002c311e002b271b00261617002412180022121b +001f0d16001e0d16001d0d17001a0f1900160e1800160f1500180f14001b101c +001e142000211a26002a253000423241005643500067505400715e5900765863 +007b585f007e585e007756570068495200593b44004c33340046363100413e31 +003e3a2f003e382e0041312e004b2a350059253e005f1e42005c1b3d00571638 +0057123400520d3300460b2a00350b1c002d0d17002a0e18002c0b18002c0a15 +002f0d1a00361021003d1128004112290045173000471d330049203800482034 +004a203a00492036004920380046203700441e3600401e34003e1d33003a1e33 +00361c3000311b2b002c1a22002a1a2100281b1f0028221e00282c1f002e3223 +00383928003f362c004437310050383a005a3b41005a3a410053394300563c47 +"/> +<palette number="533" name="Dark_Turquoise" data="00267472002673710025686800255d5f00215052001e4346001c3c40001b363a +0019222800192025001a1e23001b2227001c262b001e303400213b3e00224243 +00244949002c6967002f747100327f7c0037837f003d8882003e8b86003f8f8a +003d9b96003c9993003c9791003c948f003d928e003b9491003a97940035a09c +0034a6a20038a9a50039aba8003baeab003bb4b2003cbbb9003dbdbb003ebfbe +003fc3c3003fc3c3003fc3c3003fbcbc003fb6b5003fafae003fa8a7003c9997 +003a898800316969002f5959002d4a4900294140002538380023353600223335 +00222e3100212d3000212d2f00202d2e001f2d2d001f2b2c00202a2c00202628 +001e2225001a1d1f00191c1e00191c1e00191c1e001a1c1f001a1e22001b2127 +001b2e35001c3b40001e494c0021565800246364002366660023696900206a6b +00206a6b0022656600205b5c001e5252001c4c4c001b464600193b3d001a3538 +0021363700233a3900263f3c00263f3d0026403e002440410024404200263f43 +00293f44002e4147003341490038424c0039424d003b434e003e464f003c4c4b +00404849003c424500393d4200343b3d002f3a390028353400232d2d00202829 +0020272900222e310022303200223234002335380024383c00253b3f00253d40 +0022373c001f343a001d3139001c313a001c313b001b343c001c3a42001f464b +002155590028757b00297d83002b868b0030979b0033aaab0039b8ba003cc2c5 +003dc9cc003dc8cb003dc8ca003dc7c9003dc6c8003cc2c3003ab9b90035aeac +00309e9e002d7f80002c7677002c6d6f00295f5e00234f4f00204041001d3435 +0022272a0023282a00252a2b002c323300343f3d00485351004b6663004b7772 +004d868400559e9d0054a2a10054a7a5004ca9a50042a09f002d8b8e00287b80 +00235f630021575b001f5053001c424700193a410019363f001b3b43001e474b +0022545700246266002670730026777a00277c7d00287d7d0027797a00277476 +00215b5f0020535700204c50001d3d41001b3036001a252d00191f26001a1b22 +001a191f001b191d001c1b1d001d1d1f001f21230023252900262c2f002a3335 +002b383b002b3d40002b3f46002b434b002b454d002a464d0026434800223d42 +001f393e001c353b001b3439001b3439001a34380019393b00193f4000194445 +001a4a4d00194c52001a4c55001b4f59001a4c56001a49520019434b00193a43 +001a333d001a2c36001a262f0019212800191e2200191c1f001a1a1e001b1a1d +001b1a1c001a1a1b001a1b1a001a1b1a001b1c1a001b1c1a001a1c1a00191c1a +00191d1a00191c1a00191c1b00191b1b00191a1c00191a1c00191b1c00191d1e +00192121001a2729001c3334001e42430021515100245e5b0027666600286e6d +"/> +<palette number="534" name="Dark_Waters" data="002809540024054b00250241002700380015002a0004001c0002070e00000e00 +00000e0000000e0000000e0000000e0000000e00000007080000001100000011 +000000120000001f000002290000043400000d400000164c00001b5200002059 +0000306e000034760000397f00003d850000418c0000428d0000438e00003f8e +00003d8c0000387c000030730000296a0000246000001f57000018530000114f +000005470000024700000047000000490000004c0000024f0000055300000058 +000a045c000d0464000b04650009046600070463000504600007045e000a045c +0016044c001702430019003b001900320019002900170026001600230016001a +0015000100000e0000000e0000000e0000000e0000000e0000000e0000000e00 +00000012000900180012001f00180029001f00340027003a00300041003d0553 +002d116a001c289e002037af002447c100264fc6002858cb002454d200244fd2 +002353cb001f56c8001c59c6001958c2001657be001558b5000e5ca600054b96 +0000387b00001a53000016480000123d0000113c0000113b0000163b00001541 +00001c4100001641000011410000113f0000123d0000123d0000193b0000193d +0000193b000015350000113100000e2d00000d270000081c0000011500001100 +00000e0000000e0000000e0000000e0000000e0000000e0000000e0000000e00 +00000e0000000e0000000e0000000e0000000e0000000e000000001100000111 +0000001500000015000000150000001300000112000001120000001200000012 +0000001200000019000000190000001a0000001a0000001a0001001a000e001a +001c00160018001b00150020001600270024002d00200038001a00430029014c +00290854002d0e6b003912730045167b0049209200662dab008739c9009a49e8 +00ce6bff00d072ff00d27aff00ff7fff00ff83ff00ff88ff00ff84ff00ff80ff +00e883ff00c67fff009e7bff007673ff006a76ff005e77ff005364ff00414ff2 +001c28b1001626a2001124940004247b0000206b0000246000001a540000114b +0000044300000439000000340000003100000031000000380000043d00001945 +0000204f00002c57000034620005316f000a3d800015439a00204fb5002c50ce +003454df003564e900386aee00356af1003462f100316ff5003173ff00387aff +00437cff004f7fff005c8aff005ea3ff005cadff0058b7ff004faaff0041b5ff +003bb5ff0039b1ff003d9fff003faaff0047a3ff0047a2ff004588ff003b7cff +002d76e9001f5eca001541aa000a308c00081a7600041164000109570000004b +000e003f00200038000e0030000d002d000e003000120035000e003f0023044b +00290957002809540028055300310450002c044f0024054c0015014b0023044b +"/> +<palette number="535" name="Darkness" data="003323280030171d002e1415002d110d0026100c0020100b001c110900191208 +0018151800181b220019212d0017293e0016315000193358001d356000213662 +0026386500312e7400352d6c00392c640034295a00302751002d2548002a233f +001f1b26001916200013121a0012101700110f1400110f1300120f1300130f11 +001410110015100f0014100e0013100e00110e0e00100d0e000d0b0c000b0a0b +00070708000707080007080900110c0d001c111200251415002e1818003e1a29 +00521e320079443c00724a3d006b503f005b503c004b503900414b3800384638 +00212739001d233b001a1f3d001c1f45001f204d001f20500020205400191d5c +001a1d5b0013154f001316440014173a00171938001b1b360021213b0027243e +00372e4400352d4200342d4100302a3a002d27330027243200222131001d1d30 +00191b2d000d1631000f16360011173b00121641001316470015125100191457 +001d145c0019155200161649001615430017153d001415330010142c000f1327 +00111225001313210014121d0016121a00161219001713180017121500171112 +00151013001510130015101400161115001712170019141a001f182000241d25 +00241f270028212900251f2600231e24001d1920001a171b0016141700121115 +000e1012000d1014000c1116000c1017000d1018000d131b000f141d0014141f +001b1821002d181900321a1a00381c1c004e1e2600661827006c1a2a00712136 +00701c26006b1f2d00662235006622380066233b006e2948006f2f5300662f5f +00612b550036273c002d223700251e32001d19260016151e0013121a00121119 +00100e1400100e1300100e1200100b11000f0a10000e0c10000e0b10000d0a10 +000d0b10000c0c11000c0c11000d0c11000d0c11000e0c12000e0d13000e0e15 +000e0f18000e0f19000e101a000e101b000d0f1c000b0f1e000c1221000d1427 +0010162d00121c3a0013254a001d274c0025284c00272d4d002c2c47002d273a +00231e2900201b29001e1929001e1928001f1e2c00242030002b253200352832 +00412a2e004a3930005d342e0072232100712b1b006d2d1b006e261900602716 +00492816003c2d220039352a0038352d003b372d003e3b2c003a3931003c3931 +00473f37004d4048005439540059356700553a6d005e396b0052306d00402d6b +00432f6f004b2f710056378b005e35970065247e00652d7f00582a6f0047114a +00340f320021102100140a1b00100a18000d0b16000a09120009080d0006070d +0007060d0008080c0008090c000a0a0f000c0c13000d0e1500100f1700121118 +0013121b0013121b0014121a0013121a00101118000f1016000f0f16000f0e14 +001010150013111700171319001b171c00201c21002723270025242800272027 +"/> +<palette number="536" name="Davinci" data="00d29d8f00e9d1b200dcd2b800cfd4be00b5c8ac009cbd9b0097afa40092a1ad +005a6b8d00695e910078519600824786008c3e76008a29600089144a00820f44 +007b0b3f00560c2900511f35004d3242004d424d004d525900505e6500536a71 +004954640042445a003b345100382a4a00352044003a1e3d00401c3700412427 +003d38340026573300206544001b7356001e7c590022855c002b815c00357e5c +0074925d00a0ac7300cdc68900d9bf8700e5b98600ddb18400d5a98200cd8061 +00b85346009b2b3200941c29008e0e210092153100961d4100982349009a2a51 +00b1527e00b8689200bf7fa700ba829d00b6859300b3899800b08d9d00a97b91 +00a3667a00963c43009d424100a4493f00ac503f00b5574000c06e4500b96549 +00c24b2d00b2311d00a2170d00a2261000a236130098431d008f51280096763a +0098934600729349007d935100899359008d8b5b0091835e009362490090372f +008c2430008d212a008e1e25008b232c008929340081313e007d2b3200762827 +0068292b0063372b0062302d0062292f0061283000612732006824310073242d +0070343f0073544d0076745c006a755f005f776200628a7b00638a6c00619063 +0071956f00ae9f7200ad956c00ac8b6600a56d53009451420073393f00603542 +003b2b44002627390012232f000e1829000b0d23001007290022112c002f0c18 +003e0614006d22140078331c0083452400885838008b764d008a8751007d824b +0054692f004656210039431400313a13002931120014210c00081b0700102722 +001e3d340036724200467f5200568c6200659f610060b55f006db16d0070a56d +0086936d0086836900877366008a5c5b009c4f51009f4a5f00a1516400b05c61 +00b56d6b00b18e7400ac907500a8937600968d74008c8a64006c7053004d5244 +0041422900423d28004338270053301f005a3b2300664f2b0089552a008f5933 +00886d45009676470097674700946152008e635b00835a570084555300886b62 +0091966400919a6d00919e770087a47a008ba577009ea88900a19b9400947e7e +0096787000936361008c5359008e4b5200953e460098353600984138009e4e40 +00a86d5600af997300b9b78300b3bf9000b1c29600c3c6a200c1b6a300b8ad95 +00b4998200b0867500ac907700ae9b7600a9a075008d9a70007a936f0079926c +006e896a00738777007b7f75007f796f007c6f6e0075707a006e6d7700786d79 +0074697c007e6174007f4a5d0074374400752828006c211c0053140c00431a0a +00331f0c001f130500150b03000d0404000b070a000c090d0007050b0004090c +0005111300020e12000413140008171500091215001516140027281a00323520 +0048472d00625f3b00757e3f0092974e00a5986500b4a76d00cfb67200daa27c +"/> +<palette number="537" name="Daylight_Fading" data="0050699a00465f8800405278003a466900323e5e002a36530027334e0024314a +00222c4100262c3f002b2c3d002f2c3e00342d3f00392f43003e324700433549 +0049384c0063485600694b5700704f580072505b0075525e00785460007b5762 +008d585d0094545c009b505b00a5566300af5c6c00b6627100be697700cb707c +00d5717e00d26c7b00c66f7e00ba738100aa6f80009b6b7f0093667c008c6179 +00795d76007e607a0083647f008e687e00996d7e00996d7d009a6e7d00a06b7a +00a165710096595d008750550079474d00683c460058324000522f3d004d2d3a +00452b3900442c3a00432e3c00402e3c003e2e3d003d2d3d003c2d3d003a2d3b +00372d39002d2835002826330024243200242431002425310025243200282333 +002a2434002b2434002c2535002e23350031223500312133003121320031202e +002e1e2b00271a2500261a2300251a2100271a2000291b20002e1c2000341d23 +004629320053333d00603e480067414c006e455100814f5900905661009c5f6b +009f6674008b667500835f6c007c59630079555f0076515c0066475800583e4e +004929380054293800602a39006a2c3c00752e3f008735440098394a00a63f50 +00b4495b00c1577300c1597600c15b7900b85b7900af5e75009f5a71008e576e +006d4d6600604a610054485d004f465a004b445800424154003c3d5000373b4f +0032384f0031324c0032304800332f4400362c3d0037293800392739003e263a +004a2a3e004f2b3f00542d4100562d4200592d44005f31450064344700663447 +00673445006d3140006f303f0072303e00772d3c007c2b37007e293700802936 +00822b3700822b3700822c3700802e38007c323d00753643006b3a4800613d4d +00574052004c465c004a475d0048485f00454a60004349600045465e0047455c +004d4356004f42540051415300573d51005a394e005c344b005c3348005b3442 +005c3843005d3d4300603e470062454f00644b550064515c0061565d0061545d +0063525e0062505f00624f61005d4b5e0058435800523a4f0052334700533146 +00563146005b3449005f364c0065374d006b385000763b5300833e55008d4157 +00953f5200963a4d0095354800933142008e2e3e0085293b007a2436006a1f31 +005b1c2c004d1c2900401b2900371d2c0031213000322733003b2e37004d323c +004a313a0046313900402e3400392d32004e2f38004c2b3500472631003c1f2b +002a1a26002b1b27002b1d29002b1c2a00291a29002719280025182500241923 +00241a2100211821002017210022172200261923002d1d280033232f00382939 +003e31430043374b004a3e560051445c00554a63005b4d66005e4e67005d536f +005f567500605d7e0063628400666c8e00656f9300626f98005d6f9c00596696 +"/> +<palette number="538" name="Dinosaurs" data="001ba8c1000fa7c3000c9ac2000a8dc1000785b300047da50007769a000a7090 +000c545c0011504a00174c38001a4d2b001e4e1e00294f2b0035513900374f43 +00394e4d00405c6a004350720047457a00503e7500593870005c38650060385b +005b2544005e283200622c210056341e004b3d1b004b3a1a004b381a004d3617 +00473717004550360044584700446059003d74650037887100308d760029927c +0021928b002382890025728700345e8f00444a980052419b0060389e006831a5 +00683eaa007b52a9006d529a0060538b004d5373003b535c00355154002f4f4c +001840280014461d00104c13000c5a100009680e00086d110007721500097c1b +000b8322000e882e000e8537000e8340000f7e41001179420011703b00166333 +00186324001a6b1b001c7412001d8413001f9414001c9818001a9d1c0019a41b +0018ab170017a11b00209619002a8b170032881b003b85200045792a0055713a +00755f3d0079503d007e413d007f3e3a00813c37008e372c0095302200982321 +009b1e2b00a9304700a52e4b00a22c50009f2a50009d28500092385000854b4b +008a5f47007a674a006b704d006d73550070775d00787f79006e85930054879c +003f84a0003188a8002e8ba1002b8e9b00288e8000348669004874500063623e +0090471600943a1100992e0d009b270d009d210e0099210e0089210d0072210e +005e1c0d003c12180037121c003312210028132a001f103300120c35000d1238 +000a243f000d273b00112a3700102c3600102f35000f333d0012405100144b64 +0015537400155d8a0014648a00136b8b000c7585000c797a000a7569000f7352 +00086e300006692b0005652600115e20001e5d1b002c5a170033521600424417 +004f401c00622c17006a261700732017007c1a2000851030008e0a3c00a30b49 +00ba0f6b00bd106f00c0117300c8187400cc1b6c00c3226700b52b6700a4326b +00a033660099355600983e460087406700794283006545910063527500645386 +00664fb000684ea9006a4da30074489400813f8d0093367f009c286d00982357 +00861f4c00721c4c005f1851004d1c52003b2c58002b365a00213a5e001d3a55 +0022404f002e423d00323f2e0030391d0029321b002a2e1d00292529002e2137 +00331f4f003d236100482b7400543680005a488f005f5692005e688a0059777b +004690710031a16a0023aa64001fa459001b9e52001a9847001b9045001f8a40 +0021873d0025863700277e3200277a2a00277b2200247d2000208028001b7f2f +001e872d001f9026001e9a2600149a2b001296310013922f001a892b00187724 +00186224001b4f2d0025423c002a3846002a3545002c3546002f3f52002f5464 +002a647000296e76002b7680002b8a8c00269f990024aba30024aab60022a7bf +"/> +<palette number="539" name="Dragon" data="00941d1d008a0f1f007c1028006f1132005f1a37004f233d0049273c00432c3c +0047443300584b29006a522000774c170085460e00914109009d3d04009e3805 +009f330600992f0d00942e0e008f2e10008e3312008d3815008d3b12008d3e10 +0087410e007c4b0a00715507005e6306004b710500447407003d7809002d7b09 +001a8108000c7c0b0009720900076807000764090008600b00085f0b00095e0b +00095a0d0009620f000a6a1200096b1500086c1900076c1a00076d1c0007701d +0008741c001176270019772c002279310029753200307134003b683600466039 +006b44340077392b00832e22008e2a1c009927160098271300972810008b2b09 +007831070056330d00482b16003a231f00342225002e212b0024203000221737 +00230a3d001f0a3f001c0a42001b0a3d001a0b3900190b3500190c31001a0d2d +0015112d0016242300152b25001532280018362d001b3a32001c4539001b553f +00176546001b66410020673c00226437002562320031592900474f21005e441b +006f3b1d0091341a009b3c1900a5451900a4481b00a34c1d00a04a22009d4a21 +008c4e2900864c2f00804b36007d4d34007b503300795a2b00746e2500787f21 +00778a1c006b8e0f0067900f00649310005991160047831e0036761f0028701d +001c641d001d601b001e5d1a00235a1700295815002f56170032551f00385429 +00464f2a005f52270062562700665b2700736720007d711a00887b15008b7d14 +008d701700866220007f552900794d2e007346340065363a005a2d3f00522c3a +004e2f33004c442b004a4a2600495022004b5316004f530d004e5d0b00466a0c +0046680c0047650b0048620b0048610b004f590900574d08005e3e09005d380b +0061310a005036090048380a00413b0c00403c0c003a3e0f002e421600224421 +0022442d00234431002444350027453f00284e4500385c40004d6839005e6e2d +00637227006a79210072811f0071821a00627a1600506f150042681800356318 +0017441600123c1a000d351e000f2a250013262900141e2a000e1f2d000f2130 +00112b350013333500173f3400204d2d00325b28004065240050642300606824 +0074692300826a220084641d0083691c007b732100737c25006c7e24006b811f +00667b240057722a00486228003e5820003a401a0034271b002c131a00250d19 +00240d130031120e0045220b0058320e00634314006c56170073691700767e14 +00738f1400659b1800519c1b003f991800379211002e8a0e0020840f00167b11 +001874100021691100286711002f680f00396e0f0046720e004f780e00507e0f +004c8210004886130045871b003a8922002c8926001d88240018842800157c2c +0017753000196f2f0023662a00355c26004c4a2400613c2500732e2300852620 +"/> +<palette number="540" name="Dust_Bunny" data="0067695e0064685f006468600065686100686b65006b6f69006b706b006b716e +006a7373006973720069737200697271006a717100686f7000676e7000656c6f +00636b6e005b606800565c6400525861004c525c00464c570043495400404651 +003b3f4b00393f4b00383f4b00393f4a003a3f49003b4049003c414a003e444e +0041475300474b5300484b5000494b4d0048494b004747490047454700474446 +00433c3a0041383500403531003f3431003f3431003e3331003e3331003f3331 +0040333300443a3900463d3f00494145004a454a004c4a50004c4c52004c4e54 +004f5053004e4f51004e4e4f00494b4d0045494b004347480042464600404342 +00404040003f3c3d00403c3c00413c3b00433d3b00453f3c004a444000504945 +0062584e006c615500776b5d007d726400837a6c00867d6e00898171008d8372 +008f84730089807000837a6b007d75670078726500746f63006e6a5f0066655b +005a59550055535300504e51004d4c4f004b4a4e0047454b0043404700403b44 +003d3740003832360035303300322f3000312e3000302e300030313100313332 +00373a39003a3e3f003d4345003f46480041494b00464d50004a5053004d5155 +004e4f55004a4a510048494f0047484e0045454b0044414600443f4200464042 +004c4a4900524f4b0059544e005e585000635c53006d635800736a5a00766d5c +00776d5a007b6d58007a6b55007969530073634d006b5c47006355410060523e +005b4c3a00594c3b00574c3d00564d3e00564e3f005450430055504500555247 +0055514800514f4a004f4d4a004e4c4b004d4c4d004e4c4f00514e5200575357 +00655f6100686263006c656500706a6a00726e6d00717071007071710071716f +0070706c00686b670065696600626866005d6562005b635f005a5f5b00575b57 +0053514f00524f4c00514d49004f4944004d443e004c4139004d403700524237 +00564738005c4c3b0060503b0063533d0065563f006556410065554300615242 +0055483d0051443b004d413900463a35003e333400382f3200352d3100342f30 +00352f2f00383130003a3332003f353500423b380048413b004f473c00574c3e +005e504000615343006156480061594b005f5a4e005d5a4f005a574e0053514c +004c4c4900454545003d3f4100393a3c00353436003632300038302c003a302a +003d322a0040372d00453c32004b43390051484100574f49005a554f005e5a53 +00635e5600676158006d645b00736a5f00786e60007d71600081745f0085755f +00877862008779670084796a0080786b007a756b00737068006c6a6700636264 +00595c600051565c004c5256004a4f51004a4b4e00494b4c004a4c4d004b5050 +004f55520054595700585c58005a5e5a00595f5a005b615a005f635b0062655c +"/> +<palette number="541" name="Dynasty" data="0055603d00225b3300155931000858300008522300084d160007491300064511 +000a33120010260e0016190b0024120e00330c11003e0c0f004a0d0e004f0d0c +00550d0a0058091700560b1c00540e210050112a004c1534004c1b3a004d2141 +005d374f005e475000605851005f5a44005f5c38005e5735005e5332005f4629 +00653a1a007b27040090210400a61c0500b0250b00ba2f1100b9341a00b93923 +00bb463700b24b3600a9503600a24e39009c4d3c009a4a3600984831008e482a +0082462d0065393300503035003b2738002e213300211c2e001b182900161425 +00091311000f150d00151809001c220800232d07002a2d0500312e0400412b08 +00502e0b00623a0c005f3e12005d4319005a451e0058482300494c2400395826 +0021632f001e6338001c6342001c5749001d4c500022455400273f58002d3a4e +00233853001a3244001a3632001a3b20001d3d1b00203f160033460f0046450e +007a3207008f2c0900a4260b00aa250b00b1250b00b6260d00b7250e00a82515 +009a2a1c00903c1d008d4121008a46260087482c00844a3200804f32007a542f +006b622e00605d2c0056582a0051552a004d522a00484a2f00473e2f004c362f +0053333300562f32005532300054362e005a3d2c0060472000604e15005d5814 +00715f2b007e6334008b683d008e67430091674900926b510093705600927058 +0084635500594a3f0052453b004c4138004331310043212f004f192900601723 +0092101a00a9111600c1121300c7121200cd121100d0100c00cb130800b81704 +00a21a0400772105006d23050064260500582c0a004e3a13004b40210047442e +004e4f450053554c00595b54005a615e005b5f630057546000594d5d00564251 +0056394100501f2c004c1b2700481723003d1119003812100037130d00391e0e +0047341c004e372200553b2800674932007d543f0093614a00a8675300b26653 +00b1615000ac594a00a8514100a04336008f3a2c007d312400742d1a00732613 +007f201c00881f1d00911f1e00a3261900b2281c00b6312300bd303400c13f3f +00bf474500af5743009859480080644a006b6248005b5f3e004c533500384d2d +00264129001d3923001a301f00182a19001324180016241700212f19002f3a1b +00363f1f00343e220035412a0039453100423e37003f3137003d2439003f1d3a +004919370055113000620a2c0076062e00830b2b008e0d240091091d009c061a +00a5061500ac091200a9070e00a4061200a2031300a30513009b091400870b1a +00700c1d0062121a00561f15004b301200433a110046400d0053480a00614f07 +00724e07007e4205008a3a070091320d00972d130098211300971d0f00971f10 +009a2a1400a3351600ac411400a7461900a2511d00895525007d5f2b005b5e38 +"/> +<palette number="542" name="Easter" data="00b2a5d500b1a0d700b09ed700af9cd800af9ad800b099d900b097d900b196d9 +00b297d900b39ad900b49ed900b49ed800b49fd700b49fd600b49fd600b3a0d6 +00b3a1d600b2a4da00b1a3db00b1a3dc00afa4df00ada6e200aea7e200afa8e3 +00b6abe300b4aae300b2aae300b0a4dd00ae9ed700ad98d200ad93ce00a786c4 +009e79ba0086599d0078488f006a388200622e7a005b2473005a217000591f6d +005a1e6f005f237400642879006c2f7e00743684007637870078398b007a3b8d +0079398c0070338200682c7e0061257a005d1f76005919730059197100591970 +005f2177006b308300773f9000814f9c008b60a9008d65ac00906ab0009e82c1 +00a98eca00b6a9e000b6b1e300b7b9e600b9bce700bcc0e800c1c4ea00c5c8ed +00c7cff000c7ceee00c7cded00c5c7eb00c3c1e900c1bde800c0b9e700b9aee4 +00b4a2e100a88fda00a688d600a481d300a37dd100a37ad000a075cd009e72c8 +009c6ebe009c6bbb009d69b8009c68b6009c67b5009b64b2009863b1009661b2 +009562b4009867b8009b6dbb009e73be009e77c0009e7cc300a084c600a38ac9 +00aa8ec700a98ec400a98ec200a78cc000a68bbf00a483bc00a078b8009b6cb1 +009461aa00884e9c00834999007f459700783c900071348b006b2e84006a2a7f +00692d7e006e32830074388900793d8d007e43910088519b009260a8009b6fb4 +00a37cc100b096d700b29bda00b5a1de00b8a9e400b9afe900b9b1eb00b9b1ed +00bab1ec00baafea00baade800b9aae700b8a8e600b6a2e300b39cde00b297da +00b194d600ae8bce00ac86cb00aa81c900a679c400a473bf00a26ebb009f6bb6 +009455ad00904ea9008d48a6008640a000803a990078359000722d8a00692582 +005e217a0058207100592372005a277400602d7a006237810068418800714990 +00885eab008d64b200926bb9009a77c400a17fcc00a486d400a78bd900a890dd +00ab94df00ae98e000af9be100b09be100b09ae000af98dd00af95d900ad91d4 +00a28bd200a18bd300a08bd500a18cd700a690d800a690d900a293dc00a195df +00a397e400a99be600ad9be500aa98e600a796e300a694e400a693e400a894e2 +00a792e200a592e100a691e100a690df00a990dc00ab8eda00aa8cd700a989d4 +00a684d100a37fce00a07bcd009e7acc009f7bcc00a17ccc00a27dcc00a37fcd +00a484cf00a589d000aa8fd200ac92d400af93d500ae94d700ad94d700ad93d8 +00ac8fd800aa87d700a880d600a67cd300a47ad100a57acf00a677cf00a677cf +00a77acf00a77ed000a985d100ac8bd300b093d600b39ada00b5a2de00b9aae2 +00bcb2e400c1bae700c6c0e900c7c6ea00c7c8eb00c5c7eb00c3c7ea00c1c5e9 +00c0c3e600bdbfe300b9b9e100b7b3de00b3afdc00b2acd900b1aad700b1a8d5 +"/> +<palette number="543" name="Easter_2" data="009192ca009aa9d2009fb7d700a5c6dc00add2e100b5dee600bbe0e800c1e3ea +00dcf0f300e5f3f600eef7f900eff7f900f1f8fa00e9f4f700e2f1f400dcecf2 +00d7e8f000b9cbe500abbadc009da9d3009497cb008b86c4008780c100847abe +007a65b3006e54ac006343a50059349a004f2590004a1d8c0046168800400c83 +00410883005d1b8f00692697007632a0007d41a5008551aa008657ab00885dac +009578bb00a188c500ae99cf00bea9d900cfb9e400d6c1e800ddcaed00e8d9f2 +00f0e4f500f6f4fb00f9f8fc00fcfcfe00fafcfd00f9fcfc00f6fafb00f3f9fa +00e3f2f400d9edf100d0e9ee00c8e6eb00c1e3e900bee2e800bbe1e700b6dfe6 +00b2dde400b0dce300b0dce300b0dde300b1dde300b3dde400b8dfe600bee1e8 +00cae2ed00d1e0ef00d9dff100e0dbf300e7d8f500e9d6f600ecd4f700efcff7 +00f1c8f600ecb4f300e6a8ef00e19cec00de96eb00dc90ea00d784e600d17be3 +00c968dd00c460da00bf59d700bc56d500ba53d400b54ed100b249cf00ae48ce +00ad47cd00ac49cc00ac4ccc00ad4fcc00ae51cc00af53cd00b258ce00b45dd0 +00b668d300b06fd200ab76d100a77ad100a47ed1009f85d0009c8dd0009c97d2 +00a0a0d400acb1da00aeb5db00b0b9dd00b1c2df00b2c9e000b3d1e200b7d9e5 +00c5e5eb00d1eaef00def0f300e3f2f500e9f4f700f1f4fa00f6f1fb00f7ebfb +00f5e2f900ebcdf200e9c8f000e8c3ef00e5baed00e3b3ec00e1adec00dea4eb +00d796e700cf93e300c890e000c590df00c390de00c194df00c49ce100c7a4e4 +00ccade600d7bbed00d7beed00d8c1ee00d7c3ec00d4c3eb00cfc8ea00c7cce9 +00b4cce400b0cbe300accae200a6c8df00a0c5dd009bbeda0095bbd8008fb9d6 +0089b8d40079b7cf0075b8ce0071b9cd006cbccc006cbecc0071c0ce007bc1cf +0092bed50096bbd6009bb8d700a0afd600a0a2d300a5a5d500a5a8d700a6abd6 +00a4acd500a2aed600a1afd600a0add7009996d000978fd100938ad500908ad8 +008294d5007e99d5007a9ed50072aad60066a6cf00609dca00578fc6005680c3 +005773bf005770bd005571bc005175bb004b7db9004988b500438bb400418cb3 +004483b1004e7db1005778b1005e70b100626bb000696caf006b6cae00686cac +006166a700615da0006152990060479300603b8f00673390006f2a9000752491 +00782293007b259500802c990085359c0089409f00914fa7009c5fb000a96dbc +00b77ac800c485d300cf8fde00d897e600e09cea00e4a2ed00e6aaee00e2b4ef +00d9baed00cebcea00c1bce600b3b9e200a7b4de009daedb0098a8d90097a4d5 +00949fd300919bd1008c96ce008690ca007f88c5007980c100757bbf007676bd +007676bc007877be00797abf007c7dc1007f7dc200847ec3008582c5008c87c7 +"/> +<palette number="544" name="Easter_3" data="00d8a6e200e5bded00ebc7f200f1d2f700f4d8fa00f7dffd00f7dffd00f7e0fd +00f3dbfa00ecd5f600e5d0f200dbc7ee00d2beea00c8b0e700bfa2e400bb99e1 +00b891df009e76ce00926ec6008766bf008060b9007a5ab3007b58b0007c56ae +008154a5008254a6008455a7008959ac008e5db2009460b4009a64b700a66cbb +00b06fbf00ae6ac100a667bf009e64be009762b7009160b0008d5dab008a5ba7 +006f479200613e890053368000493178003f2c71003c2a6f003a296d0037266a +00342368003322680032216800322068003321690034236a0035236b0036246d +003f2a7900442f7f004a3585004f398b00543e9100563f9500584099005e42a1 +006544a8006c4ab2006d4ab1006e4bb0006c49ae006b48ac006944a9006742a5 +006943a7006e48ab00744db0007d57b5008662ba008a68bd008f6ec0009b79ca +00aa84d400cb9beb00d6a8f200e1b5f900e4b8fb00e8bcfd00eabffb00eabef8 +00e2b3ed00d7ace600cda5e000c7a0dc00c29cd900b893d500b48ad100b185d2 +00ae83d100b186d600b386d800b586db00b787df00b988e300be89e900c18bef +00c18af300bc85f000b880ed00b57ceb00b278ea00ac72e700a971e400a570e2 +00a571e000a573e200a774e200a975e300b17ae400ba83e600c58be700cc90e6 +00c98fde00bf88d600b581ce00b27ec900b07cc500ad76bf00a870b900a46db5 +009e68af008d63a8008b60a800895ea900885bab008c5ab000925cb5009960b7 +00a56bba00a96bbb00ad6cbc00af6cbe00b16dc100b470c400b470c500b774c9 +00b877cd00c57bd200ca7ed400cf82d700d282db00d182dd00cb81dd00c27ed7 +00b36fc700ae6cc200aa69bd00a161b400935aa90084549f00724a950064408b +0057398300452d7900432c7700412b75003e2b74003d2b74003e2b74003e2b75 +00432e7b00442f7c0046317e00493382004b3585004b3486004b3387004b3288 +004e3589005539890061428d006f4992007f5399008e5b9f009a65a700a76cab +00c183ba00c787bf00ce8bc500db96cf00e5a0db00eca8e300efb1ea00f1bbee +00f0c0f300efc4f600efc2f600eec1f400e9bff100e4beeb00ddbee800d4bde4 +00cbb4de00c2a7d500b498cc00a485c0009276b400836dac007764a5006e5ca0 +006a579f00684e9f006648a0006846a4006d47aa00744ab1007d53ba00895ac5 +009362ce00a06cd900ac76e000b87de700c288ec00cd8ef200d593f400dd9af8 +00e5a2f900eaa6f800eeaaf600efaaf300eea5ee00e9a0e900e39ce400db96e1 +00d295dd00cb94d900c692d700c08ed600ba8bd500b284d500a67fd1009c7ccc +009578c6008f74c2008d72c0008e6fc2008f6bc4008f6bc400926bc100936abc +009669b500986db6009e6fb900ab79c400b985ce00c58fd800d296dd00d8a1e4 +"/> +<palette number="545" name="Egg_Hunt" data="00777c940082776a0094755a00a7744b00ad7b4900b4824700b1874600af8d46 +009f984d009d994b009b9b4a0092a043008aa53d0080ae400076b7430077b73e +0079b73a00a2bb1700b3bf1200c4c40e00ccc00e00d4bc0f00d6b60e00d8b00d +00e1991600e4922100e88b2d00e7853500e6803e00e57f3f00e57f4000e58345 +00e68a4000e7913700e59a2f00e3a42700daad2600d1b62600c8b22b00c0af30 +00a4ae4b0090b562007dbc7a006abb880058ba960056b7930055b4900050b282 +0049b4830044bb7d0056b9680069b7540074b14c007fac440082a9480085a64d +00a08f5e00a67f5400ac704b00a66f4400a06f3e00a1743d00a2793c00a67537 +00a57c2800a1971000aaa70e00b4b80c00b9bc0b00bfc10b00c9c40d00d0c715 +00e6c92c00e9c63a00edc44900e2bd5a00d7b76c00cdb36e00c3b07100b1a86f +009a9f71006e9984006296790057936f00538e63004f8a5800498748004d8944 +0079953d008f8f2f00a5892200a9811d00ad791900aa6c1900aa5c1e00a7532d +00a24f3a008a424200773e4000643b3f005c40430055454800534b4800565a43 +00757c2100868b1f00979a1d009c9c2000a19f2300afa52f00c3a94100d5af54 +00e8b56800f8b37f00f8b18300f9af8700fcac8a00fdac8d00f9a98f00f7aa8f +00f3a38e00f09a8f00ee919000ee8a9600ef849d00ee78b100ef6bc000eb61c7 +00e85fcd00d964d400d365d300ce66d300bb63c200a45eb00088599900705d81 +004c6e5700426d4400396d3100386a290038672100406b1900527c1a00658f22 +007aa8370092bc620093bc6a0095bd730089ba7c007bba84006cb47e0062ad7e +00539166004f8e5f004b8c580045853c0047862d005c831f0077851600948f16 +00ab951100c7a41500cea71800d6ab1b00e2b32600e9b83000eab83400e8b736 +00efb73800f0b83d00f1b94200eeba4a00eaba5800ecbc6200f1ba6e00f7b97b +00f8b88500f5b59600f4b6a400f1b9b200edbbbe00e0bac100d0b4c700c3a8c5 +00999ac0008e99bc008399b9006f96b700718eae006f83b300767db200817cba +008782c4009f8ec500b59acf00cda6d000e4aad600f0adda00fbaad100feaec4 +00feb6ab00feb99100efb48a00e2a67d00dca06e00dba05900e9a93500e6ad2a +00e0ad2500dbb02800dbb42b00e9bd1e00f4c31700f8c51100f2c41500e9c31d +00e3bf2d00e4b14100e79e4e00e58f5c00d3896200bd8a6a00b18b7600b5837c +00c5768000c6747b00bb7c7300aa8b6f009e996c00a09d6700a6a05f00ada75c +00b1ac6700afb17300aab27900a5a5710098965e008c8651008381510078834f +006f8647005f8139004f752600477122004d7025005f7a2b006f813e007a8752 +007e926c0086938300918b930096819c009a759e009674a2008d799f0082799d +"/> +<palette number="546" name="Elements" data="00bf833200b87e3200b2772d00ac712800aa6f2500a86d2300a76c2300a76b23 +00a96c2700a37332009e7a3e0090834e00838c5e007a885f007185610066805f +005b7c5e003164560024564b0017484000103a3400092c2900072a2600052823 +00082e240006352c00053d3400044a3c0004574500055a4900065e4d00096253 +000a6458000f78680018847500229183003598880048a08d0054a28a0060a587 +008aad7c008bba8e008dc7a10091c9a20095cca30099c79b009ec3930087be99 +0073b4990068a68e00709e7c0078966a00798353007a713d007e683100826025 +00915209008c4d0600874804007f420300773d0200733901006f350100662d00 +005e2700005521000054200000531f0000521f0000521f000051200000532200 +005a2a00005f2d0000653000006a3400006f38010071390100733a0100753b00 +00763a000072360100673301005d310100563003004f300500412f0c00362b0f +002f200d0031220e0033250f0034270f00362a1000402d11004d2d0d00592b06 +00632b0300662c0000632a0000602801005c25010058230100511d0100481601 +003d0d01003c0b01003b0a01003b0b01003c0c0100400f0000451300004c1901 +00541e0200642b0700672e07006b31080071370700753b0600783d06007c4109 +00864a0f008d51120094581600985c1a009d611e00a76a2800b2753200ba7d39 +00be803a00bc7b3400ba793300b9783200b4742f00ae6d2800a4641d009b5b13 +008f520d008f510f008f51110090511200915213009154130092571400975a17 +009d5e1a00a5631e00a6651f00a8672000ab6b2300b4702400bb772800c17c2c +00c7843700c8853700c9863800ca873800cb863700c9853800c4813700bc7c33 +00b1732f00985a220091521f008b4b1d007b3e16006a32120058270c00461b07 +002d0701002a0400002702000023020000230300002405000026070100290c04 +0028130d002a201a002a352a002e4b3c0034614e0035726300357d76003c847b +00559072005c8f6d00648f6900668866006b77580072654200775529007e4914 +007c430b0077400800733d060072390400703703006d3401006b320100683001 +00652b0200622602005d210100561b01004f1700004813000044100000420e00 +003f0d00003d0c00003a0a00003709000038090000380b0000390f0300351406 +002e180900271f0d0022251100222e180029371d002e391d00343c1c003b3e17 +003d4117004b4318005a42140068401000773e08007c3f04007f420300814404 +00804605007f4607007c44070073480c00674f1600575620004a5a2a00454f28 +0042462500403f25003b3e230036412900383c250040321e004d2a16005c290d +006a2e0d00773a0f0084461300915319009a5e2100a4682600af732c00b77b30 +"/> +<palette number="547" name="Embers" data="00b44a0d00d6590400d15c0300cd5f0200bb570200a95002009d490100914301 +00702e00006d2901006a240200672405006525090064291000632e1800653320 +00673828006654430069604f006d6c5b00747462007c7c6900787a6600747863 +005e644900555840004c4c38004a3e2c00483021004e2c1d0054281a005e2516 +0065251100732013006e2313006a26140061271c00582925005028280049272c +003c2b390039293b0037283e0037293d00382a3d003c2d3e0040304000433543 +00463a47004844490045434600424344003d3e3b00393a320035382d00323729 +0027231c00231f1800201c14001e1815001c1416001b1316001a121700181017 +0016101600190f13001c0f12001f0f12001f1013002011140023141500281517 +0026192400251a2500241b2700221b2900211b2b001f1a29001e1928001b1723 +001a141d0016101700161013001611100019110e001c120c0024140b00291509 +00351b0500391b05003e1c05003e1b06003f1b0800401d0a003b210d003c2712 +003d2f1800403b1a003e3f1a003c441a003c4419003d44190040401600483a11 +00572f0800692c07007c290700832a05008b2c0300972c02009f2e0000a63000 +00a9330000a13101009d2f0100992e010095280000912403008f210700891f0c +006d191d00631a22005a1b2800511b2800491b290036192d0026172c00211529 +001e1422001d101700201015002311140036180f0043210f0051301d0059412e +007b603d007e6d4d00827a5d00827e650083836e00877b61008b6c55008c5b41 +008a4f3a009a371b009e301200a22a0a00a5230700a5230100a22102009e1f00 +00871a04007e1806007517080064160b00561516004a171b0044171e00451b1f +004d2126005c383b0061403e0066484200735748007e5e4f00826a5c00817467 +0076726600706c62006a665f005f56590051494c00433b4100352e34002b222c +00241c2000221a1700221a100024180c00271708002918060029190600261708 +00210e09001f0d0b001d0d0d00190e1200190f19001c101e0023121f002a151d +0036171d00411d1d004d1e1900521f1300541c10004f1c0c004c1a0a00431808 +0038140c002b110e00220f10001c0e10001a0e0e00190d0c00180f0a0017100b +00160e0900180d0a00170e0900140f0b00100d0d00100c1100110c1200160d12 +00211110002d170c003b200e004a2b0f005a391200684a1b0071582c00755d2f +00755f2800745d26006e592e0063522e00584e2400544d1b005c5124005f5730 +0062603d00626b440070715000847052009a6d4d00a86e4400b5693d00c26030 +00cc521f00d0511700d54c1300d1481300c93e0c00b93d0c00ae3a0a009e360d +008a320f00762e11006b3013006c2e14006e2c16007329150080321400993e10 +"/> +<palette number="548" name="Etomchek-040328-005" data="00a6c9e300a9c7e100a9c6e000aac5df00a7c5e000a5c5e100a4c5e100a4c5e2 +0094bbde0094b9dc0094b7da0093b5d90093b3d9008fb0d5008baed20086aacd +0082a7c9006b8ead0064849e005d7a9000566f8200506575004c5f6f00495a6a +00384b5c00314557002b3f53002d3f51002f40500032425200364454003d4c5c +0046576600566f83005c7a93006285a4006d94b20078a3c10080abc80088b3d0 +00a7cde400b1d5e800bcdded00bee0f100c1e3f500c1e3f400c1e4f300c1e2f0 +00bfddeb00b5d0dd00adc3ce00a6b6c00099a7b0008d98a100869099007f8991 +00606a7100505b6500404c59003240510024354a001f3147001a2d4500142944 +0012284500152e4e001632550018375d00193962001b3c67001b3d69001b3d69 +001c3d67001a3a620019375e001b3a60001d3d63001f3f65002141680027466b +002e4b6f00465d780052647b005e6c7e00647384006b7a8a0078889b008194a8 +008ba5c2008fabc90093b1d10093b1d20093b1d30092b0d3008faed2008aa9cd +0080a0c300617fa300506e9100405d7f0039557600334e6e0028416000213856 +001832520018325200193252001b3353001d355400213b5a00264260002d4b65 +00345871004072920042779900457da1004b87af005090bd005394c9005698ce +00589ccd00559acc005399cb005298ca005197c9004f95ca004b91cc004689ca +004483c700427cc100427bbf00427abe00477cbe004d80c0005789c6006090cc +006f9dd500729ed50076a0d60076a0d40076a0d300769ed100779fd10078a1d4 +007ba4d8007caadc007baadb007aaadb0078aada0076a9d90075aad80075add9 +0080b6e10082b8e20084bae40085bae40082b8e1007fb2dc007aacd50074a6cd +0073a2c800749cc100739abe007398bc006d91b6006587af005879a300476691 +002a47710025426a00213d63001c355700192e4c00182b470016284000132236 +000f1b2c000c1829000b172a000a162a000a162a000916290009162900091629 +00081120000a1323000c162700121e33001c2e4600253d5900314c6b003f5e7c +004e6c860059748700677d8c007586920085959e0094a5ad00a3b4bf00b2c6d1 +00c0d7e200c7e2ec00cde8f400d0ecf800d2edf900cee9f800c7e3f700bfddf7 +00b6d8f400aad0f0009dc6ee0090beeb0085b7e70079aee3006ea5de00649cda +005c95d500568fcf004f87c9004880c500447dc200417ac2003f7bc3003e7bc5 +003f7cc700437fc8004681c7004a82c3004e82bd00507fb8005181b6005281b7 +005181b8005282b9005384bb005687bd005a89bc005d87b7006086b1006387ae +006486ad006686ad006688b100688db6006b94bd007099c300759dc50079a1c8 +007ea4c9008aacce0093b3d2009dbbd700a1c2dd00a5c8e200aacce400accee6 +"/> +<palette number="549" name="Etomchek-040328-006" data="00b5a6e300b9a9e100b9a9e000baaadf00b8a7e000b6a5e100b6a4e100b6a4e2 +00a994de00a994dc00aa94da00ab93d900ad93d900a78fd500a28bd2009c86cd +009782c9007e6bad0074649e006a5d90006156820059507500564c6f0053496a +0042385c003c315700372b5300382d5100392f50003c32520040365400473d5c +004f466600625683006b5c93007562a4007f6db2008978c1009080c8009888d0 +00b3a7e400bbb1e800c4bced00c7bef100cac1f500c8c1f400c7c1f300c7c1f0 +00c5bfeb00bbb5dd00b3adce00aba6c0009e99b000928da1008b869900847f91 +006460710056506500484059003d32510032244a002d1f4700291a4500261444 +00251245002b154e002e16550031185d0034196200381b6700391b6900391b69 +00381c6700351a620033195e00341b6000361d6300381f65003b21680040276b +00462e6f005746780060527b006a5e7e006f648400756b8a0085789b008e81a8 +009e8bc200a38fc900a893d100a993d200aa93d300a992d300a78fd200a28acd +009680c3007961a3006750910056407f004f39760048336e003c286000352156 +002d1852002e1852002f195200301b5300321d540036215a00392660003d2d65 +004234710050409200534299005745a100614baf006950bd007253c9007656ce +007358cd007155cc006f53cb006e52ca006d51c9006e4fca006d4bcc007046ca +007044c7007142c1007042bf006f42be007347be00774dc0008057c6008860cc +00946fd5009772d5009b76d6009976d4009876d3009976d1009877d1009a78d4 +009f7bd8009c7cdc009a7bdb00997adb009578da009476d9009175d8008e75d9 +009a80e1009b82e2009c84e4009e85e4009a82e100987fdc00927ad5008a74cd +008a73c8008b74c1008a73be008a73bc00846db6007f65af007558a300644791 +00462a710040256a003b216300331c57002d194c002b18470026164000201336 +001a0f2c00170c2900180b2a00170a2a00170a2a001609290016092900160929 +0012082000150a2300180c2700201233002c1c46003725590045316b00523f7c +005e4e8600645987006f678c007c7592008a859e009794ad00a9a3bf00b7b2d1 +00c5c0e200cac7ec00d2cdf400d5d0f800d7d2f900d5cef800d3c7f700cfbff7 +00c7b6f400bdaaf000b79dee00ad90eb00a385e7009b79e300936ede008d64da +00865cd5008056cf007a4fc9007648c5007244c2007041c2006f3fc3006f3ec5 +00713fc7007443c8007546c700744ac300754ebd007650b8007351b6007552b7 +007551b8007652b9007753bb007856bd007b5abc007c5db7007c60b1007c63ae +007e64ad008066ad008266b1008368b600856bbd008a70c3008e75c5009279c8 +00967ec900a08ace00a793d200af9dd700b1a1dd00b4a5e200b8aae400baace6 +"/> +<palette number="550" name="Etomchek-040328-007" data="00dba6e300dca9e100dba9e000dbaadf00dba7e000dba5e100dba4e100dca4e2 +00d794de00d694dc00d694da00d793d900d893d900d38fd500ce8bd200c886cd +00c382c900a76bad0098649e00895d90007c568200705075006b4c6f0067496a +0058385c0054315700502b53004e2d51004d2f500050325200533654005a3d5c +00634666007e5683008e5c93009e62a400aa6db200b678c100bd80c800c488d0 +00d9a7e400ddb1e800e2bced00e6bef100eac1f500e8c1f400e6c1f300e4c1f0 +00e0bfeb00d4b5dd00c7adce00bba6c000ad99b0009f8da100978699008f7f91 +006e60710063506500584059005032510049244a00461f4700441a4500441444 +00451245004e154e00551655005c185d0061196200671b6700691b6900691b69 +00671c6700621a62005e195e00601b6000621d6300641f6500672168006a276b +006e2e6f00764678007a527b007e5e7e0083648400886b8a009b789b00a681a8 +00c08bc200c78fc900ce93d100cf93d200d193d300d192d300d08fd200cb8acd +00c080c300a261a3008f5091007d407f00753976006d336e005f286000562156 +00511852005118520052195200531b5300541d540059215a005d2660005f2d65 +006834710083409200894299009045a1009e4baf00ad50bd00bb53c900c056ce +00bc58cd00ba55cc00b953cb00b852ca00b751c900ba4fca00bd4bcc00c146ca +00c144c700bf42c100bd42bf00bc42be00bc47be00be4dc000c457c600ca60cc +00d46fd500d572d500d676d600d476d400d276d300d176d100d077d100d378d4 +00d87bd800d87cdc00d67bdb00d57adb00d278da00d176d900ce75d800cc75d9 +00d680e100d782e200d884e400d985e400d582e100d17fdc00cb7ad500c174cd +00be73c800bb74c100b973be00b773bc00b16db600ad65af00a358a300914790 +00712a70006a25690063216200571c56004c194b004718450040164000361336 +002c0f2b00290c28002a0b28002a0a28002a0a28002909280029092800290928 +0020081e00230a2100270c250033123000461c46005725590069316b00783f7c +00804e86008059870086678c008e75920099859e00a794ad00bba3bf00cbb2d1 +00dac0e200e1c7ec00eacdf400eed0f800efd2f900efcef800f0c7f700f2bff7 +00edb6f400e8aaf000e99dee00e590eb00df85e700dc79e300d96ede00d664da +00d15cd500cb56cf00c54fc900c348c500c044c200c041c200c13fc300c33ec5 +00c53fc700c643c800c546c700bf4ac300ba4ebd00b650b800b151b600b452b7 +00b551b800b652b900b853bb00b856bd00b75abc00b45db700ae60b100aa63ae +00ab64ad00ac66ad00b066b100b468b600b86bbd00be70c300c075c500c379c8 +00c47ec900ca8ace00ce93d200d29dd700d6a1dd00daa5e200dcaae400deace6 +"/> +<palette number="551" name="Etomchek-040328-008" data="00e3a6bf00e1a9bc00e0a9bc00dfaabd00e0a7bc00e1a5bb00e1a4bb00e2a4bb +00de94af00dc94ac00da94aa00d993a800d993a700d58fa400d28ba200cd869e +00c9829b00ad6b82009e647900905d71008256680075505f006f4c59006a4954 +005c38460057313f00532b3800512d3900502f3a0052323c0054363f005c3d47 +006646520083566700935c7000a4627900b26d8800c1789700c8809f00d088a7 +00e4a7c300e8b1cb00edbcd300f1bed600f5c1da00f4c1db00f3c1dc00f0c1d9 +00ebbfd600ddb5c900ceadbd00c0a6b200b099a300a18d940099868d00917f86 +0071606800655057005940470051323b004a242f00471f2a00451a2600441420 +0045121f004e152400551627005d182b0062192d00671b2f00691b2f00691b2f +00671c3000621a2d005e192b00601b2e00631d3100651f3300682135006b273a +006f2e4000784655007b525d007e5e660084646d008a6b75009b788100a8818d +00c28b9c00c98fa100d193a700d293a600d393a600d392a600d28fa300cd8a9e +00c3809500a3617400915063007f40530076394b006e3343006028380056212f +00521828005218280052192800531b2900541d2b005a21310060263800652d41 +0071344d009240650099426900a1456e00af4b7600bd507d00c9538000ce5684 +00cd588900cc558700cb538500ca528400c9518300ca4f8000cc4b7c00ca4672 +00c7446d00c1426600bf426500be426500be476900c04d6e00c6577600cc607f +00d56f8c00d5728e00d6769000d4769000d3769000d1768e00d1779100d47892 +00d87b9400dc7c9900db7b9900db7a9a00da789a00d9769900d8759900d9759d +00e180a500e282a800e484ab00e485aa00e182a800dc7fa300d57a9d00cd7498 +00c8739400c1748f00be738d00bc738b00b66d8500af657b00a3586c00914759 +00712a3b006a25360063213100571c2a004c192500471821004016210036131c +002c0f1500290c12002a0b11002a0a10002a0a10002909100029091000290910 +0020080c00230a0e00270c110033121800461c2700592534006b3142007c3f53 +00864e620087596c008c677700927581009e859100ad94a100bfa3af00d1b2c1 +00e2c0d100ecc7dc00f4cde100f8d0e500f9d2e600f8cee300f7c7db00f7bfd2 +00f4b6ce00f0aac500ee9db800eb90af00e785a700e3799c00de6e9200da6487 +00d55c8000cf567a00c94f7400c5486b00c2446800c2416500c33f6400c53e64 +00c73f6500c8436900c7466a00c34a6e00bd4e6f00b8506d00b6517100b75270 +00b8517000b9527100bb537200bd567700bc5a7900b75d7800b1607800ae637b +00ad647a00ad667a00b1667b00b6687f00bd6b8600c3708c00c5759000c87993 +00c97e9700ce8aa100d293a800d79db100dda1b800e2a5be00e4aac000e6acc2 +"/> +<palette number="552" name="Etomchek-040328-009" data="00e3b4a600e1baa900e0b9a900dfb9aa00e0b7a700e1b5a500e1b5a400e2b5a4 +00dea89400dca99400daaa9400d9ab9300d9ac9300d5a78f00d2a28b00cd9c86 +00c9968200ad7e6b009e73640090695d0082605600755850006f554c006a5249 +005c413800573c310053372b0051372d0050382f00523c3200544036005c463d +00664e460083615600936b5c00a4756200b27e6d00c1887800c88f8000d09688 +00e4b2a700e8bbb100edc4bc00f1c6be00f5c9c100f4c7c100f3c6c100f0c8c1 +00ebc4bf00ddbbb500ceb3ad00c0aba600b09e9900a1928d00998b860091847f +00716360006555500059484000513c32004a302400472c1f0045291a00442514 +00452412004e2a1500552d16005d3018006233190067371b0069371b0069371b +0067371c0062341a005e32190060331b0063351d0065371f00683a21006b3f27 +006f452e00785746007b6052007e6a5e00846f64008a746b009b857800a88d81 +00c29d8b00c9a28f00d1a79300d2a79300d3a89300d3a89200d2a58f00cda08a +00c3958000a3786100916650007f554000764e39006e473300603b2800563421 +00522c1800522d1800522e1900532f1b0054311d005a35210060382600653c2d +0071413400924f400099524200a1564500af5f4b00bd685000c9705300ce7456 +00cd715800cc6f5500cb6d5300ca6c5200c96b5100ca6c4f00cc6b4b00ca6e46 +00c76d4400c16e4200bf6d4200be6d4200be714700c0754d00c67e5700cc8660 +00d5936f00d5967200d6997600d4987600d3977600d1977600d1977700d49878 +00d89d7b00dc9c7c00db997b00db977a00da947800d9927600d88f7500d98c75 +00e1988000e2998200e49b8400e49d8500e1988200dc967f00d5917a00cd8974 +00c8887300c18a7400be897300bc897300b6836d00af7e6500a3735800916347 +0071452a006a3f2500633a210057321c004c2c1900472c180040251600361f13 +002c1a0f0029170c002a180b002a170a002a170a002915090029150900291509 +002012080023140a0027170c0033201200462b1c00593625006b4431007c513f +00865d4e00876359008c6e6700927c75009e898500ad979400bfa9a300d1b7b2 +00e2c5c000eccac700f4d3cd00f8d5d000f9d8d200f8d5ce00f7d2c700f7d0bf +00f4c6b600f0bcaa00eeb69d00ebab9000e7a18500e3997900de926e00da8b64 +00d5845c00cf7e5600c9784f00c5744800c2704400c26e4100c36d3f00c56d3e +00c76f3f00c8714300c7734600c3724a00bd734e00b8745000b6715100b77452 +00b8735100b9745200bb765300bd775600bc795a00b77b5d00b17b6000ae7b63 +00ad7c6400ad7f6600b1806600b6826800bd846b00c3897000c58d7500c89179 +00c9957e00ce9f8a00d2a69300d7ae9d00ddb0a100e2b3a500e4b9aa00e6bbac +"/> +<palette number="553" name="Etomchek-040328-010" data="00cde3a600c9e1a900c9e0a900c9dfaa00c9e0a700c9e1a500c9e1a400c9e2a4 +00c1de9400bedc9400bbda9400b9d99300b7d99300b4d58f00b2d28b00afcd86 +00acc9820092ad6b00879e64007d905d007282560067755000616f4c005c6a49 +004e5c38004757310041532b0041512d0042502f0044523200465436004e5c3d +0059664600728356007d935c0089a4620098b26d00a8c17800b0c88000b8d088 +00d1e4a700d8e8b100dfedbc00e3f1be00e7f5c100e7f4c100e8f3c100e4f0c1 +00e0ebbf00d3ddb500c5cead00b8c0a600a8b0990099a18d00919986008a917f +006c7160005c6550004d59400042513200384a240034471f0030451a002c4414 +002b451200314e1500365516003b5d18003e62190041671b0042691b0042691b +0041671c003e621a003b5e19003e601b0041631d0043651f00456821004a6b27 +004f6f2e0061784600677b52006e7e5e00758464007d8a6b008a9b780097a881 +00a8c28b00aec98f00b5d19300b5d29300b5d39300b5d39200b3d28f00aecd8a +00a5c3800083a3610072915000617f400059763900516e3300456028003b5621 +0036521800355218003552190036531b0038541d003e5a2100466026004e652d +005c713400789240007e99420084a145008eaf4b0097bd50009cc95300a0ce56 +00a4cd5800a2cc5500a1cb5300a0ca52009fc951009dca4f009bcc4b0091ca46 +008cc7440084c1420083bf420082be420085be470088c04d0090c6570098cc60 +00a4d56f00a5d57200a6d67600a6d47600a6d37600a4d17600a6d17700a8d478 +00aad87b00afdc7c00b0db7b00b1db7a00b1da7800b0d97600b1d87500b5d975 +00bce18000bee28200c1e48400c0e48500bee18200b9dc7f00b2d57a00adcd74 +00a8c87300a1c174009ebe73009cbc730096b66d008daf65007da358006b9147 +004c712a00466a25004163210038571c00314c19002c4718002b401600243613 +001c2c0f0019290c00182a0b00172a0a00172a0a001829090018290900182909 +001220080014230a0017270c001f33120031461c0040592500506b3100617c3f +0070864e0077875900808c670087927500979e8500a6ad9400b5bfa300c8d1b2 +00d9e2c000e5ecc700eaf4cd00eef8d000eff9d200edf8ce00e7f7c700dff7bf +00ddf4b600d6f0aa00cbee9d00c4eb9000bee78500b5e37900acde6e00a3da64 +009dd55c0097cf560090c94f0089c5480085c2440084c2410083c33f0084c53e +0085c73f0088c8430089c746008bc34a0089bd4e0086b8500089b6510088b752 +0088b8510089b952008bbb53008fbd560090bc5a008db75d008bb160008cae63 +008bad64008bad66008db1660092b668009abd6b009fc37000a2c57500a6c879 +00a9c97e00b1ce8a00b7d29300bfd79d00c6dda100cce2a500cee4aa00d0e6ac +"/> +<palette number="554" name="Etomchek-040328-011" data="00a6e3b600a9e1bc00a9e0bb00aadfbb00a7e0b900a5e1b700a4e1b700a4e2b7 +0094deaa0094dcab0094daad0093d9ad0093d9ae008fd5a9008bd2a40086cd9e +0082c999006bad8000649e75005d906b005682620050755a004c6f5600496a53 +00385c420031573d002b5338002d5138002f50390032523d00365441003d5c47 +0046664f00568363005c936d0062a477006db2800078c18a0080c8910088d099 +00a7e4b400b1e8bd00bcedc600bef1c800c1f5cb00c1f4c900c1f3c800c1f0c9 +00bfebc600b5ddbc00adceb300a6c0ab0099b09f008da1930086998b007f9184 +0060716400506556004059490032513d00244a32001f472e001a452a00144427 +0012452600154e2b0016552e00185d3200196235001b6739001b693a001b693a +001c673a001a623700195e34001b6036001d6338001f653a0021683c00276b41 +002e6f470046785800527b61005e7e6b00648470006b8a7500789b860081a88f +008bc29f008fc9a40093d1a90093d2aa0093d3ab0092d3aa008fd2a8008acda3 +0080c3980061a37a0050916800407f570039765000336e490028603d00215636 +0018522e0018522e0019522f001b5331001d543300215a370026603a002d653e +0034714300409252004299550045a159004baf620050bd6b0053c9740056ce78 +0058cd750055cc730053cb710052ca700051c96f004fca70004bcc6f0046ca72 +0044c7720042c1730042bf720042be710047be75004dc0790057c6820060cc89 +006fd5960072d5990076d69d0076d49b0076d39a0076d19b0077d19a0078d49b +007bd8a0007cdc9f007bdb9c007adb9a0078da970076d9950075d8930075d990 +0080e19c0082e29d0084e49e0085e4a00082e19b007fdc99007ad5940074cd8c +0073c88b0074c18c0073be8b0073bc8b006db6850065af800058a37600479166 +002a714700256a410021633c001c573400194c2e0018472e0016402600133621 +000f2c1b000c2918000b2a19000a2a19000a2a19000929160009291600092916 +00082013000a2315000c271800123322001c462c0025593800316b46003f7c53 +004e865f0059876400678c700075927d00859e8a0094ad9800a3bfaa00b2d1b8 +00c0e2c600c7eccb00cdf4d400d0f8d600d2f9d900cef8d600c7f7d300bff7d2 +00b6f4c800aaf0be009deeb80090ebaf0085e7a40079e39c006ede950064da8f +005cd5880056cf82004fc97c0048c5780044c2740041c272003fc372003ec572 +003fc7730043c8760046c777004ac376004ebd770050b8780051b6740052b777 +0051b8770052b9780053bb790056bd7a005abc7c005db77e0060b17e0063ae7d +0064ad7f0066ad810066b1830068b685006bbd860070c38c0075c5900079c893 +007ec997008acea10093d2a8009dd7b000a1ddb200a5e2b500aae4bb00ace6bd +"/> +<palette number="555" name="Evening_Sunshine" data="00184f42003157380035583500395a33004061380048683e00506c3e0059703f +00717a39006e7536006c703400636930005a622d00545b27004f5521004b501d +00474c190037351100323513002e351500303a1900333f1d00333f1e00343f20 +003a4e3500365b42003368500029665800206461001b606300175d660010586a +000d5b6c0012636e001e6469002a6664003e6a5900526e4e005d734800697842 +0099893200ac902900c0982000ca951500d5930b00d8910a00db900900dd8e0b +00e0880c00d1700500c05f0400af4f0400a54305009c38060099390600963b07 +00864908008c550600926105009e750500aa8a0500af920700b49b0900c4ac08 +00ceb20800c8b20f00b7a81a00a69f25009b9a2b00909531007b8c3e0064854a +003d755d002f6e6100216866001d66680019646a001864690017646900126266 +000e5d63000f5d63000f5e6500105f67000e5c66000c5a6500095665000a5566 +0012595f001c59580027595100305a4d00395b4a004c5c42006262380073662f +00886b2700a67c1e00b2811800be861200c0850f00c3850c00c4850d00bc8810 +00a58e15009687170087811a007e7b1d00757620005f6c23004e6427003e5a26 +002a4d25000d302000092c1e0005281c00031f17000118130000121200000f10 +000113160001151a0002181f0002191f00021a2000021a2000011b1f00021c1e +00031b1e00031c2000021c2200021d2400021f27000424290004282c00052c31 +00032f3b0004323e00063641000637430006394500063c4d00043b5400063c5b +0009425f000c4d6b000a4f6d0009516f00095170000f516a0017506300284e54 +004c483a00534733005b472c00664a29006d50280071552f00715a38006d5d3c +006a624200606b4700606b4800616c4a00636b4a00676c44006a6f3a00706f33 +00786f3000756e3000736e3100676b37005868400046644c0038635b002b6367 +001f616f0019607400195e730025646b00386d63004a7b5800608b4e006e9546 +00869d3200879b3200889a3200889c3400829d3e00779a48006a985000588c5d +0044816900327b7500257880001e7c87001d7d8b001a7a8b0019798c0016798f +00187e90001b8391001c848c002682830033817b004c816d00668562007c8855 +0090874500a3893900bc8b2900d48d1e00e38d1400e8860e00dd780d00c86e0a +00b0600b0095540a0080470800693107004f230500351406001f0c0600100705 +000a0204000c0203001405020020090200330f0300481704005b210600743008 +00893d0700a24a0800bc520b00ca580b00d55f0d00d65e0900c85d0600bb5207 +00a44507008b3d0c00773513005e301b00472c24002f252d00192435000d293f +00062f4b0004365200053d580008415800083d5000073c4a00083c43000b4140 +"/> +<palette number="556" name="Evensong" data="001a1f3300171b2a00121724000e131f000e121d000f111c000e101a000d0f18 +00080a0f0006070c0004050a0005070c0006090f00070b1200090e16000a1018 +000b121b000e151f001016200012182200181d22001f22230022252600252929 +003e3e330046463d004f4f48005154490054594b0050564c004c534d00454b4b +00373e4300222931001c212c00161a2800141825001216220011162100111621 +0012182300131a2500151c2700161d2a00181e2e00181f2f0018203000182132 +0019213200151d2d00141c2a00141b2800121926001118240010172300101723 +00111621001115210012152100121420001214200011141f0010141f000e131f +000d131f00060b16000408120003060e0001040b000002090000000700020209 +00080a16000d101d0013172400161b2b001a2033001b2235001d2437001e2638 +001f253a001f2739001e2537001d2436001c2335001c2335001b2235001a2134 +00181d3100151a2d0013172a00101426000e1222000a0c19000a0b14000d100e +0016160f00373a3200525445006e6e59007f816d0091958200b6baa600cecfae +00e5e9c500dcdfba00d4d6af00cacca500c1c29c00a4a3820090907900898976 +00858475008b8970008f8e7100949473009a9d740094946c008584650074785f +0045464100373a3b00292e3600252b3500222834002025360023293800292e3b +002e3141003a3c40003d3f3f0040433f0041443d003f4438003d433300373b2c +00282c230021241f001a1d1c00171b1c0015191d001318200013172100121823 +0012192400181c27001b1f29001e222b0023272d002a2d30003131360031373b +0033384700313848002f384a002d384e002b3550002b3550002b355000303c50 +00424a4e005e645500696e5500747856007e7d5300777851006b6c4c005b5c44 +0030332900282b2600212424001a1c1c00121414000d1014000b0e15000a0d13 +000c0f16000f121b0011151f0014182300161b2600181c2b00191f2c001a212d +001f252c0020262b0022282b00252a2a00282c2b00292c2c0026292d0025282e +0023273100202533001f25360021283c00242c4200252e460026304800262f46 +00232c41001f263900171d2d00111421000c0d160006070e0003020800020105 +000303050006070a00070a0f00090e11000b1216000d131b000e141b000d141c +000e141e001014210010162300111725001319270013192800131a2800151b26 +00151b2500141b2500141b2300141a2200131b2300121a230012192300121923 +00141a2300161b2200171a220015191f0014171c0014161a0012141a000f1319 +000f13190010131b0010121c0010121d0010131d0011131e0011131f00111420 +001316220015172400151a2700181d2c001c20320020243900262a3f00202638 +"/> +<palette number="557" name="Exceding_Expectations" data="006f5d540056342900552e230055291d0067362300794329007f492c00864f2f +00a66f5500b0836400ba977300b79e7c00b5a68600aaa18700a09c8800999682 +0093917d00716d5a00625848005344360048352d003d2624003c2121003c1d1e +00451b1f0050272d005b333c006942440078524c007c584f00815f53008d6f5c +009b7c6500a8816700a7816900a7826c00a9826d00ab826f00ac826f00ae836f +00ab8a7300a98b7500a78d7800a5917c00a3968000a19986009f9d8c009fa69d +00a3aea700a9baaf00aebab100b3bbb400b3b3ac00b3aba400aea69d00aaa197 +009c908f0096888b009081880087808b007f7f8e007c7f8f007a8090007b8195 +007b83960077849000787c840079747800766f7100746b6a006b5e5800614f4d +005732310059302c005b2f270064342c006d3932006f3b3200723d3300724536 +007b4f3f0085675200836e5d0081756800887d69008f866a00979270009a9574 +0090867200857b62007b71530072674c006a5e46005d4e3d004f403000473824 +0042311c003e2e18003c2d18003b2d18003c2d19003e2e1a003f312200423a2f +0057534d0065636000737374007b7d7d0084878700939a93009ea69d00a0aba5 +00a3ada600a0aca5009ba9a60097a6a8008e9fa8008898a40087979f0086969f +00829497007f8e8c007c8882007b867e007b857a007a8077007b7c7500797671 +007978710079807b0077807a00758079006f7e7500687e7000667a6d00657365 +006d6c560074684e007b6447007b6043007b5c3f0076573900725533006c4f30 +0060452e004e4a3e004f50440051574b005761590059716800678379007a9b8a +008eae9d008fad9c0090ad9b0092b19c0092af9b0089a4960081908700747b74 +006664650045424e00403b46003b343f00332234002a19310022163300201e38 +00222d3c00232f3e00253141002a394c002c3f54002b425200313e4d003a4251 +0041445d00434f66004d506a005b5d700069677d00797f8f008b919d009aa3a6 +00acb0a400b0b3a200b4b6a100bdbca300c4bfa200cbc1a000cfc6a000d1caa2 +00d5caa700d7c7a800d5ceac00d1d8b000ceddb200cad4b100c2cdae00b9c9ae +00adc5b1009fb4ab0091a09f007e858f006a6f8400555873004545610039314f +00302640002e21330030242b0034242600362621003a2c1c003f311c0044351f +0047371d004a3b1e00574123006b492b007f522e008f5c30009f643600b1693e +00bf6c4200c9714400c7714800c1754d00b6775100b47f5800b6835f00b58f6b +00b3997700b4a37f00bca88200c2aa8200c7a78400c6a28300c79d7b00c7946e +00c78a6200c5815b00c27a5100c1754d00bb714b00b36e4e00ab6e5100a77158 +00a27b65009b7f720098867e00958a82009593880086837b007c726c006c5e57 +"/> +<palette number="558" name="Explosion" data="00815a1000502e1100421c1000350a0f004d140c00661f0a00722409007e2909 +00a63a0600b33b0500c03d0400b63b0500ad3907009b340b008a2f0f00802b13 +00762717004916280037122c00260f3000220e2f001e0e2f001f0f3000211032 +00290d2d003109250039061d004f091600650d0f006f120e007a180d008c250b +009b310900c5520400d5620500e6730700ed840e00f4961500f59e1900f6a61d +00f7bb2d00f8c23700faca4200facf4600fbd54a00fad64900fad74800fad746 +00fbd64000fdcf3400fdcc2f00fdca2b00fdcc2a00fdce2a00fdcf2b00fed12d +00f4cd3b00e2be3900d0b03700b89b3200a0862d00987f2e00907930007f6d36 +006d5d3700443734003b313900332b3e00332d4100342f440031304c002e2e4e +00232344001d1d3d0017173600121330000e0f2a000c0d27000b0b240009081f +0008061a00070313000603110006030f0005020e0005020e0005020d0005010d +0005020f00040210000403120004031300050414000504140005041400060414 +000604140006031300060211000602100006020f0006020f0007020e0009010e +0012021100170715001d0c190020101b0023151e002f1e2200402f2c005a4330 +0071593a0099844700a28e4b00ab995000c2ad5300d8c05b00e7d26300f3db66 +00fcde5d00fdde5700fede5100fedc4e00feda4c00fed34400fdcb3900fdc72e +00fdc22700fcbd2100fbbb2300fbba2600fbc02f00fbc63c00fbcc4b00fcd154 +00f6d46200e5cb6700d4c26c00c8b96c00bcb06d00a29c67008e885d0075724f +005c5942002e2a2f002a222b00261a280027102000310c1700460b0e005a100a +0071110900700f0900700d09006e0c09006d0f0a006b130a005f1310004a0e15 +0033081a0014041c0010041c000d051d000a0722000c0c290014142e00252337 +00534d4c005f5953006c665b00827b63009d916a00b5a36e00ccb26d00e1ba6a +00e9b35f00e3a35100d28b4400b77336009f5e2a008b491e00743113005d1b0e +0035020d0034010e0033010f0041070d0055130b006c2209008534070099440c +00b2571100ca701a00df8b2900f1a53500f8b94700fcc85600fdd66600fde278 +00fee98300feec8c00f8e78f00eada8b00d5c18000c9a86f00c8945c00cd884b +00d0823d00c0743100a75e2b00944826008839220081351e007c361900683318 +00542b1d0042212200341525003f1221004f191700662611007f370e008f4811 +00aa5c1b00c3752900db8f3800eea94600f4bc5000f3c55b00ebc96c00ddc67a +00cbbe8600bab48e00a6a18900908b8100767273005b576200484456003a324a +0030243d002b173000290c220030071700450911005d130c00772209008e3609 +00a2470900b8560a00ce680a00e1790800d1780900ba720c009d680d00815810 +"/> +<palette number="559" name="Faded_Denim" data="0021365f001f356000273a6e002f3f7c0039488c0044529c0048549c004c569c +0058619e0058619f005962a00058609c00585f9800545a8b0050567e004b5176 +00474c6f002d37590026315400202b5000202b5000202b5000212c5200222d54 +0025325f00293663002d3b6700323e6b0037426f0037436f00384470003a4570 +003b446f003a426c0039436e00384470003d487800424c8000444e850047518a +004e58940047548e00415088003a497d0034427300333f6e00323d6a002d3862 +002832580017214500111a3c000b14330008102e00060d2900050c2a00040c2b +00040b2b00030929000307270003052400030321000303220003042400040828 +00050d3000131b45001d245200282d5f002f336400363a6a003c426f003e4870 +003b4c73003c4c74003d4c7600404e770044507800414e76003f4d74003a4c73 +0030446f002b3c700029386d0027346b002532690023316700202f63001c3064 +0017336c0017347000183574001835730018367300193876001d3f7c00214486 +00294b96003956ad003c5ab0003f5eb300405fb3004161b3004164b6004266bb +00476cc300466bc200466bc200446abf004269bd003f67ba003e63b5003b60b2 +003a5cae003a5ca9003d5ca900405caa00495dab005062ae005e6bb5006473bd +006f7dcb00717dce00747dd100787fd2007c82d3007980d300737ed1006b78cb +006371c5005560b500535db200515baf004c58aa004855a50045519f00454f9e +00474fa0004b51a3005054a7005256a8005458a900585daf005d60b3005b62b7 +005864bd005067be004f67bd004e67bd004f68bd004d67ba004b69bd00466ac1 +003b6bc6003a6bc800396ccb003b6dcd004271d1004878d6005181de005787e8 +005f90f10077a3fe0079a5fe007ca7ff0083aafe0087a8fc007fa2f60088a2f5 +007e97ed007993ea007590e8006784e1005576d9004d70d5004c6cd3004a6ed6 +004b72da004b76dd004d77df004b79df004976de004976de004a75da004a72d5 +004a70c500476cbf004568ba003e61b200395ba90034529e002f4e96002b4a8f +0029488a002745860026428200253e7e00253c7800213874001f3572001b336f +0018306c001b2f6e001d31720021357800233c830028438f00304b9a003851a3 +003e59ad00415db2004262ba003f64be003e62bd003d60b9003c5db1003c59a6 +003b559e00334f96002f4b8f0029468a002642840024407e00253d7a00213974 +0021356e001e2f6600172a5e0010235300091d4800061940000514370004102d +00030c270003071f00020319000203180002041a00030a2000040f2900051835 +00081e40000c2048001022500011224f0011244f0015285000192d53001c3054 +001d3255001d3151001c2f490018273c001a2b40001c2d48001d2f4d001e3255 +"/> +<palette number="560" name="Fading_Away" data="00656879006f688200736b8100786f8000796e7d007a6e7b0079697c0079657d +00815d7d0084617c0088667b008e718000947c8500978980009b977c009a9a7c +009a9e7d0091a181008c9a7b0087937600858f7200848c6f00858a6e0086886d +0086876b0080896c007b8b6e00719072006796760060987800599a7a004f9a7e +004093830033838200337a820033728300396980003f607e00465e7d004e5d7d +00636e7b006c757b00757c7c007d7f7b0085827a0084837800838577007d8576 +007c8272007c7f6500777d6400737c6300717c64006f7c66006e7d66006d7e67 +005c807200557d77004e7a7c0050797800537975005378720054786f00597865 +0064735b007e6e4a00826f3f00877034008a6e2f008d6d2a0098662a009f682c +00a46f2c00a6742e00a9793000a57f3500a1863a009d8941009a8d4800929854 +00909b600092a07d0093a9880095b293009ab292009fb29100a5a39200a5988c +00a3888100a37b7a00a36e7400a4696e00a6646800a26362009c655e00956d5e +0091725a008a7d5500877d5200847d5000847b4f00857a4e008c7951008f7c52 +008c764f008874550085725c00836e6000826b64007c646c007a5873007f517d +00894c84008d45840091448600954389009e498f009f539400946596008970a2 +008287ab007f87ac007c88ad007882af00747db1007070a7006f669b006c5c8f +0069538d00694b7c00684e79006752770068607900696b77006f71710071736e +00767074007a6a75007f6476007f6374007f627300805e750080597f007c5087 +006c4c87004d46890049438c0045418f003d3e8f00363f8c00333c8c0037388f +003d338c003e328a003f328900483289004a358b004f3b8c004c428a00564d88 +005e5585005d6284005b608500595f8600525788004c4c880044478700414085 +00463c890049408a004c448b00544e8f005f5f9b006c6ca500757eb1008187b8 +008b8fc6009a94c9009da2cc00a4a4c200a4a1b700a59aa7009ca19b008ca692 +00779f8a0078a18c0079a38e0079ae9a007eb5a80089b7b60096b8bf009ebcc2 +00a1c0c600a4c3c900a5c3cc009ec1cb0092bec80083bbc70080b1cc0081a9cf +0087a2d0008c9fcb009395c8009995ba009e97a800a79d9a00b39a9600ba9a9b +00b59ca000b29fa700b5a2ad00bea5ba00bfa5c100bba7c300b3abb900abb4b0 +00a6b8a100a0b698009aaf92008fa8910089a59000869b8f0088929300868996 +008689960085889000898989008c8580009388740095886900988d5e00968b56 +00988e50009a8d49009b924a0090974f00849c5a007ba6630078ad6c007cb57a +007eb385007eb08d0078a98c007ca18c0085928c008a818b008277850075697f +00695d7d0060527d005b53770058597100535b700053547c00534f7f005e5980 +"/> +<palette number="561" name="Fiery_Sky" data="00a35f3100af563000b4532f00ba502f00ab4c2a009c49260096442300904021 +0069372800573b2e004540350035393f002532490025334e00253454002d3553 +0035375200593f47006b463c007e4e31008f522600a0571c00a7561900af5617 +00bd3d1000c82f1200d4211500d6191700d9111a00d4101b00cf0f1c00cc0d25 +00c9063200ad0d34009a0c3700880c3a00770b3e00660b42005b0b3f00500b3c +002f0e3d002f0c3800300a33003a0a2b00450b2400490e23004d122300521619 +00561c1400531e0f00451f100037211200301f19002a1e20002b1d20002c1c21 +0037181800401d1e0049232400532825005e2e2700602e2800622f2a00612f35 +005e2b4400592451005a1c4b005b1545005e14400062133c00691133006d1529 +007c180f007a191100791b1400771b1100761c0f00701b0f006b1b10005f171a +0056122100400c1600350c19002a0c1d00250b2000200a2400120728000a0927 +000c1636000f13420013104e00161252001a15560028195e00381c6100431561 +0051125e0069155d00691454006a134b007015470076184300862942008c3641 +00a6492e00b2562700be632100be662000bf6a2000b1671c009c5b1700834e19 +00684627003f3238003a2c3800362738003523390039283700482c34005b312b +00713713007335170076331b00703121006b2f27005b263000451c3b00341446 +00261349000f1d3a000e2237000d2735001c332c00313a1b0049410d00574708 +0074490a007a470900814509007a4309007441090069420c0066500d006d5d0d +006d610f008061160089661600926c17009e741a00a4751d00a8771a00ad7d17 +00ae871b00ac8b1900ab8f1800b0991500ba9d1300c59c2100be992500b09f30 +00a09e3600977d3e00927a3c008e773b007b7437007a653e0082523900954534 +00a5493700a64c3900a7503b00b2553f00b6593c00b9603b00b2673400b1722c +00ac712400aa6c1d00a7631700ab5f0f00ac560c00ac490b00b03c1100b83c13 +00cf481100d4451100d9421100da3f1100dc3c1300d83f0f00d4390c00c73207 +00be2a0500b0270500a5220c0096241100922716008d2b19008b291f00882828 +008528340081293c00853144008e3148009831510099295200a2345600b03f4e +00bf4d4700be4f3600bb582c00bd642100c4701900c57c1400bb831300ae8417 +00a2761d0098652e0085573e00704d4c00563f5500402f61002b216400271865 +002b155e00331256003b0f47004c0d3e005f0d39006f0c37007b09300084092b +008c0c2600951627009e202300a82d2100b1381400be440e00c6490b00cc4d16 +00cc491d00c8442400b7363000a62b4100911f4e007b165400600c5c004d0861 +00450a5d004010550043164e0043284c004f314100603b3e00823d360098543a +"/> +<palette number="562" name="Fiesta" data="00547c7b00385e9500244fa3001040b100113fa500123e9900174096001d4294 +0036559900396187003c6e760048745b00557a4100607533006c7126006e6e22 +00716b1e007b5510007f4709008339030089320200902c0100922e0100943101 +008d3c0f007c3d28006b3e41005b415c004b44770045498100404f8b00365ea1 +00286bbc000a69eb000660f2000258fa00035cf9000460f8000663f4000966f1 +001467d400176cc3001b71b3001d7b9a001f86810021877300248965002c7f47 +00387633004e5e19005b541100694b0a00794c10008a4e16008f531d00945825 +0095793100988432009c90330098a3440095b655008fbc59008ac25e0082c154 +0075b84700599e3d0050973c0047903c00408f37003a8f330030862a00257c25 +002e6223003e6526004e6929005d7433006c7f3d0072824300798549007b8b51 +007e91560076a1630070ad72006aba810068bb850066bc890061bf830066bc77 +0088b9700099a76600ab965d00b18c5100b8834500c67c3600d6712700de6221 +00e1501700d6380700d23c0600cf400600cb420700c8440800b94f0e00a95818 +007e6242006c6958005b716f00547b75004e857c004291840033988e002e9393 +00268e9000208669001f835d001f80510021743d00216f2b001c6c1b0014690f +0004570200044e010005460000094501000e4502001d48020031450200433901 +00562c0100801801008c18010099190100ae1d0000bc220200c6210200cc1e02 +00ce1b0300c51a0400bc1a0500b7160400b3130400af0e0500ad0a0300a90906 +00a5090600a20a0a00a10e0d00a11310009f1e1a00932a2700873933007a443c +006c5c470063604a005b644d00486952002f665e00225e67001f546e001c4772 +001a3f6b00072a55000525510003204e0006174c00141b480021283900283a2e +001e5b3a001e6447001f6d5500247c6d0028917f0027a087001ca38e0013a292 +0013918e001b7f8500296d71003b5957004c4d3f005a3f2900692d1b00741c0f +00810d05007c110400781504006a1e08005e240b0057260e0058220b005a2407 +005c2707005d2d07006b340b007b360b0090390800a3390700b0380600c13509 +00cd330a00d52f0600d82d0600d92e0600db2d0900df2a0a00e3220700e81c06 +00ec180400ee1b0300ef1e0400ee1f0200eb210500eb250e00e8361d00e44c2f +00d95b4c00c3655a00a76373008b619100726797005f64a9004d6397003e5487 +0036428200333a6f00383367003d3b53003f483c0041523400405d350041613e +003e664900346e4e002d79560022855e001a8b6800148e73000d8b78000c8f82 +000d998f0012a1a00014abb50010b1c10009b2ce0005b0dc0006ace70007abef +000fa8ea001fa8de0035a9d0004ca5bc004aa5bd00449db3004495a400428d96 +"/> +<palette number="563" name="First_Love" data="00da9f9000e8afa300e6b09f00e4b19c00e3b19a00e3b29800e5b29700e7b297 +00e9b39500e9b79700eabc9a00ebbf9c00ecc29e00ebc3a300ebc4a800ebc5aa +00ebc7ac00f0ccb400efceb900efd0be00efd0be00f0d0bf00f1cdbc00f3caba +00f5c2af00f2bca500f0b69c00eca99000e89c8500e4967f00e1907a00db7e6e +00d5706900d2636b00d0656d00cf686f00ce697100cd6b7400d06d7600d37078 +00e2868000e48f8300e6998600e69e8700e7a38800e6a28700e6a18700e49e86 +00e29d8500d99d8100cc977b00c0917600bb8b7200b7866e00b8866e00ba866f +00ba8e7c00be968700c29e9300ceaa9f00dbb6ab00dfbaaf00e4beb300e9c1b6 +00eec5ba00f2c8ba00f0bfaf00eeb6a400ecb09d00eaab9600e8a08a00e4977c +00d4796400cb695d00c25a5700bb505100b5464c00b1414c00ad3d4d00a73a4c +00a43d5300a6516c00a7597200a8627900a8627800a8627700a46270009c5f6e +00874e64007b3e5800702f4c006b29490067244600631b43005e1841005c153d +005b133d006316490067184e006b1a54006c1a55006d1b5600701b5a0075225f +00843b6d00914870009e557300a55a7400ad607600bb6e7900c7777900d2827a +00da8b7800e68a6b00e6876600e6856200e37b5c00d9715500cf675500c65b51 +00bc474b00b73f4800b3374500b2364500b2354500b4314900ba335100bf3255 +00c1305700c13e5500c0435500c0485600c4515900c3555f00c4566200c25c68 +00b9626400b15e6100aa5b5e00a5565e00a1515f0094465800843a5100712d4a +006023440048143f0046113d00440f3b00460c3700480b34004a0b35004d0d39 +004e0e40004e0c3e004e0b3c004e0b38004d0b34004a0c3600450e3b00420b3e +003d0c3c00380a3500370a3400360a330036072f0035072c0032042300360221 +0043031e0048041f004e062100540b220061102a00701a3700802944008f3354 +0099395a00a4415b00ac4b6100b75e6700be707100c7787700d07c7500d77f74 +00e2957a00e3997f00e59e8500e7a28c00e8a59000e9a99400eaac9700e8ad99 +00e6ae9c00e4af9d00e4b09e00e5af9d00e5ab9b00e1a69900e0a09600de9e92 +00df9d8f00e09c8d00df9a8e00e1978d00e1988c00e3998b00e59e8800e5a187 +00e5a08400e39d7f00df967900dd917200d7876d00d07c6700ca726200c2695b +00c2665800c3675b00c3685e00c26a6300be6c6400bc6d6500bb6e6a00b96b6b +00b2666d00a95e6600a1555f00994c5a00974252009b3e4f009c3a4c009d374a +009b354d009a324b009d344700a2354400a13343009a304800902a4c0084234d +007a214a00721c47006917440066174300621444005f1547005f1449005f144a +006d204a0078254800893851009d4a5d00a7546b00bc6f7800c2797c00cd8e84 +"/> +<palette number="564" name="Flame" data="00844c34006e3e260065391f005d3419006c4222007c502b00885a320094643a +00bd875400c88d5800d3945c00d5905b00d78d5a00d17e5400cc704f00c9694a +00c6624600b24d2f00ab462600a43f1d00a33f1b00a23f1a00a04019009e4218 +0094491900914419008f401a008b361700872d1400852a130084281300822813 +008629170097351b00a2431c00ae521e00bb632700c9743000cf7d3700d6873e +00e6a95100eab05a00efb76300eeb96a00edbb7100eaba7300e7ba7500e5b875 +00e2b27100e6a86000e2a15700df9b4f00da924400d58a3900d3853300d1802d +00bc712500b0671f00a55e1900975215008946120081421100793e11006a3510 +005d2e0b00522209005221090052210a0054220900562408005e290a006b310b +008b460e00974d1300a4551900ab571e00b2592400b3582300b5582300b15421 +00ac4a1f009b301f0090261a00861c1600821914007e16120076121100711311 +006e1a14007221180077281d007a2d20007e322400883d2b0091452e0095472f +0099462d009a3c280095382600913424008d3222008a302100802c1e007c291a +007d2c1d0083362200894128008d482a00924f2d009a583100a15f3400a76332 +00ae622f00b0572900ae532700ac4f2600a2461f009b3f1800933615008d2a12 +0082160d0080140b007e130a007e120a007f120b00800e0a00870b0800940d05 +009e100500aa190b00aa1a0d00aa1c0f00ac220f00ad251100ab281400a42a18 +008b271a007d2417006f211500691e1400641c1300601a11005e150f005f110c +006311080072100400781004007e110400871604008c1f030090220300902303 +00971f0400922005008e21070084200800741d0a006c1908006a14090067140c +006a1a100077321f007c392300814128008d51300099603400a66d3a00b37841 +00bf854c00c0854b00c1854b00c2864400c5833e00c07e3b00be793a00be773c +00c47c4100d0854600d9904f00df985800e3a16000e8ac6c00efba7800f6c884 +00fbd99600fbda9700fcdc9800fbdd9a00fcdd9900fddf9b00fddd9a00fdda97 +00fbcf8e00f5c48000efb87100e7ab6100e1a25700da954b00d3883f00cc7c32 +00c6722700c26d2200be682000b9632400b75d2500b3562500b1542400ae5323 +00a8502600a35028009e4e2a009b502a009a5329009754290095542700935526 +0092572600945c2500965e2600965c2500955a2500915724008f5723008c5824 +008a572300875625008454260082502300804d2300804a1f007f481f00824823 +00854b23008c50280097582c009f613200a86b3b00a9724000ab744400ad7545 +00ac704500ac694300a65f3e00a05339009b4d3400984831009a472f009e4533 +00a4453700ad4c3c00b7594200bf694500b4674300a65f3f0094533a00844633 +"/> +<palette number="565" name="Flying_a_Kite" data="005a96650053a1660045a9680038b16b0045af750053ae7f005baa7c0063a67a +0074ab4e0076a43a00799e26006e9b1e006498170065991a00679a1d00699624 +006c932b0068ad430071b94d007ac558007fcb530084d24e0086d64d0088da4d +0087ca44007ec83a0076c731006ecb390067d042006fd44c0077d8560074dd68 +006dcf6c007dac5f007f905d0081755c0084604400884b2d0087482200874618 +00934c1b00905d17008e6e14008f6c1900906b1f008c641f00885d1f00705924 +00674a31005e3a35004c4641003a524e0035625a0030726600287a600021835a +001c9655001e905300208a510020863b00208325001c782200196e1f001c5625 +00194f1f001e511400285a25003363360032683b00326e410033794a003b8356 +00528a730056757b005a61840072547f008b477b00944673009d456b00b54f5f +00c7644f00d2793b00d0833800ce8d3500ce923e00ce984700cca45c00cba965 +00b5ba8400a7c3900099cd9c0090c8990088c397007dc0830070b274006ca15d +0066924b00799e280087a4240095aa2100a1b52300adc12600bad82e00cae339 +00dde55400dfdd5b00e2d66200dfd15d00ddcd5800e0c44e00ddb14500d5a441 +00c8a23500c09e2500bf972300be902200b28a1e00a38e220095962d008f9b39 +00829d540077ab6a006cba81006bbf8b006bc4950065cba50058ceb30043cdb9 +0035c6b6002fb4b3002fa7b600309bb900397cba003c5fb3005b52b2007343bc +008531b5008c3eb200944caf009551b0009657b2007a6ba80061799f004d7aa3 +004267b600246cbd00216bbd001f6bbe002156cb002850de002d64e6003578e9 +003878e300367fe1003586df00329bdf002aabde002eabd40037a4c6004ba6c5 +0058a4bf00767297007b65920081588d0083468700813b800081397c007b4288 +00876fb000927cb8009d89c100aba8c300b7bdbc00c4cfae00d1cfa000e0d380 +00e0d56000e0dc4300dfd33000e1c12200dcae1c00d2a12400cf972a00cd8b35 +00b28e6700ad937600a8988500b0a19d00c3b1af00c7aeb600bea7b900b79bae +00bea5a300bb9b8f00aa947e0099976e0091b168008cc66a007ad373006be287 +005fe6930059e299004fce950046b690003e978c0038808c00326b9100285490 +00303598004528a0005731b6005248c200505ed7006172e3007a8aec0084a8eb +0086c9ed008fddf1009fe7f300adeef300b3f1ef00b7eee600c0ebd800cbedc9 +00c2ebaf00b4dd9700a5cd7b00a4c365009ec145009aba320094b1280095a72f +0097a732009fb04000a2bb5000a3c673009ecc89009bd0a60097d3b10092d7c0 +0087d8c8007ed0d60073c7d8006bbed30063bdcf0065b7d7005bb2e1004eb2e6 +0048bbe30056bbe60061b3e20066a7dc0073a1c600869ea900769a810065956a +"/> +<palette number="566" name="Foamy_Waves" data="00282e860030368e0033399200373d97003a449c003e4ba2003e4da4003f50a6 +003f56a9003d59a9003c5da9003a5ea900385fa900365fa7003460a600325fa5 +00315fa5002c5da20028589f0024549c001f4f95001a4b8f0017498c00154789 +000d407e000b3e7a000a3d77000a4077000b4377000c4679000e4a7b0015517f +001d5c83003b6a8400487185005678870064828a00738c8d007a8d8a00828e88 +00a6a89300a9ac9f00adb1ab00b4b6b000bbbbb500bdbcb600bfbeb800bfb8b9 +00bfb8bc00b9adb400b6a3a700b3999a00aa919a00a28a9a009b829800957b96 +006c6283005b547f004b467b003937770028297300212571001a216f00121b64 +000d175c0007134f0008184c00091d4900091e47000a1f46000d2446000f2746 +000f2d47000e2d45000e2e43000d2d40000d2d3e000d2d3d000d2d3c000d2b38 +000d2b37000e2e37000e313a000f353e0010363f001137400012374300123845 +0012364900123448001232470012304600122f4500122b420011284000112740 +000f2442000e234a000f254f00112755001127570012285a00152d6100163065 +00193269001c386a00203e6c0022416c0024446c0027486c0028496b00294e6c +0029506d00305c7400315e75003360770034647b0036677e0036687f0034687f +002f687b002b657700286274002661710024606f00205d69001d5864001a525e +00184e5a0012405200113c500011384f000e354d000d2e49000b264600062043 +0000173f0000153d0000143b0000143a0000143a000012380000123700001136 +0000113600000b3400000a3300000a3300000731000007310000063000000630 +00000831000008310000083100000a3300000b3400000d3600000e3800000f3a +0000103b0000133e0000133e0000133e0000153f0000184000001a4200001a43 +000022490000224a0000234b0000244e0000245100002655000029580000275a +0000265d0000245e000023610000206200001f6400001b67000018690000176c +00000f7100000e7300000d7500000c7b00000a80000008860001058b00030592 +0009079700110a9d00140da200180ea8001c0fac001e11af001c0fb1001c0fb3 +00190eb400160eb500130eb700100eb8000e0eb8000f11b8000f17b7000f1ab4 +000f1cb1000f1ead000d1fa8000a20a200061f9d00031e9700011e9300001f92 +00001f9100001f9100001f9100001d9200001b9300001b9500001b9600001895 +000018930000189100001a8e0000148b0000178a000016890000108900001089 +00000d8900000989000107890003098700050b8600060c8200070e7e00091078 +000a1071000a106d000a1069000b1168000d1167000e1167001114690012126c +0018157000191674001c197800201c7b00211e7c0021207f0023238000252883 +"/> +<palette number="567" name="For_Lenora" data="00a984a300b68ac300b07fc300aa75c400a268bf009a5cbb009351b3008d47ab +006f298f0063277f00582570004f276c00472a680045306b0044366e00453a75 +00463f7d004c5b9400586da3006580b3007a8fbd00909fc70099a7cc00a3afd2 +00abc1e000a9bedd00a7bbdb009cb3db0092abdb0086a3d6007a9bd100698cbd +005d7da6004e75850040736c00337153002a744400217835001d7730001a762c +0021712d00276530002e5a34003a4e390046433e004b3e3f00513a4100503447 +004c334e003a2660003b2766003c286d0038227900351c86003b17880041138b +005b1686005813820056117f005a0f77005f0e6f005b106d0058126c0054136d +0055186b005c175f00561b5d00511f5c0050215800502455004e224c00441b41 +002c19350026142f00200f29001a122500151621001416270013172d00140e33 +00140e350022134500310c530040056200450965004b0d68004c1b6800482c61 +0049585b004b6b5a004d7e5a004a7e5d00487e6100487e6100506e67005e5e72 +006b4b83007a338c007d2b8c0080248c008125860083278100882d72008c2f66 +0083255e00791d5100701545006c16400069173b005e1e3c00531f3a00472037 +0042213200492831004b2c34004e3038005938420071454f00894d62009f6273 +00bb818b00c48e9e00ce9bb100d0a0b900d3a5c200d7acc400d8a9c400d1a8c3 +00c0a4c200a0929c00998a90009382850079727b00615f6b004f4f5800493f49 +00452e49004b2e4600522f4400573346005d374800663b56006f446800764f7b +0082628b009277ad009076b5008e75be008c72c8008971c7008d6abd008863a9 +00724a82006c47780067446f0060475500604f400059552f00525b2a004d5d2c +0051693d00668b6600678a6e00688a7700648089005d7993005b7e93005b868f +006a8689006f878b0075888d0082958e00889b96009598920097849d0094729f +00835ba20076478c006231790050256000391f4f002e243a00242c2f001e3c24 +00155113001652170017531c0021542a0032583700475b3900605a4500795954 +008e596800a3667000ba657800cd637f00d75f8d00da6c9600dc74a000d875a9 +00d278b600ce82c100cd91ca00c89ad300c8a5da00ccaadc00c9a9d600bf9fcd +00b793c400b187b100a0779d0087698d00725c85006a537c00644b7800644c7d +006c598a007e6b99008c7aaa008f85b900908ec4009496c9009893cb009592c5 +008f8dc3008e8cc4009284c700a286c500b28ec500c29cce00caa7da00d7b3e2 +00e1bbe300e7c1e200e2c3e300d9c1e400c7bdde00b6accd00a29abc00918ca7 +007b918f006f9275006a8863006c785b0071725500767958007e7960007f6f6c +00856076008b557e009051820092508100965a8c009f5f90009e6a9300a4708e +"/> +<palette number="568" name="For_Stacy" data="00a9858400c38aa000c37f9d00c4759b00bf689300bb5c8c00b3518000ab4774 +008f2958007f275000702548006c274e00682a54006b305e006e366800743a72 +007b3f7d007a4c94008358a3008c65b3009e7abd00b090c700b799cc00bfa3d2 +00c2abe000c1a9dd00c0a7db00bb9cdb00b792db00ad86d600a37ad1008d69bd +007b5da600554e850044547b00335a71002a657400217178001d7177001a7176 +0021717100276565002e5a590038504b0042463e0049463c0051463a00503834 +004e3339006026540066275c006d28640079227000861c7d00881776008b136f +008616520082134e007f114a00770f3b006f0e2c006d102f006c1233006d133a +006b183a005f1725005d1b2c005c1f330058213100552430004e222600441b1e +00351926002f142100290f1c0023121e001e1521002114270025132d00330e32 +00350e350045133d00530c39006205350065093600680d3700681b4300612c4c +0049495b004b606c004d787e004a727e00486d7e00486d7e00505b6e006f5e72 +00834b6c008c3352008c2b48008c243f00872539008327330088362d008c482f +00833c250079371d00703215006c351600693917005e361e0053301f00472a20 +00422c2100493b28004b3e2c004e413000594a380071604500896b4d009f8562 +00bba98100c4ac8e00ceb09b00d0afa000d3afa500d7b9ac00d8b7a900d1b0a8 +00c2a4ab00a094920099908a00938d82007b7275006b5f6b00564f5800493f40 +00492e36004d32320052372f00573e33005d46370066443b006f4444007b4f5b +008b627100ad779a00b576a500be75b000c872bb00c771bc00bd6aa700a9638e +00824a620078475a006f445200604e47005660400039592f002a5b2b002c5d35 +003d694e00668b85006785870068808a00686489006f5d9300685b93005c5b8f +006a6b890070708b0077758d00828c950088909b00929894009d848e009f7284 +00a25b84008c4767007931520060253d004f1f3c003a24330025242f001e3a3c +001351450015524a0017534f002152540032585700395b48004f604500797854 +008e775900a3906600ba9b6500cda16300d7975f00da9f6c00dca17400d89475 +00d2877800ce838200cd919700d39aae00daa5bf00dcaac200d6a9bd00cd9fb4 +00c493a800b1878d00a0777a008d697400855c75007c536b00784b66007d4c6d +008a597f00996b8d00aa7a9f00b985b700be8ec400c094c900c893cb00c192c5 +00bd8dc300be8cc400c784c300c586b200c58eaa00ce9caf00daa7bf00e2b3c5 +00e3bbc300e7c1c200e3c3c900e4c1d200debdd900cdacc800bc9ab900a78ca6 +007b8091006f91920063887c005b786300587255005a795800697e60007f7f6c +00856960008b5955009055510092565000965b5a009f645f009e6d6a00a47e70 +"/> +<palette number="569" name="Forest" data="002d472d002a422a00273d290024382900203123001d2a1d0020211b00231919 +0023191900231919002319190023191900231919001e1e190019241900192419 +0019251900212b1c0028301e002f362000363c21003e43230041462300454a24 +005054270054582900595d2b005c602c0060642d0060642d0061652d005f652d +005e642d00585c2900535728004e522700484d2500434824003f4624003c4424 +0036402200334022003040230032412400344326003644260038462700384929 +00364b2b00394f2c00394f2c003a502c00394e2b00394d2b00374c2b00364b2b +002d432900283e2600243a2400213523001f3123001e2f22001d2d22001b2922 +001a262600231919002319190023191900231919002319190023191900231919 +00192519001a281d001c2b21001f3024002336270024392a00263d2d002b4633 +0037523300586d3e00627641006d7f4500718246007685480077884700758847 +0074854500758343007682420074804000737e3e0072793c006f713800656931 +00565b2c00414622003d401f00393b1c00383a1b00383a1b003a3a1c003b3d1d +003d3d1f003a3d1f00383d2000383c1f00383b1f00383b1f003a3a1e003b3b1d +003a3a1d0037371c0035351c0033331c002f2f1b002a2a1b0026261a00241a1a +0023191900231919002319190023191900231919002319190023191900231919 +0023191900231919002319190023191900231919002319190019241900242419 +0021261800212618002126180023251800252518002525180025251900252519 +00252519001e2819001f281900212919001f291a001f291a001b291b001a291f +001b2a25001b2b23001c2c21001d2f22001f33270022382600253e250028432b +002c472c003653320037573500385b380043673f0048744800518355005c9360 +0073b2780078b87a007dbf7d0081c88f0084ce920088d1910086d1970084d191 +0085d085008bce820097cd80009cc87b009bc1750098b86d0089a965007b9959 +005d774000586f3b00546837004f5b2e004a532800494d2400424722003b4221 +00343e200031391f002c3620002a352000293521002e382100323b22003c3f24 +0041442500484826004e4e290050552e00595e3200616b3a006c79420073864a +00798f500081945200859753008698530083985200899a51008ea1520097ac57 +009eb85f00a3c36700abcd7000b8d47200bcd57200bed26f00b8cb6900bbc661 +00b9c45e00b8c25c00b1c25e00b3c05f00aebe6200abba62009db15f0092a458 +0088944e007884430065733b005864330049582f00414f2c003a482900324226 +00293c25002338270021342100203320002134210022372200293c2500294229 +002d482d002d472d002b462b002a452e002a442d002a432a002c422800294229 +"/> +<palette number="570" name="Frivolous" data="0024b44e00319d4d00479c44005d9b3b007b8c37009a7d3300a5763400b07036 +00d24c2f00ca4e3100c3503400b3562f00a35d2b009d672b0098712c00917929 +008b81260089871c0097852200a5842900aa822b00b0802e00b77f2d00be7f2c +00d4832c00dd812c00e6802d00e17e2600dd7c2000d8792000d3762100c76e29 +00b6733000a87c4400b08a5b00b8997200c2a78800cdb69f00d7bdaa00e2c4b5 +00f9dbc400fbd7bd00fdd4b600fcc79900fbbb7c00fbb37000fbac6500fd9c4e +00f98b3a00f27a1800ec781900e6771b00e0731e00db6f2200d8712400d67326 +00bb763600b07d4400a6845300a88b5d00aa936800ac9a6e00aea27500b0b787 +00a8c19400aac48f009dc0850091bc7c0089b2740081a96d007c925600837f4f +009c563700ac4e3200bc472e00d0482e00e5492e00e94c2d00ee4f2d00ed5a2c +00ee602b00f8642d00ef693200e66e3800e0703900db733b00cf7a3f00bc8648 +0092995200859a5000789c4f00739b51006e9a53006d975500718e54007a824d +0089744b00b05f4800c15f4b00d25f4f00d9625400e1655900ec696500f26e68 +00f98f8500f99a9200faa59f00f7a49d00f5a49c00ef9f9500eaa29100e9a088 +00e1967d00c5795f00c2785b00c0775700bb745400b26e5300a0654f0093634c +007e5c3f0077573e0070523e006c4f3f00684c410068473c006c423e007d4c45 +0093575900b7656b00be6c6900c5736800d6816600e6876400f3866300f7895b +00f38b4f00f48b5400f68b5900f38b5c00f18c6000ef8a6200f0886300f18267 +00ee766900db526100d4495d00ce415a00cd3a5300c7375100cb3d5600c94658 +00d66a5800dc755d00e2816300e9956f00e7a57000dcad6800d0ac6000c1a963 +00b09f6200937844008e703d0089683600815c2e0080562f00894b3000914a2c +00946437009d6c3f00a6754700b7854d00c59a4400cdac3d00d7b43900dbaf3d +00e2af3400ecac2500f2a31900f3962100ec8d2e00ea863400ec7b3200ea7233 +00d8703700d4703500d0703300c96e2e00c96c3700cb734300d07d5500d68c63 +00dc9b6f00deb37c00dabb7e00caba8200b8a97a00a2a17800928f6500797a58 +00665b4d0060444d006f304c008729480097264400ab2d4000be384200d44544 +00da514900d8575200d4625c00d46e6400d6766a00d3706e00d5636c00db5c68 +00e7596300f0525a00ed464f00e33d4700d7424600d64b4a00d35e5000cc6c59 +00c47b6500c8837200d38f7c00de948000e2948400e6868800eb758a00f16a83 +00f66c7c00f46c7400ea646d00db5e6400cd635e00bb6f5900a67655008c7350 +00756c4c0066694a005b70480055744a0051724d005170500050774d004b7f4c +0049814c0046835200458b50003e954e0034984a002b914d0026944f0026a64e +"/> +<palette number="571" name="Fun_Stuff" data="00295857002b6b3e003669400042674200566943006b6b450073703e007c7538 +008b7f1c00937f17009c801200a8811300b5821400b77e1200b97b1100b67813 +00b375160099702c00946c360090684000985b4900a04e5300a24a5800a5465d +00a14d6c009f516a009d5669009b57690099596900955b6800915e6800856562 +007773580055864100488f40003b984000309739002697330025962f0025952b +0023882500298932002f8b3f003e8642004e814500517d4500557a4500616d45 +006a5f4f00724d5c007d495600884550008d3e4a00933845008e354600893347 +00732a4c006b274a00632549005c284a00552b4c00512c4e004e2d5100483258 +0048395d00554b5000605943006c683600706e310074752d007e7d2d00878727 +009b971b00a29a1200aa9d0a00a4970b009e920d0097900d00918f0e00858c0f +007d870f0088700b00885f0e00884e1100824a14007d4717006b461c00624421 +005e41270061392d0065313300612f37005e2e3b00582c42004b2f4c003b3152 +003535560033396100363264003a2b68003926680038216900381b6900381a6b +003a1b66003c1866003e1566003e1265003f0f6500410c660049106100521759 +0061205100732d4600712f46006f3246006e3743006b3a3f006c3d36006c4529 +0067491a005b4819004f4818004945170044431700354012003239100032330c +0030330b00362d0f00362d1200362e1600372a20003b252a003d2333003f213b +004e254c00542b56005a3261005f35650064396a006e417000734771007f4c73 +00875672009f6f7600a5757400ac7c7300b18b6d00b9936800be966000c19661 +00c97d6500c97d6100c97d5e00c9805500c8824200c1863300b7822f00ac752b +009c6f24007f7a1b00758016006b8612005f93150053991a004a971f004b9827 +0043953300409538003e963e003e964a003f9152004f8e52006e834f00818046 +008d7d3d00927937008c7334008f6c30009b5d2c00a24e2c00ac462c00b6442a +00b5492500b7492300b94a2200b4422400b0342c00b4293100b2263000ad242b +00ab2a2200a22e1500912a1100841f100079171300720e15006b0a1b00650c1b +005a0f1d004d0d230042102d003e11350038113f003a10470039104b00380d4c +00380b4f003a0a5200390a52003c0851003c064d003b0649003a0d41003c153e +004020350044292c00492f2500492e2200462f1d003e3220003b362300373a25 +00383c26003a3628003c2b2a0038213200331a3b002e1544002e114b002f0e52 +00330b580036085e003d066400420a6a0043106e0042177100431b70003f1e72 +00421972004a1770004e18710050197200511a7000491d72003f1b71003c196e +00391c690036246400352f5b002e315a0028315d002533610024396500264163 +"/> +<palette number="572" name="Getting_a_Tan" data="0081411f0083412000803d1e007d3a1c00712d140066210d0063200d00611f0d +005b1b0a00581a0a00551a0a00511b0a004d1c0a004c1b0a004c1b0b004f1c0b +00521d0c006a2b1700743519007f3f1c0088461d00914e1f00954f1f009a5120 +00a7592200a95b2100ac5d2100a9591e00a6561b00a15119009d4c1800914112 +0086390f00712b0a0066250b005c200c004e18090040110700380e0500310b04 +0018020000100100000901000005010000020100000101000001010000020100 +0003020200100803001c10080029180d003c2819004f3925005a432c00654d34 +0090744e00a07e5000b0895200ba8f5500c4955900c5965900c7985a00c6975c +00be9056009c6a380086562a0071421c00673a18005e3215004c2710003c1c0b +00220b020019060100110200000c010000070100000601000005010100040001 +00030001000400010004000100040001000400010004000100070101000a0202 +0019050100220801002b0c0100300d0100360f01003f14020048190200541f05 +00612708007b370d00833e0d008b460d008f490d00934c0e009a531200a45b17 +00ba722e00c4823d00ce924c00d19a5500d5a35f00dcaf7300e2b98200e8c497 +00efd3a700f9ecc300faf1c700fbf6cb00fdfbcb00fbf5c300f8edb500f6e1a7 +00f6ce8b00f7cd8300f9cc7c00f9ca7500f9c96f00f4bd6300f2a75a00ec934c +00e8834500ed753d00e9713a00e66d3700de613300cb552b00b5432100a32f17 +00891c0b007c1a09006f180800651808005b180800481407003d110500360f05 +00330d0400380c03003b0d03003e0e0300461002004a1201004d1400004c1500 +004e17020050190300531b0500581f09005f240b0062280e00662f10006b3614 +00743f18008f61320097693b00a0724500b1875500c19a6200d0a76900d6b06e +00deb36f00dcb06f00daad6f00d1a66d00c69a6800b58b5f00a5794f0093643f +00814e30006c3921005826140043190e00341109002a0b060024080500200804 +001b0602001a0602001906020018060200160403001404040013040500120406 +00100507000e0607000c0607000c0607000f070800150c0b00201512002f2419 +0043342400594733006f5c44008570570098846e00ab9b8200bfae9600d2c1a7 +00e3d3b300f0deb600f7dfb400f8dcad00f8d3a200f8c59500f8ba8a00f6b17d +00f0a66a00e8995600db8c4700cd7a3600be692f00ae5d2d009d5328008f4923 +007e4421006f3d1b00623618005a321800552f1700572d13005d2f110065330e +006f360c00793e0e008349130093531500a3611b00b4722500c3863100cf963d +00d7a64b00dcad5200e2af5300e6ac5500e9ae5700e9ad5800e6af5b00dca95d +00d3a05800cc915000c98b4e00c6804700bb723a00ac6433009b572c008a441f +"/> +<palette number="573" name="gipper" data="00beb49000a4a0950092969400808d94007281890065757e005b6e7b00526879 +00425a7200465b74004b5c76005d6170006f676a007a656600856462008d655e +0095665b00b4685300b9674d00be674700ba614000b75b3900b5593600b35833 +00af573000a55534009c533900844d3c006c474000634541005a434200484043 +004142460045464b003a434e002f40520022375300152f5500102d56000c2b58 +001d315800243559002b3a5a002b3a5b002c3b5c002c3c5d002d3d5e001c355d +0021375e002f3a5c002f395b0030395b0027355a001e315a00172e5a00102c5a +000e2855000e2855000e2856000f295800102b5a00102c5b00102d5c00102f5e +0010305f001032620010326200113262001131620011316200103061000f2e5f +000e2d5d000d2d5d000d2d5d000d2d5d000d2d5e000d2d5e000d2d5e000e2d5f +000d2f61000e3364000f36670011396b00183a6d001f3b6f00303f7300414574 +0064567b006f617d007a6d7f00816e82008870850098708e00a96e8a00ba7086 +00c9718400dc837400d9837500d6847600d07f7500cb7a7400bc707200aa6373 +008e5a6b00815c6900755e68006f5c69006a5a6b005a5670004a5074003c4b78 +002e477b001a467d0019457c0019457c0019447c0018447b0017437900174279 +00154178001540770015407700154077001540770016407600163f7500153f73 +00153e7200143c6f00143b6f00143b6f00133a6d0012386a0012366700113362 +000f2d57000f2953000f264f000e244d000d234b000b214a000a1f4800081e47 +00071e4700091e4600091e46000a1f47000a2049000b214c0010204f001d2351 +00433052004d345200583852006c44540079525900855d600096676400a76f66 +00b8786500d7865900d3875a00d0895c00c28b5f00b28a64009f8468008c7b69 +00766e5d006c685b00626259005058580040525b003a4c5f003845660039416e +003a416f0039426f0039426f002e4272002e447300304474003c4778003d487b +003c497c0036487c0030477d0023447a0018407600203e6e002f3f68003f4060 +004d4257005c43510065434d005d4352005841520059415300593f5300593f4f +005d3d4b00643c4400583846004835480037324d00282f55001a2f5c00123161 +0013336500203268002f356e00403c7400524877006555770074617700777077 +00887a73009a847400ab8d7800bb9a7d00cea57800dfa97100ddb06b00d9b061 +00caaa5d00baa05a00a8976000979163008c8663007d7c630076726000646561 +0053586000434e64003248690023416d00163c6e00153b6d00143a6c00143a6c +00143a6d00153c6e001c406d002a486c003a526c004a606d005d6d7000707b76 +007e8681008b928c009c9e9200ada79600b8b39700c5b99000d0bd8800cab989 +"/> +<palette number="574" name="Glade" data="00477140001e421b001035150003281000012711000027130000271300002714 +000026160000251600002517000026180000271a000026190000261900002619 +0001261a00052b1e00093320000e3c23001e5332002e6b420038774c00428356 +0066a9660082b96d009ec97400a0c36d00a3be6700a1b75b00a0b0500096993b +00818a2f004f631c003a5b1b0026541b0020551f001a562300215b2500286028 +004d85350066923a007fa040008fa63e00a0ac3c00a3ab3d00a6aa3f00aba746 +00aba243009d904000938c40008988400088873f0088873f008c853b00908338 +008a7b230081782200797521006e6d1e0064661c005c651b0054651b004d6b1b +00497222003474290040812b004c8e2e00539430005a9a320058a8480052b360 +006dcb79006ec97a0070c87c0060b9750050aa6e004b9d6200479056003a7743 +002a5e2b00093b1b000631180003271600022515000224140001231200002210 +000022100000220f0000220e0000220e0001230e0002250e0003260b00032809 +00042c09000f4316001f5925002f703400387d4000418a4d004b9c68005ab170 +0088c7740092bf6d009db86700a2b25e00a7ad5600b3a94400bea33000c6a32f +00c99d3000b49c2f00ab9a3000a2993100908b300078792a005b682500415822 +0023431e001a3f1f00113c20000f3a20000e3920000b3820000b391f00093720 +0007331e00052a1b0005281b0005271c0005261b0004261a0006271a0007271a +000829170008281500092813000b2812000e2912001c33110031401200434c12 +00514f13006d5e10006e600e006f630d00685b0e0059540d004d490a003b4104 +001a2e0100162b01001329020013280100162900001b26000019240100192302 +001925040019210300161f0300131e03000e1f05000a1f07000720090006220b +001031150018371800213d1c00314b22003d5c2a00476f2f00577832005f7d32 +005f7e3400537c3500456f30003a6228002e531f0024481c001d3e17001e3d15 +0028430d002e470c00344c0c0043581000526514005a6b170067751900798222 +0090972b00a1a63700b0b64200bbc04d00c1cb5100c0ca4e00bbc64f00b1bc4f +009daf4800839c3a00698e32005d8a380059954c0055a05f004dae710050b777 +005dc27c0067c5790066c3740063b469005e9a5100547e360045681e00375616 +002a4414001c331200102a110009231100062113000420140003211300032014 +0002201500012016000022150001241400022513000224100002240d0003240c +0003250d0003240e0004240d0005230e00082410000b261200112c16001c341a +00273d1c0030411700324a17003350180032571e0039591b003e5e1c00446019 +0047632100506925005e7432006d8943007a954e006e8a4500607335004a6c39 +"/> +<palette number="575" name="Glory" data="008f573e0043456e0044456700464561005d525200745f430082653c00916b36 +00a0842a00a28a2e00a59032009e954500979b5900a6a76a00b5b47c00bbbc7c +00c2c47d00ccbb6900d3b45c00dbae5000d99a4700d7873f00d4854400d2834a +00d0985f00c9aa5400c2bd4a00c3bb4000c5ba3700c3b33500c2ad3300c5a42b +00c6a22e00cbaa4300ceb53c00d1c13600d7bd2c00deb92300dfb71d00e1b618 +00deb20800dab50900d6b80a00d4ae0f00d3a51500d2a11400d19d1400cc8914 +00cf832000c8751e00be722300b46f2900aa613000a0543700984e3a0091483d +00872a37008b2d340090303200993e2700a34d1d00a9531d00af5a1d00b46c1a +00b87a1600b08f0900b1950b00b39b0d00ad9b0c00a89c0c00a58e1200aa8025 +009755480093506900904c8a00994a9100a3499800a54d9600a7519500bb6c81 +00bd7a6200b8923600b79a3300b6a23100b69d3200b7993300ae8e3c00a2703f +007b464900733046006b1b44006b1c3e006c1d3900761737007e0e290087121b +0086181d006f152d0060193900511e45004822480040264b00372a530031375b +0028436b002b3f73002e3c7b002f387d00303480003c267c004a1978004b156d +0059176100753357007b395200813f4e00935051008b6151008269530073655b +004956720038457f0027348c0023338d001f328f0019288a001f218100243075 +001d256b0032225e00351d5b0039195800451055004a124200491935004f1f31 +003d3f2f003143400026475100214d5b001d5366000f4d740012427e00223898 +003229a50050129e005b119d0067109d007b0f9100801a86008f316f00a73c60 +00b25d4500b8613e00be653700c05a2f00bd512f00b44b3c00af3e3a00ab2839 +00991e4e006b136300641467005e166c004b1e7e00481e83005b277c00693672 +009f455900a74c5200af544c00b1634a00b9734d00c6824b00cd8e5700cf9455 +00da964100e7983900e28c2e00d8861a00d37e0b00c36e0b00ad5f11009c4b13 +006f342800682d2a0061272c005a212e00572232005b2e2b006d372500843a21 +008c4a1500905c1100885810006e4c0a005a4312003e3a20001f2c280012282e +00122c38001e3232002e332300452d200054281300601d0d006c0f1a006b0b23 +00610d34005611480052165400551c5a005f2a59006a3a4d0076354100823432 +008e3a1d00933214009232150098381500a13c1900ad472400b6542e00b76239 +00b56e4f00b27c6d00a8846f00977c6b00947585008369890072538500773a92 +006a289900621f9700671295005e0d8f00590b8400580a7a00581177005a237a +005f377500643e7500624f74005c616a004f5e660048596700414d61003c415b +004235580052225300671e47007a2739009b372c00b2462000a4472b0098543d +"/> +<palette number="576" name="Gold_and_Blue" data="00a17d5400c7863d00d28c3d00de923e00dd8f3e00dd8c3f00d9893c00d6873a +00c9753700c06a2d00b7602400a5521a009345110086380e00792b0c0076290a +00732709005c300f005734140052381a0053351a0055321a0052321900503219 +00443f25003f3f29003b3f2d00344133002e4439002c4840002a4c4700225252 +001f5a6100216e78002979810032848b00368c92003b9499003a9499003a959a +0040888d003b828600377c7f00317277002c696f002b6269002b5b63002b4d57 +00283f4c001c2a390019243100171f2a00181c25001a1a20001c1a20001e1b20 +0032292000463523005a4126006f4f2e00855e37008d62390095663c00a56c3b +00b06f3600b56d3100ad642d00a55c2a009f5826009a54230088471a00753b13 +0051220b00441d0900371808002a1207001e0d0600180a0600120807000c0a0c +00070e12000c1e220015272e001e313a0022364000273b47002a414d002d4552 +002d404e002d3c4a002e3946002c3642002a343f00282e35002c282c00332522 +003f23190049230e0051250d005a270c005d260a0060250900611f0700551903 +00391305002f0f0900250b0d0020090e001b081000120d12000b121900031c23 +000226300001384600023b4a00033f4e0004465400064d5b00064e5f00044d61 +0004445600053d4f000636480005314300042d3f0002253400001f2800001820 +0000131a00000913000008100000080e0000090800000a0400000c0300020d04 +000e180f00152017001c2920001f2b2300222e260029362700333d2b00404331 +0055533e00857f54008e855700988c5a00a08e5700a6895500ad865900b19161 +00a99b7400a29670009b916d00847b65006c6f61005f6a66004f6e75004d797d +004b7f85005c8a930061919b006799a30077a7b20082b0bc008fb7c20098b4c0 +0099b1b20097abaa0095a5a2009398910094887a00937c67008c73520086683e +00855b2b0088531a0097521400a3561100aa5b1000ad5b1200a6551200a35115 +00a6521a00a9551e00ad582200b15b2800af5c2d00ab5b2b00ac5f2500b66428 +00c9703000d07c3e00ce844f00c1885700b0875f00a5846300967b62007f7267 +00686768004e5d6a003b58650031525b00264a51001f4548001942480014464a +00174c4f001b5053002153560027515a002c505800344d53003c494e00464548 +004c444b0054484c0066515100816153009c775700ae8a6500b49c7900b6aa8e +00bdb29c00c0b99f00bfbd9b00b2bd9d009eb69e0088a9a1006d969b0053868e +003a7f8900297b7f00237f81001d7b8100237379002b6f7700356b6900466c61 +00536c5c006468520074624a00825c4100925f3b0096623e00996d4b00957858 +008d7e65008c876f0086877100868571008b896d008e8668009185640098825e +"/> +<palette number="577" name="Golden" data="00946e420091724600896b400081653a00705531006046290059412500523d22 +003d3222003e3327003f342c0042383000463d340047423d00494846004d4c4b +005150510067656300706c65007a736700827664008b7961008e7a5f00917c5e +009576500093714600926d3c0089663a00806039007a5c3800755938006b5337 +00654f3400544838004e453b0049433f00484441004846440048464500494747 +004a494a004f4b4600554e42005a503f0060533c005f523a005f5138005c4d2f +005a4a23005d471700614a1800664d1a006e551e00775d23007d61270084662c +00a5804000b4914f00c4a35f00d0b16e00dcbf7d00e0c37f00e5c78100e6cc83 +00e8cd8000e4c97f00ddc37c00d6bd7a00cfb67500c9b07100bba16600ac925e +00927c5b008371590074665700665b520059514d00554e4a00514b48004a4545 +00454040003a3739003634350033313200323031003130300031303000303031 +002f2e2f002f2e2e00302e2e00302e2e00302f2f00312f2f00312e2e00332e29 +00342e240039312000393122003a3124003a3124003b3225003e362400433929 +00463e3600463f390047403c0048413d0049423e004c4541004e484400534b47 +00554d48006050410062503f0064513e0068533b0069543c006b533c006b5139 +0060492f0058442d0051402c004d3d2c00493b2c0041352b0038302700342e23 +00322e230039332b003c352c003f382e00493f310053483a0061554300726350 +009a825c00a98f6000b99c6400c0a26700c8a86b00d4b37100debb7400e0bc71 +00d8b87100c1a26600bb9c6400b6976300aa8b59009c7d53008a6f4b00775d3e +005c462f0059432c0056412a00523f2c0050402f004e4236004c453f004d4946 +00504e4d0060595200645b5100685d51006f5f4f0074635200786553007e6b57 +00887257008a7459008c765c008f795f00927f670099856c00a08c7200a7947a +00ad9a8100b4a48700bfab8700cbb38200d3b98000d6b97b00d6b97900d5b678 +00c9aa6a00c4a36300c09d5c00b58f4f00ac834300a37b3e009b733c00966f39 +00946c3700956c32009b713100a3783500ac813800b78b3e00bc914000c19541 +00c3984300c2974200bf964600b7934900ad8d4c00a3874e00997f4d00907950 +0089765400897557008d785a00947e5b009f865c00a68c6400ad936800b3986c +00b59b6e00b69b6b00b39a6f00ac967100a28f74009589770088807500807970 +007a726900736961006b635b00645c53005e564a005b524300574c3d0052493a +004c423600483e3000443a2d0042392b0040392f003f393300413a320043392f +0046392b00483a2700493b24004f3d210054401e0059421c005c421b005d431a +0062441a0067481c00705228007456300084653a00906e4000956e3b00a07843 +"/> +<palette number="578" name="Golden_Green" data="00283103002a320300282f0200262c02001f240100181d010014180000101300 +0004060000020300000001000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000100000001000000010000000200 +0000020000000300000003000001040000010400000205000003060000040800 +000c11000012170000181d00001c2200002127000022290000232b0000262e00 +00283101002d3701002f390100313c0100303b01002f3b01002d3a01002c3901 +00273501002634010026330200263301002734010028350100293601002b3901 +002e3b010036430300384504003b4805003c4905003e4a0500414d0500434e04 +00495403004a5604004c5905004d5a05004f5b05004f5b0500505c0500525d03 +00545e02005a6200005f660100646b0300696f05006e7407007a7e0c00858610 +008f8d0f008c8c0d008a8b0b008a8b0b008a8c0b008d8e0b0093940f009c9b11 +00a3a01500a5a115009f9c110099970d0095950b0092930a00939309009a960a +00aca51800b5ad1d00bfb52300beb52400bdb52500b5af2000aca81a00a6a317 +00a09f17009e9d18009e9e1a009e9f1c00979a1a008d9116008286110074790b +00575c02004d530100444a0100404601003c420100353c00002f3701002a3101 +00242b010019210100171e0000151c0000131b0000121c0000141f0000182400 +00232f0000273400002c3901002f3b0100323e0100384402003e4a0200465204 +00525c0a00697112006c7413007077140073791600707815006a701100656912 +005d6116005b5f16005a5d16005759170050541400454b0e00373f09002b3308 +0021290700151d0600141c0500141c0400141c0300161e0300182102001c2402 +00232b0200242c0200262e0300293002002b3101002c3401002e360000303900 +00323d0000344001003541010036420100364301003542020036420400374405 +003d4908003f4a0800414b0800434d0700455005004751070046510600485207 +0049530800495208004951070049510400485104004650020045500100455102 +0046520200475201004a5401004e580200525c0200555f020056620200566302 +0054610200525e02004f5902004c5602004a530200464f0200434d0100404c01 +003d4902003a45020038420200373f0200373c0200363a020036390100363901 +00363a0300373a0500373b0500363a060035380600323406002e2f05002a2b04 +0026260500212205001d200600191d0500171b060014180500111502000e1102 +000b0d0100080a010005070000030600000205010003060000050a01000a1001 +001218020019200200212a0200273002002a3302002c340200293302002b3403 +"/> +<palette number="579" name="Goldenrod" data="00edb81200fcae1200e8a82600d4a33b00c4935900b4837800a6808800997e99 +007274a2005d6b880048636e0034575200214c37001a392a0014271d0015241c +0016221c001b1c1900191d1a00181e1c00112922000b3428000a392d000a3e32 +0003644e0005685100076c550007644e00085c47000d544100134c3b00224831 +004b4b220098571800bb651200df740d00c9700f00b36d12009e6416008a5b1b +003f5430003056400021585100356b6a004a7f840057859100658b9f008290b2 +00938dc5008f72d1008c5fd6008a4cdc00813dd600792ed0007329c7006d25bf +0049227700332161001d214b00102d3e00033a31000241370001493d00045642 +00025d400005663e000457360003482f0005442b00074127000a351f000b2318 +0014171500171615001a161600533a12008c5f0e00885d1000845b1300b6770d +00eb8c09009f591000874512006f3114005a271500461e170033181e00451e32 +004d325f0056367f00603a9f005c35a7005831af005a21ae005421b5003d29a3 +002b3a8900204381002f4888003f4d90004e4a9c005d48a8007652be008a63b9 +00bf8f7400cb985700d8a23a00e1a32a00eba51a00eb9b1700d98c1300a97712 +007c5613003b3110002b2511001c191300181314001810130017111400151115 +0013181a001b1c2700242035002a2144003122530036265c002e3e6900285a7c +00276d8000027c5e00067a57000b7951001a5d3a004351270077511e0093510e +00e87e0a00f28d0b00fd9c0d00fc9f0e00fba30f00fba80d00feaa1200fea713 +00fca31000dc952600cf933700c3914800be7d6a00b0728d009970b8009b62de +009b46ec00973feb009439ea008532dd00772ad1006e21c400621db0004c1999 +003c1579002c1451002812450025113900301e2700573023007e3b2200855137 +00a5557000a3547e00a2538c008052ae00773ebc007827bb00602aa80046378c +0037357c00273b71000f525f0002635a00066a5e0009705f00197d6400367e73 +00435864004957620050576100523f5300392c430021303800182f2a000f2e26 +00062e2700032a250002261f0001231b00022118000220140001221700012a1b +0000311e0000372500003b2600013a24000538220008321e00092916000e2212 +00121c1200131811001416110015151000151310001513110015141000141411 +00141312001413140014141700111619000d1d1c000c23270008292f00043532 +00033d3c000440430005404100073d3d00073b3800063432000b2a27000f2621 +00122a23001f392e003a49470051575d004c796b0046958c00459b9500459871 +0051956200669b51008b942a00b98c1800e0920f00f69c0c00fba31000fda611 +00f5a92100e4ab4e00deb27200d0b47c00c2ae7c00d0b77700d9b86e00dbb23e +"/> +<palette number="580" name="Grape" data="0053435a005d4b6c00624d7300684f7b006a507e006d5182006d5182006d5283 +006e5381006d517d006c507a00655279005f5478005a597c00555e8000536185 +0052648a004d749f004a7da8004887b100458ab900428ec100428dc000428dc0 +004686ab00447d9d0043758f003f677c003b5a6a0038546000364f5700334543 +002f3f360029362a002736290026362800294237002d4f4600345752003b5f5e +006e8a8a007c9b9f008bacb4008bb5c6008bbed9008bbfdd008cc1e10096c4e0 +008fbfe00064a3cc005797c0004a8cb4004587b3004082b3003e80b3003c7fb3 +003c7eab00427da800487da6004c7ba300517aa00051769e0052729c00536f92 +005866860062587000614f6d0060466a005f4368005e416700633f6d00674170 +00673e7700603b6f00593968005638620054375c0051365a004f35580043304a +00392b40003427370038273b003c283f003f294300432a48004a2e5000503259 +005e37680060386a00623a6d00603b6a005e3c6800573d6100503b5a00493852 +004034490034353b00333639003337370034383800363939003b3a3d00444046 +00574c5e005a596f005d6680005d6c88005e7391005f7da2006283ad00608cb9 +005c94c50052a5d80052a6da0053a7dc0056aadd005aabde0061afde0073b6df +008fc0c8008eb3c0008da7b90090a1bb00939bbd009a8fac009e8a9a009c798c +008c64800076428400753f8300753d8200763b80007739800079358300743483 +0069337c00633173005e2f6a00592d6500542b600047285200392447002e243a +0027232d001f2021001e1f20001d1e20001f1b2000241c22002a1b2700301c2d +0042244300462749004b2b50004f3961005248750055578a005e5e96006e619d +007365a2006a6eac00666ca800636ba40066669700695c87006a557900635071 +00534d5f00514d5c00504e59005352580053565a00545c5e00525f6300526169 +0056626e00586474005b64770058607700545c770053517500514672004f3e71 +00432e60003f295a003c255400331946002813400024113a001f153500221c33 +00261f30002d21340036253e003f2c4b004d345a005a3e67006843730075477f +007c4f8a007b5999007564a5006e6dae006772b5006574b400607bb3005c7cb1 +005b7daf005b7aaf006074af006876af00707db0007683b1007783b200727fad +006e78a8006b79a300697b9b005f7b980053788c00486d7b0043606800425555 +003f4b48003b423e00343d35002e382e0027332700212c1f001c241a00171d15 +0016181600181618001a151b001f142000221325002a122c00341634003b1a3e +00421e4500431f4a0045204a00462249004626480048294900462a4b0045284a +0043294600422b410043303f0044344100483647004a384c004c3a5000503e56 +"/> +<palette number="581" name="Lemon_Grass" data="003c65430021524d001a504e00134e50000d484b000742470008404300093e3f +000d332800153022001e2d1c00262d15002f2d0e00392f0c0044310a0047300a +004a300b0051320b00512d0d0051291000522a1600532c1c00542e2000553024 +00543f350053463700534e390053553800545d3800545f330054622f00576724 +00616b1b007e7c0f008b860d0098900c00a3951300af9b1a00b29e1c00b5a21f +00b1a32d00ad9f3200a99c3700a19834009a953200949132008f8d3300868134 +007b7531005e562d0052482d00463a2e00372c2900291e2400241b22001f1820 +00141817000f1a12000b1d0d0012250b001a2e09001e33090023390a0029430a +00314a0a00415612003f5817003d5a1c003a5a2000385b2500355d33002e5a3d +0021504c00214a520022455900243e59002738590026335600252e5400252451 +0027234900242c40001f2e36001b312d001e362800213c24002f4a1d00415d17 +0064730b007a800a00908d0a0097900b009f940c00a5950f00a4931300a49415 +009f9317009089210088872400818527007c842700788327006d7d2a0063772c +004d692c0045612c003e5a2c003e572c003e552d003f512d00424d2e00454a2e +004a4a2e0051512c004f522a004e5328004855230045582200465f24004b6825 +0055752b00607b34006b823d0070854000768844007e8b4a007f884d007a804d +0071764b00615e40005d573b005950370054472e00564627005e4720006c4c1a +00906714009f741100af820f00b3870d00b88d0c00ba930b00b5930900ac9008 +009d890600757307006c6e090064690c00555f12004c571a004451220043502d +00495245004b5249004e524d00535251005652520058515100594e4c00584944 +00554139004a3724004836200046361d00423417003e3313003b3513003c3b16 +004b50210051572500575e2900676d3300787b3b0088884200939246009e9949 +00a49d4800a59c44009f943d00968c36008e842d00887d26008375220081711f +008b7919008f7c1900937f1a009c812000a6892600b0912b00b49b2f00b19b35 +00a7963b009b8d42008a874300797e4100657440005265400040583f00324b3a +0028433400223a30001d342e001a302c0019302700193023001a3121001c3324 +0021382600273d29002c3d2a0030392a0034342b003a312a00412f2700492b20 +00512819005a2914006631110070390e007c410a00874a0800935708009a6109 +009e660800a0670600a36b0500a46e06009f6b0700956208008b5a090081580b +0074560d00614f0e004f480e0044480f003d4e0e0039550d003a5b0b00436309 +00516d090060770a006e7d0b007c810c0088850c0091890f00988c12009c9013 +009d9313009b961400949518008c941c007f8d210073882700637c3100547439 +"/> +<palette number="582" name="Magenta_and_Teal" data="00ab41b400ad319e00b0329600b3338e00b7359200bb389600c2399c00c93aa3 +00d436ad00d33baf00d240b100cf4cb900cd59c100c766ca00c173d300bc77d6 +00b77bd900a28dda009697df008aa2e4007fb3e40075c4e50070cae6006cd1e8 +006de5da0074e4d1007ce4c9007fdbbc0083d2af0082c9ab0082c0a8007aada2 +00809c9a009c819b00a97c9c00b7779d00b96f9d00bc689e00b9639c00b65e9b +00b1499500b54e9900ba539d00c561a500d16fad00d379b200d683b700df90b9 +00e29fb300e6afae00e5b6b300e4bdb800dec8c600d9d4d400d4d9d900d0dedf +00b2e7ee00a2e7ee0093e8ef008de7ed0087e7eb0086e6ea0086e6ea0086e6ea +0083e4e90078e3e90075e5e80072e7e70076e8e6007aeae60084ede60093efe8 +00b2f2e700b7f4e900bcf6eb00b6f6ee00b1f7f100aaf7f300a3f8f50098f6f8 +008ff5fa0080ecf6007de0ef007ad5e90072d0e4006bccdf005cc0d60055b2cc +004693b400457ea400456a940042608b003f5783003b4c77003e496e004a4972 +005d52710080687300896f680092775e00907a58008f7e52008c7f54008d8356 +008886640086846a008583700082826f007f816e0079786e006c777300647578 +005d7582005c78a2005f7ea9006285b100728dbf007e99d0008ba4d90099aee4 +00b6abed00c7a3ee00d89cf000df95ee00e78eed00ef84e000f37bd500f26dd1 +00f45bd000f235d700f22cda00f223de00f31adc00f319d500f118d100ee19cc +00de17cb00cf12cb00c10dcb00b80dc700af0ec300a10fbc009512bb00911db9 +008c2cb7008f4ab5008f51b2009059b000926da9009379ab009c89ae00a59ab1 +00c1b7c800c9bacc00d2bdd000ddc4d200e5c6d100edc5ce00f2c4c600f0c3c4 +00edbcbf00eaa0c900e89acc00e794cf00e68ad500e782d500e87ed700e976d1 +00eb64d200e95dd200e757d300e14dd300d844cf00cf40ca00c83dc100c03dbe +00ba3ebf00b341c400a843c6009949c5008a4fc4007e5ac1007066c1006c73c6 +007196dd00719ce20072a2e70079a8f1007facf40085acf6008eacf50098b1f6 +00a4b5f600a8baf200adbef100aec0ee00a9bfea00a4bfe60097c1e4008cc4e6 +0081c8e50076cee6006dd6e80066e0e90065e6e70066ece5006bf0e40073f3e1 +007ff2dd0088ecd90096e7d200a4e1ca00afddc500b4dbc500b8ddc600bbe2c9 +00b8e4cd00b4e4cd00abe2ca009cdcc5008cd3c3007ccfc40073d1c80071d3d1 +0075d9dc007be1e3007ce5e7007ce3e70076e2e7006fe1e4006bdce3006fdce4 +007be1e50089e8e80099eceb00a4f1ee00abf6ed00abf5ec00a9f3eb00abf0e3 +00ade8dd00addbd300add1cd00b1cdc800b8c6c600b9c1ca00b8bacb00b6b1cd +00b19cc600ac88c0009774b0009063a40087589f00894fa300904eac009647ad +"/> +<palette number="583" name="Mahogany" data="0031090f0028060c001e03090015000700150007001500080015000800150108 +00160109001601090016020a0016020a0016020a0016020a0017020a0017010a +0018010b0019020b001c030c0020050d0025060e002b0810002d0810002f0911 +00340b1100350b1200370c1300390c13003c0c14003d0c13003e0c1200410d13 +00460e130055131500611817006e1d190077231c00802a1f00852e21008a3324 +00a44a3100a64c3100a84f3100a54c3000a24a2f00a24a3000a34b3100a24c32 +009e472f00913928008d3627008934270085302600812c25007f2a24007e2923 +00742420006d201f00671c1e0060181d005a151c0056131b0052121b004a0e17 +00440c15003a0912003507100030060f002e050e002c050e0029030c0028030c +0028020a0027020a0026020a0025020900240209002302090023020900210209 +001f0108001a010800190007001800070018000700190007001b0006001e0108 +00270208002c03090031040a0032040a0034050b0035050b0036060c0038060d +0039060c003a0812003908130039091400390913003a0912003b0a13003d0c15 +00460f18004c1018005212190054131900571419005c1517006217190067181a +006a191d0067171b0064161a00621619005b14170052121700471017003c0c12 +0029070e0022050b001c0309001a020800190208001702090016010700150006 +0015000600150007001500070015000700150007001600070017000800180008 +001a000a001b0009001d0109001d0008001e0008001f010a001f010a001f010a +001f0008001e010a001d0109001d0109001c010a001c0008001d0009001f0007 +0028040a002b050a002f060b0037090e00400b0f00470c0e004d0e0e00511110 +0053111100511012004f0f11004d0f1100470d0e003f0a0b0037090c0030070d +0026040a0025030900250309002503090028040b002c050c002f070f00310912 +00310a1300310a1300310a1400300913002e0912002a081100240710001f050e +001a010a00190009001900090018000800170008001700080017000800170008 +00180008001700080017000600180109001a0108001d02090021040c0028060f +002e091200340c16003a0e1800410f18004a11190053141d0058161d005b1821 +005b1920005b1920005c1a24005d1922005c19220059181f0056171f00531721 +0050151f004f131d004e121c004f101800501018005110170053101700551117 +00581118005a1117005c1117005c1219005b1116005b111600580f1200530d11 +004d0c1200470a1100440910004309100043091000430a1100430a1200440b13 +00450c1400470d1600470d1600450d1600410c15003b0a120037091100330911 +003008110030091100320a1300370c1300340b120030090f002c080e0029070e +"/> +<palette number="584" name="Marina" data="0013577a0016587200125a70000e5c6e000f6771001173740011777300127b73 +000d8a74000e8b7500108d760014877a0019827f001e81870023808f00247f94 +00267f99002c77ab002f77af003277b3003378af00347aac00387ba7003d7ca3 +006788890075928800849c870088a08e008da496008da394008da3930095a391 +008ba193006595a800548ba6004381a400407d99003e798e0040798c0043798a +00417780003b707d0035697a0033667800326477002e6175002b5e73001d5272 +000e446f0002376a0001396900013b69000341690006476a00064d6900065369 +00056a6d0006726d00077b6e0007826900078a6400068c6300068e6300058d61 +0006845d0005725e00087366000b756e000f7771001479740020817f002f8584 +00438b920048929d004d9aa800559dae005ea0b400619fb500659fb6006599b8 +006195c0005b90cc005f93ce006497d000689bd2006da0d40075a4d40084a1c2 +00968a8e008c818a00827986007d728400796c8200726f76006b5d5f00625959 +00475960001b5e7d00145e80000e5f84000b608600096289000666890004668a +000457880004548a0005528c0006538e00075491000a5694000f599800145e9c +001a639f002267980024649000276189002a5b7b002a566f002a516900234e61 +001b34390016292d00121f21000e1f24000b2028000623350003243d00002440 +0001294800003c69000041720001477b00024f860003538e000357950003599c +00055ba200065aa200075aa300065aa400065aa600075ead001266b2002376bc +003989c7005ba9d4005eaad30062acd30063b6d1005ebcd00062c1cb0063c7ca +0061bbbe005ab6bc0053b2bb004baaba0047a9bf004ca6c4005ba7c80066a8ce +0070a5d2006fa0da006c9ed800699cd6005f95d200568bcd004e85c8004881c5 +003f7dbe003d7abd003b78bd003b7abc003f7cbd004780bc004f85b9005686b4 +005884b0005280aa004e7ca3004b7b97004e8184005683760051847100477d73 +002d747b002d7578002e7776002e7a79002a778100237290001a6b9d001766a3 +001966a7001c68a900226eab002c75a9003479a600397aa5003876a50033709e +00326b9200356680003c5d6f00444e5f00483c5000502b400059212e00611b20 +006f141300760f0b00790e090079140a006e2014006b2a220067362c00624036 +00604d3b00535c4500496450003f6e5700396f5b00386d5a0032685a002a5a54 +001a50490011473b000a4035000639360006313c00022a410004263f00052940 +00052e49000534570002396800003d750000417b000043800000447e0001437d +0001417a00023f7600023f7500013e7200013e7000013d7000023e7100034277 +0004497e00075086000a578a00105f8b000f5781000d5379000c4d75000a4a72 +"/> +<palette number="585" name="Meadow" data="009981b0009a7eaa00a887b200b790bb00c398c600d0a0d100d4a2d500d9a5da +00ebb3ea00e4b0e400deaddf00cba3ce00b999be00a493a8008f8e92007f8c80 +006f8a6e00697f5b00697c5a00697a59006c7558006f7058006f665d00705c63 +006f4c770067466f005f406700543a5e004a3455004532500041314b00352d40 +002d293b0026263200242631002327300022272d0022272a0022252900222428 +002123290022232b0024242e002c293400342e3b00393040003e3246004a3951 +0057405e006e51750073567900785b7e00725c79006d5d7500675b6f0061596a +00445d4200375d33002a5d2500245e1e001f6018002060190022611b00266124 +0030652f00487465004c827400519184004f8f7b004d8d720044875a00378e45 +00218a2200278717002d850d002b8307002a8202002983010028850100288501 +001d7e000025850200228005001f7b090022760f00257116002d6d230031632e +0043534700474c4e004c46560050435a0054415e00593e62005e41660065466b +006d4e7500825f870086628c008b6691008b6691008c66910086628b007b5c81 +00664e6b005f4b640058485e0055465b00524559004b4355004d4258004e4358 +004d425700403c50003e3a4c003c3849003934440036344400393848003e3a4b +005c4665006a4f720078598000805e880089639000956a9c00a174a600a579ab +00ac7eaf00af80b200ad7fb200ac7fb200ac7eb100a97eae00a27da700987ca0 +00828c9e0076959e006b9f9f00639b91005c9784004a90650034934a00298941 +0020862c0022890e0021800f002077110021661700255820002c55240030482f +00463d4e004f41560058465e00654d6c00634b6a00664f6e0065526d005f536a +00504c5e00384b45002f49390027472d001b491a00144514001a4612001f4614 +00274520002d46250033482b003948360045484600494c570050536200575f69 +0059616800575e6400525461004d4f5c00474d550042474c003e3e4700463d4b +00494859004f525f00555d66005f6c7300637c7f006b7d83006983840062817f +00577c7800556f6f00545d64004f4c5b0052495c005b4b6400685170007b5a81 +0090679400a575a600b480b500bd87bd00c08cc000c38ec300c48ec400bc8abf +00b384b800ae7eb300ab7baf00a278a80097759f008a6c95007c6187006b5776 +00594f63004848520039423f00283729001d2f1d00142a150011290f000f270d +0010260c000c1e0c000f191200151b1d00181e1f00191c1e001919220022202d +00302f3d00403d4b0051475a006a55720081678700977c9d00ad8ab100bf94c2 +00cd9ace00d09ed400d5a0d700d0a2d300cbaac700c1b0c500c7b7cd00cabad6 +00d9c5d900d2cbd800d2ccdf00cabfe600c7b1de00c1a4d600b499ca00a98cbf +"/> +<palette number="586" name="Mermaid" data="00467a7500506c64005166610052615e004c5e6800475c7200435b7800405a7f +00365697003c589c00425ba1004c61a6005767ac005f6eb1006775b7006879b9 +006a7dbc006587cd005d8bcf005690d2005492d2005294d3005194d3005195d3 +004a81cc004979ca004972c8004266c6003b5bc4003959c4003858c400385bc5 +00385dc700335bcb00315ccf00305ed3002957d5002250d8001f4ed9001c4cda +001147da000f48d8000e49d7000f4ed4001153d2001258d100145dd1001866cf +001a6ccb002279c100267eba002b83b3002c83a6002e839a002e8495002e8691 +00318a8a002c878b0027848d0024809400227c9c001f77a0001d73a5001767ac +00135baf001047b2001042af00103dad001340ac001744ab002051a80027599a +0037747e003f84760047946e004e9b710055a2740054a1790054a17f004b9786 +00488b9200467cb3003f72b2003969b2003867ae003865ab003967a100386a91 +002f7172002b74680028775f0024775b00207858001978580017785a00167759 +00147656001c6b4d00256545002f5f3d00335a380037563300424e2c004e4d28 +0068592d00685d2a006962270066642500636723005b6a2200526e250049722a +00427634003b784f003c7755003d765c00437566004e766d0058756e00627268 +00726c4c00776b3f007d6b32007e6b2e00806c2b007f6b24007c6a1e00746a1d +0068661d00495a190043581a003d571b00355521002e532800274b2a0027432c +003a3c300046392d0053362a005a392700623d2500745024007c5f1e007c6918 +007775150067921a0060941d005a9621004e982f00459d40003d9c5300379868 +0036a1970038a49f003ba8a7003ca8af0036a7af002ea4a3002a9f8d00289675 +00298f610036873d0037833400397f2c00377623003b752800477f3a004e8c51 +00488e7600478f7f00469089004a9aa2004da0b6004d9ec2004899ca004398d2 +003e94d500358cd5002a85d5002281d1001d7dc7001876ba00166faa00186a98 +001c6472001e636d00206269002461630025636400206165001e5d6b001c5772 +001a547800164f770015477100183c65001b3154001f29440023233600272230 +0028232c0027282e00243034001f3b3d001a464400154f45001154420011583d +00145d3700186033001d6032002361360028664000286a4d0027705e0025746e +00257a7d00217f8a001e8496001d889e00218ca300298fa7003695ab004399ad +004d98ac005696a50061969a0069958c006a917b006891680067915500649143 +005c8f3300548e25004e8d1b00498915004786140046821800477d1f00497827 +004e743100566d3b005b6841005e644400606047005f5c4700565741004a573b +00425c3f003f695000357160002c786a00287b71002e827f00338487003c8284 +"/> +<palette number="587" name="Mesmerize" data="00141d33000c3b33000c5339000c6b3f0019784800278552002e915500359e59 +004d96780054977f005b9987005f948b00648f9000708792007c80950084829a +008c849f009f8a9a00ab8b9c00b88d9e00be919a00c5959700c9929900ce909c +00e08c9a00e1769c00e2619f00d3559e00c54a9e00bc419b00b33899008c3b98 +006440930032416f00284965001e515c00395160005551650063566900715b6d +00b3388700bd2f9000c7269a00d01d9a00da159a00d81e9b00d6279d00e4309f +00c4339500b8588700ac5c7c00a1607200b1636d00c1666800bd696700ba6c66 +00a17073009f7c78009d887d00ab858600ba828f00c8839000d6859200e98093 +00f07f8f00f3857c00f5847a00f7847800f1867900ec887a00e37f7f00da7b85 +00b67e9500a1788b008d72820086728100807280007b6c8000766780006e6782 +007a6589007f559600815c960083649600816c94007f7493007a7b8d0076868b +008c92860098818700a5718800a96c8a00ae688d00b1639a00aa5ca500a159a6 +00a45faa00b376a200c06b8f00cd617c00d15f7500d65e6f00e84c6800ec3865 +00f52c6b00f42d7300f42e7c00ef308000ea338400e13e8700d7489000ca4b9d +00bf4d9e00a446a100993fa4008e38a8008029aa007422a7005b2ca6005129a3 +00693199006d3a96007143940074479700774c9b00835ba0008e6e9e00947c9d +00a7869600c5858700c6808300c87b8000c56c7400c2646e00b5656d00a36b73 +0084898000738e8d0063949b005e939c0059929e006f81a300847da000948092 +00b3808700e78b7b00eb887600f0867200f4827700f97d7e00f9758700fa7690 +00f68e9a00f6909d00f692a000f895a100f38ba000f775a000f960a000f74ba0 +00fb34a100f5279c00f2239900ef1f9600eb268d00e0338600d2348600ca3684 +00b5348400b3338a00b2339000b8259000b7238c00bb309000c2369500d23e93 +00df548a00de6d8600e57e8500f1868300ee8e8400ed948800ed8f9000dd9398 +00c38fa000b38f9e00a4909c008a8f90006a787c00495c67003c475c00473060 +00571d6100670e62009a127800c31d8500d3218000ea2c7c00f23d7c00f1497d +00f64b7800f6527500f45d6e00ed6b6800e0756600d97d5900d98e5700da8c59 +00dc845500e4806400f16f7100f65b7900f14a8600ea419500e136a100d02ba7 +00bf29a400b52aa500ac29ad00ac29a800b636a700c63eaf00ce3da900d24da6 +00d858a800cd53a700c053a400b9549e00b54e9b00b5489900b74a9300c04e94 +00cc559600d25f9500d5619900d4659a00c4689600b25f9300996092006d6188 +0055577600595c77004f5b7c00544d7600774b710097457700ae388100c13377 +00cd326800cd306700a82c60007e2a5000731f440048193d001d2137001a1c31 +"/> +<palette number="588" name="Midnight_Wave" data="000f2397001027990011279d001228a1001327a5001427aa001428ab00152aac +00172fad00162cab001529aa001423a700141da400121b9e00111a9900111a94 +00111a90000c167e000a127400090e6a00070b5e000508530004074d00030648 +000103350000022d00000225000001200000001b000000190000001800000017 +00000017000001190000011c0000011f00000122000102250002032600030527 +0005082a0005072a0005072b0004062900040627000406260005072500060924 +00050823000306220002042300010224000103280001042d0001043100020536 +0006104f000d1e5e00142c6d0029427e003e598f004a639800576ea2006a81b3 +007994c1008bb4d9008fbadc0094c0e00094bee00094bce00090b1dd00809ed5 +005c7cbc004867ad0035529f00243e8f00142a7f00112479000f1e74000a1566 +00070f58000307420002053a000103320000022f0000022c0000022700000224 +0000021e0000011d0000011c0000011c0000021c0001021c0001021c0001021c +0001021b0001011b0001011d0001022000010222000103240002032a00020430 +0002053d0003074700050a5200060c5700080f5c00080f5c00080f5e00080f61 +000a10650010198100111b8300131e86001521890014228b00141f8900101988 +0010199600101a9600111b9600101b9400101b9300101890000e168f000e198e +0010228e001a3b94001d419600204898002652a0002c5fa900316cb2003672b9 +003571b1003168a6002d5f9c002b5c97002a5a92002953900025488e0021418c +001c3b8900163682001637830017388400163486001531890014308900132f87 +0012317800112e7200102c6d000d21610009175400050c470003063a00020430 +000103290000022200000222000002220000022300000125000002280000022b +00010335000103380002043b000205420003064d000306560004075c00040761 +0004076400040764000408660004096900040a6900040a6700040a6600040a62 +00040a6300040b6500050c6800070f6e00091376000c167d000f198400111b8d +00121c9700131ca000141ca700141ca900141ca500141b9d001218930010158a +000e1180000b0d7500080a690006075b0004054e000205430002033a00010334 +00010331000103300002033200020436000305380003053a0003063c0003063b +0004053b0004053c0005063d0004073f0005094400060b4900070f52000a145b +000f1d66001228700017327a001c3987001e3e94001f43a1002245ac002248b3 +00234ab6002448b5002343b5001f3db2001b32ac00172ba6001323a000111d99 +00101998001017980010189800121c9a00121f9c0012219b0012259d0012269e +0012269d0013269d0012269c0011259b0010259c000f249d000e239b000f229a +"/> +<palette number="589" name="Mint" data="006d98750075a9880077ac8f0079af960079ad93007aac910079ab900078ab8f +0075a080006e987b00689077005e837400547771004c6c700045626f00435d6b +004159680045566800495b69004e606b00566873005e717c0061777f00647d83 +00748c8d0078918f007c979100819b9500879f9a0089a29a008ba59b0092afa4 +009cb4a5009dae9b009baa980099a7960091a19600899b9600889a9600879a96 +00829495007b938c00759284006f927e00699278006893750067947300669573 +00699b79007ba1850081a5890088a98e008ba98e008ea98e008ea88d008fa78d +0087a5860082a083007d9b800075967c006e9279006a8e7700668b7600628675 +005d8370005d896e00638c6c0069906a006e936a0074966a007d9c6e007b9c74 +00769472006c906f00628c6d005a87630052835a004f8157004d7f5500477b50 +00487b4f0046715300446d5500436a580042655800426058003c565300364f52 +003744530038465600394859003a4a5a003b4c5b003e545f00455f6300496866 +004d6e6b0054796c0054746b0054706b00546e6a00546d6a00586c69005d7169 +006e816b006f866c00718c6e00708c6d006f8c6c00677f6b0060746600576f63 +0049615c00394a4a00334748002d454600223c3b00182d3000142a2c00152c2c +00122b32001d353b00293f45002c4549002f4b4e003855550046615f004e6967 +00556e6c00617e790063817b0066857d006d8782006e8b80006e927f006e9482 +006c948100699382006792830067908500678f88006b918d0071938c0076968e +007b9c940080a38a007fa387007ea385007ba17b00799e7300779b6c00729666 +006994600065925f0062905f0059875a00507c5700486d53003e604b00355448 +00354c4900385855003e5f5c00446664004e776c00548274005b8a7c005b8f7a +00508468004a7e630045795e003b6b500032624300305c450030554700315643 +003b5d4c004163580043665e0047685d0046695c0042675f003f5f5e003a5a59 +00395f57003b6156003d635500466c5800517c59005d875b006b8e6200759768 +007ca06d0082a17500829f79007e9c7a007c957f00738d7f0068857c00647e79 +005c77740053756d0055796700597c63005e846200658d680070936f007b9778 +008198850082978f0083949300849095007f8d94007c898d00778189006f7c86 +006d7b81006975800066768200697e83006a8285006e8987007392880072968c +006f9b8e0072a28b0075a58b0072a68d006fa88c0074a78a0073a587006fa085 +006e9683006990800068887d00667d79005f7376005869740056667500576574 +0056627300556474005b6b73005e6e74005d7177005d7477005b7478005a7478 +0058707500546c730052686e0051686800536c6200586f5d005d7a6200668e6c +"/> +<palette number="590" name="Mistic" data="001d18420017144100131240000f1140000c0e3b000a0b36000709320005082e +00070c24000c132300121a2200182029001f273100262c38002d313f00303242 +0034344500302f54002b2855002622570024215c002320620022206500222169 +002b266c00342f71003d387700454078004e487a004f4b7900514e7800535273 +0052556f004f556a004d5165004b4d61004c4c61004d4c61004d4b5f004e4a5e +005a4d5d005f5062006554680068566a006c586d006d5b71006e5e750073627f +00776288006f62930064598f005a518b004d468200413b7a003b357500353070 +00262557002a2852002e2b4e00363251003f395500423e580046445c004e4b65 +00535172005a5c84005c5e86005e61880061638800646589006c699000756f95 +0084769b008e7da3009985ac00a38fb500ae9abf00b19abc00b49bb900b095b5 +00af98ba00a78ea800947f9700817087007b6b820075677e006b5d7500635c70 +005b596e005b5973005b5979005a587c005a578000575582005553810050517c +004d4a78004c43750052467700584a79005b4d7a005f507b0064547a0064597e +005c5478005752710053516a00534f6700534d6500564d66005f506a0064546e +0067586f006e5e74006d5c75006c5b7600645577005a507800594f7b005b517d +00615c8b006e6792007c72990084779a008c7d9b0099879d00a28e9d00a78f9c +00a88c9c00a48b96009f8892009a868f008e7b8d0081738b00776d88006c6881 +005a557a00544f76004e4a72004c4971004b4971004b4b73004b4c72004c4d71 +004f506f00585a7600575a7600575b7600575b6f005557680054596500545b67 +00585b6800595c67005a5d67005d626a0061687200636977006368740061636e +005e5a6600544c5a00504a59004d485800493f560048355400443151003e3154 +00312851002e244d002b214a00241a46001d16420018133b0013113400100e2d +000e102e00151a3100202436002c2f3a0037394400484755005a5668006c6476 +0091798d009b7d9100a5819500b1869600b68a9500b6899400b2879400ab8092 +009b74900086688d00705c8b006052870053478600443c7f0038337d002f2d75 +002b29700026246a00232268001f2265001f275f00212c5a002b36580036435f +0048506a00585e7400686a7d00757a880083849500918da1009990a800a097aa +00a89caa00b39ea900bda1a600c6a0a400cba0a100d09ba000cf989a00c89195 +00bd8e9000b8898b00af82840096707e007a5f74006b4f670065465900533c52 +003e354d002f2a46002a1f4100241d41001e1f45001b2148001b1a48001b1645 +0018114300120d3d00100833000f0626000f07220009061f0009041f0006021b +0007031e000505250009092f000e0b3500140c3700150d380018133b00191741 +"/> +<palette number="591" name="Mixed_Berry" data="006e2350008c2450008e1e4e0090184c00951250009b0d5400950d5200900e51 +00670c53005009500039074e00300d470028134000331934003f1f2800431d22 +00471b1d00611816006b181500761915007d15160084121700891319008f141c +00ac191700b01d1600b4211500ac271f00a52e2a009d342f00953a350080403d +00633a46003b3b590039335200382c4b00412043004a153c004d143600511430 +0054151d004d151f00461522003d182c00351c3600331a3a0031193e00331446 +004510540076195d008c195500a2194e00b5184700c9174000cb163a00cd1635 +00c3122f00b90e3100b00b3300a20d3a00950f4200910e42008d0d4300820a43 +00770b4700670f4e005c0c4800510943004c08460047084a003d0e4e00361553 +00292a5c002b3460002d3f64002c4d5f002c5b5a00335f54003a644e00496445 +004e5c3e005e4a2f006f4032008137350085323500892d350089203b00891c42 +007f264a0071234b0064214d005d214b00572149004b284a003f3350003a3255 +003b3557003c485a0039445d0036416000343c62003338650030346a00282867 +001813500013114a000f1044000c133d000a173600101e24001e261b00282c1b +002c311d00483419004d351d005337220052382e00483b3200433b2d003a4327 +00245b25002e5b1e00395c1700415713004953100051550a00634e1100764118 +00803222007c2a2c0079272f007624320073203b00731d3e00771d3e007a1c37 +0091112c009b0e2700a50c2300a80b2300ab0a2400b10d2500b80e2400ba1222 +00b51327009e17330097163200911631007b153500680e3e0051114a003f114f +00221b5b001f235d001d2c60001a3e5d00164c5b00105f59000f7455000d8548 +000f8844001c853f00247f39002c793400436a300058572b0074462d0091332b +00c01e2b00c81b3100d1183700da164500de104800dd124500e1154300df1c47 +00db173f00d4103100d30c2600d5102400d7102200d50b1e00d0071e00cd0728 +00c8083d00c2093e00bc0b3f00a70e4500960f520082165b006e255a00573852 +0044444e003453490026653e001d722f00166b2800196121001d5a1e0026541d +002c45250038362b0048313100563338005a3a45005a454e005e5257005e5e53 +0052695400456f5700456f6300516861005c62580067574e007d4a4b009b3949 +00b3303e00c62b3000d4292100db231c00da211400d0211000c21f0a00b31d08 +00aa1b0700a61a0900a2140a009d120a00a3170a00ae1f0a00b5220b00b3200a +00b31e0e00b3201400b21d2000a61c2b009c1439008f144300811051006d155d +005f156a005c166f00541372004a1870003c246f0041326f00463b70004d4171 +004a436f004e466b00594466006244630063446200693a5f006c2e520071224e +"/> +<palette number="592" name="More_Blue" data="0051677d003d536e00344966002b3f5e00293e5b00283e5800273e5800263e58 +00243f5a00233f5f00223f64001e3d67001a3b6a00163b6700133b6400123a62 +00113960000f31540010314f0011314a0013314b0016324d0016324c0016334c +00132d4800122a47001127460011274400122842001228410013284100172d3f +001e3244002e435200354c5a003c566200415e6d0047677900496c80004b7187 +004f7c9f004f7fa0005082a2005586a5005b8ba8005c8cab005e8eae005c8eaf +00568ca900538399004d7a930047728d003a6482002d567700284f7000234869 +001932540013274a000e1c40000b16340008112900071024000710200007111b +0009111a00111c24001c28300027353c002f3e440038484c00495a5e00586e75 +007993a1008ca5ae009fb8bb009db9bf009bbbc40095b7c40090b4c40085aec5 +007fa4bb00648399004e6e87003859760030506f00294869001e3c5c0019324e +00152734001326300012262c0012272d0012282f00142c33001a353a00233c43 +002a4448002c4553002a43550029415800293f5600293e540027384f00223146 +00131d35000f182d000b1425000a1422000a141f0008131c0009131b000a151e +000c172000111d2300121e2400141f2500151f2800161f2b00151f2d00131d2d +000e172b000b152a0009132a0008122b0007122c0005102f00040f3300031137 +0002123b0002153f0002143f0003133f0003133d00031239000111330001102c +00020d2100010e2000010f2000011022000112240001172b00031d3500022340 +0002254d0001265e0001265f000226610002256100032460000422610005215d +000b2455000d26530010285100122b4e00132b4c00132b4900122b4a00132b4b +00122a49000f1f40000d1c3d000c1a3b000a183900071b3c00081c40000b2046 +00162e560017305600193357001b3459001c3355002136570022365b00243555 +0023324f00202e45001e2d3e00192f410014314700113650001338580010385d +0009326d000634750004377e00093b8e000f419500134796001a4492001d488f +001e4b950024509700255698002555970026559000204d8a001c458200173d7c +000e317800092b7500042673000125700002276c0001266c0001276d00052c74 +0008357c0010418400194d8e001e559400255b9c002763a2002869a8002f6fad +002e6dac002c66a700265da0001c549700174a8d00114083000c34760007276b +00021d620001165f0001156300021a6900021d710004267600082b79000d2d7c +0012357f0016397f00183e7b001b3f71001e3c63001f38580020354e001f3349 +001d3246001d3246001e3147001d3249001f374d00233c51002a425800324a5f +003a506600455d6e00536975005b707f005c708400586c860053698500536880 +"/> +<palette number="593" name="Morning_Glories_at_Night" data="002b3e93002f4498002c44920029448c00254582002246780022487200224b6d +00215358001e534c001b534100174e3900134a31000f472d000c4429000b4427 +000a4525000b4322000b3f24000b3c26000b3927000b3628000a3526000a3525 +0007381c00063c1a00064119000d471f00144d2600164e2d00195035001c5240 +001f5348001b5447001d5647001f59480022584e0026585500285659002a545e +002a496700274663002544600025435900254352002542500026414f00263e50 +00283a520027325600272f5700272c5800262857002625560025245400242453 +001f1f4f001f1c4e0020194d0020164d0021134e0021134e0021134e0020134e +001e154d001f184b001e1949001d1a48001c1a47001c1b47001a194400161941 +00101c39000e1f33000c232d000a272800082c2300072d2000062e1e00062f1e +0008322000153e2e001f4b3c002a584a002d5d510031635800376865003a6972 +003c628a004062930044629c0046639f004964a2004a64a3004962a100465e9b +004054960035428a0033408800313e87003240860034428600384784003e4c82 +00495a83004c5e88004f628e004f639200506497004f66a0004e66a7004e68ab +004f69ab00516aac005068ad004f67ae004b63b100465db1004156ad003d4da8 +0037409800333b9000303688002e3484002c338100272e770023296f001e2365 +001e1f5d001d1b56001d1b57001e1c5800201f5800212258001f2358001f2357 +001e26550021285500242b5500252c5400272e5300282f5100272f500024304f +00212e4e001d2b57001d2b59001e2c5c00232f630028336a002f3b6f00344275 +003d4a7d003b4a7b003a4b7900384a740035496d00334a6300314b59002f4953 +0030474f00243d4a00203a49001d37480016334300112e3c000c2937000c2436 +000d1d3b000d1c3f000d1b43000f1c4d00121b5300151c5700181d5a00181d5a +00181d5b00161d5d00151f6300141f6b00151f730017207d001821830018248a +00192890001a2b90001b2e910020359100273e92002f489100375392003d5d90 +0040639300426696004366980044669b0044679c0045679d0047679b0045679b +0040649d003b5c9f003454a2002c4ba4002543a400203ba0001e3898001e3691 +001e338a001e3287001f3086001d2f8300192c7f00172b7900182a7200192a6a +001c296600212c6600293367002e386b0032416e00374c70003a5571003d5b73 +0041617b00476983004d6c8d004f6e960051729d0050759f004d729e00496f9c +00476a9a0046659900455f9800445c96004359920040558c003d5182003a4e78 +00394b7000394969003a4a6300394b5f00374a5d00374a5d00354a5c00314860 +002f4465002d406b00293e7100263a750024377b002437800024388700273a8d +"/> +<palette number="594" name="Moss" data="008b8b6d004b503b00383c2d0025281f001c1f160013160e0015160e0017160f +003425190046342000584427006552330073613f0075653f00776a3f00736b41 +00706c43004e553f003c4635002b372c001f28230013191a000f1415000c1010 +000c0404000e02020011010000160201001c0302001d0302001f0402001e0600 +001d090200281711002e211800352c1f003e392c00474739004d4c3e00545244 +00675c4f006760550068655b0065605700625c54005a5b4f00535a4b00405343 +00314a38001b352100122e1b000a2716001025150016231400182414001b2614 +001e251b001c2316001a21120015190d00111209000f0e07000e0b06000f0803 +00190a0300331d1600442c1f00553c290061442f006d4c36007e5d4800886c5b +0095856900918465008e84620083795e00786f5a006f68520067614b0057513a +0048403000362b250035232100341c1d00351e1e0036212000382b270042372f +0052413c0052453e005249410051473f0051463e004f443600473c2f00413727 +003c2e22003a2b16003e301d0043362500483a2a004e3f2f0057483700605443 +007f7c6d00898c7e00939d90008ea3970089aa9f0087bbaa0082c0a90088c2ae +0084b9aa0074a69200729f8b0070988500738b7a00727f740069716b00546361 +0032504b002442430016343c00102d35000a272e00021e1e0001131500020c10 +0004090d0011150e00161a12001c1f1600272a21002e362b003640330039493b +003855410034614800316e4f00336d5100356d5400376e560040705700447b5e +00517c630071786700767b69007c7e6b00878769008d906c00919d6d0096aa7c +00a5c29200a5c58f00a5c98c00a3c689009cc7870099be8c008ab987007caf84 +0076ab7c006c937300628f7400588c75004f8e72005a8570005c786100556b56 +003e533d00394a3800344233002f382f002d302d002e302a002f33280038392a +00413f2d004e3e2d00563e2b005e3a25005d391e005c3316005c2b12005e2412 +0054321d0053372200523d270054453300534f3d00515a47004b614a00436148 +0039644000306437002a5d32002a542e002a502c00284c280029472a0030442d +00394330003a3e2f0038372b0034322600302c1d0029221400241a0d001c1308 +00170f0700140c0700190d090020140b0029201300352b1c00433327004f3e2c +00584d350063583b006c5f4100706445007168470070684700716943006d6942 +00686740005f5f36005255280045471e00353c1c00283114001b260900111b00 +000815000005170500091c0d00112518001c2e2200273c2e00354a3d004a5e47 +00646f5200797c5a0089896900999a6c00acac7000b9b57100c4c18700cdca98 +00dbd8a600e0deac00e8e9ba00e7e4bf00e1dcb400d0cbab00c0c09f00aaa992 +"/> +<palette number="595" name="Moss2" data="005264390058693c0055663c0052643d004f5f3b004c5b3a004c5a37004c5a34 +004a562d0047522c00454f2c00434c2c0041492d003f4529003d4225003a3f22 +00383d2000303118002b2c160026271500202113001b1b12001818100016150f +000e0c08000b0a060009090400080a0600070b0800070b0800070c0900081009 +000b130900111e0b0014210b0017250c0019240b001b240b001c250b001e260c +00262a0f00282c0f002b2e0f002a2b0e0029290e0028280e0028270f00282611 +002b2612002b2813002825120025221100211e11001d1b11001d1a11001d1912 +001e1a18001f1d1a0021201c00262620002c2c24002f2f2600333328003d3b2e +004643310056572b005f612900686c27006d71270072762800787a2f007d8035 +007e8337007c8436007b85350077813c00747e4300727b470070794c006a7355 +00646e5d00626d5c00606b5a005e6a59005d6858005c6658005a625800596055 +00585b4a005759440057573f0056563d0056563c0057553a0057553800555235 +00535134004f51360052573a00555e3e00566141005765440059694a0057684d +004f5f4d004a5a49004656450044544300435241003e4c3c00364437002f3c30 +002934280022271b002125180021241600202212001f2110001f221100202512 +00272a19002b2c1a002f2f1c002f311c0030331d0034381d00383c1d003c421e +00434821004b5528004d572900505a2b00535e2800576428005c69290063702e +006d7941006f7c460072804c0073804d0074814e0075824d0074824f00748053 +00707d5300686f4f00666b4c00646749005e5f410057573a004f4e320047442a +0037311e00342d1a00322917002b24150026211400232015002223170021261a +0022291b0022312200213123002132250022342500203326001f3023001f2f24 +001c2d28001d2e29001f302b0022342d0025372e002a3c31002e423a00344741 +003d514900485c500050665200566d53005a7556005975550056725200546e4d +00485c380044573400415330003a4b2a00314224002a3e1e0025391900203415 +001f2f1200202b1200202614002026150022281800252e1c002d362000374023 +00434b26004e542b00595d330062683b006d71450074784c007f845100888e54 +009093590093975c00949761008e916200898b620083875d007c7f5700737850 +006b714b0060674600525b450048534300414b41003a453e0036413b00323d3a +002b373b0024323d00222d3d001e2739001e2431001f232d00202229001d2126 +001b1f2400181d2100191d1d001b1e1b001e211b0022261e00252b2300273028 +002b352e00303c330035453600394a3a003d4e3a003e4f3b003e4f3b003d503b +0040553a00435a3c00495d3a004c603a004d5f3b004c5e3a004c5d38004d5f38 +"/> +<palette number="596" name="Motel_Decor" data="00ec5f2400e5371300e8273000ec184d00e7225e00e32c6f00eb2f7100f43274 +00d2465200c7414a00bd3c4200b72b4600b11b4b00a8125300a00a5c009c0b59 +00980c5600741c520064214b00552745004e3746004747470043514700405c47 +00457a4f0046824800478a4200527a3a005e6b33005f642b00615e24005f4d19 +00544811004a3017003d2c1d00302923003b252d004621380050273d005a2d43 +00a0617400c1926500e3c35700cdda5800b8f15a00b2f84500adff310099e630 +0080d728007ea524008093210083811e007268250061502d0059492d0051422d +00363a30002f522e00296b2c00266c2b00236e2b0022742c00217b2d0014612e +000e452600132c230015241b00171d13001b1914002016160024182100231820 +003c24370046323c00514142005d464900694c51006449500060474f005f4052 +005b3a5000484245004c463d00514a35004b4d3300465132003a4d2e0036482c +00283a2d00332e33003f233a004b253e005727430071294f00932e5a00a84362 +00af5e6700af6f66009c6c5d008a6954007c5d4b006f52430059463a00483b29 +00421e1800561a12006a170d006f140f00751111007f0d1400880d1700810e20 +0084113100971d5c00a4246800b22b7400cd3b7900e2666900fb9a5f00ffbb5c +00fff62400f3dd3400e8c44500e3b93f00deae3a00c7894300a8664d00975a50 +00904c52008b3a5e0082365f0079336000752d59006b265600512b4f00403246 +002e2947002d233f002c1e37002e163900310e3b0032093600370a2b003f0d2b +004a132800552824005b2a2800622c2d006c283000743a2b00794336007d4c46 +006a713800627737005a7d3600487a300038702900275f22001b4b21001b3520 +00192322001723270017282400172e2100133a2600134624001c4d270024562c +004c593f00555944005f5a4a00676254007b64590093625c006e4a55005a3b43 +008a46430085313000842c1e00af4a2400c8591b00d55a1200d65c1300cd570d +00b1350a00aa330e00a43212009f3a1e0094482b0092562c00907437008f9041 +00959e320097b72c00a0c83200a9c93200acdb2e00c8d82100cdb21b00b69a1e +00b67e1800a7500d00882c0d00711612005b0412004f001400470013003c0212 +00310018002b011e00280723001e0727001804270019072700120323000f0123 +0018002400160021000f00220013002b0012042c000812270003202700082228 +000c272300132c1d0021231c0029171e00350e1600420a1300480318004a0017 +0047031c004a0920004f0a2100500f1d0056160c00691809006f2b0e00643705 +00653509005a401600474b220040462d00373c31003742350037453600334533 +003d5a21005c6714006f6517007f7d0d00af8b0d00d57d2100e6762200ec741d +"/> +<palette number="597" name="Muddy" data="00503f3200594533005a4533005c4634005c4432005c43300059433000564331 +005445350056473600594a38005a4c3b005b4f3e005b5040005b5142005b5143 +005b5244005752450056514400565143005650410056503f0056503f00565040 +00565141005551410055514200534f4000514d3f00504c3d00504c3b004d4837 +004b443300453f2d00413d2d003e3b2d003b3a2f00383a3200373b3300373c35 +003a413b003e443c0043473e00484a3f004e4e400052504100565243005e5646 +00665b48006f644f0071665000736852007266500072654e0070644d006f634c +006c5f48006a5b44006858410063533f005f4f3d005b4c3a00584938004e4233 +00433a2c002e2d220027271d00202118001d1e16001b1c14001718100014140d +00110e0900100e0900100f090013140e00161a14001a1e18001e231c002a2e26 +00373a330052534d005e5d57006a6861006e6b6400726f680076756d00797872 +007c7d74007d7f76007e8178007e8176007f81750081817300817e6f007e7969 +0078716300655a4b00584e3f004b423400453d2f003f382a00353021002e281a +00281f1100281d0f00291b0d00291a0c00291a0b002b1a0b002c1c0d002d2010 +002e241400352b1a00372b1b00392c1c003e2f1e003f301f0042311f0044311e +0043341f00423620004239210042392100433a2200443b2400433b2600423b26 +0040382500393322003631200033301f002e301e002a2f1c002a301c002a311e +002d35240030372700333a2b00343b2c00353c2e00373d2f00373e300038402f +0039402f003c4230003d4230003e42310042423200464232004a4133004d3f32 +004f3f2e004f3e2d004f3e2d004e3f2c004d3f2d004d3e2d004e3f2d00513f2e +0054413000594435005a4536005b4637005c4a3a005b4d3d005a504100585244 +0056554800545448005354490051534a004e5149004c4f48004a4d4500494a42 +0048473f0045443b0043413800403d33003c372e0037322b00322f28002d2b25 +002a2720002b261f002c261e002e281e00322a1f00352d20003a312400403729 +00464034004e4a3e0059564b0066615800716d64007c786f00858178008b887e +008f8c8100959286009b978c00a29f9200a9a69900afac9e00b3b0a100b6b1a2 +00b5af9f00aea79700a49d8d00999281009088760089806d00847b6600817860 +0083775d00887a5c008c7c5d008d7d5e008a7a5d0087785a00837458007d7055 +00776c5200706750006e644b006c624a006d6249006b5e4900685c4800645948 +005e564700575144004d4b410043433900393b3100333429002e2d230028281e +0024231b00202019001d1e18001c1d1a001d201b0020221d0026251d002c281d +002c291e002d291f002e292000312a2100342b2400382f28003a342d00433830 +"/> +<palette number="598" name="Muddy_2" data="00634f4300524235005b4c400064564b006d5f540076685e0077685f00796961 +00776c6600706863006a646100605a570057514e004f49460048413e00443c38 +00413832003d322a003c302a003c2f2a003e322d004035310040363200403734 +00473732004b352c004f3327004d3024004c2e21004c2d20004c2d2000452d23 +003f2d2600382e2b00362d2b00342d2b00342d2900352d2800352c2700352b26 +0039281c003a2419003c2016003b1d13003a1a100038190f0036180f0033170f +002e150d0025170f0022160f0020151000201711002019130021191300231913 +002a201a002e221d0033252000332622003428250032272400312623002c231f +00291f1b001e1612002117130024181400271b16002a1e180035262000462e27 +005f3e2f006f463200804e36008c563700985e39009d613b00a2653d00a2653b +00a0673f00865d440074554200634e41005d4b400058483f004f423a004b3c34 +004f392f00553c31005b4034005b4135005c4236005d4337005b473a00574537 +00503d300046302200452b1d00452718004528190045291a00492d2300503529 +005a4a40005f50470065564f00645550006355510060524e005a4d4900534443 +004d3e3b0045342d0045332b0046322900493122004e2e1b00542a16005a2814 +005d2b16005e2f1f006034280060392d00613e32006949380072544800776057 +00826f610084756c0084766b0084786b007e72640073625a0068574f005a4d46 +00453c3a00393433002e2d2d002b2a29002827250021221f001b1c1900181715 +001715110012100b00120f0a00130e0a00190d07001e0e0600221108002f1608 +0046230a004a250e004f281200592d1700643417006c3514006e371a0072391f +007d371e007c45280079402b00773b2f00743f2e0068432f005e3e3100573a30 +00533d3300523d3300523d3300523c3200553b31005a3c33005d403400654537 +0075493d007a4b4200775043007650430070483e006241370053392f00463022 +00392418003824160037241500382519003c2b22004233280049382e004f3c33 +00533f3400543d3400533c34005038310049362e0043323000403031003f322f +0040333100453634004e3e390056433d005d4a4000644d4400634c46005e4c44 +00594941004e403b003e363400352f2c002f28250028221f00251d1800281a15 +002c1a1700301c1800361e1a0038201d003a241f003d2620003f2821003c281f +0038261d0034261b0032241b0030221b002f231b0033261f00382824003d2d28 +0043322c0045332e0046342e0047342d0047312800492c220048261e00482318 +00441e10003d170c00361309002b110700230e07001b0b06001a0b08001e0e0a +0020120d002919130037231b00422f260055403700624b4200574037005b4438 +"/> +<palette number="599" name="Muted_Rainbow" data="00c07b5300d1957400b8816600a06e58008962510072564a00675043005d4a3c +00534f2c00504b24004e481c004b46200049452400413d2a003a353000373633 +003537360035413500454e3700555c39005e5d3000685f2800695e27006a5d27 +00684a270068462d006942340069463700694b3b00684e3b0068523b005b4d35 +00464a2e002e4b3200264c33001f4e34001d4f35001b5137001a543700195738 +00215d35002962350032673600446b3300576f31005f69320068643300796134 +008c613800a5643000b2733300bf823700cf9a4600dfb25500e3bb6500e8c575 +00f8e27100e8ca6e00d9b36b00b99155009a6f40008c593c007f443800662b2c +00531e26004c14230059202600662c29006c332800723a2800814a2b009c652f +00c79d2b00d4a72f00e1b13300d1b23600c2b33900bdac3400b8a53000af982e +0099882600966d15008b5d1600814e1700774417006d3b180057341700462e1b +002c1f170029251900272c1c00252c1d00232c1e002b2f240035322e003b3538 +00492f3a005e2c3b00622a35006629300066282c00672729006e2c2500783723 +009a451e00a7551b00b5661800bd6d1900c6741b00d1782300da7f2700e6832e +00ea7b3100f7723000f2702d00ee6f2a00e97b2000de7a1700c7731500b27220 +007d552900604b300043423700393c34002f37320027332f0028362900363d20 +00573c1d0095421c00a13e1e00ad3b2000bc382300ba372a00b6332f00b33c36 +00ac523000b5652d00bf782a00c27a2900c67d2800c9882500c5911e00b68c21 +00a6811b0070651b0064591a00594e19004c3d1300482c18004e1e1d005f1b19 +00902e2300a1332400b2392500cf552700db772f00e9844500f5945f00f0a771 +00eca27d00e3977700e2966f00e2956700d68e4b00cb873800c6842800be7e21 +00be691d00c2631c00c65e1b00d64f2a00da452c00cb453100b53c4b00a43759 +007f415c0054415d004c3c5a0044415000394140004239350052392f005e3f31 +00793d38008040390087433a008d4a45008f4f480093544c00a4635500b17162 +00b16f6d00b4737900ba768600bb619600a34e990099528800a6538f00a35586 +00aa647100b1767100a48267009e8757008f884e00718a46006789360071862a +0078852800808b2c008d923300949b32008b9238007b833f00658938004a7d38 +003767350029642c0021642d001c6d2f00237a3800307c460039825500468e62 +0056945d0052915100458b4d00408245003a773700346b330033643900455f40 +0066634500767545008a7d4700a4804d00aa7f5000a9765300ad705400b45f52 +00b3575600b65f5500c1574800cc563e00d95a3700d9513200ce502f00c74c23 +00ae3e1f008f3b280081402c00773c2700783e2800804030009e5b5100c18364 +"/> +<palette number="600" name="Mystery" data="00500b0000400600003a04000034030000300200002c0100002a000000290000 +0024000000200000001d00000019000000160000001400000012000000120000 +00120101000b0308000d050c001008100019090f00220a0e00270b0e002d0d0f +004a1813005c1d12006f2211007d2a17008c331d008f3a250092422d00964e3d +0088554d006b6e8200667891006282a100577a99004d729100496d8d00466989 +0050576c0058495300613c3a00662e25006b2010006e1c0a0071180400741804 +00761803007c1802007e1801008118000080180000801800007e1800007d1800 +006d15010062120100580f01004e0c0100440a01003e090100390801002e0601 +00250301001d02010022030000270500002c06000032080100410e0300571504 +007328140075311f00783b2a00773b2a00763b2a006f3b2d00683c3100573d39 +00433d41002c30380028242d002419220024161e0024131b00251219002c0f14 +003c0a070042080300480700004a0700004d080000530a00005b0d0000651000 +0071140000861c0000901e00009b210000a0220000a5240000b0290000ba2d00 +00c8370700c93c0e00cb421500ce431500d1451500d8461300dc451100d54615 +00cb441700b6381100b1340d00ad300a00a02806008f2003007c1902006c1200 +00520a010049070100400501003c040100390301003204030029060900220a11 +001c0e1b0013223900112843000f2f4e00093555000534580003305200032f4f +000f324e00152a40001c2332001c1f2b001d1c25001b1c26001c202d00282a34 +0037323b005c4241005f43410062444200734b42007f4a3e00964e3900a84b2d +00b63e1600b43a1200b2360e00aa350f0096311100822e13006e2914005a2213 +004b1e1300251715001d14140016111300090a0f000506090005020300080102 +00180302001e04020024050200340a0200480e01005f140000781b0100912202 +00a9290200bc300300ce360200de3b0100eb3f0200f6430300fa450400fa4705 +00f6490700f4490800f24a0a00ee470a00e6450a00e0410800db3f0700d73f09 +00d73f0900d73e0700d93d0500da3a0100da3a0000dc3a0000da3a0100d73901 +00d1350100c8320000bf2e0000b42b0000ab270000a32400009d210000991e00 +00961e0000941f0000921f0000901f00008d1e0000861c00007c190000701600 +00661300005d100000550e01004f0c01004c0b00004d0a0100530c02005c0f03 +0066140400711704007a1a0300831c0300881e0300891d0400861b04007f1902 +00771501006f120000650f00005c0b000055090000500800004e0900004e0a00 +004f0a0000500800005308000056080000590801005c0b01005f0c0100630d01 +00660d0000690d0100690f01006810010066110100631100005e0f0000570e00 +"/> +<palette number="601" name="Neon" data="00153479001428880013239100131f9b00141ca300151aac001719af001918b2 +002514bb002c12be003411c1003d0fc000460ec000500cbd005a0bbb005f0ab9 +00650ab7007a07ad008308a6008c09a000930b99009b0e93009e0f9000a2108e +00b0148600b6158400bc168300c1168500c6178700c8178900ca178b00cd1691 +00d0159700d112a400d011aa00d010b000ce10b300cc10b700ca10b700c911b8 +00c114b200bd16aa00ba18a300b71b9900b41e9000b31f8b00b2218700b02481 +00ad267b00a72c6e00a4316700a13760009c3f5b0098475600954a5400924e53 +00885e4e0084644800806a43007e703c007c7635007b7732007b792f007b792a +007b7825007c6b1b0080621a00845a190086551a0088511c008e472100933e27 +00992e38009a2943009b254f0098245d0095246b00922672008f287900882f86 +00803892007251a5006c5ea900666cad006372ad006178ad005e84aa005f8ca4 +006a929400748f8d007f8c86008488830089858000927b7b009e727800aa6475 +00b5557400c5377900c4298000c31b8700bf168b00bc128f00b20b9800a608a0 +00870fae007719b3006724b9005f2abb005731be00493fc2003a4ec5002d5ec7 +00226fc9001491ca001399c90013a1c90017afc60020bbbf002ec3b9003fcab0 +0061cd9e0073c8930086c489008ec1810096be7a00a8b76d00b8b36000c6ae55 +00d1ab4b00dca63e00daa43c00d9a33a00d19e3800c59c3800b69a3c00a59a42 +008199530070945b0060906400588c680050896c00407f740032767c00256c84 +001a618b00134b960014459700154099001a369a00212d9b002a259c00321e9d +004211a100460ea2004b0ca4005308a7005a05aa005f04af006204b3006104b9 +005e05bf00510acb004d0cce00490ed1004114d700381cdd002f24e300262de7 +00143bee00103dee000d40ef000745ef00044aee00014dea00004fe600004fe0 +00014cd8000347d0000540c700083abd000a34b4000e2eaa001229a000182496 +00261a830029197e002d187a00351670003c16660043185c004a1a5300511c4a +00591e420060213a00672434006d262d00732a2600782e1f007d321900823613 +00883a0f008d3d0c00933f0a00994209009e460800a2480a00a5490e00a74914 +00a9491d00aa482600a9483100a4483c009d4b4700945052008b545c00815a69 +00775f730071647c0069698300626e88005b748a0055768c0052768d0052758d +0055728c005b6c8a0061658800665f8500685783006b4c82006d4283006d3986 +006b30880067298b0063278c005b288d00522b8e0049308f0040379000363e90 +002d459000254d8e001e548b00195b86001560820013657e0012687a00126976 +001368710014646d00155e6a00165768001650680016486a0016416e00163a72 +"/> +<palette number="602" name="Neon_Purple" data="00c039fe00cd3afd00c63bf600c03cf000b73ee700af40df00ac41da00aa42d6 +00a44cc400a157bf009e63bb009f72b900a082b700a08bb800a195ba00a196b8 +00a298b7009b8fc5008f8bca008487d0008086d5007c85da007881d800757dd6 +006a62d5005e55d3005348d1004c3ed3004535d6004432d4004330d200412fcf +004b32c900593ab6005636ad005333a4004d2d9b00472793004424900041218d +002f197e002415760019126e00131269000e1365000e1567000e1769000c1974 +000d2080000a26a5000c24b1000f23be00121dca001518d6001918da001e18df +00331ef1004020f5004d22fa005d24fb006e27fd007628fd007e29fd008a2bfd +008e2cfd008e2cfd00882af8008328f3007f27ee007b27ea007525de006f25d1 +006328bc005d29b600582bb1005229b0004d27af004b26ae004a26ae004824ad +004925ae004b2ab9004e29c3005229ce005228d4005228db005525e6005923ef +006824fb007326fc007e29fd00822afd00862bfd008e2dfd00962efd00992efd +00992efc00922df600892cf000812beb007b2aea007629e9006c2ae8006528e8 +005624eb005123e9004d22e8004920e700461ee7004120e7003e20ea003e20ec +003f20f2005123fa005422fb005822fc005822fc005a23fe005923fd005923fc +005a26f5005b28ee005d2be8005f2ee6006131e4006737e0006a3cde006e41e1 +007242e2007540e0007340df007240df007240de006f3dda00693fdb00643cdc +006032df005b2de0005729e1005426df005223de00441fdb00371bd5002b19cf +002116c8001313bf001413bc001513ba001414b4001515ad00191da5001c229d +0020299200212a9100222b900021248b00232087002a248400332983003f3082 +004c3a84005d4792006148960065499a006a4ca3006e4fac007251b3007a53bd +008e57d1009557d4009c58d700a759df00b15ae700b45fe800b261e800b061e8 +00ab5fe400a45dde00a15bd600a358d100a159cb009b5cc5009560c1008d5eb9 +007257b1006953b1006050b1005247b400443eb900393bc3003237c8002d37ce +00262ed400202fd8001a2ddd001530e1001030e9000832f0000934f4001338f5 +00203ff3002a45f3003349f0003b47ed00424aed004a47ee005752f0006b59f1 +007c64f3008e6ef500a174f400ae75f400b971f400bf6ef500c467f500c460f6 +00c05ef900bd59fa00b851fc00b249fd00ad43fd00a63cfd00a234fc009d30fc +00952efc00912dfc008d2cfc00892afd008529fd007c27fc007525f7007223f0 +006c21e6006b21d9006520cc00621fc0005e1dba00571db500521cb100451aa9 +003719a6002a16a00020159c0017139c001915a4002317b0002f1ab8003c1ec5 +004920d0005323d9005823de006326e6007229f000842ef5009933f900ad36fc +"/> +<palette number="603" name="Night_Flower" data="00273c48003f487a002b515d00175a40000f4d330008402700063a1f00043518 +0004311500093018000e2f1c001d2736002c1f51003d1c6a004e1a8400581595 +006310a6007512c4007110bf006e0ebb00630bb2005908a9005506a10051049a +004c0294004e01930050009200510195005303990054029b0055029d005a01a2 +006004a600730ab9007810bc007e16bf007917c0007419c2007017ba006c16b3 +00490c8c003b0c6c002d0c4c002710330021151a001d1715001a191000151c0e +0013281500154331001b494300214f550031436b004238820048308a004f2993 +005d06a400560791004f087e003d0a63002c0c4800240e39001c112b00131b15 +000b1f0f0003260c0003240b0003230a000321090003200900031a0800041608 +00040f0500060e0b00090d1100140929001f05410028094e00320d5c00461280 +005d10a4008122cf008421d3008820d700851dd500821bd3007315c0006411ac +00470b88003a126a002d1a4c002719440022183d001a1f2d00132a19000e2a16 +0011271e0003301900033019000331190002301500012f120001310b00013008 +00002b0100002601000022020000200200001e0200001b040000170600021507 +0003180a00062513000a2817000e2c1b0019362200223e2d0023493900225242 +00205948001955420012523c00104f34000f4c2c000a4320000c3c16000a360b +0006310400032d0400032c0400032b0500022906000126070001250a0001260d +0001280d00012c0a000230080001310800013308000234090004350f00063d16 +000845220015543d0014563d0013583d0018503d0021453a001c3a2c001c2d22 +0024142c0026103700290c4300380f540047086e004f00890053029200550e87 +004f1b7400302d4400273136001e36280017371c000f351200082f0d0007280e +00101c1000121a1000141911001b181300241a16002b1f1d002e1c3200321445 +0036174700361a4900351747002f1140002a1731002c1a33002f104500330c52 +004f039000570499005f06a200690bb2007413c0007f1bcd008423d6008429d8 +00822ad6007a23cb006e1ab9005f17aa00500c9700440385003a03800036027f +003b017b0036037a002a086a002e0d52002e0d470020123400201c20002c221f +0034292a003c3b37003d4b420037554900365a4c00295946001955390010482c +000a381f00082c1500092410000d1e10001019110013161100191612001c1614 +00191712001a15100019120f0013120c000f120a000d100a0009120a0007140a +0006140a0006150a0007150a000617090007190a0007190900061b0900061f0b +0007200d0006230d0005270d00052c0a00083507000b38080012340c001f3813 +00273a1a003034290036313900312a3a002925330021292e00312055003e1f67 +"/> +<palette number="604" name="Night_Reeds" data="00454847002c3a2c001a2b1b00091c0a000f200a0015250b001b270d00222a0f +003f3b11004d4810005b550f006a6119007a6d2300816f300089723d0087723f +008572410071693e00615c3d00524f3c00443d3500362c2e002f262800292023 +0013140c000e1008000a0c0400080b0300070a0300060a0300060b0400050d05 +00050e0500051104000515040005190400071c04000a2005000c2105000e2305 +00102a0700122f08001534090018360a001c390c001d390d001e390e001d370d +001c360d001a340e0018330c0016330b0014320a001232090012320900133209 +0016380a00193c0a001d410b0021450d00254a1000294c11002d4f1200375415 +0044571a0051573100515639005256410051543e0051523c004d4e3900454838 +00363f3b002b3c2f00203924001b38190016370f0016370e0016370e0017370e +0018370f001a370f001d391000213c1200233e140026411600304a1900415527 +00616e4500657048006a734b006b744a006d754a006c794c006b7a4e0069754f +005c6845003b5225002f4b1a0024440f00213f0e001f3b0d001a350b00152f0a +000e2308000c1e08000b1a08000a19080009190900091a0a000b1c0a000f2109 +00132309001a2708001d26070021260700292b06002e2e03002d310400282e04 +00241e0500201c04001d1a040018180300141703000d110200070b0200040603 +0002030300000102000001020000020300000304000004050000060600020607 +000a0c0e001010150017151c001a171f001d1a220024212300282823002a2e26 +002e332600343a2900333b2700323c25002d3c2100283b1c00223819001f3316 +001726140015231400132014000e1b13000b16120007121100050e1000040c0f +00040b0f00070e0d00080f0e0009110f000e141100161813001b181400201813 +001f1712001f171200201813001e1313001d101300190d110012090e000c070c +0006050900030308000103070001030500000404000005030000070200000901 +00020f01000312010005150200061c020008210300092605000c2806000e2a08 +000f2d0900102d09000f2c0a000d290a000c240b000a1f0a00091a0800081507 +0007100600080d0600090b05000a0a05000b0b05000c0b06000f0e080015120a +001e140f00241512002316170022181800221f190027261c00302d1d00353321 +003a3b21003c441f003a4c1e003c511b003a5119003a4f14003c4a10003b470f +003c460d0040450d0045430a004e3d070055370600573505005b370c005b3c10 +005b4113005a3f1300544010004e3e1300423c1600353e1900293d1800214014 +001e3f11001c3d0f001b3a0f0019360e0017310e00142c0f0013281100192919 +00242b2600302f34003d38440049464e0044414700413f45003d3c400038363e +"/> +<palette number="605" name="No_Clue" data="0073535c00775167007a526b007d5370007d536f007d536e007f546c0081566b +00946157009e674d00a86e4300ad743e00b37b3900b5843300b78d2d00b7902a +00b8942700b3a61e00b2a81d00b1ab1c00ada42300a99d2a00a6972e00a49233 +00987a49009071510089695900846161007f5a69007d556c007b5170007a4879 +007c3c7b007c2382007a208500781d88007522860073288400732c8200743181 +0083426c008c475f00954d530099574c009e6146009d6645009d6c44009b7843 +009a8342009c8e4200a38d3f00aa8d3d00b08e3900b68f3500b7913400b89333 +00b6993000b3973200b0963400ad943500aa933600a9923600a9913600a99037 +00a88f3700a78c3900a28341009d7b490099764d00957252008e655b00865b67 +00764d7f006e458800663d910060329b005a27a6005822aa00561daf005413b6 +00520ebb005208be005409bc00560bbb00570bbb00580bbb005b09bc005c08bd +005f05c1006104c0006304c0006504be006705bd006705bc006708b900640ab4 +005f0dac0053109c004e1595004a1b8e004b1e8b004c2189005029840057307f +00663571006d325f0075304d00762f4800782f44007e2d3f00832b3f00872c43 +008e2d4b0097296100992562009c2263009d1a69009c136d009a116f0097156d +0094286a00933467009340640094466100964c5f0099555900995d5600996653 +00986f52009a7b48009a7d46009b7f45009e824400a07e4400a1774600a26f48 +00a5584500a34f4300a14641009d4241009a3e410091394200853343007a2e47 +00722945006a1c4400691c4400691d4500671e4600642348005d255000502a5b +003f3265003f3267003f326900443570004b3a7300553e77005c437c00634c80 +00675381007b6274007f666d00836a66008b745e00937d55009a824e00a0874a +00a48c4600a58c4400a68d4300a78d4100a78e4000a48d42009e8b440095884b +008e80520088775a00836c61007e606f0077577b00714f83006a4889005d4092 +00472fa500432ca800402aac003c20b2003718b2003713af00380ea900350ea1 +00310d99002f0e90002d1288002d1383002d157b002a1574002d1672002c1a70 +00281f6c0027236800272d63002836630029446100274f5c002a545f002f5665 +0034566a003a536e0041517000454f700048546c0047596300475e5300445b47 +004a563f004b513e0054404500583550005d2959005f2261005c1f6700541f6c +004e206d0044246f004224740040237600402177004120790041237c00452481 +004c2483004e23820050258400552682005a297d00612c74006a336800733b5a +00803e490089413e008e45390091443b0092443e00924440009047400092563d +00935e3800926637008f6c3800896e3c00836a41007d62460072574f00725558 +"/> +<palette number="606" name="Nonsense" data="008da65100abac4d00b3ba4b00bcc84a00c3ce4b00cad54d00c6d05000c3cb53 +00a0a75f009195710083838400736f9200645ca000514ba5003f3baa003834a8 +00322ea600292597002e208e00331c85003d208200472580004e2a8300563087 +00764ea000865fad009671bb00a389bf00b0a1c400b5abc000bab5bc00c6bfb2 +00c5bfa000aeaa7a00a49f66009b9453008d7f49007f6b4000725e3e0065523d +003b2d5500312b670027297a00252e860024349300273696002b389a0030369b +0038379800423c91004a388e0053348c004f2e87004c29820048268300442485 +00332298002c2ea000263ba9002e4ba400365ca0003a629c003f689900447591 +00407789004a6e820057687a0065637300695a6f006d516c006840620066315a +006d2241006b193a006a10340060163700561c3b0053213e0050264200442c45 +0037284b0017245100132a53000f3155000e3052000e304f000e3141000a2631 +000e1d1b00111e1700141f1400131d1400121b140014181b00131c1d001a1f1b +0020201a00261b2600291b2b002c1c3000311a3000361930004019320048193f +00482261004721690046217100431f7800411e80003b2193002d23ac00252ebf +00223bc200254dcb002750d1002a53d800365cea004870eb005080e9005b8fe3 +006fabe4007cb2df0089bada0089b7d60089b4d20081aacb006da4cf0065a4ce +0061a2ca00679ab9006697b7006695b5005f95a7005c92980054818800577971 +005b6e4d00526b3d004a692d0045632700405d21003f511a0041461800474219 +004844220049493e004c4746004f454f0051405400563952005433500057354c +005c3647006137410067383b006f3c2d007841230083431c0085431f00883a1f +008b331c00892b2400872a2b00852a32007e293e00792a4400742d4800753848 +00754c4e0070504e006b554e005e584a00585d4100565f4200646940006b7640 +006f804300738c4100719445007fa252008eb760009fc67100add68500afe091 +00abdea900aad6a600aacea400adb99e00b7b09a00c0ac9200c5b38e00ceb57f +00ccad6700d2a95300d7b03e00d8c13400e0d32e00d8dc2d00cdd13100bcc639 +00a0ba460092ac550086a962007f9e6e00819977007a9a860081989e00879caa +008e9aae009890a6009a8f99009b899700958891008a848e0078778200667378 +005a727800527f780054927f0059a1820064b58e0074c59d0080d3a7008fddaf +009ce0ae00aedfae00c1d9ae00ced0a400d7ca9600d4c38100d7bd6b00dfb760 +00eaab5400f5a34900ed9b4100e4923600d3882e00c17b2f00b66e3200a3653c +0094634d00805e56006b5a5a0059575a00485155003f5855003b645b003a6f5d +003a7a5e00387b55003b76460043743d004c7439005b7a4200688c49007a9c4f +"/> +<palette number="607" name="Oak_Tree" data="005a451f0069532b006c562e00705a32006f5e37006e623d006d643e006d663f +00786c3e007e714000847643008d7d4d009784570096855f0096866700958667 +009586680085726800817360007e7558007e7352007e724c007f744600817740 +008f6422008f6416008f650b008d5e0d008b581000855810007f5910006e5315 +005f4218003c27130039210d00361c08004320050050240300572a09005f310f +0078462800744d380071544800745f4f00776a56007c6f5a0081745f00968767 +00a3977600cab99900d1c29600d8cc9300dec78100e4c27000e0c16600dcc05d +00d4b26d00cfb57600cab98000c3b47f00bcaf7e00b2a57800a89b72008f835f +00786e4d0051493b00413c2f00322f24002d2a200028261d00201d1600201c0e +0031290e003c2f0f0047351000543e170061481e0064492100684a24005a4324 +0056472000533b1f0054391d0056381b005a371d005f371f0068371f006f3d18 +0069412200634522005d4923005949270055492b0054493400574c3a00574c3b +0058493c0058443b004d3b340042332e003c2e2900372a24002a201e00221919 +002a1c180036241b00422c1f00482f1f004e331f00583b1f005942210059471f +005a491e004f4623004d4524004b452600453f2700433a2a00433b2b00433c29 +005842240066502700755e2a00806429008c6b290099762a009d732e009d782e +0097763000745e4200705f48006d614e006c6760007475770084858600928b89 +00a99f8900ac9a7900b0956a00af936600ae926200af8e6300b59a6300b39c63 +00b0976200a08d4b00978343008e793b0080652700684f1d00553f1a004a3718 +0043311d00463421004a372500583d2e006a4332007c4e350088533900915938 +00946236008b563800885337008650360080493700783e340070373200653533 +00513c35004c3c3500473d3600433e3600423f37003f3f31003c3a29003b3424 +00342e20002f271a003326150038291b003d2d220049392b0060493900785c47 +008f785b00947b5b00997f5c0095845a008d7c59008173520075664900695841 +005f4f3a005b463300573e2d005b3b2600693d1b0071411700764819007c4b14 +00774d17006b4e1f00604b25005b4930005b4738005f4a3800675639006e5b3c +00725b3800726136006f6337006a5c350065553500605439005a513a00584c3a +00554d3b00534e3b0057503e005e554200605845005f5c4a005f5f4b00585b47 +0053564000505138004a472d004a3d24004f3623005133240055352400603925 +006a42270073502c00805d3000916836009a7541009c7c48009d7b4c009b7a51 +0093764d00866a4800775f43006851380057422e004a39240042321a003e3015 +003e2f1200422c0d00493010004d2d16004d2c14005131130053341a00543a1f +"/> +<palette number="608" name="Ocean_Mist" data="0075c3c40071b1af0069a7a100629d9400589082004f8371004b7c6800487560 +00365e43002d58380025522d0024492900234126001e3824001a2f2300162d20 +00122b1d0011202000111c250012182b0010152b000f122c000f112d0010102e +0013153b00161b41001a214700222c4b002a3850002f405000344851003b5454 +00405e5800487063004f7d6800578a6e005b947600609e7e00609f810061a084 +005d9c87005aa0890058a48c0057a08800569d850053977f0050927900478272 +003e746700305e57002e5953002c5550002a514b00294d4700274b4300264a40 +002a503d002f563d00355c3e00355d3c00355e3b00345d3c00345d3e00365a42 +003855490031464c002d3d4c002a344d00292f4f00282b510025255400251e53 +0022154900201846001e1c44001f2643002130430023354300263b44002d4544 +00335246003c6b4900406d4a0045704c00476e4e00496c51004a685600446256 +00324b4d002d3e4c0028314b00252b4a00232649001d204700161a4000131739 +001216350016213700182a3b001b333f001d3640001f394200273d4500303e49 +00393d5800393a5c00393760003d3561004134620047366e00523f7b005a4a86 +00625c94007578a100787f9f007c869e007a8d9c0077909700729091006d868c +005b716c004b6561003b5957003756570033545800365856003f5c5400476455 +004c6a5600507858004f7855004f7853004d774d004a744900476e4500456941 +00345039002e48380028403700294137002b423800354a3c003a524100415d4b +00476a5b00588c7b005a9481005c9d880062aa910065b39b0062b69d0060b59f +005aad91005aab8e005aa98c0053a180004b987500448f6a003f8660003f7f5a +003e7c56003e7453003e7354003f73560041715c00477763004e806a005b8974 +00739c920077a09a007ba5a2007facaa0082b1af007eb1af007ba9ae0076a3ab +007095a2006b8c96005d82870051777700457367003e6a5a004068500040674b +003b7049003a714800397347003d784700427a4900497b4c004b7e52004b7d59 +004d7f5f00517f660058847000638979006d8d8500799191007f9098007f959c +007d9a99007f9e950089a492008ea3940091a397008aa2960086a496008aa995 +0090ae9c0099baaf00a1bfbd00aac6cf00b1cbda00b5ccdb00afd2d900a6cfcb +009bc7bb008ebcac0082ac9f0072a093006194860052847a0044746e00386268 +00315263002d4760002c3f62002e3a67002f356d003135700034346e00383569 +003d3a68003a3a6700383c6800353b6a00343766003737640034346100303361 +002d366500313d6e003f497a00515c8700626e98007080a5007895b3007eaabf +0084bdc80088cad1008ed0d5008ed4d5008ad6d50085d8d5007bd6d10078cdce +"/> +<palette number="609" name="Paige" data="005b564300595340005c5640005f5a4100675f40006f64400074663f0079693f +00856e3d00856f3e0085713f0085764500867b4c008d845300948d5a009a925e +00a0986300bab27300c4bd7900cec97f00d1cf8300d5d58800d3d58800d2d589 +00c4c68500b9bb8000aeb07b00a2a57500969b6f0091966c008c926900848c66 +00808764007b81630078806400767f650074806700738169007382690073836a +007483690074806800747e6700707a64006d7662006b74600069725f00656c5a +006065530056554300504c3e004b443a00453e37003f3935003e3734003d3534 +003e3735004238330046393100483c32004b3f33004b3f33004b403400493f32 +00463b31003d342e00362d2900302724002d2423002b222200251e21001f1b20 +0015151f0012121f00101020000d0e1f000b0c1f000a0b20000a0b21000a0a21 +000a0920000d0c2000100d2000140f200016112000181320001c182100231e22 +00332b24003d332700483c2b004b3d2a004f3f2a00544229005545290056462a +0055472b0052482e00534b3200554e3700554e3800564f3900544f3b00514e3b +0047473800424337003d4036003b3f36003a3e3700383e3900383e3d00383e3f +003a4142003b4547003c4548003d4649003f4849003f4a4900404a4a0042494b +0044494900474c49004b5049004f534a0054564b005d604c0066694c006f724b +0077794c0086824800898447008c874600938b45009b914800a4994e00aca254 +00bab66900bfbd6f00c4c47600c6c67800c9c97a00cccb7c00cdcd7f00cecd80 +00cecb8000ccc98400cbc98400cac98500cbca8500ccca8200ceca7e00cec979 +00d0c87300cfc77300cfc77300cbc47300c8c47500c7c37600c7c37600c6c273 +00c6c27000c9c26d00c8c06c00c7bf6b00c1b76a00b7b06900aba568009d9762 +008079550079735100736e4e006a6447005e564000524b3c0046403900393535 +002d2a350022213300191c3300141b3500131c380016203a001a253c001f2c3e +00303c4600354148003a464a0044514f00505b53005b665700676f5a006e765b +00737a5d00767b5c00787a5b0077785a0075735600706f53006c694f0068624c +00615c49005a55450056504300524d4300514b4100514b4100514d3f00554c3c +00554b3900544936005549330056493300594932005d4b32005f503300625435 +00615435005f5134005a4d310051473000483e2c0040342900392f2800342c28 +00302a29002f2828002e2727002c2826002a282500292622002a2520002b2420 +002b2522002f292400352d28003e342b00483e2f0051473100594f3200605536 +005f573b005d593f005a5845005556480053554c0051544d004e544b0050554a +0050554a004f544800545a4b00565c4b00575c4b00595c49005a5a49005b5844 +"/> +<palette number="610" name="Paris" data="00b04c4100b74b4300bb494500bf484700c2474600c6474500c6474600c74848 +00c4524800c55e4c00c76b5100ce765700d6815d00db8c6000e0976400e09d66 +00e1a46900e3b57d00dfb08300dbab8900cea98c00c2a89000bbaa9100b5ac93 +009ea59800929b940086929000818b8a007c8584007c8182007c7e80007e7b7b +008372760088646a007d5f6400725a5f0064585d0057575c0052585d004d5a5f +0039616300365b5f0034565b0040515b004c4d5b00504d5b00544d5c005d4654 +00673b4800771a3800721b35006d1c33006c1f31006c232f0071213100771f34 +007f324400893e4800934b4c00a34e5100b3525700b4545a00b6565e00b36066 +00af686800a3796c009f8076009c8880009e8f8500a1968a00a5a78e00a7b893 +00b1cca200bad4a700c4dcad00c4dcac00c4ddab00c2d9aa00c0d5aa00bfcba5 +00c3c6a100c8bd9c00c7b79900c7b29600c8b29300c9b29100cdb38b00d1b086 +00cea28200c99c7c00c4967700c0927300bc8f7000b6856900b07b6100ad735f +00a6735a008e735900836e56007869530074675200716651006e634f00695c4f +00675748006f574600785844007d564500835446008e574700995b4700a56047 +00b0674900c4715b00c7725d00cb746000d2746000d6705f00d86b5d00da6b61 +00e06c6300e06a5f00e0685c00e0675900e0665700de665400e0685300e26c55 +00e3715600e7785100e7785000e8794f00e97e5000e9835400eb865500ee8856 +00ee865700ea885600e68a5600e5895600e4895700e1865a00de836000dc8162 +00d6806200cb7d6100c77c6300c37b6600bd786900b7736800b16a6400af655d +00ae625800ae625600ae625500b05f5400b45f5300b9655500c36f5a00ce7c5d +00d6876300de9f7000dea67400dead7800e2b87f00e6bd8400e6c08b00e4c08e +00ceba9000cab78f00c7b58e00c5ad8a00c6a38500c2997d00bc8e7600b18671 +00ab7d6a00a67763009f725f00986d5d008e6a5a0088635900855d580084565a +00804c5b0083475800864356008b404f00923949009536450092344300912f3c +008e3436008d3c2f008b462d008c4f30008c5732008b5e37008f663800936f3e +009c784700a5855400aa956100b29f6e00baa47300c2a47300cca47700d2a876 +00d4ac7900d5aa7800d3a27200cf936b00ca866400c17b6100b9725f00af7362 +00aa746700ac766d00af787000b6787100ba7e6d00bf866c00c98d6d00d2926c +00db8f6900df8d6300df8d6100df8d6500e1926900e4966e00e79d7100e8a77a +00e7af8500e8b98c00e8c39000e6cc8f00e5d28b00dbd38800d4cd8200d0c47b +00c8bb7400c4b66b00bdb36a00b6b06700b1a76a00ad9e6f00a5956f009e8c6f +00998b6c0093816800927767008f6a6300895b5f008f555800984e4d00a34c48 +"/> +<palette number="611" name="Parrot" data="009c650800615b090049580e0032551400285217001f4f1a001b4d1800184c16 +00233a17002c39100036380a0035420b00344c0c002c59100024671400216d15 +001f7317002b831c0043891f005c9023006a8e3400788d460070854b00687d51 +00406f660030625c0020565200355f42004b683200566a2d00616c29007e7a34 +009e813900b07d4e00ae674e00ac524f009a45460088383e00872a3c00861d3a +00620e270051092400410522003b051a00360512003e07160046091b0058121a +006b221800923f12009b571500a5701900b3781d00c1812200c6842700cb882c +00db682800e2552100ea421b00e9381600e82f1200ec341700f0391d00ea4a1e +00ef622200f27b2100e17f1600d1840c00c0830b00af830a008c831000757a19 +003382310033713c0033604700345c43003659400043583b00515736005f562a +00655e1a006c5b0a00554f17003f43240038372600312b2800271c3900221649 +0037054400510a3e006b103900731037007b113500881036009d113b00b0123f +00bf0d3700ce143700cc153200ca172d00bd173100b117360098134300790f50 +00510c5b0042134e00341a410036193a00391934003a1d2000301e0d002a1606 +002f1306003c090b0045090a004e090900670806007c040e0091071400a20b11 +00a5123b00a01345009c144f0091184f00861d4f007622470067204000572339 +0046223d004424510048225c004c21670051257b00513e8d00545895005d6c8f +004b8e95004c8483004d7b72004d746a004e6d620052605300673e4700882f33 +009d302000b1341600b43c0f00b8450900b2530f00b8631200c1690c00cb5f10 +00e3452d00e0393200de2d3700d81b4900cc255b00b41e66009213690077276a +005b2c70003f276e0040266c0042266a0040226200482c570058324f00592f4b +00653e490064394a0063354c005e2b4f0062214a0066183b006615330066142e +00691323006f171700792514007c3614007d460f008f520c00a4670c00b07716 +00d9781b00e0772200e7762a00e5643400e5563300ed4b3600e3344200d12648 +00ca274100c22b4000b1344200a149480094524e00884d4500864a47007c4755 +0077394a0075333a006f392f006f3a1d00673a18006a38160072351700703e26 +007f46310096503300926235008f6a380092622a007e541b00674519004f2e17 +00321b140026121800230d2500210c3200290b34003911370052183c006a1f3b +00822b360099373500aa3e3d00c03c4600c53d5100be455c00c04b5c00bb4b6e +00ba4b8c00b15f8d009f648e009a63a5008a68a400695592004f4d8600495270 +004545560039323f00393432003b373400342a360027203e001e1c4f001f1756 +00231056002c0d4f0042174100571f3900752b2a009b411c00974d1a008e5913 +"/> +<palette number="612" name="Pastel_Lime" data="001d8a230031a5410038b04f0040bc5e0047c56e004ece7e0053d2860058d68f +0071e6ae0074e4b20078e2b6007adabc007dd2c30083d0c5008acec7008dcec5 +0090cfc4008fcbb4008dc8b4008bc5b5008ecab60091d0b70092d3b70094d7b8 +0088eab5007aecb7006deeb90065eab6005de7b40059e4b10056e1af0052ddad +004dd8af004ad8b40056d4b30062d1b30073ccb20085c8b2008cc4b10094c1b1 +00b5c2b000bfc3b100cac5b200cac7b100cbcab000cacaaf00c9cbae00cacea9 +00c9d1a200c4cfa800bcd1b100b5d4ba00b4d9bb00b4dfbd00b4e1be00b5e4bf +00bed8c700bacdd200b6c3dd00aebfdd00a6bcde00a0bddb009abed9009ac1d6 +0095c0da008abfea0081bfea0079c0eb0077c3e70075c7e40073ccdc006ecdd3 +0063cecb0060c8ca005dc3ca0069bbc60076b4c3007cabc00083a2bd008d94b7 +00988ab200a76d9d00b6659200c55e8800cc5c8200d35b7d00d95e7200d86069 +00c35b5900b55a5800a85a5800a9615a00aa695d00a4745e009f856400a1956e +00a19d7700a7ad8c00aeb38d00b5ba8f00bcc19000c3c99100d0d59300cdd192 +00d1c98c00cac08100c4b77600c1b57000beb46b00b4b06100aca65900a19e4f +009092430077832a00728025006d7e2000627c1a005d7a18005d721700617019 +0078511700814d17008b4917008d4816009047160094501b00995324009e4b2a +00a14937009a4c4a00924f4d008a525100775e5a0068585c005256600048575f +003e655b00406e590042785800447c580046805800468856004796510049a44d +004caf48005bba4d005ebb500062bd530067c25a006bc962006bcc690066ce72 +0061cf7d0063ce7e0065cd800067ca840067c7850066c38c005fc097004fbaa1 +0045b19d00359c900034978c0033928800329081002b908e002596950023a09f +002aaeaa002fb3a90035b8a80040c2af0048cab7004bd1c2004fd7cb0051dcd8 +0057dbe10062d8e60070d5e60079cee5007dcbe00080cadc0080c8d80084c5d5 +009cc0ca00a1bdc700a6bac500acb9bd00acbab200a8b9a200a6bc9800a4bc90 +009fbc920095c198008ac4a20077c29e0065c49c0057c38e004ec2850049c87d +0049ce7e0048ca77004bc6730052c363005bb85b006ab056007eaf570090a75c +009e9e6700aa9d6900ae9c6f00ac9e7a00a5a88700a4ae99009bb2af0090b8c1 +0084bdc90074c7cd005ed3cc0053ddcc004ce5ce0048ecd00047eed40048eed5 +0047edd3004cead10058e4d0006addd2007fd0ce008fbcc40097afb70099a2ac +009a93a100948e9b00958b9400957f84008c7e72007b7e60006c7a5200557d49 +0047874b003f884c0038884500348b3e0032873a002b803600277c380028793a +002372380025703400276c2d002868240026681e00266c1800207216001b7c1a +"/> +<palette number="613" name="Peace" data="003b44650034354d00262c410019233500182335001824360018243600182437 +001a263a001a273d001a2941001a2a44001a2b47001b2c49001c2e4b001c2f4c +001d304e00243657002d3b5c0036406200484769005b4e710067547600745b7c +008f6e93008f70980090729e009676a0009c7ba300a07da400a47fa500ab81a7 +00aa7fa6009c769800976f910092688a0091638100905f7900885a730080566d +0052405800403850002f304800262c42001e283d001c273c001a273b0019273b +0018273c0016273f0016273f001628400017273f0018273e0018273d0018273d +0018273d0019273e001a283f001b2a40001d2c42001e2d44001f2e460021314b +00253351002f3a5a00363d5f003d4165004243680048466b00504a7000564c74 +00554e78005650790057537b0053547d0050567f004c547f0048527f0041517b +003d4e7800394e78003d4f790041507a0045507a004a507a0051507900575079 +005e537b006a557c0077587d00805a80008a5d83009c6b8d00a8759800b480a0 +00be89a700df9bb500eaa3be00f5acc700f4adca00f4aecd00eab0d200dbaacf +00ba93be00a989b7009980b0008e7cad008479ab006f70a300586598004b5889 +003f4f7d0030456c002c42690029406600243c600021385b00203555001f3350 +001d2f4a001c2e48001c2d47001d2d46001e2d46001f2e46001f2e45001e2d44 +001d2c44001e2e46001e2e47001f2f49001f304a0020314d0020324f00203452 +002336560024385900263a5c00273b5e00283d60002b4167002e456d00304a74 +00324f7a00395c8a003b6090003e6596004873a300587bae006f83b3008286b4 +008a82ac00887fa900867ca60086779e00897093008160800073536d005b455c +0045394d0026293700222632001f232e00191e2700161b2400171b2300161b23 +00161c2500151c2700151d2900161f2e0017223200192638001d2a3e00212f45 +0029365100363e5b004c496900675c7a0080748c00978da3009b9bb2009d9eba +00999bb8009a9cb6009b9db5008897af006f89a30054729200385a7e002c496d +00253d5f0022365600203350001f314d0021324d0025344d0028354c002a364c +002a364c0029354d002a364e0028364f0028364f002736500024355200233655 +00233758002237590022375a002237590024375700253754002435500023324b +00222f4600222e4400222d4200222d4300232f470023334c0025385500283e5e +002b4367002c476d002e4a71002f4b7400314c7400324b720031486c002e4362 +002a3b59002736510025314a00222d4400202a3e001d2739001b253700192538 +001825390018263b0019273d001a293f001b2b43001c2e48001e324e00213756 +00243d600028436800394b720043507900414d73003f4a70002f456900344163 +"/> +<palette number="614" name="Persia" data="00ec926f00eb846b00e1816500d77f5f00c87a5900b9755400b3715400ae6d54 +009d6c5800926e590087715b007b6d5b0070695b006b65570066615400665f51 +00675e4e0064523b00684731006d3c270074331e007c2b16007c2914007d2713 +008c281d009d2a2400ae2d2c00ac2e3000aa303500a23137009b333900923b3f +008d434600824241006f4139005d4131004a412c0038422700303e2400293a21 +0022321600282e13002f2b110038230f00421c0d0047190d004d170d00551612 +005f1415006a131800661418006215190057191b004c1d1d0049222000462723 +004f503f005b604e0067705d007a7e65008d8c6e0097957300a19f7900b4ab86 +00c5b38f00d2ad8c00cba58600c49d8100bd947c00b78c7800ad756c009f6760 +008354480074483e00663c3500603733005a3231005b3633005d3a350060453a +00604f400063605a006b666300736d6d00766f6e007a727000827970008b7e71 +009f897400a58e7700ab947a00ac967b00ad997c00ac997a00a9967900a39177 +00988a76007f7b6f00757067006b65600068615d00655d5b00655b5c00675f61 +0074707200817875008f80780097837a00a0877c00af907e00bc958200c19c80 +00c09e7b00a78f69009e88640096826000867555007a6a4e0069604400555440 +00353a340036322f00372b2b003a2a2b003d2a2b00432e30004d36360059433d +006b4e4200885547008d54450092544300975641009e5a3b00a15036009a4b33 +0076342500622e21004f281d0046271e003e2620003124250020252a0015292d +000e2930000d2c2f000f2b2e00122a2d001b2d2900252e26002e302700343328 +003e372e003f372d0041382c0043362b0041352c0038322e002f303300262d32 +001c252a0014141900161318001813170023171d002f1f25003d2a2e004a3635 +00675f50006e695900767362008687770092918200979d8d009aa492009ca792 +009ca791009c9b84009b8c7200997d5f00996b4f00995a3f00964b3100893b21 +0068240c00621f0b005c1a0a0054130d00470e1100330a1400220a1800110b1b +000a0d1c0009131d000a161c00121b1900201f170033261700493218005d3d1e +00694922007451280079562f007d5935008463400083704c0085785900868167 +00868370008d867400938977009e847500ab7d7000b5716900bf645f00c05a58 +00b74b4d00a73c42008f283300781a240064111d004f0d1a003e111b002a111b +001b0f1700120d1400150a12001f0e11002d0f10003f150f00541a14006b201b +00822a240095322800a13c2600ad432600b3432700ba422b00b9402e00af402e +00a54528009747270093472c00964b33009d503f00a65c4700af6b5000b77a5b +00c0886700cd927200db977700e89a7800f19c7800f39b7800f29c7600ee9a73 +"/> +<palette number="615" name="Persia_2" data="00eccd6f00ebc16b00e1bc6500d7b75f00c8ae5900b9a55400b39e5400ae9854 +009d8c58009289590087865b007a7b5b006d705b00686b570063665400636651 +0064674e0063643b00686031006d5d2700745b1e007c5a16007c5914007d5813 +008c5c1d009d622400ae692c00ac672e00aa653000a26131009b5e3300925f3b +008d634300826041006f5b39005d563100444c2c002b422700263e2500213a24 +00163217001d301400252f110033310f0042340d0047340d004d340d00553512 +005f3514006a3713006636140062351500573419004c331d0049352000463723 +0047503f0052604e005e705d006f7e6500808d6e008897730090a17900a8b486 +00bec58f00d2ce8c00cbc58600c4bc8100bdb37c00b7aa7800ad936c009f8560 +00836f480074613e0066533500604c33005a4531005b4833005d4c350060563a +00605e400062635a006a69630073706d0076736e007a777000828170008b8a71 +009f9d7400a5a47700abab7a00aaac7b00aaad7c00a8ac7a00a6a97900a1a377 +00969876007c7f6f00737467006b6a600068665d0065625b00655f5b0067615f +0074707000817d74008f8b780097917a00a0987c00afa77e00bcb18200c1bb80 +00c0be7b00a2a76900999e64009196600080865500767a4e00616944004c5540 +00343a36003535300037302b003a312a003d322a0043352e004d40360059503d +006b614200887347008d76450092794300977f41009e893b00a18336009a7b33 +00765a2500624c21004f3f1d0046391e003e3420003129240020202a00151d2d +000e1930000d1c2f000f1c2e00121d2d001b282d00252e2a002a3027002f3428 +003d3e2e003e3f2d0040412c0043412b00413f2c0038362e00302f3300262732 +001c1e2a00161419001713160018131400231717002f201f003d2e2a004a4035 +00646750006a6e5900707662007e8777008c9282008f9d8d0092a4920092a792 +0092a79100929c8400979b720099985f00998e4f0099843f0096793100896b21 +00684f0c0062470b005c400a0054340d0047250e0033120a00220a0c00180b1b +000f0a1c0009091d000a0d1c0012181b001c20170033331700494918005d5b1e +00686922007474280079792f007d7b3500848340007d834c007e8559007d8667 +007f867000888d7400909377009e977500ab987000b5946900bf915f00c08a58 +00b77c4b00a7683c008f4e2800783c1a00642b11004f1e0d003e1c11002a1211 +001b0f1100140d1200150a0c001f120e002d1c0f003f2b0f00543814006b451b +008256240095662800a1762600ad822600b3842700ba862b00b9812e00af7b2e +00a57f2800977b270093782c00967a33009d7c3f00a6884700af975000b7a55b +00c0b16700cdbd7200dbc67700e8ce7800f1d57800f3d57800f2d57600eed473 +"/> +<palette number="616" name="Persia_3" data="00af95ec00a591eb009f89e1009a81d7009279c8008a72b9008671b3008270ae +007e719d007d7192007c718700756f7b006f6d70006a686b0065646600646166 +00645e6700594b64005141680049386d00423174003b2a7c0039287c0038277d +003e338c00433d9d004948ae004a4aac004b4daa004b4da2004c4e9b00525492 +00595a8d0057568200514b6f004b405d0046384c0042313b003e2d34003a2a2e +00321e26002f1b2a002c182f0028173800241742002218470021194d00231f55 +0023235f0024256a0024256600242662002627570029294c002d2b4900312e46 +00504c4f00605d5f00706f6f007e7a7e008d858d00978c9700a193a100b1a3b4 +00beafc500c0aed200b8a7cb00b0a0c400a89abd00a195b7008d88ad007e799f +00655d8300575174004a45660045426000403f5a0043415b0047445d00504960 +00574f6000636363006b6b6b0073737300767676007a7a7a008282820089878b +00978d9f009c91a500a195ab00a396ac00a598ad00a496ac00a194a9009c91a3 +00948e98007f7f7f00757575006b6b6b00686868006565650065656500676767 +0074747400818181008f8f8f00949297009996a000a29aaf00aaa0bc00ae9fc1 +00ae9ac0009a84a700927e9e008b7896007d6a860072617a0064556900544d55 +003a3a3a00373738003434370033333a0033333d003839430042424d004e4b59 +005b536b00675d8800675b8d00675a92006a5997006d549e006550a1005f4b9a +00443876003b30620032294f00302946002e2a3e002c2c3100282a2600292d1c +00293015002c2f14002b2e16002a2d19002d2a22002e2c2c00302e2f00333034 +003b383e003b373f003c3641003c3543003b364100373738003333330030322e +00272a22001819180017181800161718001c1f230026292f0033353d0041414a +00656067006d6a6e007675760087878700929292009d9d9d00a4a4a400a7a7a7 +00a7a7a7009c9c9c00968b9b00897799007c6799006c5799005d4996004c3789 +00321c68002c1a620026185c00201a5400191a4700121933000f1922000f1b13 +00101c0e00141d0d00161c0e001b1a16001f1c2000291f330038234900452d5d +00513269005a3a74006142790064497d006e558400786183007f6e8500847c86 +00868586008c8b8d00928f9300948e9e00938bab008c86b500827ebf007977c0 +006868b7005759a7003f458f002d327800212a640019234f001b223e00171e2a +0013171b00101412000d12150013141f0016162d001d193f0027215400312c6b +003f398200494095005340a1005a41ad005b43b3005d49ba005c4bb900594aaf +005b42a500593f97005a4393005f4b960066589d007161a600806caf008e78b7 +009c86c000a893cd00b09adb00b59de800b99ff100b89ff300b89df200b699ee +"/> +<palette number="617" name="Pink" data="00b63c6e00af346900ab316700a72f6500a52e6300a32e6200a22e6100a22e60 +009b2b5c0097285b0094255b0091245c008f235e009124600093266200962764 +009a296600aa2f6a00b0316a00b6336b00b9346a00bc366a00bc366900bc3768 +00b52f6100ae2b5e00a7275c00a0245c009a215c0097205c00951f5d00911e5e +008e1e5e008d1d5e008e1e5e00901f5f00911f5e00921f5d00931e5b00941e5a +00971e5500981f53009a2151009f235100a4265200a8285400ad2b5600b6335a +00be3c6100d1516d00dc5b7600e7668000ed708c00f37a9800f57e9d00f782a3 +00ef82aa00e679a600de71a200d5699d00cc629900c75d9600c2599400b84d8c +00ad4181009f3775009d3575009c3475009d3476009e347800a0347a00a2367c +00ad3d7d00b4417f00bc468100c1498600c64c8b00c94e8d00cc518f00d05996 +00d65e9900d760a200d961a200db63a300dd66a300e069a400e571a300e77ca8 +00ef99b400f4a5b800f9b1bd00fab2bd00fbb4bd00feb4be00fcb0bc00f7abbd +00f1a2b400e3809700dd6d8800d75a7900d3537300d04d6e00c7456600bf3e5f +00b93b5b00b8395e00b7386200b3366300b0346400ab316600a5316800a33269 +00a1336c009f3172009f3173009f317400a3337200a6367000a9386c00ab386a +00ad366b00aa346900a8326700a5306400a22e62009b285f0094245f008d1f61 +008a1d60008a1b5c008c1b5b008e1c5b00941f5c009d245c00a72d5c00b0365d +00be3d5e00be3b5c00bf3a5b00bd3a5a00bb3a5900b6375800ad355600a22f56 +009b2955008d2153008a205200871f5100831d5300811e5600802058007e1f5a +00741653007314530072135300731052007712550072115000730f4c00770f4a +00800f4a00911552009317520095195300991a54009c1c55009f1f5800a1205b +00a6265f00a7265f00a9275f00ac2c5f00ae2f6200ae346400b0386600b13a64 +00b03e6500b23f6700af416c00ac407000ab3e6f00a83f6e00ab3f6f00b14171 +00bf437800c3447800c7467900cc487b00cd4a7b00cd4a7e00c8487e00c5457d +00c1407c00b93c7700b1367400a6316f00a02a6a009e2566009e2260009e205a +009f215400a1225100a3235000a8255100aa265200ab265100aa295200a72b53 +00a72e5700a72f5c00a72f5f00a53262009f3364009a326600942f6700902965 +008c25620086235f00811f5e007c1b5d00791659007b1255007d11510080114e +00841250008a15510092175100991b5100a01e5200a5215500a8255800ab285c +00ad2c6200af316900b1367100b53c7800b9417e00bb458500bd4a8c00bc4d8e +00be508e00bf4e8b00c04a8700bf478400bc437f00bb427a00bc417300be3f6e +00c2406c00c4406b00c6416d00c8436d00c6416d00c23f6d00be3f6d00b93c6e +"/> +<palette number="618" name="Pollen" data="00737237008f8b2f00a69e3000bdb13100c6bd2e00cfca2c00d1cb2a00d3cc28 +00d8c82f00cdbf2b00c2b62700ada02600998a25007e70250063572500574d20 +004b431c0028210900231e06001e1c040025230a002d2b1100343116003b371b +00625c3300766f43008b8253009c946800aea77d00b7b08800c1b99400d3c9a5 +00dbd2ab00d9d29f00d7cc9400d6c78900c6b87600b7a96300aa9d56009d924a +0081691d0081551100824106007a360800732c0a006b2909006426090065200a +00681a0700661b0b005c220e00522a12004e3214004b3a17004d3f19004f441c +00605b2a006f6030007e6537008e6739009f6a3b00a16c3800a36f35009a7332 +008d6c29008c5b210087601c0082651700796616007168150068611300605914 +00564f11004e471100463f12003c331100332810002f240d002b210b00211c0a +001e1b0c002628160031331d003d3f2500444529004c4c2e005a5d3800676b40 +00777940007d75390083713300896c32009068320093612f008e5d2900825a21 +007754190077441c006d411c00643f1d005b401d0053411d0046441d00414624 +004142270042422b0043422f004344330044473700494f3d00515643005d5e4b +00656550006f7154007073530071755300767951007c805300838759008b8e5d +0094976200999965009e9b6800a19b6b00a59c6f00aa9f7600b0a47c00b2ab84 +00b5ae8700b0a68800ada38600aba08400a49f82009ea08100969a7c00919777 +008e93690091966800959a6700989e66009ba26500a3aa6800b3b86900c2c568 +00ceca6b00d1cd7100d1ce7200d1cf7400d0d16f00cdcb6700c5c26400b9b460 +009c955900968d520091864c00837740007668350065582d0054452300453219 +0038241100201304001a100300140d02000b06010006030200050304000b0909 +001b1c18001e211b0022261f002a302300353c280044482c00535436005a5d3f +006162460062664900666a47006c6d45006b7046006f70480072714e00797857 +009193690097996e009da07300abad8000bab88c00c5c49400d0ce9d00d1d09f +00d0d1a500cccda600c4c79d00bbbe9500b1b08500a3a37d009593780086846b +00767860006c6e4d0061644000575837004d4d2e00434425003c401b00373e16 +00353c170030381a002f331b002c2e1c002a2d1b002a2d1b00272c1e00282e20 +002b2b21002d2b1f00302d1e00312e1e0030321f0032311f00332f1e00312e1d +002e2a1c00262a19002229160023291300252b12002c2d1500333518003a3e1d +0045491f00505625005d602a0067692d006b6d2d006a6b290064642700595a25 +004c4e210040431b003839150033301400302a15002e2619002c261d00302920 +00373123003f382500464028004b4528005a522e00665f360071693b00777440 +"/> +<palette number="619" name="Poppies" data="00ae2c2a00ce1a2900b2173000971537008f122a0088101e008b1820008f2123 +006b361d004b3919002c3d150028350e00242d08003c2f050054310300643208 +0074330d00746133005f7b56004b95790055979100609aa90064a2a70068aba5 +00af708f00be537400cd375a00cd304500ce2a3000c2262c00b6232900a4312b +00973829009d393e00a6393f00af3a4100a84a3300a15b2600a2692600a37827 +0092984f00949d6e0097a38d0099a497009ca6a2009d9e9a009f97930096958b +008a837c005e775e00436c4a00286136002d5f2c00335e220043672100537120 +00b68c2800d37d3900f16f4b00f2644500f4593f00f1673900ef763400db7a17 +00c2a91100a9971f00b37f2800be683100c16d3a00c4724300b6815100b2a17b +0091af7d0079aa620061a5480047a035002d9c2300258f20001e821d001b7813 +00196216002d56040040560b0054561300605110006d4d0e0093411900af2c15 +00e0110a00eb170d00f61d1100f21f1100ee221100e1452500d4491700be5016 +00ac5308007c5c19005f622a0043693b002f6d3a001c7239001c8130000c8f29 +000e9c19002b942f00498d4600698752008a825e00b3687800d5697f00e17089 +00e0979800c2aead00c398af00c582b100b888aa00b963a100d0599200c23e7f +00c02f5400b82e4f00b12e4a00ae344600ab3b4200943e4d0080355100744359 +0078436c009b388600ab348300bc318100ca258c00de249a00e829a500f32ba7 +00f5428a00f7468c00fa4a8f00f24b9200eb4d9600ee51ad00e040b200d84da8 +00d941a100c32a8200bc247c00b51f7600ae226f00aa347600b0476300b54770 +00dc386900e32c6300eb215e00f41a5400eb093b00dd222a00d1293000bc572a +00b05c470072676900656b740058707f002f7f7a002d9b690018a253001cae2f +002ba6170033a81a003bab1d0058a10f0061a82d007fa31c0089a34600a9a744 +00b5ab5500bea95a00c9ab6600bfa46f00bf9c8200b98f7b00c88c8e00c97a83 +00ea758e00eb729100ec6f9500f7628200f85a8a00f74a7400f23f7a00ec3f73 +00ef317c00e2227e00db177d00df116b00d61a5700e12a4b00d6424800bd6655 +0095755b006886710053996700369e620044ad4f003fb63d0043a9430036a545 +001e8f4c001b996200169864002b9e7a0054a0860064978a0092888c00928e88 +00a78c8400a7917b00bc9f7600d3987800e1977500f88a7900f76b6100fc5852 +00f6463a00f1342900eb302d00e7263500e8185400ec206900e7268600ed3689 +00e23a8e00e9348c00d4289f00d912a800d00ca900d50fa200e2199600e82f87 +00e93e8200c14d75009a495a005a4742002e3d390016312c000a3b3a001b473c +00325c43004b6b51006b645e00765a5d0075315f007a2f4e006c2343004e2c3a +"/> +<palette number="620" name="Produce_Department" data="0099194100b8323500c13d3900ca493e00c9595300c96a6900c7726900c67b69 +00c0885500b78e6200af956f009a94700085947200718763005d7b5500567654 +0050725300295f4e001a504c000c414b000e333f001126340015202d001a1b26 +00300d1200400a1100510810005c070f0067070e006a080c006e0a0b00740c0b +007b0e0e00760d19006e0d1d00670d2200670f1f0067111c0067111b0068121a +006f101e0076101b007e111800821a14008623110085271300852b150080341f +007b3a2b00683f38005e423d005446430051484c004e4a55004d4a58004c4b5b +00424762003f466d003c4678003f487c00424b8100414f7f0041537d00425476 +00465770005659620055605c0054675600546b5200546f4f00547b4400567b3b +003c7e3f002d803e001f833e001c7e360019792f001a762e001c732d001a7329 +001a772900187d2b001d8137002285430025854d00288658002e8d7000349179 +00349a7600338a7900337b7d0038737d003e6b7e0044687a004a676a004b6759 +004e5f5a005c6a7f005e6d8a0061709600606d98005f6a9b005569a7004e70b6 +004b6bc0004956af0047429e00473b920047348700502a77005d2d63006e344e +007d39400089442e008a4b30008b5332008f683200917e42009d8e56009e9c6e +0091b3930086bb9f007cc4ab007cc1b3007cbebc0074b5c70071a8c900639ac2 +00568db4004a63a40048599d00474f9600443e88003e35710045345e0047344a +004d372a0051361f00563615005b36110061360d0070370b007d37090086330b +0092280d00a2100e00a10e0f00a10d10009b0f13009613190090151a008c1020 +0079102c0073122f006e153300621f37005a293d00553944005349410052543c +0052573a0058553d005b573a005f593800615e2b00635c250063532100644328 +00652c2d00632d2d00622f2e005b343100563338005a2c3d005d243f0064233b +006d2d3a0074323a007b2d390081263900811d37007e2137007f283a00792a3f +0072234e006e2452006a255700692561006426670064276a0061226c0059256a +0057236a005021650049215c00431a5200341648002c13420023123e001f1a3b +0022253b00222e3d001f3444001c384c001a4051001d4e5500245e5700256559 +0023665600235c4e0023524100284e34002b4b2a002a4c21002a4519002b3714 +00282910002422120020241c001d2b23001e302d001d32380018333f0016304f +0017305900213160002e3867002c3b5c00273653001f2f4a001a263f0024273c +0026262e00222422001a2319000d1f1300092314000b2a10000e2e11000f3413 +000d3b1d000a432700094b2700094f26000b5121000954250007552f000e5237 +00144f3f00204441002d3a4000393243004e2a410062254100791a42008d153d +"/> +<palette number="621" name="Purple" data="0041385300454157004644560047475600494c56004c525700484d5400454951 +0040474c0043494f00464b5300505056005a565a0061576000685867006a576a +006d576d0071527700704f7700704c77006e4476006d3c76006b3676006a3076 +0065207400611d75005d1b770056167600501276004b11770047107800410e7a +00400a7e00420c8600480c89004e0c8c0052108e00571591005a1791005e1a92 +006a309100743995007f429a0083419b0088409c008a3c9b008c399a00873394 +00872f8b007b308100722c7e0069297b005f1e740056136e004e0c650047065d +00340047002e00410028003c0027003b0026003b002500370024003400240032 +00230033002500390026003f0028004500290046002a0048002a004b0029034f +002c06580032065f00390666003f0b6c004610720047147300481875004a1a77 +00491f78004e247800552578005c2678005f27770062297700672a7400662e72 +00602b69005e2364005c1c5f005b195b005a1658005b1153005b104c005a1146 +0057134100531a3a00521f36005124330050253100502730004e2b2c0049312b +0046382500463a2400473c2400473d2600483f280047402e003e423400383e3e +00323540002e2341002f204200311e4400381b48003e195100461a6400501671 +00641187006d118c0076129200791192007d1093008913980091149e009a10a4 +00a610ad00aa0ab500a708b200a406af009f05a400940498008a008c00820082 +007700770073007400700072006e006f006c006c00670065006400600064005d +0062035c0065135b0067175c006a1c5d006d265f00722f660075356800763a6c +0073406d0073416c0073426b0072486b0076496b007b476d007e4470007d3e74 +00783674006d2370006a1f6e00671c6d0065146d00650e6c0065086e0064086d +005e0c69005a0e680057116700501565004c1b61004a1f64004b2464004a2a65 +00483168004936690047396800453a6600453a65004636640047316100452c60 +0042205e00401c5c003f195b003c1456003b1151003b0e4e003e0a4a00420947 +004609460047094500470e420048134100471b440046234500472a44004a3146 +004b334c004c3950004e40550051465b00524e600053566400576067005b6772 +005c6b76005e767a00627d7d006b7e8700758990007f8d930089929d008e8ba3 +009189a6009084a1008e76a1008d6e9c008b6495008b5b9300844f910080428d +00753a8600682c7b005e236d00541f60004e1c5500451b490040193c003a1a32 +00331b29002f1f26002b2223002b262000292b1e002b2c1d002c2e1d00302e1e +00312b1f00302824003225260032242e003322340033233a0035263e00382b41 +003a3044003a2f4600453b50004c40580050415b004f425c004f425d004f455d +"/> +<palette number="622" name="Queen_Anne" data="00807eba007f7eaa007f799a0080758b00776d75006f66600069615600645c4d +004a4927003e421800333b09002c36070025320500202f06001c2c08001b2a08 +001b28080018220a00161e0d00141b1100161b1600191b1c001d1d1c0021201d +00242528002b283600322c440037324e003d3959003d395b003d3a5e003e3b63 +003b3961003639510036394500363a3a003c3b3700423d350047413b004c4542 +005f5d5e00635f650068616c0060606500595f5f00555e5b00515d570046544a +00394538002835200024311d00212e1b001f2a1c001d271d001f281e00222920 +0026292f002a2d32002f32360033374000383c4a003d404e00434452004d4e56 +004f565800535c5900535c5500535d5100515d4a004f5d43004f5d41004f5b44 +0050565400595b610062606f0069658300716a9700756b9f007a6da7008475b1 +00877cb9009488cc009d90cf00a799d200a69bd400a69dd600a99edd00ac9cdc +00ab9bd700a99ad400a79ad100a499c900a299c200a697b200ab9aa700af9cac +00a79dad00988b9c0090859c00887f9c00847a9e008176a1007c6f9c007b6d93 +0085808c00867d8200877b7800817871007b766b006b72640062695700525844 +0041472e00232f1b00202d19001e2b18001c2815001925120017221000161f11 +00141f0c001a2211002126170027271b002e292000332e27002d2f1c00323625 +003c3a2e003a3b3a00383c3f00373d44003c4150003e4455003f435600414456 +00454750003e424100383d3200343a2a003037230028321700222c11001c280f +0019250e0015230c0015240b0015250b0016260b0016260c0016260b0018270d +001b2a0f001a2a0f001a2b0f00192910001a2811001925110017251100132210 +0011200d00121f0800122007001222060014240600172807001b2c0b001f330c +00253412002433130023331500213215001f3015001d2a13001825100013210d +000f1d0a000c1609000b1208000c130b0011170d00181a12001f1d1700262721 +003b4035003e42370042443a00434a3800434e380042513800404d3800394830 +003543280031402200313d2000313c2100343d25003c413000464b4000555955 +00666a6b007b7d88008988a4008f8eba00908fc6009695ce009491ca008684b9 +006f719d005e627e0051595f004a57470047573300515d250060661d006c6c20 +006a6e2b006a6c39006f6f440073695100655e5c00534f5e0040455800363c52 +002c334e002b314600282f3a00272f2e00232d2a0026302e002c333a00333a49 +003a3e5800414665004c4b760057598c0065639e006d6aa600736ca7007270a4 +007372a1006f6e99006c659100645f84005f5e81005b5c81005d5c8900615b90 +006c629f007569b0007c74bf007c77c8007e77ce008076ce00847ac900847ec1 +"/> +<palette number="623" name="Quiet" data="0059335a005f33640060346c0062367400563174004b2c7400432b74003c2b75 +002c317900293079002730790028307c002a317f002d2d7c0031297a00332679 +003524780035207600331e6d00311c65002b1856002515470020123f001c1038 +00120a1d000b0612000503070005030700060307000a040b000e061000160c1d +00190f2900301d4c00352d5c003a3d6c003a406f003b4473003e437400424275 +004b4e760056467000623e6a006c3a6600773663007a3663007d376300803760 +0081335e00762f5200702b4f006a284c0066264d0062254e005e234e005b224f +004d20560047205b00422060003f2062003d2064003d2064003d2065003e2064 +004020610045205a00421f58003f1e56003c1d56003a1d5700361c5900351c58 +00331c5800351c5600381d55003f1d4e00471e4700491e45004c1f4300511f40 +00541f3f00542147004f214f004a21570047205a0045205e003e1f6400361d66 +002e1a5b002c1851002b1648002815410026153a001e102b00160d1e00150918 +00110911000b07130010081900160a20001a0c26001e0f2d0027133900321845 +003f1d5300411e5600441f5900441f59004420590045205a0044205a0044205a +0045215a0048215f00482162004921650047236b0044236f004321760043207b +003c227d003f217900432175004621720049226f0051256a005b276300662d5e +006b2f59006831500066314f0064314e005d2b4b00502a4900452544003b2041 +0032173e0032173e0032173f0032174000331741003518430034184200341840 +0032173f002f153a002b143500281431001f102500170c1b0013091700100811 +0012090f00160a11001a0b1400240d190034132200421830004f1d3c00561f44 +005b224b00532c5d004f2f60004b336400433869003a38690035376b0033396a +003536650036316300382d61003d26590044215300491f4e004d214a004e2347 +004f2448004f224c0051244e0052264f00502853004c25590049235e0049215d +00441f5800421e5500401d53003b1b4d0037194700331741002e153c002b1437 +0029133400291234002b1437002e163d003018450030184c0031195300321955 +00341b5600331b5500311a530030194f00321a4c00361a4a003a1b4a003a1c4b +003d1d4f00411f550045205a0046215d00472161004522660043216b003e206d +003e2070003b2072003c2273003b2172003c216e003d206b0041226800452264 +004823600049225f0049215f004a215f004d225f0055276100622e6200703763 +00813a5f0095445f00a5495f00ac536600ad516200b3555f00b1505900a64b5e +00904060007f3a610072345c006a2e5b005e275a00552157004e1e5200491c4d +00411a49003c1942003a173c003815380038183800341938003f22450047294e +"/> +<palette number="624" name="Rainbow_Sprinkles" data="001e1433000c253b000c4153000c5d6b00196e7800277f85002e8e9000359e9b +004d879600548597005b8499005f7c94006474900075789200877c950092809a +009d849f009f8a8d00ab908d00b8968d00bea39100c5b09500c9ad9200ceaa90 +00e0b28c00e1927600e2726100d35e5900c54a5200bc414f00b3384c00983b6b +0093408f0048326f00332e65001e2a5c003f3d60006151650069566200715b5f +00b3383c00bd2f3900c7263600d01d2c00da152200d81e2800d6272f00e43030 +00c4333c00b8655800ac6d5c00a1766000b1896300c19d6600bd9e6600baa066 +00a18b70009f9376009d9c7d00ab9a7f00ba988200c8a18300d6aa8500e9ae80 +00f0b67f00f3d07c00f5d17a00f7d37800f1d07900ecce7a00e3bd7f00daac7b +00b6897e00a17d78008d7272008672740080727700806c790080677b007f6782 +008965820096558500965c870096648a00946c8e0092749300857a8d0076798b +008692870095867c00a57a7100a9746c00ae6e6800b1636900aa5c7500a6597c +00aa5f8200b3767c00c07f6e00cd896100d18f5f00d6965e00e8904c00ec7a38 +00f5682c00f4602d00f4592e00ef553000ea513300e1593e00d7594800ca4b4f +00bf4d5800a4466700a63f7200a8387d00aa298500a7228800a62ca6009d29a3 +0099318900963a870094438500974789009b4c8e00a05b92009e6e90009d7c92 +00a78a8600c5ab8500c6a88000c8a57b00c59c6c00c2956400b58e6500a3856b +0080898200717d8e0063729b005e6d9c0059689e007d6fa3009a7da000948086 +00b3998000e7ce7b00ebd17600f0d57200f4cf7700f9ca7d00f9b57500faad76 +00f6c28e00f6c29000f6c39200f8c79500f3b78b00f79a7500f97f6000f75f4b +00fb413400f5312700f22d2300ef291f00eb392600e04a3300d2443400ca4236 +00b5343400b3333b00b2334200b8253600b7233100bb303900c2363f00d2453e +00df745400de9a6d00e5b77e00f1cb8300eed08400edd28800edc88f00ddbc93 +00c39e8f00b3978f00a49090008a8b90006a6d7c0049496700443c5c0060305b +00611d4100670e2b009a122400c31d1f00d3302100ea522c00f26d3d00f17b49 +00f6874b00f6945200f4a95d00edbc6800e0c06600d9cd5900d5d95700d8da59 +00dcd85500e4cf6400f1bd6f00f69c5b00f1744a00ea554100e1363900d02b41 +00bf294700b52a4f00ad295b00ac295700b6365800c63e5b00ce3d5000d24d53 +00d8585800cd535b00c0536100b9546000b54e5c00b5485600b74a4f00c04e4e +00cc5d5500d2705f00d5706100d4746500c4736800b25f600099606f00856188 +0067557600685977005f4f7c006d4d7600774b560097454500ae383800c14633 +00cd5b3200cd5a3000a8452c007e382a00732e1f0048192000291d3700261a31 +"/> +<palette number="625" name="Rainforest" data="00705637008d62340097683200a26e31009e6c3b009a6a4500946d49008e704d +00567d6400436e6d00315f7600255a6b0019556100175551001555420016523f +0017503c001a4b21001a4715001b4309001e410800213f0700213e0700223e07 +002a3d0c0039440b00484b0a00584e0900685208006e540700755607007d550f +0085561b0079543200784d3100784631007d413700823d3d007d3e4100793f45 +007f4c3f00804f490081525300705e5e00606a69005b726700567b66004b706e +00376e77000c617900065d6f00015966000054600000505b00014c5800034955 +002238430036363d004b343700592f3300682b30006f272a0077242400861419 +00900f0c00870c0100800c0000790d0000730f00006e1100005d1a00004e2001 +00352e11002d311400253518001c35170013361700103418000d331a000c301b +000c2c1b000e270f0011230a00151f0600191d04001e1b0300291a01002a1901 +002615080027150700291507002b1406002d13060030130a0033101400281a1b +002128260016463f00174f51001859630015626b00126b74000a79840001888e +0005879a00088297000b7d95000a7b92000a7a900006758d00076c8700096281 +000b5b7b00055c7600035d7600015e7600015e76000c576d0019516000234f55 +002c4b4200354434003f3d27004239210046361b004f290f004c280b00442b08 +003e270b002d291d00292b2300252d290020342e0028362c002f342c00433328 +006b2f2b00843025009d321f00a7311a00b1311600c32b0c00c71e0a00c61f09 +00bb1e0b0092261000862610007a271100612912004a29190035292400252a2e +00133c3d00123f4000124243001a43430022404400303f40003a4539003a4f33 +0042532600514f1100544d0c00584c070052510400505201004e550000515000 +0063470000674400006c4100007141040075390b006c3a1900643f27005a4031 +004c463e0045404500313d50001d3d56000e3e5700013f570000395200003450 +000037450000394200003c3f0000383a00003439000030390000323a00023835 +0006332f000b2e28000c2325000a202600092520000a271c0013331100183610 +001b411a0019512300165a290016672d00156a3100166c3d0014744f00137759 +000f78640009736c00056e7200006c7c00006c7d00006d7b00026777000d5f6e +001a57660026535b0028554e002959430034543200444b26005f421b006c4013 +00774b0e00854c0800934c0800a7480b00b54b0f00c4521200cf4f1300da4916 +00d7421b00cd471f00c6492000ba451b00b53e1600ac3012009a3010008b2e0e +00792b0c006d2b0800672705005f2507005a210c00521c0e004c1b1200481f13 +0041261a003b2d29003532310033353d003d303b0047333600563a3600654730 +"/> +<palette number="626" name="Rainy_Day_in_Spring" data="004a654800526c52004e614b004b5744004b5342004b5040004b4b3f004b473e +00412e2d003c252400371c1c00321818002e1514002916120024181100231b11 +00221e12001d24120019271200162a1300142f1500123418001236190013391a +00183f1e0018401f00184121001a4021001c4022001e3f2200203f2200253d24 +00293d270031442e003a4c360043543f004c54440055544a0055524a0056514a +0056534b005b504c00604e4d0060454a00603d4700603b460060394600653747 +0069374900663a4c00623d4c005f404d00554347004c46420045473f003f483d +00304d37002a543500255b3400216133001e6833001f67330021663400236535 +00286336002a6237002c5935002f513300324d3200364932003d433500444239 +00564447005e4b5000665259006d606200756f6c0077747000797a740079867a +00778d7c006a8d7300628168005b765e00556e58005067520042554300374335 +0027261c00271e1a00271718002b171b0030171f003b2429004c34390060464d +00745b64009e7d8c00b18a9e00c498b100ca9db700d0a2bd00d6a7c500daa7c4 +00d69cbc00d093b500ca8baf00c886aa00c782a500bf82a000bc819d00be7f9d +00bb7d9c00b5729100b2708f00af6f8d00ac6c8a00aa6a8900a76384009f5c7c +008a4d670081475e0078415600733e52006f3c4f00673a4800613843005b333c +00552e380048272e0045282c0043292b003e2b27003c2c27003c2c27003b2c28 +003e2e290041302c0045322f00483231004c33330056343b0060364200673948 +00703d4f00864961008c4d660092516b009b5a7900a4648200ad708e00b27c98 +00b48ea300b291a300b094a300ad93a200af95a500ae99a600ad9ba700a9a7a6 +009fa79f00a1a19d00a29b9b00a4959a00a59499009d8f91009087840087807c +00775d66007556620073505e006e4a57006d4b5600704f5b0077576300826371 +0090728200a0849200ad97a000b5a6ac00b8b3b300babdb900b7c1ba00b0c5b5 +0098bea00093bb9c008eb8980086ae90007ba686006e9c7900608f690054835f +00507758004d7155004c6b51004b614a004b5a47005053470057504b00615051 +006d4d5500764a58007c465a007d435a007a425800743e51006b3a49005e363f +004f33360043312e0038312800333225003334250036382a00413d33004e443d +00614d4d0075565e00876370009c6f8300ac799100bc85a100cc90b100d59dbe +00dfa6c900e5aed000e9b4d700efbddf00eec7e300eecee500ead3e200e7d5df +00e7d8e100dfdede00d5dfd800c4dcc900add2b5009cbfa2008aac8e007c977c +006d816a00596d5800485746003b42360033322900312622002f211e002c211e +002e2321002f28230037332b003b3a2e003b4031003b4934003a4b3300425a3e +"/> +<palette number="627" name="Rainy_Forset" data="00767e57009d824f00a97d4500b6793b00bc773300c2752b00c9732900d17128 +00d74d2000bf431a00a83915009b3815008f371600853617007c351900733519 +006a3519004d34190047331900423219003c2e1900372a190034271800322417 +00312113002f2213002e23130032281800372d1e003a3023003e342800453b39 +004a4a4c005e5e670063616a0068656d00716f73007b797900827c7b00897f7e +008979760084756b00807161007f675a007e5e53007a5a5100765650006d4c4c +005e4345004a2b2a004626210043211900421e1600411c1300411b1200421a12 +00481e12004c23130050281500562d16005d3217006035170063381700673919 +00673c1a006a3e1c00693b1a006838190065361900633519005e3717005a3717 +00523917004f3b18004c3e1a0048401b0045421c0044421c0043431c0041421c +003f3e1c003f341a003d311b003c2f1d003a30200039322400383831003e4546 +00526f850064849d00769ab5007f9eb90089a2bd00899eaf008c9eac0080a1bd +008a9bae0090726f007d5852006a3f350062382f005a322a00542b200054271a +004d24130047251200412612003d26120039261200342612002e2112002a2313 +0024231300202315001f2115001e20160023201600272017002e231700342416 +00422416004b271600542a1600592d16005e31160068391a00753b1a007f3e1a +00863f190089461e0089481f008a4a21008f4f270093522b0094532e00905235 +007c594100735d43006b6145006960450068604500605a3f0053533b00434937 +0034412f0028372600293726002b382600313f27003b4a28003f5c32004a6a3e +006d794c007c7e46008c834100a4963e00bfaa3c00d8af4600eeaf5700ffa85a +00ffa55e00f5a45e00f0a36400eba26b00d7937200c3867600a8796f00826465 +0053424c00503b45004d353f004f2d2f005028260054271d005d2a19006a311a +007939200085482400905a2700a2672300ab722100b5722100bc6f2600c07528 +00eb7c2400eb7c2700eb7c2a00e7723200d16d3e00cf5e3e00d05c3f00c25e48 +00b1615000966a610079656500655c600054505a004a454d0049424900454245 +00413e3f003b38390037312f00392e28003e32230042382100483e23004a4526 +004f4c280050532d00505a2d00525c2d00565c2a00595a2a005d572a005a592a +0056592a00575c2700565e27005960280056612a0050612d0050632d004d612d +004f5e2b004d592d0049532f00464f3100434a380046453800483e3b0049383c +0046393c0045394100433b42004539410046353f0048323c0048343c0046383c +00463f3c0049453e004d493c00524a3c00534c3b0052533b00565c3e005a643f +00606b45005c654800595e4a005a5d4f005a5e5300656a5600676f5a006b7659 +"/> +<palette number="628" name="Red_Light" data="002e1525002d1a20002a181f0027161f00201121001a0c2300170b2600150b29 +00120d38000f0b3d000d0943000907430006054400030342000002400000043e +0001063c00061036000711310008122d0007102600060e2000060e1c00060e19 +000610100007110e0008120c00070f0c00060c0d0005090d0005070d0002020c +0000000b0000000700000006000100060004020600070407000b0607000f0808 +00280f08003610090045110b004e161100581c17005a1e1c005d2121005d272a +005c2b31005c24390058203a00541d3b004b1b3f00431a44003b1b4600331c49 +00181248000d0b430003043e000102360000002f0000002c0000002900000023 +0000001e000302160006051400090913000b0b13000d0d140011101600131319 +0019181b001b1a1c001d1d1d001d1d20001d1e23001c1d25001c1d2800191b2b +0017182d0016142800181123001b0f1f001f0d1d00240b1c002e0718003b0416 +005d0113006d0710007e0e0d00850f0c008c100c009a111000a4111200ad1116 +00b50d1500b90f1500b2101300ab111100a21011009a10120088101800740c1a +0053021e0049041b00400619003e0818003c0a17003a11170037181600351d16 +00311f180030211e003121200033222300422422005426210067281e0078281a +00951f18009c191800a4141900ab121900b2111900c0111800ce121200da1012 +00e40d1000de090d00d9080c00d4070b00c5090c00b60f0b00a9160e009f1c11 +008b3015007b2e13006c2c1100642a11005c29110050291000492210004f2614 +00572a140065290e0069260e006d230f006f1d0f0069131000670c1500660a1a +00620f2100621123006213260064142c00661934006520370064253600642635 +0064263100692227006e202600741e2500811d24008c1d1e00961c1800a01712 +009f1208009d1108009b11080097120c008f140d0085170f007b17100070140e +005f100f004f10110042131600371719002e1d1b0027231f002626200023261f +001e2123001e2125001e21270022232b0028273100332c36003f303b0047353f +0046324300422e45003d274500342144002f1d41002f173f0032173900341436 +0035103100330b2b002b06250022041f001b001a001800130017000e0017000a +0019000700190005001a0004001900050015000500100006000b000600070006 +0003000500010005000000050001000400020005000400050005000500050006 +00060106000501050005010400070004000b0004001201030019000400210004 +00290105002f01040035010400380003003e01020043010300460205004a0508 +004e080b00510b0e004f0e11004e1015004f0f1a00480e2000420e24003d0f29 +003b152c003a1a2e00381c2e003a1b2d0038192b0035162900301128002f1126 +"/> +<palette number="629" name="Riddle" data="0032100800330f0b002f0e0c002c0e0e0027101100221314001f1216001d1119 +00170f1d001a131a001e1718002a1b1a00371f1d004828260059313000633832 +006d3f3500925c3e00a46e5000b6816200b88b6c00ba957700b6937600b39175 +00a3846d0094776b00856a6a007e5c6e00784e73007a4877007d427b007a347c +007b2983007a1d8a00761c8600731c82006d1a770067196c005e19630056195a +0038192e00311925002a1a1d00331929003c183500451940004e1b4b005a2361 +00632b74006736880064388900613b8b00564384004b4b7d0046507800415573 +00356f6600387464003b7a6300428568004a916e004a9874004ba07a0051a97d +0056ab78005199590042914c00348a3f00318537002f8030002f722200356316 +0037440d003e3b0e0046320f00523413005f36180065391f006b3c2600763f39 +0083404f00985274009e678200a57c9000a6819400a8879800a88aa1009d8b96 +00808b730071856100637f4f005b79460053743e0048662f003e5d2400375423 +003c4d24004b4a2c00545334005e5c3d00656143006c664a00747255007b7f61 +008f927a0092988400969e8e0093a18e0091a58f008ba68b0088a6840084a479 +00839e7200889666008b9464008e9263008d9661008a9962008f9c670097a173 +00aa9f9100a59e9400a09e98009b9e9200969e8d00889780007c8d71006d8164 +0060735600425d33003a5b2d00325a280021532600154d2b00113e2c0011312b +00142830001526370017253e0019233c001b223b001f233600252b35002f3942 +003d465500565e78005c647b00626b7f006b7884007a838b00868b91008d8b95 +008984830086837b0084837400818764007c8b5900769255006f9552006a9450 +006a97500067994f0065995100649953005b8d5300537b5500516858004a5a5a +0043565f00415460003f52610040495e003e415d003d4258003e4a510040544d +00465c4800496051004b655900526467005b65770068618100745e92007e61a2 +009f62c400a662cb00ad62d300b760d900b35cdc00ad5ad700a65ac5009252af +008050960069458500523c7600473c6600322f4a0022262d001319190008110b +000d120900161408001e1a070022190c00272313002d271f0038272b003f2830 +003d21320039202f0031202e002f1e34002b1c3700241638001a0f3400140e28 +00100d21000f0f1d0010101a000f0d1b00130d1a001b091700260b1400341110 +003f131b00471f26004e2e3100533c3a00584e3400605a390062674200657f4e +006790590065a3590068ad560068ac5a006eb0620076b56b007dba730086bb74 +0087b7760089af7b0087a38100859582007e8276006f72610064644f00555642 +004d443e004331360038222700321a190029190b002a1707002b1506002e1107 +"/> +<palette number="630" name="Riverside" data="00526864005a616c005d5c7100605876005c527700584d7900544b7900514a79 +004346730042446f0041436b00424267004442640046415e0048415900474054 +0046404f00443c3e0045383e0046343e00493243004c3049004d2f4d004f2f51 +005230540052335200523650004f3a50004d3f50004b3f510049405300484257 +00483f5c004e416500564566005e4a6800614d690065516a00674f69006a4e69 +00734e6b007a4e6c00824f6d00834e6b00844e6a00824c6700804b64007b4a5e +00764b5d00735765006f606a006c6a6f006670760061767d00607982005f7c88 +006187a400658fb4006997c5006d9ecc0071a6d30072a6d40074a6d60078a2d8 +00819cd5008f8bd5008e85cd008e80c6008c7cbf008b78b900846daf008565a4 +0085528a00834f7f00824c75007d49690078475d0076475a0074485700714b52 +00764e5000805c5300876455008e6d570093725600987755009f805500ab8958 +00bd916200be947100c0988000bf988600bf988d00bb969900b693a500b48da3 +00ae82a0009f739e00936b9c0087639a00805f9900795b9900715590006a4c7f +006344600062415300613e4600613d4200623c3e00653b3900693d3a006d433c +0073493b008353410085554400885847008e5b4a00915a5000905b56008c5b55 +008a5b5000845b4f007e5b4f007c5850007a565100724f550067495600624254 +005d3b4e0056384400553843005538430056394600573a4a005f3b5200663b54 +006f3f4c006e3f48006e3f44006b3d4100683c3f00653a420065384500663b4a +00683c4f0073455b0074485c00764b5e00754c6500744b6d00724d7500705381 +0078619a007c67a000806ea700867bb0008b82b4008e8bb0008e96ad008e9eaa +008ea6a6008eb8a2008db7a0008db69f0089b49a0087b1930087af8a0086ab81 +0083a57a0081a079007f9c790075947a006b8a7e0065868200608286005b7f8b +00597d8f0059798f0058768f00567291005471950056759b00567d9d0059849d +005585980054829500548092004f7a89004d7286004b6d88004f6d8b00516e8f +00536f9600586e9c00586d9c00586b9b0054669c0052609900505a94004e5592 +00504e9600514a950052478f0054478b0054468400524679004e4771004c496e +004b516c004a5b6a004d676f0054717a005c7d830062848e00668a9d006990a8 +006b98b3006aa1ba006aa5c2006aaac3006aa5c400689cc400658dbf00607eb6 +005a74aa0053699e004f6290004c5a81004a547300494c680048435800473d4a +0044393f004536350047352d004b36290050382900573829005d3c2a005f412c +006249300066543300685d380068633b0067643e00646943005e6b47005c714c +005d79510060845600648a5600678a540067865600617d57005b755800556a5d +"/> +<palette number="631" name="Rose_Bush" data="00a2956f0099956700967d610094655c0091565a008e4859008b415700893a55 +007f1f45007821410072233e0071243e0071263f007127400071284100712842 +007128440076214900712146006d2143006d1f40006d1e3d006d1d3c006d1d3b +0071223b0076223e007c2341007a283f00792d3d00792d3c00792e3b007a2e3c +007a2e3d00852b480090244f009b1e56009f1c5900a31b5c00a11d5b009f205b +00912e59008a365d00833e620084446b00864a7500894c7c008d4e84009a4f8e +00a6569800b965a200bb6fa800be79af00bf80b500c088bb00b888bf00b189c4 +00c380ce00cb7bcc00d376ca00d76fc700db69c500db67c200db66c000dc60b8 +00dc54ad00d73c9a00d4308f00d1248500cf1e8100ce197d00c8157600c0176f +00b6216400b3276200b12e6100af366100ae3e6100b03d6000b33c6000b23c62 +00b13d6300ae3e6800af426c00b0467100b0487500b14a7a00b2538400ba548a +00c64e9900c9459a00cd3c9b00cd369900ce319700cf269100cf1c8b00cf1883 +00ce157d00bc1c7200b41f6e00ad226a00ab236800a9256600a62a6b00a52f70 +00ae3c7a00af448000b04c8700b04f8800b1528900b1558a00b1598a00af5e92 +00ad679e00b97cb900be82be00c488c400d090cc00d999c900e19eb800e49fae +00db949400d0948900c5947f00bf977900ba9b7400b0a36d00a1a8650092a75a +0087a4520077944500728d41006e873d00607b3300546d2c00476026003c541e +002d431300303d16003337190038301b003d2a1e00452125004f1e3000591b37 +00631b4000781750007a1953007d1b570087185e008e166400961368009b146a +00a11b6d00a31d6e00a51f7000ad1f7600af247700ac2a7600a42e72009f2b6e +00972c6600802d5200772f4b006f31450065323a00603236005a3b3200534731 +004d422f004c402e004b3e2d00463c2900363f2200283a1a00243417001d3017 +001b2e16001a2c16001a2c16001d2d16002d271700352016003e181400441412 +00451511004514110045141100441510003e1e12003e1e11003f1f1000411f10 +00461a0f00471a100048190f00471712004718140046191800471c1f00492027 +004d242f0055263a005d2c48006732540070396000754469007b496700804c67 +00824f6b00844e6e00884c6d008f49730098467700a1447d00a6468400ab4784 +00ae457e00af427600ad3a6e00a7336400a3285b00a01a54009c0e500096084f +00930450009202500092014c00900047008801430080043f007e0136007f0034 +007f0035007f0038007f003e0080064400820c4a0084195300842a6000873769 +0090446d009c4b7500a9537d00b65c8b00c3639800d068a000db71af00e17ec0 +00e58bd100e48ccf00dc8fcc00d38fc700ca91bd00c18f9b00b7a18400af9c7a +"/> +<palette number="632" name="Rusted" data="0081aab0007e9eaa0087a1b20090a4bb0098acc600a0b4d100a2b6d500a5b9da +00b3c7eb00b0c4e500adc1df00a3b6ce0099acbe00939fa7008e9291008c887f +008a7f6e007f645b007c615a007a5e5900755b5c0070586000695a6800625c70 +004c647700465d6f00405667003a505e00344b55003247500031444b002d3f40 +00293b390026322e0024312a0023302700222d2400222a220022292200222823 +0021292400222b2700242e2a00293332002e393b00303d400032414600394951 +0040525e0051657500566979005b6e7e005c6e79005d6e75005b6b6f0059686a +005d5142005d4a33005d4325005e401e00603e1800603f190061401b00614924 +00654f2f00677448006e824c00759151007a8f4f007f8d4d00878544008e7c37 +008a652100874f1700853a0d0083320700822a0200832b0100852d0100852e01 +007e32000085310200803605007b3b0900763d0f00714016006d482300634c2e +00535143004c534c004656560043565a0041565e003e54620041566600465a6b +004e6475005f73870062778c00667c9100667b9100667b910062768b005c6f81 +004e5e6b004b5a640048565e0046545b00455359004353550042555800435558 +00425457003c504d003a4c4a00384947003444430034444000384843003a4b49 +00465a65004f657200597080005e758800637a90006a839c00748ba6007991ab +007e93af008096b2007f97b2007f98b2007e96b1007e94ae007d91a7007c91a0 +00829e8a00809e7a007e9f6b00819b630084975c008f904a0093863400897e29 +00866c200089470e0080440f0077421100663f1700583e2000553b2400483e2f +003d4b4e004150560046555e004d5f6c004b5d6a004f626e0052646d0053666a +004c5e5c00454b380046462f004741270049361a0045331400462a1200462814 +00453020004632250048352b00483e36004848450049574f005062580057695a +0059685a0057645800526159004d5c540047554a00424c43003e4744003d474b +00485954004e5f5600556658005f735f006a7f63006e836b00728469006f8162 +00697c57005e6f5500546455004c5b5900495a5c004b5d6400516470005a6e81 +00677b94007589a6008094b500879bbd008c9fc0008ea1c3008ea2c4008aa1bf +00849cb8007e97b3007b92af007890a800758d9f006c869500617a8700576d76 +004f60630048524e003f423900373328002f291d002a231400291d0f00271b0d +0026180c001e180c0019190f00161d15001a1f1800191e190019221e00202d2b +002f3d39003d4b490047575a0055687200677987007c8e9d008a9cb10094a8c2 +009aaece009eb6d400a0b7d700a2b7d300aab2cb00b0bcc500b7c5cd00bad1d6 +00c5ccd900cbd6d800ccdfde00bfe6e300b1d9de00a4ccd60099c1ca008cb5bf +"/> +<palette number="633" name="Sachet" data="004968270031491800203711000f250a000d240e000c2412000e241300102415 +001d4120002c5326003b662d0049753100588535005e8a3600658f3700618e33 +005e8d300055842700497a25003e7023003d6e24003c6d2500396a2400366824 +00467328004e762e00567934005b7b3900617d3f00647c3e00677b3d0061723c +00557139004c693b0042633f00395d430031553f00294e3c00284d3a00274d39 +00254e3200295331002e59310032583200365733003354310031512f00304e2a +002e472c00253e31002f3a47003a365d00413a6e00493e8000513d8f005a3c9f +006e629e007b739900888494008e8e890094997f009699890099999300a0969d +009b86a2008775a300827a8f007e7f7b007f816f0080846300878f52008b9b4a +0084943800708436005d753400465e2a002f472100253b1e001b301b000d1c13 +0007150f0003140e00081e11000e2815001230150016381600244b1a003a5d1a +00557220005f7130006a7140006a6b4d006a665b0065556800604e72005b4f7d +00534f76004d565b004a5f5700476853004a6a55004e6c5700506c5e004f6560 +00596d61005f725a00667854006f7f52007886500085905300909c4e0096a049 +00949c4d0074873600697d33005e7431004562260032501b00223e1700183316 +00283c1f0036492b00455737004a5e37005066380052703b0052714200557047 +0056694b0074727d007f7b89008b849500958f9f00a5a09f00aeae9e00a9b58c +008fa263008b9c5a008797510087984f0087994d0085974a00909f48009caa45 +00a2ad4400a8b64800a8b64900a9b64b00a5b04f00a3ad4f009da74d00919e4c +007d864500748140006c7c3c00596f3700496331003a5625002b481d001e3d15 +0014300c00071c0400061902000616010003100000000c0000010e0000031101 +00041b0100051f0200072404000c2c070011320a00173a0d001f421000244715 +00274a1a0031501b003a551a0043591d00556a2300687b28007a872c008b9833 +009aad43009bac43009cac43009ca944009dad47009db049009fad4700a7b14a +00acb84e00aeba4c00b0bb4b00aeb84a00a5b2440099a942008b9e3f00748b39 +00647e3e00607f420064814d007a966d0094ac8400a7b68c00b4c59400b9baa2 +00b2a0a6009d8f94008f7b8c008b718900887c7c00918a7200999b63009dac58 +00a6b65600adba5a00b2be5c00bac86500b7ca7400b2c16d00b1c266009fb969 +00849f56006b833d00526931003750240023361600192412000c1d1000091c11 +00122213001a31170023432100375528004b65280059712b0067783200707930 +007a79320079793f00717c4700757d4f00777c64006e7381006e6a9300776a9a +00745ea5006c57a2006f629000706c80006d7a6a00738752007a8e47005f7d3a +"/> +<palette number="634" name="Sage" data="003f332200402e190042351d00453c21004c492c0053563700575d3c005b6442 +006f875a007a97690086a879008ab281008fbd8a008dc08b008bc48d008bc68c +008bc98c0089c6860082c07c007cba720078b56b0075b0640078b063007bb062 +0087a6580083964d007f86420076793d006d6d390069663500656032005e5024 +00543c18003a1e08003119060029150500261405002413050024130500241305 +002916060028160600281706002518070023190800241a0900251c0b00281f0d +002c2313002b3d210030482800355430003a5734003f5a39003f5c3800405f38 +003e5e2f0042562a00474e2600514b20005b491b005e46170061441400624314 +0060421500675125006b5c2e006f6837006c6d3a0069723e00607b47005b814c +005d8756005c8655005b8654005a7c4a005a724100586a3c005762370051512d +0048412500352912002e200c002718070024150600221305001f1004001b0e03 +001c0f03001f1304002317050025190600281c07002c210c00322913003a301c +00433d25005f5f4600686d5400717b6300717e65007281670076826b0074826a +006b7861005e6c5200526043004b573b00444f340039432a00333b2000303618 +003235130033381100353a1200373d14003a4116003e4217003f3f16003d3e17 +003c3c18003e391600403714003f3412003f321100412c0d0040280b00412509 +00422306003b1c010038190000351600002e110100270e00001f0d01001b0c02 +00160e04001611050017140600191507001b1608001f180a00231b0c00261f0f +00282010002921110028201000271f1000241e0f00221d0e001e1b0d001a180a +00141505001416040015170400171805001b1b090022230f002a2c1600333c1c +003c4d2300526d3a00577442005d7c4a00688f580071a1630078a96b007daf6e +0080b0720080b0710081b0710081aa71007d9f6b00778e60006f7d5300677046 +0060633f00585738004e4b330048402f00423727003a302100352b1b00302717 +0033291900342b1900352e1a00373219003b3517004036180043371a00483a1e +00493f1f004d461f00514d240055562b0057603600576c41005877450058814b +005b8a52005f8f59006293620064946300659260006e8e5a0077854f007f7a46 +00816c3b007b5f2f0078542500764b1b0075441400713c0e0063350800542d04 +00452702003a230200342201002f2202002e2304002e2707002f290900312b09 +00332c0800342b0800382c0a003f2d0d00452e0f004d331100593c1700614b23 +006d5c3500796e4900827f5b0094906c00a6a68100b6b99600c3ceac00ccddc1 +00d2e4cd00d8ead300d8e6d100d1e3ca00cddfc500c6d7bb00b9cdaf00aabaa0 +0094a78d0082967a0075836700686f56005d5c4400514b360047402d00423926 +"/> +<palette number="635" name="Saturday_Morning" data="007eabd70073afcf006ab3cd0062b7cc0065b6c80068b6c5006eb3c20075b1bf +008d9cc7009796c700a291c700a390cc00a590d200a88fd300ab8fd400ae8cd3 +00b18ad300b57dbd00bc7dac00c47e9b00c7758b00cb6c7c00ce6e7000d17064 +00e0754300dc6b4200d9624100d9634700d9654d00d7645300d5635a00d26771 +00c9698c00c87baf00c780bc00c685c900c67bc700c772c500ca6cbf00cd67b9 +00d25b9d00d25d9200d2608800d46e8a00d77c8c00d3838c00d08b8c00c69f97 +00b9aba700afb7be00a8b6c000a1b5c30095b3c7008ab2cb0083b4cb007db6cb +0071afd1006dabd3006aa7d600769dd0008293cb008e8dc6009b87c200b480b9 +00c57bb100e46b9e00ef679800fb639300fc5f9100fe5b9000fd558700fc4c84 +00fa369400f4349d00ee32a700eb33b000e935ba00e73bc000e541c700de50d3 +00d75dd000e069a700e36a9800e76b8a00e8678600e9648200ee5b7000f55662 +00f24e6a00f14d7200f14c7b00f04e8200ef508a00e75d9b00dc6ba600d57ba7 +00cd8caa00bfbca500c2cb9300c5da8200c4dc7b00c4de7400c0dc7500c7da72 +00d2c57300cfb98200ccad9100cda79100cfa19200d4968a00d9858400e17981 +00e76c7d00f4526300f64e5f00f94a5c00f9465900f5435100f5444b00f7464e +00f6465400f5475a00f4486000f34a6800f24d7000ec4f8200e0579100da5e9c +00d367a300b37cb400ad80ba00a884c000a081c6009c7dcd00937cc900967cca +00af68c300bd63bc00cb5eb500d15fb100d761ae00e062a900e369aa00dd74af +00d980b200c39bbf00bba3c200b4acc600acb4c800a6b8ca00a2b4cc009db5d2 +008fb5db008ab3dc0085b1dd007fb3dc0081b5da0085b9d90085b5d70086b0ce +008ea6c500a396a600ab919f00b48d9900c67d9400cf729600d16c9700d8719a +00e475ae00e076b600dd77bf00d17fd100c08ada00b395de00aba0df00a3a4df +0099a9d9008eadd20088b7c8008ab7c2008bb1c10089a9c30083a9c70081abca +007aa3d4007a9fda007a9ce000799bec006c9aeb006399e4006a92e5007c89ef +008380f600827af0008879ea009878e900ab7bea00b47de900b382e300b084e0 +00af86dc00b58bdb00b68dda00b98ad600bb81ca00be76ba00bc75b200b271ae +00ad6eab00a566a6009d6bad008e69ba008a60c900885bcf008d62d700946cd8 +00a468de00ab69dc00b26ed700b47dc900b88ac400b594c500b69aca00b39ccb +00ac9cce00a398d300a194db00a191e0009c90e000948fe0008d90e3008d92e6 +008c95e5008d9ae5008ba0e4008ba4e40089a2e3008da0e30094a1e0009ba1dc +00a39dd300aa95c900b490ba00b68eae00b891ab00af90ac00a88aaf00987cb1 +008c74bf007c72cc00787bdb007c83e0007e83e7008279e700817be800868fdc +"/> +<palette number="636" name="Scattered_Petals" data="0044787b0039616000335654002d4b4900283f3d002434320023302d00222d28 +0021231b0020201a001f1e1900211f18002321180025271700272d1700273018 +0028331a002a3720002b3a23002d3e260035482b003d5230003f563600425b3c +004a6b51004e6f52005273530052705300526e5300506b53004e685300455c4d +003f524400363c3500383a34003a383300463e3f0053454b005e4753006a4a5b +009652750097567500995a750094557200905070008d496c008b4369007b3a59 +005f2f45002a2221001e1d1a00131913000e1610000a140d000b150d000c170e +00152413001a2e1b001f39230027412b0030493400374b3a003e4e4000585053 +00725867009d689200a6749d00b081a800b285aa00b48aac00b290b000a98dae +008e889900758385005c7e71004c6c5d003c5b490039534300374c3d00334033 +002e372e00252924002528210026281f0025271f0024272000212722001e2324 +001e2423001d2926001d2f2a001e322d001f353000213b3200263f31002a4130 +002a48350031583f00355d3f003a633f003a6741003a6b44003e754d0045835b +004e976f004d9a74004d9e79004e9e79004f9e7a004f9b72004e926a004a8b5d +0045815100406d39003d6834003b633000395e2700395d24003f61280049692f +004f7c4a0050845500518c6000548d6100578e6300578e6500598e6600579264 +00549561004c8751004a804c00487a4800497140004a6e3b004c6f37004a6e34 +00435f2e003e552d003a4b2c0038482b0036452a00313c26002e372100292f1e +0026281d002b202100322024003a2128005022330066233b006b253a00692a38 +0070453d007a4d440084554b008f5e4e008e6655008b6c5e008c746b00998285 +00af899800cc89ba00d483be00dc7ec300e877cd00ed6dc900df66bc00c95eaa +009b48790093416d008b3b620070324b00562b38003b25250025211900272c18 +002a3517002b39170031441a002a3c180031471e00395526003d5e290042682d +0034542900304f28002d4b280027412600223b22001f3420001a301e00182b1c +0017291f00192b25001e322f00233e3b00294c4600336054003e73670048877c +0051998e00679c9d007f9fa900979db600ad9bc400b39ecb00c595d100d98bd1 +00eb7dd200fa73d600f773d500e876cb00dd7bbb00d180a900c4809700b8808c +00a07d7a008a796900787958006977480060723f00566a3500495d2f003e522c +0034492c002c412b00273c2700233720001f321a001b301700182c1600162816 +0017281300192813001d2f120020361400223a1900243c1b00243b1f00243d20 +00274022002a4323002e452500324428003c432d004e493d00685050007c5962 +007d667000796b750076717e007b778a008879970082829e0070849900597e8a +"/> +<palette number="637" name="Sea_Mist" data="00429484004691860040897f003a817800317066002960550025594f0022524a +00223d3900273e39002c3f390030423d00344642003d474500464949004b4d4c +00515150006367660065706f00677a780064827e00618b84005f8e86005e9189 +0050958800469386003c9284003a897b0039807300387a6e0038756900376b60 +0034655c0038544f003b4e4a003f494500414846004448470045484700474947 +004a4a4900464f4e00425553003f5a57003c605c003a5f5b00385f5b002f5c59 +00235a5900175d590018615d001a6661001e6e6a0023777300277d78002c847e +0040a59b004fb4ac005fc4be006ed0cb007ddcd9007fe0dd0081e5e20083e6e6 +0080e8e8007fe4e4007cdddd007ad6d60075cfcf0071c9c80066bbb8005eaca7 +005b928b0059837c0057746e00526661004d5954004a55500048514d00454a46 +0040454100383a37003436340031333100303230003031300030313000313030 +002e2f2e002e2f2e002e302e002e302e002f302f002f312f002e312e00293330 +00243432002039370022393600243a3600243a3600253b3700243e3d00294340 +0036464200394642003c4743003d4844003e494500414c4800444e4a0047534e +0048555000416058003f6259003e645b003b685f003c6960003c6b5f00396b5e +002f6056002d584f002c5149002c4d45002c4942002b413a0027383400233432 +00233232002b3936002c3c39002e3f3c00314945003a534f0043615d0050726c +005c9a930060a9a30064b9b40067c0ba006bc8c10071d4ce0074ded70071e0db +0071d8d30066c1bb0064bbb40063b6ae0059aaa100539c91004b8a7f003e776c +002f5c52002c594f002a564c002c5249002f504900364e48003f4c4800464d4b +004d504f0052605d0051646000516863004f6f670052746c0053786f00577e76 +0057887f00598a80005c8c82005f8f850067928a006c99910072a098007aa7a0 +0081ada60087b4b00087bfbb0082cbc60080d3cf007bd6d20079d6d20078d5cf +006ac9c30063c4bd005cc0b8004fb5ab0043aca0003ea396003c9b8d00399688 +003794850032958600319b8d0035a3960038aca1003eb7ab0040bcb20041c1b7 +0043c3bb0042c2ba0046bfb70049b7b0004cada7004ea39d004d99930050908a +0054898400578982005a8d85005b948d005c9f980064a69d0068ada5006cb3ab +006eb5ae006bb6af006fb3ac0071aca60074a29b00779591007588850070807d +00697a770061736e005b6b6700536460004a5e5b00435b58003d5753003a524f +00364c4800304844002d4440002b423f002f403d00333f3c0032413e002f433e +002b4640002748430024494400214f49001e544e001c5952001b5c53001a5d55 +001a6257001c675c0028706500307469003a847900409084003b95860043a091 +"/> +<palette number="638" name="Secret" data="0052356d002815330028173500291a3700271737002615370025163500241733 +001f1d35002119310023152e001d13280018112300160f2000140d1d00130b1c +00130a1b00180a2300190c21001a0f2000181024001712290019142c001c1630 +002120420029244a003129520039265300412454003f234f003e224b00371a50 +0035204b003824490038294b00382f4e00413561004a3b7400443c75003f3e77 +002b2a540026234500221c36001f1a33001d1930001c182c001b182900171226 +00141122000e0e1a000c0c19000b0a18000e0a1900120b1b00110a1900100a18 +0008050c000e07130014091a00160a1f00190b2400190c2300190d2300180f24 +0015122300161324001615270016172b0016172b0017182c0017152d00191631 +001d163700231d400029254a00312950003a2e56004631620053346f00633887 +009351b300ab45b3008737940063297500592e6f004f346900332c56002b2748 +001a19380015152f0011122600101124001011230011102000140d1d00150e20 +001a0f200023112b002f1436003c1742003f1b4600431f4b00441e4d00492555 +0053206500502361004d265d0049265a004626580039204800351c3a002c1937 +00291838002e16380031173d003519420038174400351c4300301e44002c1c41 +002b1d40002921460028264d00292349002a204500211c3c001d1a37001a162f +00191526001612200015121f0014121f0014141e0014121f0013111f0012111f +000f0e1c000f0d1c00100c1d00110d1d00120e1d00130f200014112400131224 +0011102200100f21001110210013122200141124001413250015132900121130 +001f184200211b4400241f4700221f5400251d4600201942001a12390013132d +00111224000e0e1a000c0c18000a0a1600080614000c0015000f031700180523 +001d1129001e132b0020162e0022162e0022162c001d1427001d1127001f152d +001d1431001e193700211a3c00251a4400271c4600292148002a234c00301c4d +0024163a0022143500201331001d102a001c0e25001b0f23001c10280020102b +001f132b001d152a0017132a0019152c0020132f00221334002b133500300044 +0037173e0031193d002b1e3a00221e3500201c35001f152d001a112200170e1f +0016091b00130d1900110e1900120e1c00151120001a1126001b19310024213e +002c254e003a2b5600502e6a0061387a0064428e005c4184004e417900583672 +00533374004c29610044204c00321e41002a1b38001f16310017152a00141325 +001411240015122500161128001c163200261c41002c235200322a5900402e6a +004a3071004a39800052468800534b7e00574e8700625986006752af00814cb6 +00ad69bc00c57ee600dc92ff00a76cc8008a58b10069559c00704a850061337c +"/> +<palette number="639" name="Serenity" data="00908589008e7e81008e7d7f008e7d7e008b77770089717100856c6c00816768 +006b50550061464d00573c450051363f004c3139004b3239004a3339004c353b +004e383d0058484d005c4e550060555d00645a610068606500696066006a6168 +00685f6500675b62006657600064555e0063545c0063545c0064545c0067575f +00685c630071666b0072686c00746a6e00756a6f00766a700075697000746970 +0072666d0072656c0072646c0075646c0079656c007a656c007c666d0080676d +007f676d0077666b00726368006d606600665a610060555c005e5259005c4f56 +0054414900533a420053343c0053353d0054373e0055394000573c43005e464a +00624e51006b595b0069575a0067565a0065555900635459005e525600564b51 +004c3f45004a3b4200493840004c3b42004f3f450055444b005b49510069565c +0077676b0096868a009d909300a59a9d00a69a9d00a79b9d00a89798009e8d91 +00917d7f008a757800836d7200816c71007f6b70007e6b71007c6b71007a6b70 +007d6e740085787d008c7c800094808400978386009b868800a38a8d00a99192 +00b6a3a400baa9aa00beb0b100bcb0b100bab0b200b3aaad00aea5a900a69da1 +009d93970094848900918085008f7d820089757a00876d720081676c007a6367 +00695056005d484e00514046004d3a410049353c00422c34003c2730003b252e +003d262f004c343c0050383f00543d43005f444b00634c5000644a4e0063454a +004c373b00432e34003a262d0035242b00302329002b1e27002a1a2400271922 +00261923002c1a24002e1c2600301e280033232c003b28310044313900493940 +0057484e00594b51005c4f55006153590066565d0069595f006d5a6000725c63 +00756066007a6870007d6c73008071770085797e008b80860092888e00999095 +00a89fa300aba2a600aea5a900b2a8ac00b6a9ab00b6a8aa00b1a1a400ac989a +00a49091009a878600927b7c0088717300816b6c007c65670077606500756167 +007c6d73007f71770082757c008a7e840095868b009d8e92009f929700a29499 +00a4969a00a0959a009d9499009d9296009b909400998f94009b9195009c9296 +009e959900a4999d00ab9b9e00ad9c9f00ad9c9e00ae999a00aa949600a08e91 +0097878b0091818300887b7e0080747a007d7176007c7176007e7276007f7378 +0083787d00887b8000877c8100867c8100867c810083797e0081777d0082777c +00847a7f008a80850093898e009f959900aba2a500b9adb000c8b8b800c9bcbd +00c6b9bc00c3b2b300b7a9ab00aa9ea200a09297009a8a8f0097848800967f85 +00977c8200967a7f0094787e0091757b008d73780089727500846d710080696e +007d676c007b656b007b686e007d6c730084767c00887d8200867b80008c8084 +"/> +<palette number="640" name="Serpent" data="0024462c001a5237001a5037001b4f380015463300103e2e0011382900123225 +000b2217000a2312000a250e000a2d13000a3618000a3e1f000a462600094426 +000942270011331f00132c160016250e00272b0c0039310a00423908004c4107 +006b49050065450200604200004d3101003b20030031190100281200001f0f02 +001f0d0300421a02004f2907005d380c005f421900624d260058512d004e5534 +00305749002d5149002a4c4a00384d4100464f38004f4d3500594b3200614d2d +005c502d004b5b3a0037533900234c39001f422f001b39250019341f00183019 +00191f070021230b0029270f00393b1f0049502f00565e3600636c3e007d753e +008c844700ae954c00ae8d4400af863c00b0853800b1843500b47f2b00b98123 +00c4831400c0831400bd841400b27d1400a87615009f6e140097671400845518 +006e471000452a0a003f290600392902003f2b0300462d04005935070068440b +00995b0c0096601000936615008d621500875e16006f561a00564a22003e3c28 +00292f29000d201f0009171a00050f1500040f0f0004100a00040f0800050e09 +0007100800070f0700070f0600070e0500070d04000509020003060100030402 +0003050300060c080008120b000b190e001127170014301e001c3a2300274125 +0031412200383d1d004039190045371a004a351c0055381e005d411a006b461a +0076471900754d0b006d4a0c0066470e005a3d0a0046320700312b0d0024250d +00131d0b00101b0b000d1a0b000d190b000e180b0012170a0014140700191404 +0026190300542c02005c340300653c0500804c060098600c00a3721900ac8423 +00c9b54400cdb84b00d2bb5200c6b75200cec25300d1b64e00be9a3e00b78e31 +00b27d2c00a5661900a05e1e009b5723008e46240076401b00603b230051342c +002b3f2e00284231002645350029493200354e2d00475b2f005b643200736b34 +008b7b3800a08e4700b3a16100b3ab6b00b2ad6200c0ae6300aea560009c9746 +0098732300926b1c008d6416008b5910008c520d0083460a00703a0a00623009 +00572a0a0049280b00442a0d0052370f00694b11007956190092691b00a87a1c +0096722400836a280072642d00535c3200354e310028423300283e3100253a2b +0025332300282b1b0027261800212114001e1b0e0017170b00111208000e0e05 +00080e0400050e0200050e000004110100051102000711040009140600091507 +0009150800091409000a1207000a0e04000d0a0400100b050015120800191b0f +001b281a001d3622001e4028001b442b001b3e2a001e37230020331a00242d19 +00262c1800272d15002531190023311800252a1600282c18002c2b1500302614 +0035291200382b1000342d120031311200303112002c331600263b1e00244324 +"/> +<palette number="641" name="Sharp" data="002ad619001dcd11001cc914001bc517001bc222001cc02d001aba340019b53b +00139747000e824300096d3f00065e39000350340002423b0002344200032f44 +00052a4700132047001e2d49002a3a4b0030445400364f5e003550650034516d +00375c85003d6c8e00447d9700478f9b004aa2a00045a69f0041aa9e0036a698 +0029a28e001a986b00179f590015a6470011a839000eab2b000fac280011ae25 +002bb31e003eb81d0051be1c0063c21f0075c723007fcb26008acf290092d32f +00a7d43100c4c22c00c2b22700c1a32200b3942000a5851e009c7e1e0093771f +007653130064430c00523306003d2a0500292205001f1f0500161c0500091903 +0002160300000f0100001a020000250300002b030000320400003e0500004906 +000052060000560600005a07000066090000720c0000761300007a1a0000802d +000283400003715f0004695d0005625c00055d5a0005595800044e5700064357 +000a2a63000e255f0013205b001321520014234a00122a3700113324000e3916 +000b400e000f5111001355140018591700185917001859170016571600105412 +00074e0f00094810000c4211000c4011000d3f11000d3c11000d3610000c2c0d +0006260800011a04000119030001180200011a0200011e020001200300022204 +00081e0d000e1d1200141d18001521190017261b0016321c00153e1b00134a18 +001255180015681b00176d1c0019731e00197d1e0017841c0015881600188a11 +002e7a080041740800556e08005e6e0700686e0700756e0700866e080095650b +00a85a0a00b84d1400b94c1500bb4b1700b64d1900ad531a009e541e00924c1b +00733b1c0069391d0060371f004c3c20003a452000295022001b571e00155a1a +000f5a140007640f0006680e00056c0d0004770c0003820b00038c0a00018c07 +00007a050001730400026d0400076203000f5a03001c5402002e520100425501 +00545701006658020078570200885b0300985e0200a45d0300ae620700b16e0c +00ab821100a48812009d8e130091991300829b100072970f005c9411004d9314 +00398f1500258b1500158715000c80100007750b0001680700005b0600005005 +0000480500003e04000032030000270200001c01000115010001160000011d01 +0001290200013603000243070003500c000a5e1200116d1800158027001c943c +0023a54d0023af5d001db66e0020ba7b0024b6820021af8b001fa89c00279da2 +00258f9f001b7d9e00176e9600145e87000d4c7200053d6800072f5c000b244c +00131f3e00201a2f00331c1f0048240e005a2e070061340a0064421200695322 +006f6137007b704c008d846000a6976400aa9e6200a6ac610098b75d0082ba5d +0069ba5f0058c06e005ac4710056c46a0057c9610053d24d004ad539003ad524 +"/> +<palette number="642" name="Shy_Violets" data="00625a5200414730003c402f0037392f003c2e350041243b00452140004a1e46 +00541a500050264b004c3346004a3d3f0049483800484b3800484e390048503e +004952440057536900604c7400694680006745830065458700614887005e4b88 +004d6162003c6950002b713f00257d3200208a26001c932000189c1a0011a11b +0012aa1c002ca0130032961b00398c240048782e00576438005c593d00614e42 +0063336000602d6f005d277e0056287e004f297e004b2a7c00482b7b0049297b +004e2c7400482960004b255a004f2255004c1e5100491b4d00431a4d003d1a4d +002d1b470025243f001e2d3700173c3100104c2b0010562700106123000b6c23 +000d6d23000f5934000e4a3f000e3c4b0010335000132a56001c1c5d001f145e +002e165d00341d59003a2555003a2f48003a393c0037403a00354738002e5334 +002e5a29002c5f2300355c2d003f59370049523c00534c4200663e500073315a +008120650081186600811168007b10690075106a00630c61004c0b5a003f174c +00382c400033492e0032502c0031572a00385a2b00405d2c00455536004a4b47 +00563f7b0069438c007c489d00804b9e00844f9f008b56aa008f639b008c6f8b +0080787000646b4d00586745004d633d003c5d3100375031003a40350040313d +0058134a00640c4c0071054e0074064e0077074e00750c49007b1e4400773537 +0072472e00634f2b005f512b005b542c0054592d004d523300423f4200362a51 +0025125e001a0e5e000f0a5e000b095c0007085b0007055c000e045c001c065c +002a0a5b00450866004f086b005a0971006d0c7b007c0d83007f108a0080148c +007b1b83007a1b7e00791c7a00771f6d006d1f5e006a1b54006b165100701550 +006c1255006607680064076a0063086c005b0b7000560b710054097100540a6c +004c0862004d0760004e065f0052095e00540b6100550d66005a0e6b00631474 +0071208600812b99008e39aa009c45b500ab5ac300b96ccf00c67bd900ca82dd +00c78dd900c78bd700c789d600c37dd600bd70d500b065d000a459c600944bbb +008a3cb5008132ab007b2ba50073239d00711e9b00771c98007f1b9e00871ca3 +00901ea7009c29ad00a832b500b137b400b734ab00b930a200bc34a000b33397 +00aa2f8a009f2379009d2472009a2b7300942e77008a2d7a007c2d7b007a3482 +00753386006d2f8900592782004c277a003f246e00352464002e1e5900312553 +002a265a0020236000151962001a1b5e00161c680019167100191173001f1b66 +001b2e59001b3f4b001e4f4200265f3a002f6738003d6a380050694600656e55 +007e696a00995e7d00ae559a00bf5eaf00c86cc400cc74cc00c879d100ca7fd1 +00ce88d500cf8ad300c98ace00c67fc200bb74b200a76a9c008b6c830075656a +"/> +<palette number="643" name="Singe" data="00d2a45600ecc86a00e3bb6200dbaf5b00be8c4b00a16a3b00945a3200884a2a +004c151400420d0b003906030036030100340100003401000034010000340100 +0034010000430d0d00582113006e351a00914f2c00b46a3f00bf7d4800cb9052 +00f5b46a00f9c27a00fdd18a00fed78c00ffde8e00fedd8c00fedc8b00fede84 +00fdd97f00e3b66800d9aa5600d09e4500c7923f00bf863a00c1883800c38b37 +00dba84a00d8a84e00d5a95300d0a24e00cc9c4a00bf8e4400b2813e0096622d +007f442100541a0700480d03003c000000380000003401000034010000340100 +0034010000340100003401000034010000340100003401000034010000340100 +0034010000340100003401000034010000340000003400000036000000390000 +00420101004503010048060100480501004804010045050100430601003e0300 +003b000100340000003400000034010000340100003401000034010000340100 +0034010000330100003301000031010000300100002d0000002c010000270200 +00230100002302000026010000290000002a0000002c0000002f000000320100 +0034010000340100003401000034010000340100003401000034010000340100 +0034010000340100003401000034010000340100003401000034010000340100 +003401000036010000380100003b0600003e0b00004b1400005d1d0000703408 +0095471400ca6f2900d7762f00e47d3600f28b4100ea934b00e8984c00d89045 +00b0773900955629007b351a00702e1500662810004d1208003f010300390001 +0035000000340100003401000034010000340100003401000034010000340100 +0034010000340100003401000034010000340100003401000034010000340100 +0034010000340100003401000034010000340100003401000034010000340100 +0034010000340100003401000034010000340100003401000034010000340100 +00340100003301000031010200300104002e0103002a020300280004002a0102 +002c0000002e0000003000000033010000340100003401000034010000340100 +0034010000340100003401000034010000340100003300000033000000330000 +0033000000330000003300000033000000330000003401000034010000340300 +00390500003f0d0100471704005c250c006f35120078420e00894e0e008e4d17 +0081420f0076350200692905005414050047080100430503003f0002003a0101 +0039010300390002003700000034000000340100003401000034010000340100 +0034010000340100003401000034010000340100003401000034010000340100 +0034010000340100003401000034010000340100003401000034010000340000 +0035000000370200003e0700004a1302005f250c0079411b0097632b00b9833f +"/> +<palette number="644" name="Slate" data="0048485c00515164005353670055556a005353670052516400504f61004e4e5f +004a475800484556004743540046435300464352004543530044435400434354 +00434454004646550046485700474a5900474c5d00484e6100494e62004a4f63 +004a5267004a5267004a5267004951670048516700474f6600474e6500464d65 +00444b64003d4664003a43620038406000343d5c00313b58002f3957002e3856 +002d3554002c3554002c3555002c3655002c3756002c3757002c3759002c385a +002c385a0029375c0027355c0026345c0025335b0025325a0025315900253159 +0025305800252f5600262e5400262e5200272e5100282d5000292d4f00292d4f +00292d4e00292d4d00282c4c00272c4b00262b4b00252a4b0023294a00222748 +002326440023264300232642002426400026263f0026263d0027263c00292539 +00292538002c2535002c2434002d2334002d2334002e23340030233400322534 +00372937003a2d3b003d313f004034410043374300483c48004f434d00544751 +00584b540060525400625453006456520064565100655651006756510068564f +0067544f0066524e0065514e0064504e00644f4e00614e4f00614d5100604b52 +00604d5500634f5c0065525e00675560006a5965006e5d680075646c007c6c70 +008877790089797b008b7c7d008b7b7d008b7a7e0088797c0085767900817273 +007d6c6f0073636500716164006f5f63006a59600067565f0063545f00604f5d +005d4f5d005e505d0060525d0060535d0061545d0063555d0064565f0065565f +0065565d0064565d0063555c0063555c0063545a00605259005d4f5800594d54 +004d424d00493e4a00463b47003d344300382e3d00342a3900302737002d2635 +002d2535002a2337002922370029223700272238002620390026203900262039 +0026203b0026213b0026223b0026223c0026223c0026223d0027233d0027233f +0026233f0026254000262540002726400027264200292740002a2742002a2742 +002a26400029263f0029263f002a253d002a253c002c253c002c233b002c2339 +002c2339002c2338002c2238002c2237002c2237002c2037002c2035002c2034 +002d2034002c1f32002c1f32002c1e32002a1e31002a1c31002c1e30002d1e30 +002e1f3000301f30003120310031223200312334003123350030253700302539 +002e263b002e273c0030293d00302a3f00302a4000302c4200312d4300312d46 +003130480032314a0035344e00393852003c3d580040425d0042446100434763 +004348640044486500434865004348670044486700444a670043486700434867 +00404765003f4764003d4463003c436000393f5d00373d5a00373c5900373c59 +00373c5900383c5900383d5a00393d5a003b3f59003c3f5a004042590044445a +"/> +<palette number="645" name="Slightly_Messy" data="005179170057761600597316005c7117005d6e17005f6b170060691700616818 +00666219006b601900715f1900775f18007e601800856016008c6115008e6114 +0091611300996411009a640e009c650c009d6409009e6407009d6306009d6305 +0098630300946404009166050090670a008f6810008e6813008e6816008d6a1d +008b6c26007a763e0070764a00667757005c735e00537065004d6f6700476e6a +002b666f00225e6c0019566a00134e65000d4661000b425f00093e5d0006365a +00032f580002245600062158000a1f5a0010205e00172262001b236400202466 +003b2b6e0049336f00583b710066486f0074556e007a5c6d0081646c008e706b +009a7a6500aa8d5a00ad995700b1a55400b0a95300b0ad5200aeae5000aaac4e +00a0a34a00979e49008f99480082904800768848006f80490069794a005d6a4b +00515a4d003a3f4c002f334b0024284b0020234a001c1e490018154400150f3e +00130735001306330013063200120631001207310013083100140b3200160f34 +0019163500252737002f2e380039363a003e3a3a00433e3b004f4839005c5135 +00755e2d007d5f2a0085602800875f26008a5e25008d5b23008f5622008e5024 +008b4a2a007c3c3c007637410070334600622c500055285a00492665003e276f +002b2b8000252f8400203489001f3889001f3c8a0020438800234b830026517c +002955730036595f0038595a003b5a55003f59490040573c0041553000425027 +0044451d00423f1900413915003f3613003e3412003a301100382d1000372910 +0037251100371d1600361b1700361a190035191c0034181e0033152000311322 +002e0d28002d0c29002c0b2a0029092c0028092d0027082e0025073000240632 +0022063600210b4000220d4200231044002517490027214d00282b5000283655 +00294a6100294f63002a5466002b5e66002b6565002b6a6100296a5c00266758 +0023635400215e4e001f5947001f5340001f4c390022443200243c2e0028362b +002c392b002e3b2b00303d2c0034432e003a472f00404f300043573200446034 +0042673500416b3500406e3500416e3500426c33004468310046612e0046592a +00455025004548200046411c00493818004b2e14004d2410004e1b0d004f150a +005211070054100700571007005a1209005b140b005d160f005e1715005e181d +005e1a26005d1e30005b2139005724430052264c004c285400462b5a00402f5d +003b345f0036395f0030405b002d4755002b4d4b002b5241002e563700305a2d +00345e24003a631b0041681300486b0c004e6d0800516e0700536d0900536d0b +00526d0e00516d1000506e12004f6e15004c6d1700486d1900436e1b003d6e1b +003a701c0039711b003b731b003f741b0043751a0046771a004a7819004d7918 +"/> +<palette number="646" name="Smog" data="002f342d0030332d0030322d0030322d0030312d0030312d0030302d0030302e +00302f2d002e2e2c002d2d2c002b2b2a002a2a29002829270026282600252725 +002426250021242200212422002125220024272400272a27002a2d2a002e312d +0041433c004a4b440053544d005e5d56006a665f00716b640078716a00847b74 +008c817b008d7f7b008b7b79008977770085737400827071007d6c6d00796969 +005f545400554d4c004c46450046424000403e3b003d3c38003a3a3600353632 +0031332f002e302d002e302d002e302d002e2f2d002e2e2d002e2d2c002e2d2c +002c2d2b002b2c2a002a2c2900292b2800282a2800282a2700282a2700282b28 +00292d29002f342d0034383200393d37003b4039003e433c0044494100484e45 +0050594e00535c510056605400545f5300535e5200515c50004f5b4f004b574b +0047534800444e4400434b42004249400041483f0041473f0042463f00444840 +004a4c44004b4c45004c4d46004b4c45004b4b4500484a440046494200434740 +0041463f003a403b00373e3900343d3700333d3600333d3600333d3600343d36 +00364038003741390039433a003a433a003b433b003c443c003e433c003e433c +003e433c003d413a003c4039003b3f3800393c36003739340036383200343731 +0031352f0030342e002f332d002f332c002f332c002f332c002f342c002f342d +002f342d0030332d0030332d0030332d0030322d0030312d0030312d0030302e +00302f2d002e2e2c002d2d2c002c2c2b002b2c2a002a2a290028292800262826 +00242625002124220021242200212422002125220023262400272a27002e312d +0041433c00454740004a4c450053544d005d5c55006a665f0078716a00847b74 +008c817b008d7f7b008b7d7a008a7b7900897777008774750082707100796969 +005f54540059504f00544c4b004c46450046424000403e3b003a3a3600353632 +0031332f002f312d002e302d002f302d002e302d002e2f2d002e2e2d002e2d2c +002c2d2b002b2d2a002b2d2a002a2c2900292c2800282a2800282a2700282b28 +00292d29002b302b002f342d0033383200393d37003e433c0044494100484e45 +004c544a0050594e00535d52005660540055605500535e52004f5b4f004b574b +004753480045514600444e4400434c42004249400041473f0042463f00444840 +00474a41004a4c44004c4d45004c4d46004b4b4500484a440046494200434740 +0041463f003e433d003a403b00373e3900343d3700333d3600333d3600343d36 +00343e3700364038003741390039433a003b433b003c443c003e433c003e433c +003e433c003e433b003d413a003b3f3800393c36003739340036383200343731 +0032362f0031352f0030342e002f332d002f332c002f332c002f342c002f342d +"/> +<palette number="647" name="Sno_and_Shadows" data="00081316000b14200008102200060c2400050926000407280002052800010429 +0000042f00060b3b000c12470017255a0022396d003b4e8100556495005d6f9b +00667aa2008593ac007a879900707b87005f6a78004f596900475164003f4a60 +002633600025346200253665001d316200162d6000162b5d0016295b0015275e +00182b630024386d003f517f005a6b92007686a90092a1c100a5b1ca00b8c2d4 +00e4eaf300eef3f800f9fcfd00fbfcfd00fefcfd00fefcfd00fefdfd00fcfdff +00f5f7fb00e1e6ee00d2d6e200c3c7d600b9bfd500afb8d500b2b8d300b6b9d2 +00ccd1e600dadeea00e8ebee00e3eaef00dfeaf100d8e3eb00d1dde600bacad8 +009db0d2008199bf007790b5006e87ac006c84a6006b82a0005c7293004a5b7b +00293553001f2d450016263800152535001524320016253400172737001a2b44 +00253656003b4d890055689e006f84b3007a90bf00869dcc00a3b6d700b9c6df +00cad6e700c5cddd00c0c4d300bcc1cd00b9bfc700b1b6c000acb3bf00b2bbc1 +00bcc2c600d8dee100e2e7eb00ecf0f500edf1f600eff3f800e9eff700dde3ef +00bac0d800abb1d1009ca3ca0098a1ca00949fcb008e9bd00097a2d500a9b3e2 +00bbc6ea00dfe4f400e3eaf700e8f1fb00e8f3fa00dee9ee00cad8e400b3c3d9 +008d9aab00808da40074809e00737d9a00737b9700717892005f6d9a004e5e95 +00455284001b2d6100152454000f1c470009123600080f2a00080d2200070c20 +0011162d00151e3a001a264800233253002c3e5e004256750057688b0071839f +008c9ab000bdc6c900bec7c900c0c9ca00c9c9c600c7cac400b4bfb900a9aea9 +009499a0009198a0008e97a100929c9d00939fa0008f9ca50089939700767f82 +0058687300343a5100272f49001b254200141b36000e142c000a0f25000b0d20 +000b1227000e152e0011193500172146001d2a5600223161002738710026397c +0022367c0025358100222f7e001d2c770022317e00333b82004a528900636fa2 +00acb3d000bac1da00c8d0e400d5e1e700d8e3e200d0dbdb00b7c8c6009aa8ac +0078869500596786004652760032406700243261001e2d5d0019275700172255 +0011224f000d1d41000f1a3900101e35000f202c000f1f2300101b1e000c161c +0008151a00060e1400040a1200040d1300050d1200060c1100050d1200050d11 +00050b0f0005080f0005080d0004080c0004080e0005091200040a1800030c25 +0004103500061645000a1e56000f23620012276800172b6300192b5d00162959 +0013234f00102042000b1e3c000b1b38000d1930000e1a28000d1820000c191e +000d1c20000f1c1e000d1a1d000a171e000b171c000b111900070a1500040611 +0003050e0001050c0000060c0001060c0003090d000612130008151600071012 +"/> +<palette number="648" name="Snowy_Field" data="007cb0b40079aeb00080b2b50087b6ba0085b0b30083aaad0083a6a90083a2a6 +0080999f007f99a0007e99a1007c9ba3007a9da6007b9aa5007c97a5007b95a1 +007a939e007a7d87007c717b007f666f007c5e67007a565f0079555e0078555d +007b5f69007c6871007e727a0082818800869097008a969c008e9ca10092a9ac +0098b3b500a1c4c600a4c5c700a7c6c900a5c1c400a4bcc000a3b5ba00a3afb4 +008f919800817f8600736d7400655e6600584f580053474f004e40470048353c +00442f38004c2e3c0052364300583e4a005f4b5600675863006b606a006f6872 +007b8b930080999f0086a8ac008bb3b60091bec10093c1c40095c5c80097c8ca +0099cbcb0097c6c70091bbbd008bb1b40085a8ab0080a0a300728c900062767d +004f5663004d4c59004b434f00534857005b4e5f0062556500695d6c00776b79 +00827d87008d9ca2008fa1a70091a7ac0090a6ab0090a5aa00889fa100879597 +0085767f00816971007d5c640079565e0075505800724652006f424f006c424e +0067424d005f4252005f4857005f4e5c005f505d0060535f0061566100615b63 +00655e6200645b5f0063585d0060585c005e585b005c545b00584d550057414f +00533e4b005c4451005e445200604553006349550068526100745f6d007b6b79 +008c8691009c939d00ada0a900b4a7ad00bbaeb200c7b9b900d5c3bf00e4ccc5 +00efd0cb00f0dbce00f0ddcf00f0e0d000f0e1d400e8dfd400dbdcd200cfdcd0 +00bcd2cc00b8cbc500b5c5bf00b5c3be00b5c1be00b9c0bb00c3c0ba00ccc3ba +00cfc7be00c0c8c200bbc5c100b6c2c100aabbbd0098b1b40085a9ad007b9da6 +008091a00081929f0083949f008d9ba5009ca4aa00acadaf00b3b4b300b7b6b8 +00b9b9b700b5afa500b4aaa200b4a69f00b1a29f00af9b9d00a8969700a69392 +009f8e92009b8a8e0098878b008f7e810087767b007d6d76007768720074666e +0072666f0071667200706c790070727e006d7982006d7b84006e7e84006f7d82 +0064717b00626e7700616b740061656e00616069005e5a64005b5762005a5862 +005e5b6300605e64006361680065686e006c6b7500746f7a007b7481007f7d86 +0085858d0093909600a19ea200aeafad00b9beb800c8cdc200d6dbce00e4e8d8 +00eeefdf00f5f4e200f9f5e300faf6e100f9f5de00f6f5db00f2f1d800f0ecd2 +00ede6cc00e8e3ca00dfe0cd00d3dece00c8d9cd00c3d7cd00bad4d100b0d3d2 +00a4d1d2009fcfcf009bcbce009ac7c90098c5c60098bdbe0096b4b70095a9ae +0092a2a70092979c00958b91009a828a00a37d8600aa7a8500ab768300a77884 +00a9778000ae777e00b2727b00a7727c009b737a009074760090727400907275 +0090767a00877b8100818389007c898f00788e9300738a920077969b007ca0a7 +"/> +<palette number="649" name="Snuggle" data="00781a3d0076183800741834007218310079142e0081112b00860f29008c0e28 +008c10210085141d007e191900771d1e007021230071273000722d3e00712c44 +00702c4a006b2e5c00652b5f005f2862005c2b6a00592e7300572e7900552f80 +004d3398004c3399004c339a00533392005a338a00623585006b388000783e7b +008046790088627d00896e7b008a7a7a008e81740092896e0096896c009b896b +00a0917600a1968000a39c8a009ba0910093a499008ea09900899c9900799399 +00688b9a00517a8a005371840055687e005b5b7300624f680064496400674361 +0065334e00632e4f0062295100662458006b206000701d6800761a700084197a +00911881009e1b8400a11e8300a4218200a5208300a61f8500a8218400ac217f +00b8266400c02e5400c8364500cb383a00cf3b3000cf3a2d00cf3a2a00ce3926 +00ca372200c3342500ba322500b2312600ac2f2600a62e26009a2824008d2322 +0085122700811027007e0e27007b0e2800790f2900700f2900651128005e132a +005c132c005f182f0060213200612b36005e3135005b38350051453700495042 +0042564f00475757004d595f00515c6000555f62005c645c0063685f006a685c +0070655800774c5a0079475e007b4262007d3a5e007d3162007c2c620076275f +005d1d5100521b4e0048194b00451a4f00421b5300452661004c30700052427c +005a4c8500645c8c00645a8c0065598c00675894006e589e00725da700795fac +008563ae00855eac008659ab008857ab008a55ac008c51a800904fa000944a94 +009a428500a5427b00a6478100a74c8800a5599600a06ca300977fab008a89ac +00738faa006f8cac006b89af006384b7005787c7004e8dd5004494dc003796dc +002e96de002d84d5002c7cd3002c75d1002c61d0002d55d0002848cf00233fce +002537c8002834c2002c31bd003529b0004124a4004b219b00561a9200631589 +006c14820079147f00891b7b0096247400a0256500a5245d00a8215b00a2225d +0098266e00972f7800963883009c438a009f4e9500a45b9d00a26aa0009b72a1 +00966ea1008c72a6008c75a3008f749f0098769900a5758c00ae797d00ba7270 +00b8676400af5c5800a24b4f00943c4f008a3052007f2e54007f2b5a00802962 +007e236c00781e710071187500671979005f1d78005a1e76005720700052216f +004c29680052295d00552954005c2a4800652c41006f2c3c00762a4000723148 +006f3251006933570064325a0066315c006b2d5c0071236000712266006d1d6f +00671a74005e19720054186f00491568003f125e0039175900351d5c00331f61 +002c236200242961001d2c6100182e5b00142f5600133456001a325700233159 +002c335700353356003e335100472f49004e2d42005a283c0066233d00731f3e +"/> +<palette number="650" name="Soap_Bubble" data="007096c50059bcd60057cfda0055e2de0067e6dc007aeadb0083e6d9008de2d8 +00a9c3d100aeaec600b49abb00a987a8009f74960091688600835c76007e5d73 +00795f700061727d00568182004c90870042a58f0039ba980039c2a2003acbad +0044dabb003cd5af0034d0a30030c39d002cb698002ab09c0028aba000259e9f +00269a9d0047878e004d739400545f9a005b5c9800635a9600705b8f007e5d88 +0098698700966a9200956b9e00a96b9d00be6c9c00c56c9800cc6c9500d27687 +00cd738400da747d00e0736f00e7736100e46e5500e2694a00df674d00dc6551 +00d1617700ca5b8600c4559500c351a100c34dad00c64eaf00c94fb200c561b5 +00bd74b100ac9c9f00a8ab9700a5ba8f009cc28e0093ca8d007bcc8b0063d58a +004bdf8c003ddc950030da9e0033cea50037c3ad0042bbaa004db3a70065aeab +007ca1ae009f7ebf00b468c500c953cb00cf4dcf00d548d300df45e200d847ed +00cf3cf100cb3cec00c83de800c541e300c246df00c14fce00bc5bbd00af6aa8 +009c7f9500789e73006c9f5d0061a1480058a140004fa1380047aa35004ca63e +006b884a0076735400815f5e00845c6900875974008a578100885784007d557a +007b5976007f7f78008088770081927700809f6e008aa76e0098b37800aac281 +00c6dc9300cadd9f00cfdeab00cfdcb100d0dab700d4cfc600d6c7cc00cebdc9 +00cab2ce00bdafdc00bfa8df00c1a1e200c08fd900c272cd00b95dba00b257ac +00b8509500c3407f00ce316a00d12b6100d4265800dc1f5700e0206000df2565 +00d9247000b1237500a9237b00a124810092298b0081299a006828ac00492cb2 +002a3bba00283fbb002743bc002a47c3002b49c6003045c2004542b300613f9b +007b428200a14b6300a8516000b0585d00c7675200db7e4800e7924400ed9e49 +00e9b57100e9b97c00e9bd8800ecbe9400ecb29a00ef9fa000ed8aa800e477b8 +00d960c000cf50c700c040cb00af33cd00982ad7007c1ede006820e800532aed +003b54f4003859f200365ff100386ced00377be8002e8fe10029ade0002abdde +003dc9dc004fc8dc005cc8d30067d1c7006cd8bb0079e2ae0087e5ac0092e6a3 +0093e891008ceb81007fec6e0074eb6b006fe56c0060e5690054e5650047e466 +0043e76d0050e3780062e282007be489008de694009feba300aaeaad00aeebb9 +00b1e9c300b2e4cc00a9dbd90099c5de0083b1e6006699ea005783ee004371f2 +00325bf1002e48f1002c36ef00372bf2004623f4005121f4005b2aec006231df +00663dcc00693dbd007039b00084409f0090478f009b617a00a0756c00a08265 +00af866600bd876a00ca8d7200d6928000d69a8f00d691a100d881ad00d670b2 +00d65ab400d050b600c34cbd00be41c200a64dc200955ac200866cbb006d8cc0 +"/> +<palette number="651" name="Sophia" data="00aa80390097693300916332008b5d310081522d0078472a0075432800733f27 +0071372b00743c2e00784231007e493000855030008d553000955b31009a5f34 +009f643700af744300b3764400b8794500b57a4800b27c4c00af7c4e00ac7d50 +00a77b5300a47c5500a27d58009e8256009b8755009b8854009b895400a18853 +00a3835300a0794b00986e430091643b00875637007d493400764334006f3d35 +00623531005e322d005b2f2a00552c2c00502a2f004f2a2d004e2a2b004e2b26 +004f291b00491b110042150c003b0f0800380c0500360a0300380903003a0804 +0043060600480a06004e0e06004d1108004d140a004c140b004b140d004b1510 +004d180f00411e0b003a1c0b00341b0b00341a0c0035190d003d1f1000472915 +00674c26007759300087663b00907048009a7a56009f826000a58a6a00b09c7e +00baae9400c5bb9d00c6ba9e00c7ba9f00c8bea200c9c2a500d1cea300d9dc9b +00e4d98500e0cc7a00dcbf6f00d8bb6900d5b86400c9a75b00be9a5200b2824b +009f6b4500854d44007e4c4b00784c5300784f5b00785263007c5d7400856a87 +0099859f00a692a100b39fa300b8a5a000beab9d00c5ab9b00c6a88f00c79e7d +00c6916b00ba774c00b36e4800ad6645009d56400091493d00893e3c0080383f +006f324b006b375100673d57006640590066445c00684c6200695367006e5869 +0077617000856d8300866f8600887189008a6e87008d6d82008a6d7e008b667f +00895d7900855c7100815c69007f5b67007e5a65007f5b6200855d60008f625c +00986e5a00a4805c00a6825c00a8845d00a9835900a7814f00a07947009a6e3e +008a583e0085553d0081523d00744c3c0069453700603b320059302f004f272b +00442226002a1d1900271a1700241815001e1111001b0a0d00190a08001c0e05 +00311f0c0037230d003e270f00492f110056351200663e180072451d007a4d23 +007c5228007d522e007f52350081523c0082533f0083533d0082513e00854e3d +00934b3e00954a3a0097493600994832009a472b00a0482d00a64e3200aa5234 +00a7583800a25a35009d5c3600985d3700915a3500875536007c4b3000714227 +0063362000532a1500411f110034130d00320e0a00360b0a003d0d090042110b +0045140f004e1a15005a1f200067232b00722832007a2b3300823033008c3438 +00933b420092434e00904e5700935b59009d6b5900ae7c5c00ba8a6200c0986c +00c0a27400bdad7a00bbb68000bbbc8500c0c09300c4c49d00c4c4ac00c0c7ba +00beccc200c0d0c700c8dcc400cfdec000d1d9bc00cfd4bb00c9c6b500c3bfb0 +00b7b6a300b0a69600a59793009e868f009c7a9200977992009d7c8c00a48186 +00ab857c00b4877000b8886800b88a5c00bd935800c09a5600be9c4e00ba9546 +"/> +<palette number="652" name="Strawberries" data="006c000900740209007503090077040a0076040a0075050b0074040b0073040c +0067050b0061050c005c060d0059050d0057040e0055030d0054020c0053010c +0053010c0053000c0053000c0053000c0051020e00500510004e0712004d0a15 +0044141a003d1419003715190033151900301519002f1519002f161a00301719 +0031171b0032111100370b0d003d060900430307004a0105004c0005004f0005 +00550006005a0007005f000800620008006500090066000a0067000b0068010e +006a0312006a1823006f293100743b3f00814f54008e636900946b70009b7377 +00998f9300929696008c9e9a008e9e9800919f97008e9b94008c979100858b88 +00767b780053574f004d483e0047392d0047332800472e240046231f00481b1b +00531215005c0d130066081100700410007a010f007e000f0082000f00860111 +008802130086061400810512007d05110079051000750610006b0810005e0c12 +0049101000440e0e003f0d0c003d0b0b003c090a003a0a0b00370b0a00360b09 +00370a07003904050038030500370306003604060035060600360808003b0a0a +0046090d004c080d0052080d0054080d0056090e005c0a1100650c13006d0b17 +0076091800820815008308140085081300890813008d0916008f0b1b00921622 +00a1363700aa474000b3584900b95e5000bf645700be736000c07e6b00b78570 +00ab866d00958265008d7f6200867c5f007f745700766550006e524300663b31 +00671b190070141500790d11007e0b10008409100092060e00a0030d00ab010c +00b3000c00b6000c00b3000c00b0000c00a8010c009f010c0095010c008c010c +0078000b0073000b006f000b0066000a005d000a005700090052000a004e000a +004d0009004d0007004d0006004d0005004e0005004d0005004c0005004d0006 +0053010500560105005a01050061010700670308006d040b006e0710006f1013 +00701c1b007b1a1d00851a1c0092181b009a131a009f1018009c1c1d00a11b1e +00ae161d00b2121c00b60f1b00bc031700ba041700b9031800b5031700b30317 +00b1041800ae031900aa031900a8031900a6021700a6021400a7031400a90414 +00ab051500aa081700a50f1b00a61f2400a82f2f00a9413d00aa504900aa594e +009c594d00915c4f00865d4c007f5e4e007a5e4f007c5a4d00774f440072403b +006c2f2c006920220068131c00690b17006c0a16006f15200072212b00732c35 +0073303c0075313d007c28370081293600892c3b009131400093334300933142 +009725380098172a009a0c20009e071b009d05190096041a008d071a00810a19 +00740d1900660e19005a0e1700510c1700490c1700420d17003e0e18003a0f18 +00380f15003a0b13003d071100440410004b020d0053020c005c020c0064010b +"/> +<palette number="653" name="Summer" data="007d432f00582f0d004c2c0e0040290f0033241000271f1200271d0e00271b0a +002f1606003f200400502b03006032090071390f008546180099542100a1582b +00a95c3500be8a4f00c6986000cfa77200cca47300caa17400b99b7600a89678 +00886d5f007a6955006d664b00746540007b64350082673400896b3400937731 +009a863800bca55400c7ba6b00d2cf8300d8d19700dfd4ab00e2daac00e6e0ae +00e2d5b100d5caa300c9bf9500baac7e00ab996800a59161009f895b0094764b +0095713600ab7a2300b1822500b88a2800b6903700b5964700ad914c00a68d51 +008d765d008264510077524600744b3700724528007244200073431900694013 +005b4212003b3c120030381900253520002334200022332000293324003a382b +005b493900635142006b5a4b0064564a005d524900554c46004d474300403f31 +00322c210019170f0017180f0015190f00161d11001822140026331e00363e2d +004d4b340057443300623e3200613d3500613d38005c42370057433a00534e4a +00585f6000677e7000698275006c877b006d8678006e86750066816d005c7a61 +0063795f00768369008a8e730091957800989d7e00a5b08300aeae8800a6a67d +009aa66e007e96670078926600728f6500698e630061906900578966004d7657 +00395337003d402900422e1b00452f1800493116005b3213006b361b0070431d +00724f23006a5932006b603c006c684700727559007a835d008e966800b1a570 +00d2c76700e0c46200eec25d00e8c05c00e3bf5b00dcb55900d79e5500d09252 +00c68d4f00bb925000b7935400b3945900b49c6400b5ae7400b1b98700bbc3a3 +00cde3c800cce5cd00cce7d200d7e9d200d5ddc700c8c1b500b9ad9c00ac9b85 +00a77f72009f6d42009c693d009965390097613100955d2e0084553100734f36 +0052423a004c463d00474a400045574d0049675b00537c6a00569684006baf97 +0085b69a0088baa50094bda900a1b19c00a3a08600a38d6f009e806300967350 +008860400086624200856445008c6a430095743d00997b3c009e742f009e761d +0095751800855e170075461600633b170055311c004d292200472625004b2b2a +0052372d00563d2e005e422b005f432a00563b2b0049332100402b1d00342423 +002f25240033292600392e3100423a37004846390048523f004e5644005c6043 +0066724000717c49008b8a5400a39c5d00b6b06e00c5be7f00cac28b00cec59b +00d2c6a300cbc39f00c9bb9f00d0bd9b00d5c58d00e1c68600e9c88400eccc7c +00efcc7400e7c37500ddb77700d2b17400caa27700cc998600d19f9500cfa1a5 +00d1afb400d7c0c400ccc9cc00c1d1ca00b5d5c900a0cabf009cb8b1009bafa2 +0086a291007f8d7c008c7e69008d735c0085635400845b4e00864e350085402b +"/> +<palette number="654" name="Summer_Fire" data="00fede3900fde93a00f6e23b00f0dc3c00e7d13e00dfc64000dac34100d6c042 +00c4b54c00bfb05700bbab6300b9a97200b7a88200b8a78b00baa69500b8a696 +00b7a79800c5a38f00ca988900d08d8400d5868000da807c00d87d7800d67b75 +00d57a6200d3715500d1694800d3633e00d65d3500d45b3200d25a3000cf5a2f +00c9613200b66c3a00ad683600a46433009b5d2d0093572700905424008d5121 +007e3e1900763215006e271200691e100065150e0067140e0069130e00740e0c +00800d0e00a50a0f00b10f0f00be140f00ca211200d62f1500da361600df3d18 +00f1521e00f5602000fa6e2200fb7d2400fd8d2700fd942800fd9c2900fda92b +00fdad2c00fdac2c00f8a62a00f3a12800ee9d2700ea992700de902500d18825 +00bc7a2800b6732900b16c2b00b0672900af622700ae602600ae5e2600ad5d24 +00ae5e2500b9622a00c3662900ce6a2900d46c2800db6e2800e6732500ef7923 +00fb892400fc932600fd9d2900fda22a00fda72b00fdaf2d00fdb52e00fdb82e +00fcb72e00f6b12d00f0a82c00eb9f2b00ea992a00e9942900e88a2a00e88128 +00eb722400e96e2300e86a2200e7662000e7631e00e75e2000ea5d2000ec5c20 +00f2602000fa722300fb752200fc782200fc7a2200fe7b2300fd7b2300fc7923 +00f57a2600ee7a2800e87a2b00e67b2e00e47c3100e0803700de833c00e18541 +00e28a4200e08e4000df8c4000df8b4000de8a4000da863d00db813f00dc7d3c +00df7a3200e0772d00e1742900df712600de6f2300db621f00d5541b00cf4719 +00c83d1600bf2e1300bc2e1300ba2f1300b42d1400ad2c1500a52a19009d291c +009228200091292100902a22008b2d2100873320008439240083412900824b30 +0084583a0092694700966d48009a724900a3774c00ac7c4f00b3815100bd8953 +00d1a05700d4a75700d7af5800dfbc5900e7c75a00e8c95f00e8c76100e8c361 +00e4be5f00deb85d00d6b45b00d1b55800cbb25900c5ab5c00c1a46000b99b5e +00b1805700b1775300b16f5000b4634700b9563e00c34c3900c8433200ce3a2d +00d4382600d82d2000dd231a00e1191500e9101100f0080f00f4091000f51318 +00f3202000f32c2a00f03a3300ed493b00ed534200ee624700f0705200f18159 +00f3916400f5a26e00f4b57400f4c27500f4cd7100f5d46e00f5d96700f6db60 +00f9d85e00fad55900fcd05100fdcc4900fdc84300fdc43c00fcc03400fcba30 +00fcb52e00fcb02d00fcac2c00fda82a00fda32900fc9d2700f7962500f09123 +00e68a2100d9852100cc802000c07a1f00ba751d00b56f1d00b1691c00a95b1a +00a64d1900a04016009c3415009c2c1300a42f1500b03b1700b8471a00c5551e +00d0642000d9702300de752300e6812600f0902900f5a32e00f9b63300fcca36 +"/> +<palette number="655" name="Summer_Skies" data="007a65b8007979b7007d83b900828dbc008494c100879cc700889ec80089a0ca +008999c0007f91b7007689ae006c83a600637e9f005d789e0057729e00526e9e +004e6a9e003d5aa4003555a3002e51a3002b4da300294aa4002a4aa3002c4ba2 +004154a7004e59ad005b5eb3006564bb00706ac400736ec7007672ca00807bcc +008984ce009c99d100a3a5d200abb2d300aec0d800b2cedd00b1d2df00b1d7e2 +00a5e0e7009cdee30094dddf008ed5dc0088ceda0085cbd70083c8d4007abdcd +0074b6c8005ea8be00509db6004392ae003887a3002e7c99002a77940026738f +00225c7b002251730022466b00203c66001e3361001d305e001c2d5c001a2a5a +0017295c000d3861000c4266000c4c6c000d5171000f57760012618100176b8c +00287da1003085ad00398dba003c99c4003fa6ce003facd10040b2d50040bedd +003dcee40035dfee0034e2ef0034e5f10035e4f10037e3f2003ae0f2003be1f0 +0040dae80042d9dd0045d9d20043dacc0041dbc7003edebe003cdebb0040ddbb +0048dcba005adebd0061d8c10069d2c6006fcec20075cbbe0078c3b90077b9b3 +0072a5a7006f9aa1006c909c006a8e9900698c97006882970069779e006d6ca1 +006e64a3006c5fa1006a5da100695ca1005f579f0058569c004f599900495e97 +004d699c004f739f00517da3005283a400548aa5005994ab005a9db5005ba9be +0056b4c70048ccd30046d1d50044d6d80040d9de003ddee3003de5e50041e6e4 +0053ebed005aecef0061eef20062eef20063eef20063eff3005feff3005aedf4 +0054eef3004df1f1004ff1f10052f2f2005af1f30065f1f30073f0f40083f2f5 +0097f5f90099f4f9009cf3f90099f0f70093e9f4008de2f1008adfee0088dbeb +0089d6e70094d4e40096d4e30099d5e3009dd9e4009edbe4009fdce5009cdbe6 +009bdce7009bdae6009bd9e5009bd7e4009bd5e50099d2e30097cde20091c7de +0089bfda007ebad70072b5d4006ab2d10066adce0066afcb0069aecc0070b1cc +0086aecc0088abca008ba9c8008d9fc3008599bf007b95ba00708eb600668db1 +005a90af005099ad004aa2af004aaeb1004bb4b10051b7b00058b5ad005db5ae +0063aeb2006ca6b4006f9fb5006d9bb3006995b200678baf006084aa005b81a6 +00587a9c00597992005b6d890066648900755f8c00855f900090649800a168a0 +00ac6ba700b470b000b676b500b985b700b78cb200b892b200bd9ab400c3a1b9 +00c9aec100cfb9cb00d4c0d500dcc3dd00ddc6e700dad0ef00d2daf200c6dff2 +00b9dff000acdbeb00a0d2e20094c6db0087bad5007eaccf007a9ecf007991cd +007384c8006978c1005d6bbb005064b500445ead003b60ab002f60a6002c61a3 +002f5da3003d59a7004853aa00534fac005d4bb0006950b4007150b3007c5db9 +"/> +<palette number="656" name="Summer_Tulips" data="00b3854200cd7d2c00cc751e00cb6e1000c56a0b00c0660700bc630600b96105 +00b2610500b0620700af640900b0691200b16e1b00b0742500af7b3000b17d32 +00b47f3500ba7e2c00ba7a2300ba761a00ac721e009f6f23009d7026009b712a +007170460070734d006f7754006d7857006b7a5a006e7b5b00717d5c00797c57 +0085784800996c2b00a2651b00ac5e0c00ab560900aa4f0600a94a0600a84507 +00a93a0700ab380600ad370600af410600b24b0700b34d0700b4500700ba5e11 +00bb721d00c6883800cf914000d89a4900d89a4900d99a4a00d6994a00d4994b +00b98e4c00a88c5200988b59008e895c0085886000828861007f896300858a61 +00908f6600b4926800c89b6c00dca47000e2a47000e9a47000f0a36e00efac61 +00de9f4400d0953700c38c2b00bc872400b6821d00b57e1f00b57a2200b67c21 +00b9812200b7813000ae813700a6813f00a28041009f7f43009e793c00a16f2e +00a85a1800ac4f0f00b0440600b0460500b0480500b24a0600b2460500af4905 +00af4a0700ab390700a7320800a32c0900a1290a00a0270b009e2509009d2509 +00922f090095370800984007009642070094440800984208009b4108009a420a +009f4008009d470b009d4c0b009d510b00975d1400946525009170310089793f +008e875c00918b5e00958f6100988e5e009b8d5c009f8a5300a4844800a77d39 +00af792800bb7a1b00ba7b1d00ba7c2000bd842700bc893400b58d4400b09150 +00ad965b00b0985c00b39a5e00b69a5c00b99b5a00ba985400bf914800c78c36 +00c4812800be6c1100b66b1300ae6b1500a1662000966b2f0084733f0079774d +0076826000788461007b866300858a670095916d00b09c7700c9a67c00d8ac7d +00e0ac8400d9ab7c00cfa67a00c5a27800ae996d00a6936800a09062009a8b5a +009d8854009c8753009c8652009884510094875600908a5d008d8b6000898d65 +0086906b0087916c0085916b0082906c00818f6a007e8e69007a8b6700768663 +00707f5e006e7d5d006c7b5c006b7a5a006b7959006c7a5900757c5900817f54 +008d7e4b009f7d3d00af7c2e00bb792200c5771500c8771000c4771800be7920 +00b17c2d00a8803e00a8844600a5874b00a68a4d00b18d4700b98f3d00bf9137 +00c9923100cd8e2900cb8b2700d18c2300d5861e00d0811e00ce831c00d3861c +00d58a2100d5902800e0973400e49d4000e5a04900e6a34f00e2a44f00dda14d +00d69f4a00d09e4300d09b4000d2964800d18e4e00d28b5100d88d5a00d68f5f +00d6905e00db966300dea06100e5a25b00e6a45800e1a35100e09e4b00d79d47 +00cd994200ca933c00ca923700cc943400cf943200d7963100df9b3100e19b3a +00df974700db9a4f00d79e5400ce965900bb915a00b1955a00ba905d00b68751 +"/> +<palette number="657" name="Sunbathing" data="00d9870300faa70100fba40100fca10200fba30200fba60300faa40300f9a303 +00dd840300c16c0200a55402008d4505007536090058280d003b1a1200351912 +0030191200543314005b3f1800634c1d0062532a00625a380063644700656e57 +00417e93004587a7004991bb0069a3b00089b5a5008db49e0091b49800b5c182 +00d6be5e00e2b03200bfac4c009da866008b8f640079776300737262006d6d62 +00787b69008c784c00a0762f00c0831b00e1910700ea960400f39b0200f6a204 +00f7a30700fb9a0b00f0860c00e6720d00c75f1200a94c18009e441700933d17 +004e151b0033122000180f26000e12210005161c0004151d0003141e00061422 +000b181b00241b190040291a005d371c006e401d0080491e009a562200b46820 +00e9901600f2971500fc9f1500fb9f0f00faa00a00f9a00800f9a10600f8a107 +00f3a20a00c3901100a08228007e753f0074754d006a755b004c6b6f0030567b +0035577b004a5c6e0060626100635b540066554700704a2b00764710007e4e06 +00865103009c530a00a95c1000b7651600c36a1500d0701400d36b1500bf5f14 +008b3f1900682c190045191a0034121900230c19001206170008031a00020118 +000002140000030b0000030a00000309000003090001040a00050409000a0409 +001e0611003a1a0e00562f0b0063390a00714409008c4f0f00ac5f1000c46f14 +00ce771500ac661f009d612b008e5c370078575600585b740038648b00176ba7 +000478c8000271b600016aa50001649300015f82000050680000384600002029 +0000150e00081302000e130300141305002d2104004a3903006d5302008a6405 +00c98e0500d6990400e4a50400f5b00600fcb40c00fbb11300f3ad1f00cdab3d +00aba763007c938800678b8e00538494003574970019689a00155984000d4571 +00111f4100101d3a000f1b33000a15340008113700061342000420560005306e +0007438400055797000170ab00027bbc000679bd00066cb30004629b00075483 +001d2b4700282938003427290053311600744309008e510400a7640100c47801 +00df880300e38a0300d47c0100b86a00009f560100854a020067370300442406 +0028120a00150d0e000b0b120006101b0003142b00021d4100002a5f0002417c +00035a98000370b0000181c900018dd800058cd7000d84bd00217e9d0041837e +00637f6400807944009c772800bd8e1900dda51100f2b60d00fbb90900fdbd10 +00fdc10f00fdc00d00ffb40500fa9e0600ea830700d16a0600bb560400ae4101 +00a33103009b2a0300982e03009d350000a03e0000a04200009b440000923e00 +007c3a0000612d0000411c0000280a0000140302000a01050003020600020206 +00070207001002080022080a003b1c0a00623d0700805004009d570400b46203 +"/> +<palette number="658" name="Sunny_Field" data="0075b070006eaa74006eaa7f006fab8a006eaf90006eb396006eb797006fbb98 +007fc39b0087ca99008fd1980094d09a0099d09d009bd19e009dd29f009ad29d +0097d29c0099c5900095c1880091bd80008db1710089a66300829c5b007c9354 +00576b3a0045572e00334422002a402000223d1f002440210027442400324d25 +003a5730004a714d0048724b00477449003b714800306e47002c6a420028663e +0015512900104b20000b4518000b3a13000c300f000a2d0d00082b0c000b2807 +00132c0900293910003744110046501200535a1c0061652600676b2a006d712f +00708045006b804e00678158005b7f59004f7d5b004c795a004a765a00406e58 +003a6d4f002c7641002d753a002e7533002e7430002e732e002a702900276b25 +002b5c1c0029561c0027511d002c5923003161290035652d003a6a3200426f39 +004d773f005682560053845a0051875e004f875a004e8857004b87510042844f +00408c4b004b91470056964400599b48005da04d0063a759006daf5f0069b463 +0060b669004cb667003cb064002dab610026aa61001fa961001ba762001da961 +002ca25e00329e5b00399b59003a9a59003c9a5a003c9956003d945200389451 +0035945300299c5e00299c63002a9c680032996f003a9b7000419a6f0044946b +0047845b0045834f0044824300407f3c003d7c350037792c002f752900276f28 +001f672700195a23001857200018541e001a4a1e00224a2100294b270038572c +00786d3d0090834b00a8995a00b3a06500bea87100d3ac7c00dcb68500d8c08b +00cbc89400a6bda0009ab9a1008eb6a30073b49e0062af990053a38e00489784 +00318664002e805a002c7a50002a6e42002769310025682800276a20002d691f +00346e1d00567d29005f823000688838007a8e4800939d5c00b2a66600c8b670 +00d6c98700d6cb8b00d7ce8f00d0d29100c5d98e00a9db91008edc950077d898 +006ed6940065d694005fd591005bd28f005dcd83005fc87a005ec06f005ab467 +0043984f003c9449003690440030863f002a843c0024813d001c883f001d8941 +001b8140001a80410019864a0022935a00248f62002a8b660030896b00389276 +0038a2800035ab810037aa7a00399f6e003c9c6700409f630045a06000499b5c +004d9b5d0057a062005fa86b0064ae770068b67f006fbf890075c58c007cca91 +0082d291008bd7910090d98d0093d9860093d47d0090c9720093bd670092b25f +0091a45b00899857008e9356008f965700909c60008ba6680091af6e009bb972 +009ec27b00a2cd8700a3d08c00adca8f00b5c39100c3c79400cdcd9200d5d091 +00decc9100e3cc9300e5d09100dfd98f00dcdf9000d6e59800cde49c00c1e4a3 +00b4e6a500abe8a900a3e3a2009ddc9a0091d48d0085cc85007cc1790078b876 +"/> +<palette number="659" name="Sunset" data="00bd6a6a00a5515b009b475700923e530089335100812950007b244f00751f4e +0059173f004c1336003f102d00360e27002d0d22002c0c21002b0c21002b0c20 +002c0c2000310c2200350b2200390a230040091f0048091b004f091a0057091a +00731016008418180095201a00a2292000af322700b5352800bb392a00c83d2c +00d53e2900da482100dc4e1f00df541e00d9571f00d45b2000d0592000cc5821 +00b84a1f00a7421d00973b1b0088351800792f1500702d1300682c12005a250f +00511c0d0044130d00431b160043231f004b322a005341360056483b005a4f41 +00705e52007c645400886b570097745a00a77d5d00b1835e00bc896000cb9563 +00d59c6600df8e5f00da805400d6724a00d26a4400cf633f00ce583200cd5627 +00cd5b2100cf5d2200d1602300d0642700d0692c00d0692b00d0692b00cf6c2a +00cd702d00cc7c3500ce853a00d18e3f00d2924200d4974600d79d4900daa24a +00d5a14b00cd984700c6904400c18a4200bc844000af783c009f6d3800926533 +00845c2e006b4f24005f472000543f1d004e3a1b00493619003b2b13002e200f +001f0e07001f0b04001f080200220702002507030033090400410a06004d0906 +00580807006b0709006e07080072080800750607007907070078080800750807 +006c060700640407005c030700560206005002050045000300370003002d0004 +002701050026080600290b07002c0e080034150a00411f0c004b290e00593313 +0075452300844c2b00935434009a543600a1553900af563b00ba553b00c4553b +00cc563e00d3544c00d5544f00d7545200dc565800df595d00e25c6300e45d66 +00e8626d00e8666e00e96a7000e9717300ec7f7700ee8d7d00f19e8500f3af8e +00f2ba9a00f8d0a400f6d0a400f5d1a400f1cea000eec59900e8ba8f00e4b287 +00d2967b00cf8f7700cd887400c57a6c00bb6c6200b45f5500ac514700a7453f +00a13b35009c323200993131009631310095363100993d31009c4630009f4c36 +00a8593800a95c3700ab603700a9633800a5643700a1643800966235008c5e35 +008458300082502b008248250081401e007e3518007f2d14007c221200771c15 +0074161a0075121f007a0f2000830e21008f0c20009c0e2000ab0d1c00b5121d +00ba172000be1f2700c1292a00c0312e00c2363000c03c3000bb3d2b00b54124 +00ae401f00a7411f00a1431d0097451d0090441d008d421b00873d1a007e3a18 +0075331500682c13005d25100050200d00461a0b0041120800410b0600420806 +0046050400460403004704030048060300490907004a0f0b00521811005e271b +006f37260080452f0091533900a2603f00b26b4800b9735000c2785500ca845c +00d3906300d9946900dd947100de957500e1947700db8c7900d37d7400c77170 +"/> +<palette number="660" name="Surfer" data="00154bc0000862ea000566f000026af700036cf600046ff6000470f6000571f7 +000377fc000577f9000877f6000c70ea001169de00145ccc001850ba001a4bb2 +001d46ab001b3aa3001939a5001739a800153fae001446b400114bbb000e50c3 +000269e9000271f2000279fc000279fc00027afd000279fd000379fe000578fe +000878fd001563e0001f54c5002945aa00353e950041378000453174004a2b69 +005d0d320060072500630219005d04230058072d00540b370050104100431f5e +003c2c74002340a200184dbb000e5ad4000a66e4000773f4000576f800047afc +00007dfe000080fe000083fe000084fe000186ff000186fe000186fe000286fe +000282fe000574f4000968e2000d5dd1001256c5001750b90026429f00353487 +00531b550063123d00740a2500820616009002080093010500970103009b0101 +009f010100a5010100a8010100ac010100ae020000b1030000b8040000bc0400 +00bf020100bf030100bf040100bd040000bc040000b1040100a5020200990104 +008f010600840107007d000800770009007500090073000900760008007c0007 +008900060089010600890207008702090085030b007e0516007509260069103b +005a1952003b257a0034257e002e26820027258600272585002d257f003a2375 +005a174f006a0f38007b08220082051a008a03120097010800a5010400b00102 +00b8010200be000100bd000100bd010200bd010200c1010200ca070100d30d00 +00da3c0100dc540200df6d0400e46f0500e9720600f4770a00e7771a00cf8734 +00b2925300898f83007d828c00717595005866aa003c57bd002353c500224fbb +0032398d00363383003b2d7a00441f61004f134600590a2e00630419006a0210 +006f010d0070000a006e000b006d000d00650217005d042200530932004a0e40 +003b135400391253003812530037115600381254003d12520047114b00540e3b +0062082b0070041a00750111007a000c0082000700870004008e0002008e0001 +008b0003008b0003008b00030092000200990000009e000000a5000000ac0000 +00b9060000c50c0000cf120000db190000e1190100eb1f0300f4250600fa2b07 +00fe310600fe320600fe300500f92b0700ef250800e51e0700da1a0600d61803 +00d0120200c60c0200bc060100b2000200b2000100b6000100c0060100ca0c01 +00d0110100d5110100d60a0200d90b0100d80c0300d2120700c0141100a51323 +0089163b00711955005e246d00492c8200343597001e3caa00113fb8000f3fba +00113db600193aaf001738a60015349f00182b8c001d217a002a17690032125a +003812560042114d004d0f41005b0b34006707250072051d007a0416007d0313 +007d03130072051d00660e31005a1a4c0049276a003d3280002c3996001e41ab +"/> +<palette number="661" name="Tequila" data="00c5712800c56b2f00c4683000c3663100c3642f00c4622e00c6612e00c8612e +00cd602b00cd5c2b00cd582c00cb532a00c94f2900c5482600c2412400c13e22 +00c13b2100c03b2500bf3e2f00be423900c04c4500c2565100c25b5600c2605c +00bf6b6f00bf737700bf7c8000bf838700bf8b8e00c08e9000c1929300c39898 +00c59e9a00c9a29e00ca9e9e00cc9b9e00cd979900cf939500cf909000cf8e8c +00ce827500cf7b6700d1755a00ce6b5100cc624800c95d4600c7594500c35244 +00c14e4200be453d00be453900be453500bc483600ba4c3800b84f3b00b7523f +00af5d5700ae5f6300ad616f00b0647300b4687800b7697a00bb6b7c00c0707f +00c5758000cb808400cb7e8600cb7d8800ca7a8500c9788300c4717d00c06774 +00b9545f00b44e5200af494500ae443c00ae3f3300ae3e2f00af3d2b00af3c28 +00ae3b2a00b03a3a00af3c4200af3f4b00b03f5000b13f5500b53e5f00ba3e61 +00c03e5f00c13e5e00c33f5e00c33f5e00c3405f00c3425e00c5425c00c74061 +00cb3d5e00cb334f00c92e4300c8293800c5273300c3262e00be242400bc2319 +00c2271000c72b0f00cc300e00ce320d00d1350d00d43a0d00d63e0e00d53f0e +00d63f0e00d5430e00d5460f00d6491100d6521700d65c1f00d6662a00d67036 +00d87d4c00d97f5500da815e00db816200dd826700df836f00e1867800e08a84 +00dd8f9100d69aac00d599b200d499b800d293c000d38ac700d485ca00d683ca +00d583ce00d086cd00cc89cd00ca8bca00c88dc800c68bbe00c481b500c179aa +00be719d00b6638600b55e8100b45a7d00b0587500ac596b00ac5c6000ad5956 +00b34c3f00b4483800b6443200b83c2700ba331e00bb2c1900ba271600ba2613 +00bd261400c42d1a00c6301d00c9342100d03a2a00d5423400da4a4000dc524c +00de5e6100de606400df626800dd686d00db717500d9777c00db7f8200dc878c +00dc909700db97a400da9cb100daa1bb00daa2c100daa4c600d8a4c900d9a4c8 +00dca6c500dda7c500dea8c500dfa8c500dfabc900e0accb00e1abcf00e1aad3 +00e2a8d300e3a4d000e59fcb00e49ac300e391b700df88ab00d9809f00d37994 +00cd718a00ca6d8000c96b7600c7676e00c2646600ba615b00b05b5100a65247 +009b4a3d008f41330084392d007c362500793523007632220074362100743825 +00763e2b00794434007b493c007b4b47007c4d510081515c008b53670093596c +009b5b7200a25f7400aa617500af637300b2627400b3627400b5627300ba6272 +00be636e00c05f6900c15c6500c6585d00c8555100c9524600c74f3c00c44d33 +00c04b2a00bf4c2100bf4b1a00bf4c1800c34d1700c54c1500c64b1300c54b13 +00c64c1600c54f1900c5581b00c45e1c00c3641e00c56b2000c76f2500c87227 +"/> +<palette number="662" name="Thistle" data="00999c9200a0a99900a7aca100aeb0aa00a7ada200a1aa9a00a0a89a009fa69b +00afa3a800b799b500bf90c200c08ebc00c28cb600b78aa100ad888c009e8484 +0090817c006d754b00656b48005e624600645758006b4c6b00774b7800834b86 +00a764b100b377bc00c08bc800c099c600c1a8c500baacba00b3b0af009ead96 +00879b85005e7557004e6745003e5a33003c582e003a5729003d5a2700405d25 +004b6f19004c731a004d781b004b75170049721400436f13003d6c1300356514 +0031601500315c1d00355d2400395f2b00426532004c6c3a004e6d3e00516e43 +00556c4b00556c4a00556d4a00526648004f5f47004c5b44004958410041523c +00394d3c0033383a002a333400222f2e001e2e2d001b2e2c001a2c2c001f2f29 +00283a32002e3b3900353d41003f3a4a0049385400493858004a385d00473a5c +004537580041305300463759004c3f60004f476300534f67005c606600656570 +007f758f0089729700946f9f009765a4009a5caa00a152b500a754bc00b050c5 +00b33fcb00ab34c300a541ba009f4eb1009950ac009452a7008f589b008e688e +009b8f9900a09f9800a5b09700a6b49500a8b89400a6b69200a0b5890098b07b +008eae6700789d420072963c006d903600628c2e00558027004f7928004c6d2c +004d613e004f6247005264500053645100546552005c69530061695600627054 +005e774c005e793d00607a3c00627b3b006a873c007597430084a64e0093b066 +00b3c69500bdd0a000c7daac00c9daab00ccdaab00ccd4ac00cfd4b200ccd5bc +00c9d2b700bbafa300b7a5a700b39bac00ad8ab700a977b7009c62ad008a4c97 +0068307000622d6a005c2a65004d284f0038213800262123001c211800192511 +0014230c0012220b0014250b0016280c001b2f0b001a300b001b2b0e0018260f +00162b1000162c1600172d1c001a2c2f00232e41003030510040365f004d406e +0054487400584c75005b506e00605368005a555a0050514b00434b3d003e433c +003d383e003d3440003d30430040274e00462358004f26600059256a00612578 +006d1d8900731e8e00731a8c006b1e8700661a8500601b790053166600411852 +002e194200201833001a1925001a1d1f001d282100232d2900373738004d4a46 +0066615b00767b6d008c8b83009ba18f00a6ae9700a3b994009fb9920096b58d +008ead840081a0770076916f006a7e6d00626f72006060780063577f00644e82 +0066468600693d8900713e870078477e007a5376007a5b730078617300776976 +007169780070638000725b8800755b9300735d9800795d9e00825c9d008a649b +0091799b00a193a200b1a4ad00bdb5b400c7c3bc00d7d3c800e3dbd800e9e4e5 +00eae5ea00e5e4e600d4d9d700bfcbc000a6b6a200a0ae9f009faca300a3a7a9 +"/> +<palette number="663" name="Tribal" data="006a542900635333006255380062583d00615741006057450061584500625a46 +00786445007d674200836a3f008469390086693400775d2e0069512800624b24 +005b4621005136160059391200623c0f0071470d0080530b0081540b0082560b +007b550c007a540a00795409007d570a00825a0c00885e0c008f630d009c6c0f +00a8751400ac802200ac842900ac883100aa8a3a00a88d4300a58c4700a38c4b +00978c6300928d71008e8f80008c9290008a96a1008b97a4008d98a8008594b0 +008092b400627eb7005677b6004b70b500456cb3004069b2003e64ae003c60ab +00345093002a4484002139750015306d000a2865000726630004256200012261 +0001226100012464000225670003276a00032565000324610003235c00032159 +0003205700072155000c225300172a5400233255002a365100313a4d003f4144 +004e48390062501c006f5717007c5f1200826313008968140098741600a7811c +00c9a22900d2ae3200dbba3c00ddbe4100e0c34600e3c84d00ddc35000ccba57 +00bdb05c009f985b00908d5b0081835c007e805b007b7d5b0074735500636550 +003f4642002d3436001b222a00121a26000912220001091a000105110001020b +0001010700010105000101050001010500010105000101050002010500020105 +000b050500150b04001f120400241604002a1a04003521040040280400492d04 +00422904003f2604003f2603003f2603003f2603003f26020041270200492d02 +00372302002c1b0200211403001b100200160d02000b06020003000300030003 +0003000300030004000300040004000500030005000300050003000600030006 +0003000500030005000300050003000500030006000301070009060700120d08 +001d14080033230b0036260c003a290e0043301000463213004d39160057401b +006f521f0076561f007e5b1f008b642000996e2300a2762500aa7f2700b0862c +00b38a2d00b6902f00bb943200bf963200c2983300c59a3200c99e3100cca332 +00cca43500caa33600c8a23800bc993900ab8e3c0099813e0089753f007a6b41 +006e634300625a4300595342004e493f003f3e3c0031323a0024283600181d32 +000e162e0006102b00020d28000a0f240014131f001c1419001c1214001c110f +001d110b00261608002a1a070037220600483007005f410700705109007f5c08 +0086640c00906e0d0093730e0095740d0098760e00a07a0d00aa810d00aa810b +00a27b0c0097740d008a6c0c007c610c006d560c005d480b0056410c0047360f +00403011003c2c11003c2b11003c2b1100402e110046330f00533e0e005b4410 +00654d12006f5412007a5c1200846212008c6611008f650d008f6409008a5e06 +0081590600765207006d4d0a00684c0e006a4e1200694d1700694e1c00695222 +"/> +<palette number="664" name="Trippy" data="000056fd000078fd000081fd00008afd000090fb000097f900009bf20000a0eb +0003aeab0016af920029b17a0047ae700065ac6600739d4a00818f2f00808521 +007f7c13007e73390076634d006e536100524b54003643470027424800194249 +0004356e000e2d7d0018268d001a1f8c001c198c001915890016128600190b82 +001a077f001d02720013025a000902430006042c000306160006050f000a0509 +0011040c000d0617000a0922000b0d25000d1228000f12290011122a000e1b47 +0007226800002e8e00002a860000277f00002c90000032a1000034a9000037b1 +0000417e00004868000050520003524900075441000d5a39001361310021721e +00377d0d005f60080074571a00894e2c008b4d31008e4c37009346360086342d +007c1b3400651335004f0b3600360624001d01120018010c00140107000c0100 +000700000001010000000100000001000000010000000101000001030000010b +0000082a0000134200001e5a0000256400002c6f000036850000408b00014782 +0004557d0016736c001c7b570022834200208634001e8927001b8e1b001d8e28 +00218e6700188d75000f8d84000b858700077e8a00006b90000056930000468b +00003d7e0000224b00001b3d000014300000082100050322000b023000100342 +000c046e000c0487000c05a1000f05ad001306b9001b08ce002009e0002508de +002107d4001905a200170599001605900020057a001f046100180244000f0126 +0000010600000203000003010000030100000301000005050000080b00000b1b +0000112e0000236100002b6b000033760000459100005aaa000067bf000078d9 +0000a2f10000acf20000b7f30000c2ed0000bbe50000b5d80004b1ba000bb19c +0016b680001c945a001b864c001b783e001761250019571000214c01001c4201 +000c2001000719010003130200041002000b18020017250100283401003a4301 +00495101005a61010061730000668500006b9800006fa4000078ae000079bb08 +005acb2b004fca390045ca470037bb55002fac600034a05d00298f60001d7e67 +000e64680000456200002f4e00001c390000102800000a23000005260000022d +000002350000023b0000063a00040a37000c11370017183600231732002f172b +003c141b004d1b0e00621f0500741f0000811b0000860d0200860b0300850a03 +00820a03007c0a02007503020064040300500603003d0603002e0602002a0401 +002a0407002a060f002d06190032051f0041031a00580317006e091600831519 +0091271f00a3381900b5511200c5690800d2810200c7900200b98c0100a98409 +00987913008979200074732d0059663d00414d59002c3076001a2094001015aa +000617ba00001ad0000022e4000029f5000030fd000038fd00003cfd000047fe +"/> +<palette number="665" name="Tropic" data="006f2a5600672b6e00612b75005b2b7d00552a82004f2a87004c2987004a2987 +0047268500472583004724810047218000481f7f00461c7d00451a7b0043197a +004218790041176e00431a6400451d5a004b214f005226440056293f005b2d3b +00724131007e4c28008b581f0098641500a6700c00ac760800b37c0400bf8901 +00ca910000dea30000e5aa0000ecb10000f1b50000f7b90000f8bc0000fac000 +00fec70000fec90000ffcc0000ffcc0000ffcc0000ffcc0000ffcc0000ffcc00 +00ffcc0000ffc80000ffc10000ffbb0000ffb70000ffb30000ffae0000ffaa00 +00ffa80500ffa30800ff9e0b00ff990e00ff941100ff921200ff911300ff8b16 +00ff881900ff852100ff862600ff872b00ff882c00ff892e00ff8b3200ff8b33 +00fb8f3600f7903600f3913600ee913600ea913700e78f3800e58d3a00e08942 +00d7844d00c0726400b1636d00a25476009b4d790094467d008b3a8700872f96 +00781dad006f17b8006711c300630ec500600cc8005b07c9005d04c9005b02c7 +005f02c3006d06b7007509ac007d0da20081109b0086139500891b8400902375 +00a1376000aa415400b44b4800b9514200bf583c00c9642e00d26d2000d97716 +00de811000e7920900e8940700ea960600ec970400ef980200f09c0000f09c00 +00eda20000e9a30000e6a50000e4a40000e3a30000de9f0000d89b0100d29702 +00cb920300bd8c0400ba8a0400b8880500b3820500ae7e0600aa760600a66e07 +009e6009009a560900974d09009649090095460a0094400c0092380f008f2f15 +008c291c008314260080112b007d0e310077093c00710449006a0157006a006c +005e008a005c0091005b0098005800a6005600b3005500be005600c7005701d0 +005e03d6006d0adf00740ce0007b0fe1008814e0009419db00a11ed400a824c9 +00ae31a400b3359d00b83a9600c0418900c8487b00ce4f6f00d1536200d25c58 +00d0625100c9635100c1625300b75e5800ad555b00a45164009c506e00994c6f +0096477400964674009645740095437400954173009443720097456b009f4a65 +00a84d5900b3524f00be5b4700c75d3a00cf632d00d3692300d7721f00d8761b +00d9781800da7b1600db7e1300dc7c0f00dd7b0b00df7b0800e17e0400e27d02 +00e27d0200e27a0400e1740700e16b0b00e0631000e05d1600e0571d00e14d24 +00e3462b00e63f3000e9312e00ea2a3000eb273700eb253f00ec254300ec264a +00ef274b00f2285000f6284e00fa2b4600fd2f4300fe353b00ff423c00ff4e3b +00ff573600ff603000ff682800ff6f2100ff711900ff741100ff710c00fe7309 +00fb720900f8710900f46f0900f06a0b00eb650c00e6600d00e1550f00db4b13 +00d3431800ca3c2000be392a00ae2c2c009e2b34008f2a3e008229460077294f +"/> +<palette number="666" name="True_Blue" data="0000135e0000125d0000115c0000105c0000135d0001165e0002185f00031a61 +00051c5f00081c56000b1d4d000d1c4700101b41000e173d000c143a000b1239 +000b1038000c0e3500080c3c00040b4400020c4c00010e55000110580002125b +00051a6800061d710008217a0008237e00082682000826830008278500082583 +0008218400061b8100041b7d00021b7900021b7800021b7800041c7900071e7a +001330890013348a0013388c0013368a0013358900143487001534860015317c +00122a6e0005174f0002104600000a3e0000063a000003360000023500000134 +000000370000003b0000013f0000014300000248000002490000034a0000044b +0000044c000106520003095900060c6100070e680008116f000c197a00102485 +001438930013409e001348aa001352b000135db7001464b800156bba00156ec2 +00146bc9001056cb000e52ca000c4fc9000c4dc9000c4bca001146c700103ac3 +000e29b0000a26a70006239e0006219a00071f9600081e8d000a1a860009137f +00050e7800020a6e00030c6a00040e6600040e6400050e620004115f0004135d +000716530009164a000c1642000c163f000c163d000a163b0008143900071138 +0008103500090e3800080d3900070c3a00030a3e00010a4000020b4200040f45 +0013225700192a62001f326d001e336d001e356d002136680024376900283969 +00293869001c2a510018234900151c4100101334000d0c2d000a092900070728 +0002022c0001022d0000022f0000022e0000022d0000022b0000012800000124 +00000220000003190000021800000218000000190000011f000002260000032f +0000044000000444000104490001044f00010453000204550001045600010456 +0000065600010d590002105c0003146000061e6a000d2c7600183c8600244f97 +004d7cbd005787c4006293cc00709ed70076a6e0006aaae6006bb2ed0071c1f3 +0076c3f50078c1f50064b5f1004da8eb003ea5e8003aa1e4003a9be3003a8de0 +002a6ac6002562ba00205baf00174b9a00123987000b2b7400071e6300051751 +000213440001103d0000133d0000174000021d47000622520007276000082b6e +00072f79000630800007308800082a8b0008278b0007248a0004208500021e83 +000119820002177f0005187a000c1e7500152775001b337b00203c8400203e88 +00203e8600233c8100233b7f00213d82001c39870014308a000e258800081b8a +0005148e00021390000113930001149200001591000113930002138f00021389 +0001137c0001126a00000e5a0001094a0002063e000204320004042900050422 +0005041e00060420000505240005062a00060830000509380006094400050a51 +00030b5b00030e61000112640000156700021368000211670002106400011060 +"/> +<palette number="667" name="Tryst" data="00a5c6c300abc6ba00b9caba00c8cfbb00d1ccb700dbcab300dbc5ad00dbc0a7 +00c59d8500b58c7400a67c63009e7159009667500096624e00965e4c00975d4c +00995d4c009b614d009d695200a0715800a4795f00a9826700ae856a00b3896e +00be8e7300be876e00bf816900b3775f00a86d5600a066510098604c00895442 +007e4c3c0071372d00723028007329240073231e00731e190074201800752318 +0077301b007d341c0083391e0088331c008d2e1a008d2c16008e2a13008d2911 +008b2c0e00903b0a008e3c0f008d3d15008b3e1e008940280087442d00864832 +00835a4300855f430088654400816147007a5d4a00765c4b00735b4d00685555 +005d535d005d555600594f5100564a4c0054464800524345004e3b3f0048343f +003c2d3c0039303c0036333d003a383c003e3e3c00413f3d0044413f004b4543 +005045440053474300554843005749430057474300584543005c454300624341 +0073434000794841007f4d4300804d4400824d460085514a0086514b0087534c +0089544b0092604d0099635100a0675600a3685800a66a5a00ac6f5d00b2725c +00ba7a5c00b87c5e00b77e6000b7806300b7826600bc896c00c2927400c99c7a +00d2a98500dcc09a00dcc49f00ddc8a500dfceac00e1d4b300e3d8b600e6dbbb +00e4e0c300e0ddc300dcdbc300dad7c000d8d4be00d4cbb400d0c1a800c8b39d +00bdab9500ae9b8200ad987c00ac967700ab916c00ad8a5e00ad7d5000a67144 +008c553100834e2a007a472400774622007445200072421d006f421f00663f25 +0059402d004942380048443a0047463d004c4c410058544800645c4f006d675a +007e7b6a00817e6c0085826f008d837000957f6d009c7568009d6c67009d6767 +009d64660093656700906465008e636300885d5d007e565900724f5700684952 +0052444d004d444b00494549004542410045403b00473c36004e3c3200563e2c +0061402a0068452800714824007c4d21008a5222009b5c2500ab682700bd722c +00d3813500d37f3400d37e3300cb783200c2733000b56e2d00ad682d00a56631 +009f653300985d2f0092542c00924b28008d4525008c4523008f4d2500985d2e +00a16d3400ac7d3c00ba8b4100c4954800cc9c4d00d3a35000d8ac5600d6b05a +00cdb35c00bfb25700b0ae5400a1a4500092994d0086964800808e4b007b884b +0077824c00747f4d00737c4c0074744e0077774b00817b4e008d815100998357 +00a4885a00ab8a5c00ae855d00ac7c5900a57553009b714c0093654a008e5e46 +008756410084513e00854939008743320085442b0086482d008b4d3300935837 +009d653f00ad724b00bd805500cb8c5a00d2996300d1a17200caa87a00bcae7f +00b0b18600a7b39300a4b69a00a5baa400abc1b300afc3bf00adc5c500a8c7c3 +"/> +<palette number="668" name="Tumbleweed" data="00554b4100544c3d00584e3e005d5140006f5d4700816a4e00866f52008c7456 +00927a5a009377540094754e008a6f4d0081694c00735e470065534300615040 +005d4d3e005b5145005f574c00645e5300696358006e695d006f6a5e00716b5f +00746f62006f6a5d006a665900615a4f00594f4500554a3f00524539004c3f2f +00463c2900403823003f351f003f331b003d341e003b3521003b3524003b3627 +003b362f00393532003734350036343600363438003734380038353800393736 +003d3a3500493f33004e42330054463300574a34005a4e35005a4d35005b4d36 +00584a3b0051473b004b443b00403c36003635320032302f002e2c2d00272426 +00201d1f001513140014121300131112001411110015121100191612001c1913 +00221e1500231f130025201100241f0f00231e0e00221c0d00211a0d0020170c +001e150b001c1511001f17140022191800241a1900261c1b002b211e002f2620 +0034281a00312516002f2212002b201100281f1100241d0e001f180a001b1606 +00151103000e0b08000f0c0c00100d1000110e11001210120014121200161313 +00191519001b1719001d1a1a001d1b1a001e1c1b001f1e1c0020201f00232221 +00252422002924200029231f0029231e0028201c00261f1c00241e1d00251e1d +00251d1f00231d2100221e2300222025002323280027282d002b2c30002e2d32 +00302d32003334360035363700383839003d3c3e004440410047424600484649 +0049484c0049464a00494449004743470046424500433d40003d393a00383333 +00332e2f00302929002f2928002f2928002f2a28002f2b2a00302d2d00343033 +003c3a40003e3c4100403f430045454600494846004f4b4400574c42005c4b3c +005f4a380055412800523e26004f3b24004b361e0047311e00432e1e003b2b1f +002f2928002f2b2b002f2d2f00353335003c383c00433e43004a454a00544d4c +005e554e0065594b006959460067544200624e39005d483100543f28004a351c +0036250e0035230c0034210b00342511003b2c1a00483a2c0058503f00726752 +00857d6400968e7000a2987b00a29d8000a9a18100a6a082009f9a7c00959075 +0086826a007d7b5f007a7659007b765c007e7a650085806e008b877800918d7a +0094917e009593800094938300939085008e8c830088847e00807d730077756a +00706e62006b695b0067625700635f51005e5b4b005857460052513f004c4a37 +00464233003f3c300037362c00302f29002a28220026201c00221a18001d1614 +0018111000140f0b00130c0800120c0500130e070015100b00181510001d1b15 +0021221900282920002e2f280034342f003b393600413e3a0046423d004a4642 +004e4a4600534d48005a524a005d544b00584f4600544a42004d4540004e453e +"/> +<palette number="669" name="Type_AB_Positive" data="007413120073131200691613005f1a14005219130046181200401711003a1711 +00281b1200251b1300231c1400271c14002b1c1400341c15003e1c1600431a16 +0049191700691b1a00741c1b007f1d1c0083212200882628008b2628008f2628 +009b222200992222009722230094232300922424009422220097212000a01b19 +00a61a1700a91d1b00ab1e1c00ae201d00b4201c00bb211c00bd231c00bf251d +00c3251d00c3251d00c3251d00bc251e00b6252000af252100a8262200992522 +008925220069231f0059211f004a202000411e1d00381d1b00361c1a00351c19 +00311e1900301d19002f1c19002e1918002d1717002c1917002c1b1800281d19 +00251d17001f1814001e1813001e1813001e1913001f1a1400221b1400271d14 +00351c1200401911004c171100581712006418130066161200691411006b140d +006b140d00661510005c131000521210004c110f0046110f003d120e00381510 +00371a17003b1a19003f1b1c003f1b1c00401b1c00411b1900421d180043211a +0044261d00472c2200493426004c3d2b004d3f2c004e422d004f4230004c2f2f +00493633004537300042392d003e2f29003a252500351f1f002d1b1b00291a19 +00291c1900311e1900321d1900341d1900381f19003c2119003f211a00401f1a +003c2017003a1f1500391f13003a1f12003b2012003c1e1000421d10004b1b12 +00591911007b1e1300831e13008b1e13009b201500ab1f1600ba231900c5251a +00cc251a00cb251a00ca261a00c9261a00c8261b00c3231a00b9221a00ae1c17 +009e1b1500801d1700771e18006f1f19005f1a18004f18150041171500351614 +002a201a002a201b002b201d00332523003f292b00533a3c0066393d0077363b +00863736009e3d3a00a23c3800a73b3700a92f2f00a02a26008e1e1400801c12 +00631b12005b1911005317100047180f0041190e003f1b0e00431c0f004b1911 +0057191300661b1200731a12007a1a11007d1811007d1712007a181200761a13 +005f19100057191100501a120041191200361b11002d1f1200261d1200222014 +001b1f1300161d1400191d16001f1f1700231e190029241c002f231e00352421 +003b25210040262000462a1f004b2b1e004d2a1e004d281d0048221900421f16 +003e1c14003b1b12003919110039191100381710003b140f0040120e0045110d +004d140c0052150b0055190b00591c0b00561b0b00521b0c004b180c00431b0d +003d1e0f00361f10002f1f1200281c1200221913001f1913001b1e1400171d15 +00181c15001b1b15001b151b001b151b0018151c0018151c001c151c001c1416 +001d1418001c1416001c1414001b1414001c1914001c1914001c1614001e1613 +0021131300291613003415130043161200511513005e141400661915006e1715 +"/> +<palette number="670" name="Underwater_Day" data="001d968a0041a48a0051ad960062b7a30073baa80085bead0085baaf0085b6b2 +007ba99d00689f9a0056959700458e9a0035889d003a87a9004086b5004282ba +00457fc0003c90ba002e8ab6002084b3001278ae00056daa000c67a6001362a2 +003a489600524794006b469200724a9300794f9400735493006e5993005e6291 +00496c930022788a00217e8c0021858f0025838c00298189002d7f8500317e81 +0027657600285d6c002a5662002a5562002b5462002a586200295d6200276161 +00246868002b71730039697100486270005f606f00775f6f0080606c008a6269 +0090618400896d94008279a5007479a8006679ac005c79a800537aa500427494 +00396d7300305447003042300031301a00302a16002f24120021230b00192907 +000c2f29000a3c3a0008494c00164c6700244f83002e538500385888004d558b +005a518a00573a7600492d66003c205600311a4c0027144300201231001d0c21 +00271010003c1b2a0051264400612e4f0072365a008c5675009f619700b55fa5 +00b16da300a0689800836e8f0066748700607988005b7f8a004f8f9c004a9f9b +005ca5b000699eb0007697b1007590b100748ab1007681a800747696006a648c +005d53700039354b00342f46002f294200272c43001f37530023365a002b3666 +0033568f003d56920047579600475f960047679700527794005b7b8e00577783 +00537884006e678d0070659100736496008c779e00a07aa4009a77a5009989a8 +007e9094006f8b9300618793005a868f0053868c004b878e003e8c9500358698 +00387c98005680a800647eab00737daf008b83b900a590bf00b096c200aca2c6 +009599b8008b96b6008293b4007593b0007789ac00767dae007775a90086709a +008f6f9300896a8700886e830087737f007b757f006f727f006e787c00737a70 +006d796e006d7a6b006d7c6900617e71004a7f760037747300286675001c576c +000c3d53000a2743000c183300050b1f0003091500040b0d00070b0800090d09 +000c0804000f08040013090500120902001408040017090800150e0900151416 +001d1a280027203500322d4800403b6200553f7e00614e97006565a5006e6db4 +007278cf007ca2da008fb7d2009fafd900b2bfe900c1c4e500c8bed400cab1ca +00bd9bb700ada392009fa470008d865a007d895100619651004e8d54003e8c64 +00218b6f00148969000b7b5d0005654e000c5647001d4b4300324d420043534a +0059564d00716053006e655a00645e49005e58300044513400314a3200274420 +001c402c00243e410034373d00412e3a00572640006f213900731b26007c1527 +00852238007e3548007d416900865d92009377b1009089cd00819be700869fe5 +00829dd5006198cd004694b8003b96a5002b8d9b001a8592000e888e00108f8b +"/> +<palette number="671" name="Venice" data="004f0e070051261e005e352d006b453d00815b480098725400a17a5c00aa8364 +00c79c8100bfa18900b8a69100a0ad980089b5a00077b4a50065b3ab005fadaa +005aa8a900499ea7004ba1aa004ea4ad00539da7005996a1005c919c005f8c97 +0064828b005e788100586e770054606a0051525d00524b56005444500050424b +004e3f450045464f0050444b005b434800604a4f0066515600605c62005a676f +0078776c008c786200a1795800a67d5b00ac825e00af845a00b2865700b58a59 +00b18f5b009c8d6a009e8d6800a18e6700a4916b00a7946f00a7977400a79a7a +00beaa7e00c7aa7300d0ab6900cfa86300cea55d00cb9e5a00c9975800bf814d +00b36b40008d492300753519005e221000551b0d004c150b003e080a00320b0e +001512150013151500121816001c211a00272b1f002b2b21002f2b23003a291e +0047201a005e2219005f2328006024370062243c0065254200712b48007c383f +0079464f0075475f007148700073496f00764b6f007b506000794a54006d3c50 +00642c4a0065193e00671431006a0f2400680d1e00660b18005f080f00550e12 +0048212300402b300039363d00343a4400303e4c002845590025526600266074 +00286b7b0031697d00326577003461720037556600344b5b0031454c002d3c42 +0031272600322427003421280032252d00302933002c343b002e3d42002e464f +002f515b001d616d001a616c0018626c0019646e001e606e00265d74002d597b +0039588a00445e95005064a0005668a5005c6daa006171b0006375b2006682b6 +006684b7005b8eab005391a8004b94a6003e9ea90034a8b4002bb0bb0025b1bb +0015aeb50012aeb50010aeb6000eadb60013a9b40014a4ad001997a1001f8c97 +0024828d00297c8700297c8600297c8600297c8600247d85001f8087001a848a +00148d9500128d9500108e9600108d9400108d9300118e9300158f9600168f96 +001a8991001d838a001d7d81001b797b0018757700136f7200116c6e000c676c +0007696c0008686c0009686c000e6a6e00146b7300187078001e767e00247b84 +00297f88002e828b0030838c0031838d0032828c0032818900377a84003c7081 +0042657f00475e79004a5c6e004e5861004f565e0050525e00505064004b5563 +0047595f004062600039686400346d6f002e7377002c757b002b797f002a7b82 +002b7d84002c7e86002c7f88002d7f88002d7f89002d7f89002d7f8a002e7f8b +002f818b0032818c0035808c003b7d9000417a9600477a9f004f79a6005278a7 +005675a8005873a7005d72a8006b76ab007a7ca6008881a300968c9a009d9491 +00aa9a8b00b7a07e00c19f7400c89f6900c58f5900c37e4e00bb6b4000b25532 +00a84b2800993519008e210e007e110a006f0205006202050058020500510303 +"/> +<palette number="672" name="Victoria" data="00675f810072556f007b506700844b60008c49590094475300974850009a4a4d +00ae4f4000b44b3b00bb483600bd473500bf463500bb493700b74c3900b24d39 +00ae4e3a0098423d008c3c3c0081373c0075343c006a323c0064313c005e303c +00482b3c00422a3b003c2a3a003f2a3700432a3500472a35004c2b3500572936 +00642935007129350072293500742a3500772938007a283b007b283e007c2841 +00762c4b006c315000633756005b3b5c005440630052406500514168004e4268 +004b426800494363004843630048436300464262004542610044416000444160 +00443f5c00453c5d0046395f0043386100403764003e3765003d3766003b3a68 +003c3968003f3a6900423e6c0046426f004a4672004e4b75005a587c00646482 +00747287007574880076768a007a7a8c007f7f8f0082808c0086828900858289 +00807d86006f6b80006b67800067648000666480006664800066647f00656280 +00585a7d00525479004d4e75004b4b7400494873004843700048406e00473c69 +004639620040305800412f5800422f590044305b0046325e004b386000514262 +00615968006b66710076737a007b797f00807f850086888c0087899200888c91 +00868c8f007d808c00797c8b0076788a006b6a8900636184005b5a7e00525179 +0049487300474672004645710047456f0048456e004b466b0051496600584961 +005e475d006c4254006c3f51006d3d4e006c3a46006935400064313b00623039 +00602d39005d2d39005b2d3900582c3900552c3900512c3900522c3800572e38 +005e333600693a3600693c38006a3e3a006c4040006c41460070424a0070414b +00663f5000613e52005d3d5400503b580049395b0048355a00493254004e2e4f +00582a4c006a3046006f32450075354400803d41008d413d009c473b00aa493a +00bf503900c0533900c2573a00c2593b00c25c3a00ba5b3900b2563400a55131 +00974d3000874831007c43330070413600653c35005937350050323600462f3a +0043354a0044384e00463c53004a435b004e496300524b6800544f6d00565274 +005855770058587900585978005655750053516e004d4c67004949610045465d +0044445b0045435b0047425b0047415a004a455b00524a58005d5255006b5c53 +007b665300896e5200937351009a744b009c6f45009a6b410097673f0090613f +00885e42007f594500764f4700694348005d384b004f2e4f00452855003f265b +003f26600041256300452663004a2764004c2b67004f2f680052356c00533a70 +00543b6e00553a6a00533a6600513961004e3b5e004d405e004f455b00584859 +00644c54006d514f0071555100735b57007060610072666b0077697300807075 +008574790085767c007f768300747488006b708e00686c8f0065678c00646487 +"/> +<palette number="673" name="Violet" data="00321b6400301c6000321c6000351c6100381e64003b2168003b2268003c2469 +003b2269003b226a003b226c003a216a003a2169003a2065003a1f62003a1f61 +003a2061003d2760003f295e00412c5d0045305f00493461004c366200503964 +00593e6b005d42720062467a0069508600715a9200756098007a679f008672ab +008c7cb500928ac400948fc6009794c9009894c9009994ca009894ca009894cb +009695ce009796d0009998d3009c9ad600a09dd900a09fd800a0a1d8009ea0d6 +009a9bcd009288be008d83bd00887fbc00847dba00817cb900817bb800817ab8 +00827cc6008885ce008f8fd7009797da009fa0dd00a2a3de00a5a6e000adace2 +00b5b2e600bbb6e400b3add900aca5cf00a89eca00a598c5009f8abd009a7db7 +008266a8007a5fa30073599e00785da3007e62a9008168ad00846eb100897abb +009089c500a5a1d400aba8da00b2b0e100b2b1e200b2b2e400b0afe400aca9e1 +00a093d1009684c5008c75ba00866eb3008168ac00765aa1006c4e960065458b +00603f84005d407c006048800063508400675688006b5c8d00726998007975a3 +008687b5008687b7008687b9008484b7008282b6007c79af00756da500695e96 +005d4e88004f3670004e336c004e3169004d2f62004c305e004d335d004e3661 +0055416d00574570005a4974005a4875005b4876005e4679005e457d00614581 +00634584006744860068458700694789006e4f8f00765a98007e68a3008575ac +008f8cbf00999aca00a4a8d600a9addc00afb3e300b7bceb00bbc2f000c0c5f1 +00c5c8f200d0cdf800d1cef800d3cff900d6d2fa00d9d8f800dadcf900dcdffb +00dadffb00d9defb00d9defb00d5dcfb00d2dbfc00ced7fc00cbd2f900c9cff7 +00c9ccf500c7c8f400c8c7f300c9c6f300cac5f100cbc3ef00c7bfe900bcb4e1 +00af9dce00ab98c900a894c5009f8cbb009384b1007d6a9a00746093006c5589 +00694f8300674d80005e3f74005837700053316d00502d6d004a2b6c0045266b +003d236b003d246d003e2670003e2a7500402a77004329790045277700492a78 +004d307a0051347b0056357e005b397f00603d8200654788006b538e00725e98 +007a6ca5008379b2008e86c0009995cc00a6a3d600b2b0e100bbbbea00c1c2f0 +00c5c6f400c8c8f500c9c7f500c7c5f200c2beea00bbb3e100b2aad700aaa0d0 +00a29aca009e99c7009c97c5009c99c4009e9bc8009f9ac800a29eca00a4a0cd +00a5a2d000a5a3d200a19dcf009b94c900948bc1008f85bd008d82bb008c80ba +008d80bb008d7eba009082be009687c3009c8ec600a394c900a995cb00ab97cd +00aa96cf00a395cf009a90ca009287c400897dbc007e71b6007267b000615ca8 +00534f9f00474393003e368900372e8000312879002e2372002f1f6b00311c66 +"/> +<palette number="674" name="Violet_Fog" data="0087678c0075547900714972006d3f6c00673c6700613a63005c385f0058375b +004c2f4f00422c4700392940002e2738002326310020252e001d242b001c242a +001c242a00182528001725270016252600152425001523250015222400152224 +00191f25001d1f280021202b002c23330037273b003c294000422b45004a2e4d +005031540066416c006e48760076508000745282007354840073538400745384 +00765481006f507900684c72005e446700543c5d00513959004f3655004c304e +0044304800373141003c35470041394e00484259004f4c640053536b00575a73 +0070758c007d7c99008a83a7008f87ae00948cb600948eb6009590b700978cb3 +009583ab007e6690006f5c8100605372005b4d6a0057486300493e54003c3444 +00262d3300252a32002528310027283400292938002d2b3b00322d3f003b3148 +0045334e00523458005434590056355a0057365b0058385c005f396000653e69 +006e4679006e4b7b006e517d0070558000725a8300795e8b00815f9100805d91 +007a578700634c6e005a456500523f5d004f3c5a004c3a570048395600453c57 +004342590041455800404857003f4957003e4a5700404b5700414d590042505b +0044545b0047585e0047585f00485961004b5a69004d5b6a004c5c69004c5865 +00434559003a3b4e00323143002e2d3d002a29370024212c00221b2900211928 +00201628001f1526001e1526001e1526001e1625001d1527001b1526001b1425 +001a1522001a1622001a1722001a1722001a1822001b1923001b1922001b1923 +001b1a23001b1d24001b1d24001b1d24001b1e24001a1d2400191d24001a1e25 +001b2228001b2228001b2328001b2429001b2529001c252a001d252b001e252c +001e252c001f232c001f222c0020222c0023202c00251f2d00291e2f00322136 +0044294500482b48004d2d4c004a2c49004a2e4b004a304c004a324e00513956 +00513d59004f435b004e485c004e4d5e0052546500595b700060647b00686b86 +0075739400757496007675990073769a006f7598006e7196006c6d930068688d +005d638300525c750048546900414e5f003c47580036404f00313a45002b333c +00272e3600252b3400252932002627310026252f0026242e0024232d0022242c +0021242d0020242d0021252d0022252e0021252e0021252e0021252e0021242e +0022222d0022212c0022202b00231e2900231d2800231d2800241d290026212b +002f2431003a273900432b42004c2e4b005034520058385b00613b6300633c66 +00623a64005c39610054385e0050385d004b395900483957004a3c58004c415c +00534864005b4f6a0067567500765c8400876595009b72aa00ac7db700b681bd +00ba83c200b882bf00b687c100b88dc300af87b900a780b0009b71a0008b6a91 +"/> +<palette number="675" name="Watermelon" data="005c2a1e006c422a006a483600694f42006f534b0075585500775e53007a6552 +006a7754005f765500557557004b6c4a0041643d0034583000284c2300244622 +002140210027301f002e2e1e00352d1d0033301d0031331d0031341d0032351e +0036351c0032391d002e3d1e002c471f002a5221002c5420002f571f00335c20 +00365d20003b6522003c6521003e6521003d6020003d5b20003f571f0041531f +004f401e0058361f00612d21006d251f00791e1d00801c1d00871a1d0091191d +00921a1e008c1f1e00862a1d0081361d007a461c0073571c00715b1d006f5f1f +00596c21004f6a1f0046681e00405e1d003a541d00354e1c0030481c00263d1a +001d301900161d1800151a170015171700141716001417160015171700191717 +002a16180035141800401319004d1119005a0f1900600f1900660f1a00700d1b +00730e1b00680f1a005f10190056111900511118004c11180046121800421417 +00511517006013170070121700781418008117190092181c00a21b1f00af1920 +00b4142000a8181f009d192000921b21008d182100881621007b141c0071121a +006a161900731919007d1c1900821c1900871d1900911b19009d1b1a00af1d1f +00bd211f00d0241d00d0221c00d1211c00d11c1f00c9182000c3162000b8151e +009f121900910e1800830a18007b0917007409170063091600530d1600450e14 +003b0f14002d1315002915160026171700241c1a0028221d0034282200443223 +005449280058532b005d5e2f005f5f2d0062612c005e622d0054602a004a6125 +003d5f2500274d1f0021471e001b421d0013371a0010311900102b1700112716 +0010201400101e1400101d1400111a1400121a1300131c1400131e1400142116 +001624180027271a002e271900352719004426190054271a0066211d00751e1d +008d101a0090101a0094101a00970d1b00970d1b00920c1d008b091c00820a1b +00790c1b00700e1b0066111b005d131b0054131a004b14180041151700371516 +002716160024161600211616001c181500181a1500171d1700182018001e201a +00271f1a00301d1b00381d1c003a201d0039201d0038201d00371b1b00371719 +00351518002e151700261716001e1816001c19150020181500261715002e1715 +00341817003a1f18003f291a0044351c004c411e00534a2200585429005a5f31 +0057683600526d3a004e6d390049663800455f3d003f553a0037483a002e3c31 +00262f27001e2523001a1e1d0017191a0016181800191716001d181500201a17 +0026221b003032280041423500545443006461500072706100848b7e00949e93 +00a3ad9d00aea49400b5958900bc8d8400c0828400b87c7d00ae626600a1474c +009a3034009722290090242800852f25007d3524006d312100612e1c005f251f +"/> +<palette number="676" name="Whisp" data="00b3a09b00c7ada800d2b8b300dec3be00d6b9b400cfafab00cbaba700c8a7a3 +00b49c9800aa918c00a0868100967d78008d756f0081676100755a530072514d +007049470067383700623736005d3636005f383800613b3a0061403e00614542 +00645a55006a645d00716f65007a756d00847b7600877f79008a847d008e8982 +008c878000857e78007f79730079746e0077716900756e6400756e6400756e65 +007f756c00847870008a7b74008c7d76008f7f79008f8079008f8179008e807b +008d7d7b008978770088767500887573008d7473009373740095737400987474 +009672700095747100957672008d727000866f6f00816d6c007d6b6a00746a68 +006f68680069626400665e6100635b5e0061595b005f5859005b515100554a49 +0043353400382a28002e1f1d002b1d1c00281c1c00291e1f002b212200332a2b +0043373a00736765008d7f7c00a8989400b3a29d00bfaca600d1bdb800deccc6 +00ead5ce00e8d0cb00e7cbc800e3c7c400e0c3c000d9bbb700d2b5b300d6b6b3 +00d9bab500dfc0bd00e2c7c300e5cfc900e6cfca00e7d0cb00e6cdca00dfc5c1 +00bfafa800afa09a009f918d009889860091827f0081746f00756b64006d605b +006e5854006e524d006e524e006f535000775451007d585300845e5700886560 +0096736e00987975009b807c009e817e00a1838100a1858300a1858300998282 +00937d7b00836e6a007e696600796562006d5a57005f504e0051454200463b3a +00362b2a00322725002f242100322623003629260040312d004e3d38005d4844 +0071585500987a76009d7f7c00a3848200aa8a8800ac898900a6848400997d7c +0075625f006a5a560060524e004b4340003c373400312d2b002b272400292324 +00302528003f3132004333330047353500523c3b005d454200614b4800614b45 +005a433b0056403900533e38004d3b3500473932004638320045373200443633 +00413634004137360043363700413335003a2d300033292c002e2326002d2123 +002d2323002f2625003229280039302f003e363400403a3800433d3b00453f3d +0046413e0045413d0046423c0047403d00494240004f454400594d490060524f +0064565400685a57006a5b56006b59540066524e005e4c470052423c00463835 +003b2b2c00342326002e1f1f002c201f002e21220037292900413330004e413b +005c49430069524b00755450007e575400835a5800835f5b0081605d0081605e +0081636100806b68007f737000827b770088818100938b8b00a1969600b1a2a0 +00bcabac00c6b4b600cfbcbd00d8c1c000d8c1bf00d2baba00cab1b000bfa6a5 +00b59b9900a58e8c00978481008b7b780082767300786f6c00716d69006d6967 +006b686600696563006a6461006d625f0073666400776765008a7a78009d8b85 +"/> +<palette number="677" name="Whisper" data="0020464200101d1f000d1c1e000a1b1e000a2123000a2729000c2a2c000e2e30 +000d3234000d3032000e2f30000c2629000a1e220009191c0009151600091415 +00091314000d12100010130f0013140f0019160e0020190e00211b1000221d12 +002a2317002a2519002a271c0027261b0025261b0022241900202218001c1f16 +00191b120012140d000f120d000d110d000c110f000b1211000b1313000b1516 +000e212100123130001741400020514e002a615c002a6963002a726a00257876 +002677710018565500134744000e3834000e2c29000e211e000d1f1b000d1e19 +000c16160012181500181a1500201e1600282217002c2317003025180034281a +00362c1c002c271b00282519002423170023211500221f1300271f10002f2412 +0042361a004c3e220056472a00615031006d593800725f3d007865430090734b +0097805800978b5800838656006f825400647447005a663b003e5431002b422a +0015231800111d17000e1817000d1717000c1618000c16180010181a00121b1d +00101e200016272a0017292b00182b2d001b2e30001f3233002c363300313d2e +00415d43003e6349003c694f00396750003766510032605200284e4800203c37 +0020322d001e241c001e231b001f221b0020231a001f2118001c1f17001b1e17 +00181c1500151a140013181300111612000f1511000a130f0008100d00060e0d +00050d0d00060e0e00060f0f0007101000081213000614160006151700071517 +0005121500040f1100030c0e00020a0c0002090a000007080000070800020706 +0003070600040b0b00050b0b00060b0b00060d0e00050f1000060f1000061010 +0008111300091313000a1514000f19160012201d00162a26001c332c00253731 +002c3d3500323b35003238320032362f002e332b002b2d2700242b26001f2c28 +001e332c0021372c00243b2c00243a2800223a2c00263c2a0027382200213023 +002333260027382b002a3c2e003247340037533f00345c4500335f440033634a +00295d4900285b4800285948002555500025554f00275851002f6157003f6858 +004566520047614e004e5e4e0047574500344d40002a4c4900255a56001e6b69 +002075720030817700368b830031837b003771680034635b0028504b00293e3c +002d3734002d362c003c392a004f4231005d513500736742009791710095ae95 +007fa68c0096b0980095b8a300759b83006b7b670069644e0064573b00574d36 +00453d2d0034312400272a1f001e231a00181d17001419140012181300151915 +00191b15001c1e15001c2017001c2019001b221800191f1800161e1900161f1a +00171e1b0016201f00132224001324270015272800172929001c2b2800262b25 +002f2d210034342100383c28003a402d00374f4000355e4e002b4a400024423f +"/> +<palette number="678" name="Wintergrass" data="00a193630096894d0099905c009c976c00a79e7900b3a68600b6a88900b9ab8d +00beac8d00afa17e00a0967000938e5e0087864d007f7c3900787326007b7222 +007e721e00867314008a7315008f7417008e7219008e701c008b6f1c00886e1d +0077692f00736a3500706c3c00777349007e7b570086805e008e8566009b8f71 +00a4937500968e7600898368007c785b006f6e4900626538006564320069642c +0077651900806b17008a7115008e761800927b1b00907c1f008f7e23008d802b +00887d3300857c3000867b2a00887a24008c7a1a00907a11008f780e008e770b +008170070079690700726208006c600900675f0a00655e0b00635d0d00655c0c +00685c10005f5915005c581a0059571f005758210056592300555c28005a5f28 +00686f25006a6f21006c6f1e00696b2100676824006366240060642500595d2a +00565a2f005356320050532e004e512a004d5128004d5126004e5225004c5327 +00575e310065684100747351007e7a5900898161009d8f7000ae9c7c00baa780 +00baaa7900bea24f00b8983900b28e2300b1891b00b0851300a97f1000a07a10 +008b6d15007d6c1a00706b20006e6921006d682200646524005c6226005d6123 +005f5e1f005c5a22005b5920005a591f0058571e0056551f0054541d0057541c +00645a1600716014007f661200836a1000876e0e0098770c00a77f0f00a88518 +00ac8d2d00b7995700b79b6200b89e6d00b8a18200baa48800b39e8200a39474 +007e7b5d006d6d4c005c603c00565c370051583200444e28003c4921003b4517 +00354213002c401c002d411d002f421e00324b2600364e2a003a522f003f5833 +004660390046603c0047613f004d63420053694100566b4100606e3a006a7130 +006b6f2a006d681f006c6520006c6322006d6324006e652a0070693100787031 +00857d3300897d2f008d7e2b00937e280099832700a2832300a4832c00a68a3f +00ab924f00a3945800958f6500898b6c007c8360006974540056684f004b6044 +00495b3c00495b3c00495b3c004d5e3a0058623600646631006d6b2e00746d2b +007e6f25008573200087771c008d791a0090781800927a1700967b180098791a +00997a1e00987b2200947a2800917b2f008e7d36008e814500938855009c8e62 +00a3946f00a5967300ad986700b3995500aa9448009d8e3700988725008f8422 +007f802900717a2d0069742f00637032005d6a33005865320056623100545d2e +004e592c0047512a003d462700313f23002c391e0032392500333b2500384020 +00464b2500525629005d5f260068642300706b24007a742800847c2d008c823b +00958b5100a2956000ac9a7200b7a38400c5ac8f00cdb29300d2b89a00d4ba9f +00d4bb9d00d3bc9d00d1bb9f00ceb59b00c5ad9100c1aa8d00bba27900a9945f +"/> +<palette number="679" name="Wooden" data="005c4a3f004b39390046363600423333003e3130003b302d0039302b0038312a +0036302a0033373000313f3600374a43003e565100455e51004d6651005a684f +00686b4e008165480084614000885e38008457320081502d007d4f2a007a4e27 +00684b27005b4528004e3f2a00473b2900403828003d3928003a3a2900373729 +00352f2a0027332f002c302a00322e260031302300303221003031200030301f +002e2619002a24180027231700231d1700201717001e1616001c151500181218 +00111616000c1414000c1312000d1310000f161200111a1500131b1900161d1d +001b1e25001d2227001f262a001f2228001f1f27001e2026001d2126001b1e25 +001b1f23001f231b0024231c0029231e002a231e002c241f00302a1f00332f20 +00372b1e00362c1d00352d1c00312a19002d2817002b2716002a261600262415 +00211d130014180f0014150d0015130c00140f0a00130c0900110b08000f0a07 +00100906000f0a07000f0b0800100d090012100a0015170e001d171100221d13 +002722150032261b0036271b003a281b003b291a003c2a1a003d281b003d2a1c +00402d1d0041301f0042342200433522004436230045382700483b2b004b4131 +004e473400504b3800524b3800554c39005c503b0061523c0068583d00715d41 +00836e4f008e7350009a7951009c7c52009e805400957f5600917552008c6b4b +008764430068543600614d34005a47330050403100483d310043402f00413e2f +00383c2d0039382d003a352d003a342c003b332b0039302700392b220039271e +003a281b003f28150041291300442b12004a2c12004d3014005033180055391b +00613d1f00613e2100624023006342290063462b0064472e0061492f005e4832 +0056453500394c3f00364d4100344f4300314e4200304c44002e4741002d453d +00333d2d0035392a0038352800362d2400322f22002b33240024362700233727 +001e3628001e3627001e3428001e3122001f2b1b0026241600241d1200221812 +001f150d001e130d001d120d001a0f0f00180e1000160f0f0018120f001c1011 +0020141600261a1f0030252b004232320056484300676250006c715900766a58 +007b7358007e77580077745600685e4900594f3b004c4a330041463100344131 +00333e2f00343e2e003e412e004b3f2a00593e25005f391e005c371b00573216 +0057321200522a0d0046250b0035220b002d220d002a1f0e002c1d0b002c1f0a +002f200d00362310003d24110041281200452a1700472f1d00492f2000483220 +004a2e20004932200049302000462e2000442a1e0040281e003e271d003a241e +0036211c0031201b002c231a002a221a0028231b0024281e001f2c2200233226 +0028392800353f2c003e443100504d38005a523b005a523a0053483900564a3c +"/> +<palette number="680" name="Wooden_2" data="003b2c1b0046321d004b351e0050392000533b2100573e2200573f2200584023 +005842230057402200563f2200533d2100503b20004c381e0049361d0046341c +0044331c003a2d1900342917002f25160029211400241d1300211b12001f1a12 +001815100015130f0013120f0012110f0012110f0011100f0011100f0011100f +0011100f00111010001110100012111000141110001612110017131100181411 +001f181300241a1400291d16002f20170036241900392519003c27190040291a +00432a1b00482f1c004b311c004f341d0056381f005d3d2100613f2100654222 +00754e26007c552700845c29008c693100957639009a7c3e009f834400ab904a +00b5974f00c3a45500c7a55300cca75200cda85200cea95300ceaa5900cfb05d +00cdaf5f00c9aa5c00c5a65a00c09d5100bb954800b8904400b68b4100b4893f +00b5893d00b4873b00b0843800ac823600a97f3400a67d33009e753000946e2c +0086642700805f25007a5b240076582300735622006b50200062491f0056401d +004a381b003a2d1800372b1800342918003429180035291800372a1900392b1a +003b2d1b00392c1b00382b1b00362a1a00352a1a0033281a0032271a00312719 +003127190035291a00362a1a00372b1b003a2c1b003c2e1c0040311d0045341e +00503c2000553f21005b4323005d4423006046240063482400654a2500674c25 +00694d26006b4f26006a4f26006a4f27006a4f2800694f2700674e2600664d26 +00695025006d512600715228007252290074532a0075532b0074522b0071502a +006e4f2900664b250064492400634824005f4523005b402200533b21004b341f +0038291a00332618002f2417002921160026201500261f1500272016002b2317 +00302618003b2d1a003e301b0042331c004a391e00533f20005e452200684a24 +006549230063472200624622005e43210059402000523d1e004d3a1d00523c1d +004c371c0045331a003d2d1800352716002b2014002019120015131000151310 +00141310001312100013121000131210001211100012110f0012111000121110 +00131210001413100016141000181611001b1712001d1912001f1b1300201c14 +00211d1400231e1400241f1500262115002a2316002e26170032291900382d1a +003d311b0042341c0048381d004c3b1e00503e1f0054401f00574320005b4522 +005f482400644c25006a5026006f54290074572a0076582b0076592b0073582c +006f552c0069502b00634c28005e49270059452600544225004f3e24004a3b22 +00453721003f321f00382d1d0033291a002e2518002a22160026201400231d13 +00211c1300201b13001e1a13001e1a13001e1a13001f1b1300211c1300231c13 +00261d1300281f14002a2015002c2116002e221600302417003326180036291a +"/> +<palette number="681" name="Wooden_3" data="005f452600442f160035210b0026140100211100001c0f0000190e0000170d01 +000f0901000d0700000c0500000c0500000c0500000e06000011070000130700 +00150800001d0c00001f0d0000220f0000220f000023100000230f0000230f00 +00200e01001f0e02001e0e03002112070024170c00281c12002c211800392f26 +004a41390067605600757066008480770092908800a1a09a00a5a49e00a9a9a3 +00a8a6a000a29e95009c968a0090877a0084786b007b6e610073655800635444 +00574634003f291500351f0c002b150300291402002713010027130000281300 +002b1500002e180300321b06003d240c00482d12004e33150055391800604019 +0069461b00734f2000724e1e00714e1d006f4a1a006d471700674112005f3b0f +00513311005336160055391c005e422400684b2c006c502f00715633007a5e3c +00826743008b6c47008a6a450089694300876842008567410081643f007f633f +007c603f00755b3c006e5639006a523500664f32005c492e0055422b004e3b27 +00433120002f1d0d002b180a0027130700261206002612060026110400261203 +00271203002611030026100300240f0200230f0200220e0100200d00001f0c00 +001f0b0000200d0100210e0200220f030027160a00302115003d2d1f004d3b29 +006b5333007d664500907957009a846400a48f7100b7a48800bfae9100c8b897 +00cdbb9b00d3c2a500d0bfa300cdbda200c1b29900b2a08800a28b6c00917856 +00725530006346250054381a004d311400462b0f003d230800371d0300341a03 +00371b040042260d00462a11004b2e150053361b005d3e2200644629006b4e32 +00785d41007b5e42007e6043007d60400076593a006e51340064492c005c3f27 +00573b200045280f0041240b003e210700371a030034190300311703002e1502 +002a120000281100002711000024110100231001002310010024110200281303 +002d1a080037250f0044301700503b20005e432600664b300072573a007d6649 +009583690098876f009b8b7500a28f7800a8947900ab997a00ae9a7800ae9977 +00ae957300ae916b00ad8d6200a9865900a17e4f0098744a008e6a4500825e3c +0075553500684b2d005e422500563b22004b311900422812003b220d0039220c +003f281200452e17004a311a0050331b00563b1f00624525006f512e00785b37 +0080613e00846949008d76560098836500a2907300ab997e00b09f8700b3a691 +00b8ab9800baad9c00baad9800b8a78f00b4a18600b19b7e00ad947700a68f6f +009d8665008f7a5c00826c4f00745d430068533900604a30005a462e0057422c +0059422c005e472d00664d2f00715737007c624100886c480096774d009e7e4f +00a1804f00a18053009e7f53009b7c51008f7043008161350072532c00654723 +"/> +<palette number="682" name="Woodland" data="00432a13004e260d0056260a005e270700692b0600742f0500773004007a3103 +00752c03006c270200642201005a1f0300511d06004c1a070048180800481809 +0048190a00461b0800481c09004a1e0a0048200a0047220a0046220a0046220b +003e240b003c260e003b2912004031180045391e00463d2300484229004b482d +0049482e003e42280039371f00352d16003628100038240b003b230b003e220b +00441e0b00481f0b004c200b004f220c0052240d0054240c0056250c0053260c +0052280e004b2c1200482b1200452b1200412d12003e3012003f301100403110 +003e3a1300444215004a4a18004e4c1900534e1b00574d1b005c4c1c005b501c +00574c1d004e4b2400464d2a003e4f30003b4d2f00394b2f00354d2f00304729 +0029371b00253618002236150022391600223d170023411c00254522002d502f +00365d360045715f00437f6900418e7300489182004f9591004a999200489671 +004f897100457850003c673000345e2d002d562a002147210021381700253013 +00282a0f00341f0b00331f0c0033200e0032200e0032210f002e2410002b2710 +00252f13002533140025381500293a17002d3c1a003c421f004a4c22005d4d20 +0072491c008546150084411100843d0e007d38090072320900632f0a00552d09 +00412d11003e331b003c3a25003f3d2a0043413000494d350050563a005c5d43 +0065693f006a7031006c712e006e732c006b74240063682100585a1c0047521a +00313f19002b3a160026361400293613002c3613003237120039350d0045310b +0051330900603109006231080065320800653107006433090060350d005c340f +005f38100061380f0064380f006b380e0071390c00743a0c00753c0e00713c10 +006b3c1400644b1d00644e1e006451200060571e00645d1e00655c1c005f5518 +005b45100057410f00543e0e00523a0b0050370b004c310d004a2c0a00472308 +004518090044110800450f0a0048150d004d1a0e0058240f0063381b006c4b29 +00867c2c008b86330091903b00918b3b0091873300918c30008a762e00845c27 +007d55210078501d007c4d170081461200833f0b0085400700823f08007b4106 +0070400a005f3d11004e401200403f160035371900313415002e2d13002d2510 +00321e0b0037170a003a1209003d0f08003f0d0700420e090042120a0041170b +00421a0c003f200e003a250c0037290d0036311200383d17003c441c00444c1f +0051572400575e2b0058652e0057692a00536124004d57240049512000454415 +0045351400482e14004a3116004a3317004d351500503b1700513b1600533a12 +0052380f0053340e0055320d0054310b005432090055360c00573e0f00564611 +00564a0f00544b0d004e4c100048461000433c0c00483b120048391900392c14 +"/> +<palette number="683" name="Yellow_Silk" data="00debb2a00dfc94200d7c94300d0ca4500bcc04700a8b64a00a6b04500a4aa41 +00a79d3400a49d3300a29e3300a49e2d00a69f2700a49c2400a39a2100a3961e +00a3931c00a88a1c00a6892000a5882500a3882600a28827009e8b26009b8e26 +00a1911c009f8c18009e881500a7791100b16a0e00af621200ae5a1700b74419 +00bd2f1900b8251300b52a1400b32f1500a12812009021100088231000812611 +005a0c1d00480b2400360b2b003f143800491d45004f274f0056315a0071405e +00804159009d564f00ab5e3f00ba662f00c6752c00d3852900db942900e3a429 +00ecc22d00eec82e00f0ce3000d3ba3300b6a73600a99435009d823500967745 +00686552004b4a54003c4152002d3950002c3e46002c443d0035392b0041432d +0075702d007f7a30008a8534008f893300958d32009a8a31009f873000a7862b +00af832600bd7a1f00bf7e1d00c1821b00c1821f00c2832300be8c2c00b69833 +00aca252009e934d009085480086784d007d6b52005e4f4c0051352e004e2125 +004c1e1d00752d1b0090431f00ab5a2300b2653000ba703d00c5734c00c78b5a +00cfac8d00c8ae8800c1b08400c1a97e00c1a37800b58e5600927c340078691e +00746b17006d6407006f6c0c007275110085851a00988c1a00a4931f00ad9427 +00d2953700dd893f00e97d4800ec7d4e00f07e5500e97e5f00d6765d00c17a5c +00ad7e55008e8544008b83400089823c0088802e008c872b0093892a00998525 +00be893b00cc924c00da9b5d00dba16200dda76700d9b66b00bcbc6800aaad64 +00b1995700908065009478650098716600a17368009b957e009eb27b00a8c775 +00d8e77700deec7800e5f17900f3ef7800faeb7300fbeb7500fbe86f00fae866 +00fce96800fde77300fce77c00fce88600f1e69700e5e6a300d2e5b400b2d4b9 +008bb3bc007eb0b40071adac00739ea00086a7a300a0b49b00b8b48a00cfc37a +00e9ca7100efc46600e0be5700ceb64a00bab44100acb14200abb24d00b9b94a +00d7cb4800e2d04600eed64500fcdc3c00fcdd3a00f4d33700e8c33000d8b428 +00be9c1f00a180160087690c006f4c040052300000483300004d350000542605 +0067390d00774c12008e4a1a00a2562500a9682c00b6783d00c58d4b00d2a547 +00dcbc4a00ebcb5200f7d54a00f9db4200f9de4400fce14700fddf4e00fbdd59 +00f0d25a00e3c35200e3ae4900d7953b00bf842800b6721500b0610b00a85f06 +009d66080093670f00936b140094721e00906e230089681f0087561900873a14 +00892e0d008c200400810f0000811800008f2d0400933c08008f4b1100975c21 +00a2712a00a37e38009a7e450098884100a1913e009f943b00a3962e00b59325 +00bf8f2300be902400be902800c1902800be8f2600bc942900c59c2d00d2ab2b +"/> +<palette number="684" name="Zinfandel" data="008359420072563e006b584000655b42005b59400051573f004d553d0049533c +0037422e0038432f003a453100474b35005552390062583d00705e4100735f42 +0077614400816447008164470082654700866447008a6348008b6247008c6147 +008a5841007d513c00714b370068473600604435006045370060463a00654c40 +007155480088695400906e570098735b00a17a6100aa816700af846900b4886c +00cb9b7700d39f7900dba47c00e1a67e00e7a98100e8ab8300e9ae8600eab38e +00eab99600ecc6a900edcbb100efd1ba00f0d6c200f1dccb00f1decf00f1e1d4 +00f0ece400f0ede800f1efed00f1efed00f1efed00f1efec00f1efec00f1f0ec +00f1f0ec00f1efeb00f0ece400efeadd00eee7d800eee4d400ecdec900ead6bd +00e2c0aa00dab39d00d3a69100cb998500c38d7900c1897300c0856d00bf7f61 +00bf7a5d00b7725900b16d5700ab695500aa675300a9665200ab675300b36b55 +00be785d00bf7e6000c1846400c0866400c0886400bf8b6700c48d6900cb8e6c +00cf926f00d19c7900cb9d7800c59e7700c29c7600bf9a7500b9937200b38a6e +00ac7e6800a87d6600a47c6500a47c6500a47c6500a47d6700a57e6700a77e68 +00ab7f6b00b3846f00b5856f00b8866f00b8877100b5866f00ae856c00a48469 +008f7d5d0084735500796a4d00726448006c5e44005f523b005248350046442f +0040432c00454a2e004a4d31004f5034005d563b006b5a420078614a00856850 +00a17a6000ae876d00bc947b00c39c8300caa48c00d5b39c00e0bfaa00e9cbb6 +00efd1bf00f4dfd000f4e3d400f5e7d900f5eee200f6f3e900f5f9ef00effaed +00e7f0dc00e4ecd700e1e8d200d9dec700d2d4bb00ccc7b200c1bba500b5ac96 +00ad9f86009f8a6f009c876a0099846500997f6100997d61009a7c62009d7f64 +00ab8e7900ae937e00b1998300b9a79000c2b49e00c9c0aa00d0c8b200d9d3be +00e1dbca00e8e1d000ece4d300efe6d400eee9d800eee9d800eee9d800edecde +00ededde00edecdb00eeebd900ebecd600e9ecd400e6e8cd00e3e5cb00e0e2c8 +00dfdfc600e0d8bf00dfd1b500deccae00dcc1a200d9b79500d6ab8800d49d7c +00d2927200cf886800cc816100c4775b00b76f5400a9684c009e5f4600975c45 +00925e470093644b00966d5400977a610098866e00978f78009a9a84009ca58e +00a5ab9300b2b39700c1bd9e00d0c5a500d9caaa00e2cdaf00e4d0b500e5cbb2 +00e1c4aa00dbbd9f00d6b69500d0ae8a00cda88200c8a58000c4a37f00bea181 +00b7a07f00b19f7e00ab9d7d00a89d7c00a99f7b00aa9f7b00ad9f7d00ad9f7c +00ac9e7b00a99b7a00a5967500a3947000a28c6900a3836300a37c5c00a37456 +00a46e5200a2674e009e664b009d6c4d009b6b4e00996a4d0090644800895e44 +"/> +<palette number="685" name="040412" data="00006edb00006ede00086bdf001069e1001367e1001766e2001864e1001a63e1 +002a59e000275adc00255bd9002456d4002452d0002753c3002b55b7002e58b3 +00325baf00446aa20049759c004e8097005888900062918a00689586006e9a83 +0077a9750076a8780075a87c0078a878007ba975007fa7710083a66d008a9e66 +008c95590082973c00849a2e00879e210093a313009fa80500a4a80400aaa904 +00b4a50500afa00800aa9c0b00a68f1000a38215009d791500987115008e6315 +0085561600714810006f4708006d4600006b4200006a3f0000663e0000633d00 +00544000004f3d00004b3a00004139050038380b00313512002a331a001c3628 +000e3a360002465200034e5e0005566b0005597100055d780005668500056e91 +00017eaa000084b700008ac4000092d200009be00000a0e70000a5ee0000b3f3 +0000c2f60000daec0000e0e30000e7db0000e8d60000e9d20000e8c60007e4b8 +000fd49c0012c8910015bd860015b7820015b17e0019a97c001e9e750021946d +00218a6400217f5200227f4300247f3500267f2e00287f270027801900287910 +0020670c001a621000155d1500125b1500105915000952150002471600003a1d +0000351d00003a1d00004019000047160000511300005c0c0000640700006d07 +0000830000008d00000098000000990000009b00000298000005980000079800 +00089b00000894000008900000088d000007850000057c000005740000047200 +00057400000472000004700000036e0000026d00000174000000740000007700 +00007800000077090000750e000074130000701a000067230000602a00005831 +000044470000424c00004151000040580000416000004164000046690008466b +0015486e002f546a00355666003c59630048625b004f6754005b695100606b52 +006d6a4f0072694f0078694f00836754008e6355009c665400aa6a5800ba7056 +00c8755500d6825100e08d4e00e89a4600eba83d00e8b63600e1c22c00d7d328 +00bee23900b7e43d00b1e74100a5eb520098eb60008ce86e007fe7790075e487 +0071e095006adaa10063d4ac0064cdb00060c8ad0059c4aa0051b7a90048a9a6 +00469fa6004194a2003f8c9f003a859b00367e9a00397b97003d7794003d758e +0047718700526d85005d698300676280006b598200744f82007c468200873c82 +0090328000952a7f0094277b00942777008d2c740087336d007f3d6e007b4a75 +0075527c006a5989005f5f95005460a2004b60ac00445db600405bc1003556cb +002a55d6001e56e2001559e800085ceb000064ee00006df0000075f500007efc +000087ff000090ff000095ff00009aff00009cff00009cff00009bff000095ff +000090fc00008af2000083e900007ee1000079db000078da000078da000072da +"/> +<palette number="686" name="040412-000" data="00ab668500964f780089416f007d336700802f6700842c6800842b6800852b69 +0084336a00873b6d008a4370008e4b730093547700975e7b009c6980009f6e82 +00a3738500b47f8f00ba819200c1849500c5869700ca889900cc889a00ce899b +00d48c9e00d88ca000dc8da300df8da500e38ea700e48ea700e58ea700e68da8 +00e88da900eb8dab00eb8eab00ec8fab00ec90ab00ed92ab00ee92ab00ef93ac +00f196ad00f196ad00f197ad00ef96ac00ed96ab00ea95aa00e894a900e191a5 +00d88ea100c1849500b27e8d00a378860093717e00836a76007c67720075646f +005c59630053555e004a515a00454f5700414d5500404c54003f4b54003e4a53 +003e4a5300404a5400424a5500454b5600464b5600474b5700484c58004a4e59 +004e505b0050505c0052515d0054515e0056525f0057525f0058525f005a5160 +005d4f610064496200674663006a4464006b4364006c4264006e4164006f4064 +006e4164006b426300694463006745620065466200624761005e4960005c4d60 +005c50610062586500695b6800705f6c0074616e0079647100826975008b6d7a +0098738000997381009a748200987381009773800092707e008a6d7a00836a76 +007c67720073646e0072636e0072636e0074646f00786670007e687400866c78 +0099738100a0768400a77a8800a97a8900ac7b8a00ad7c8b00ad7c8b00ac7b8a +00a87a89009e7584009973810095727f008c6e7b00836a76007b67720074646f +00645e67005c5a630055575f0053565e0051555d004e535b004d515b004c505a +004b4f5a004e4e5a004f4d5a00514d5b00544d5d00574d5e005a4c5f005d4b60 +006348620065476200674663006c426400703e6500743b6600783766007d3367 +0080306800842c6800842c6800842c6800852b6800852b6800842c6800822e68 +007e3167007d3267007c34670079376600773d670079446a007f4c6d00875473 +008f5b780098657e00a3708400b0798c00be819400cb869a00d68aa000de8da4 +00e88da900e88ca900e98caa00ea8baa00e989aa00e888a900e787a900e787a9 +00e787a900e888a900e98aaa00eb8caa00ec8eab00ed90ac00ef92ac00f094ad +00f195ad00f196ad00f296ad00f196ad00f195ad00f195ad00f195ad00f195ad +00f094ad00f094ac00ee94ac00ec94ab00ea93a900e592a700e090a400d88da1 +00cf8a9c00c4859600b8809000aa7a89009b7482008c6e7b007d68730070626d +00635d6600575860004d545b00445057003e4e54003a4c5200364a500034494f +0032494e0032484d0031484d0031484d0031484d0032484e0033484e0035494f +00374a50003a4b52003e4d5400444f56004a525a0054565e005e5b64006c616b +007c6772008c6e7b009f768400ae7c8b00ab798a00a8748700a36d8400a16681 +"/> +<palette number="687" name="040412-001" data="00645867007f5e70008a5c7400965b78009c5a7900a2597b00a2567800a35376 +009a3e6b0091346500882b5f007f265a00762255006f2152006820500065204f +0063214e0057264c0051284a004b2b4900462c4700422d4600402d45003e2e44 +003b2d42003b2d42003b2d42003b2d42003c2d42003c2d42003c2d42003a2e41 +00382f410033313f0031333f002f3640002e3841002e3b43002f3b4400303b45 +00373b4800393a48003b3a49003b3848003b3647003b3547003b3547003a3345 +0039324300382f4100392f42003b3044003e3046004231480042304700432f47 +00432f4700413047003f3247003a324400353342003233400030343f002c343d +002a373e002c3d40002d3e41002e3f42002f3f4300314044003540470039404a +00423e4d00463e4f004a3e52004e3e5400533f5600543c5500553a5500583755 +005b355600603558005f3156005f2e54005f2d54005f2d54005f2e5400603056 +006930580074365e007f3c6400854168008c476d0096517400a1567a00ae5b80 +00bc628600d1749400d4799700d77f9b00d6809a00d5829a00d1829900ce819b +00cb83a300c983a400c783a600c681a500c57fa400c47ca200c275a000bf6e9c +00ba669700ad538300a84d7d00a4487800993d6c008b3564007e2d5c00732856 +0061244d005a244b0054244900532449005225490053274b005b294e00642e53 +00703459008d456b0094496f009b4e7400a9597c00b2618100b7688900b86c8e +00ad708e00a16c8700966881008f627d00885d79007d547300704b6b00644261 +005c3d5a0053304f00532d4e00532b4d0053264b0055244b0058224b005c204c +00651d4f00671c4f00691b50006c1a51006f1952006f1952006d1a51006b1b50 +00661d4f005b214c0058234c0056264c00502a4b004a2e4b0046324b0044324a +0045344c0046344c0048344d004c334f0051305000562c50005b2951005e2751 +00602651005f2651005d285100592c5000563050005536510055395200563954 +005f37540061365500643656006b3559006f305a0075295b00782358007b1d56 +007f1b56007e1a56007d1a56007d1c5500801f560086255a008d2d5f00933865 +0097426b00974b6e0095517000935570008e5a7100875b6f007e596b00735566 +006a4c600065455b00603b56005d3353005c2c51005b264f005c244e005e224e +0060204d00631d4e00651d4e00691e50006e225300772a590084346200933f6d +00a34b7700b2578000be628c00c96e9900d278a600d981b000de88b400dd8bb8 +00d98ab900d387ba00c983b900c67eb100c277a900b772a100aa6c97009a6a91 +0093698c009465890097658a00946488008a638400816482007b627f0078627d +0074607b006c5d750064596e005d556900535061004e4c5c004e4c5d00554f5e +"/> +<palette number="688" name="040412-002" data="002a554d001231320011313200103232000f3131000e3131000d3030000c2f30 +000b2e2e000a2d2d000a2c2d000a2c2d000a2c2d000b2c2d000d2c2e000e2c2e +000f2c2e0011272a0011232600111f2200101d1f000f1b1d000f1b1d000f1c1e +00152829001d323100253d39002b4a430032574d00365d51003b635600406e61 +00447870004f918f00559da2005baab50061b6c10067c2ce0068c6d2006acad6 +0067c3cf0065c0cc0064bdc90064beca0065bfcb0065beca0065bdc90063b9c5 +0060b3bf00559ba7004d919a0046878d00418084003d7a7c003a767600377271 +0037645e0038625a00396056003b655b003d6b61003d6e66003d726b0040786e +0040776d003a6a6100335c54002d4e47002947420026413d001e363400172d2d +0013242600132426001425270015272a00172a2d00182c2f00192e31001c3535 +00223c3a002a4842002f4d4500355348003554490036554a0035534900325047 +00284844002444420021414100204041001f4042001e4244001e464800214c4d +0022515200255a5a00255a5a00265a5a002559590024585800225354001e4e4f +00194445001843440018434400194546001b4848001f4d4e0025545400295c5c +002d62620032686900306869002f686900316b6c00326e6e0033707000367576 +0045888e004b9098005199a200539ba500569ea900569da90051939e004b8791 +004277800030565b002c505400284a4d00223f42001e393a001a353600173335 +0016333400163534001737350017373600183837001a393a001e3e3d00214443 +00254a49002d5a5700305e590033625c003566610036696300376a610036675f +0032605e00305f5d002f5e5c002f5d5e002e5f62002e6364002e6566002c6565 +002c6565002c5f5e002b5c5b002a5a59002957570029535200274e4e00254b4b +0021434400204143001f4042001e3c3f001d3a3e001c3b3e00203d4100234046 +002345480025494a00294a4b002749480023454600224140001f3d3d001b3a3d +001a3f41001a4143001a4445001c4a4b0021535400265c5c002c646400306b6c +0034727200397577003a75780037737400346a6d002f60630029555500214749 +001a3b3f001a363a00193639001c393f0024444c002e565c0039687000467e87 +0051939e005baab50065beca0069c7d40069c6d30066c0cc005fb2bd00559ca7 +0049848f003f717a0037636a0030595e002d5457002b545600295757002a5b5a +002e6161003066670031696a00356d6b0038706b003a6f6a003d7067003f7368 +004075690043796b00447d6f00427f74004080790042837c0040837f003e8182 +003e8182003d8181003c7e7e003a7b7b003b78750039746f00366f6d00346a67 +0033656000305f5d00315c5900345c570035615a003b685d0034595100284c48 +"/> +<palette number="689" name="040412-005" data="00308277004d847e00588f7f00639a80006fb06c007bc6580080cc510086d34b +0092cf420094c7420096c0430092b842008fb04200809f4600718f4b00698a4d +0062864f004d696200465d720040518200314491002237a0001f34a5001c31aa +002c2aa100382c9100442e81003d2b8300372985003727890038258d003d209c +0048159b006a1471006713650065125a00541170004411860045118e00471197 +00461fa1004726a200492da3003931b4002a36c6002237d0001a39db000c3ce8 +00073eeb000543ed000442ed000342ed000343ed000344ed000445ed000546ed +00054cec00054fee000653f000155bee002563ec002e68e900376de6004776de +00527ed4005d7fc6005e7dbf00607cb800607bb400617bb0005d7ca600547aa0 +003b6aa3002d5da9001f51af001c47b300193db800213db700293eb6003c44b4 +004f4ab3006a59b5007856b9008754be008d55be009456be009754bb009252b7 +007651ac006844ad005b37ae005230ae004a29ae00371cb0002517ad001517a9 +000517a300001c9700001b9500001b9300001a93000019930000199400021a95 +001a1e9a002a1d9d003b1ca000441ba1004d1ba3005a1aa300631ca900731fad +008625b100a641ae00aa4ba700af55a100ae6a8f00ab7a7e00aa837000aa8161 +00ac736100a9716000a7706000a07262009974640088696200795468006c3d73 +005c2a8000581a8c00581b8900581d8700551d7a00531c6a0053175c0052165e +00741d5d00872a5a009b385800a23e5400aa445100a9555100a8675100a67354 +00a7875400abab4e00aab44800a9be4300a5d033009dd8240094e017008de509 +007cde0f0075d818006fd3220062c735005ec149005dc059005dbf600062c569 +0063c672005fc0770061c2780064c479006fc773007ccf750089d478008cd578 +007fb77c0078b27b0072ae7a0064a48700549a96004894a5004d94ae004c8cb6 +004e8eac004e92a1004c9a90003f9f800040ae77003cae7e003eb082003fb089 +003cab8e0039aa8f0036aa9100279fa3001a91b9000e84d1000477e9000067f2 +00005ff3000059f1000151ed000249e9000744e4001441df002144d4002e50bc +003d5ca4004a698d004f7677005d816600688c5f006f9e4a0078af35007cbf24 +0070c1200065bb210060ae3500629e4900678f590073905a007a876500778860 +00758a6100798b6200818865008f985d009d9b6600a2a363009ba7640089aa63 +007bb05c006dbd4b005ec0480055c6440055c247004ab84e0047b2510045b346 +003db7360035c1290032c129002eba32002cb245002bab5a002aa5680027a675 +001e9e8b0013949e000a8cb2000383c400007acc000077c9000073c400006ebe +000068b8000061b200005cad000053a700004f9f000658940013648300227276 +"/> +<palette number="690" name="040412-006" data="002a705200476140004d543b00534837005c413200653a2e006a362c0070332b +0081422c008845270090482300864227007d3d2b00723830006834350061333a +005b323f004d2e49004c3145004c3441004a343f0048343e0048323e0049303e +004a234a00511a500059125600680d53007809510080064f0088044e00980148 +00a6004300bf004100c0004600c2004c00bc034f00b7075200b10b5200ab0f53 +00911f530085285500793158006d365f00623c66005a3f6a0052426f00434a77 +0032537e001965790014707100107b6900177f60001f8458002285530026874f +002f8a43002f8a3c00308b3600308b3600308c3600308c3700308d3800308e3b +00319040002d905200268d5c001f8a67001b896c001788710010867900098281 +000b828100158279001f827100287b68003274600033705c00356c5800306257 +002e5d4f002e5f3b0037652e00406b2200466c1d004d6d1800576f0f005b6d0f +0056671300506c13004a72130048781200477e110045851500458d1a0045921e +004595220040932a004194260043952300439522004395210042942100409521 +0037922a0030892d0029813000297d2e00297a2c002b72250033681e00406415 +004e610d0060630a0062620a0065610a006a5e0b00675a0c006a4f0e00744312 +008930200094302600a0312c009f342e009f38310094423800864b3d007d4e42 +007c4e47007d3d5500843757008b3259008d2a58008c285800872f54007c394d +0079543b007f573600855a31008b572d0091552900934e25009248200088451e +007c451c006c5e120068641200646a130068740e0061780e005578150048751f +00296d3700286b3b00286a40002a634800385f4d00485e490054594b0060544d +0069495500713b5d0075355d007a2f5e0085245e00951c5600a3144e00b10d44 +00bf073700bf0a3300c00d3000bf132800be1c1f00bf261700be300f00bd3707 +00b9410300b44b0100af550000a75e0000a069000099740000927f00008d8700 +008596000083980000829a00007e9d00007a9e0000769f000073a0000071a000 +0070a1000071a00000749b00007590040078840b007d791400826c1e00866026 +0089552e00894d330087483400803d360077353a006e2f4000662a49005e2753 +005726610051276d004831750040377b00343f7e0027477f001a4e80000f5580 +000f59850014598a001a5a9000245795002f539800384e9b00384d9a00304d95 +002f4c90002f448a00313b82003a327a0049286d00601e65006d1a5b006e1c54 +0065234f00592a4e0049324c00393a5000303e4e00323e4e00343c49003e3e47 +003e4145003b454700324c4c0024555600165c610009626d000066750000697a +00006b7b0003617600035b720003576e00075b66000e60600017655a00226754 +"/> +<palette number="691" name="040412-007" data="006c81570062886200718a6500808c6900867b72008c6a7b007a69820069698a +0069698c007a6785008b657e008d5f7500905a6c009251630094495b00944457 +0094405400942e46009428400094223a00941f3a00941c3a00941b3a00951b3a +00931b3b008f1b3b008b1b3b00841b3b007e1c3b007b1b3b00781b3c00731a3e +0070193f006c1643006b1445006b1247006b1247006b1247006b1346006b1546 +006d204c006d2752006e2f58006e3961006f446a006c486f00694d75005a567b +005672800057918a00579b8d0057a5900054af930052b9970050bd99004fc19b +004cca9a004cca95004ccb90004dc589004fc083004fbb7f004fb77b004db071 +004ba8680049975800488f4e0047874400498441004c813f0052783a00546f35 +00515e2c004e562b004b4f2a004749290043432800404229003e412a0040392b +00402c2c00402937004028380041273a0041273a0041273a0041273a0041273a +0043283400462735004a2736004c2636004e25370053243800582438005c2938 +00612d3600684134006e4a350074543600775737007a5a3900815e3b00875e40 +008f664b00906d4e009274520093785200947d530093805100908850008c8c4d +00868a48007783440074814400717f4500687c4100647a410066784000687640 +006c753a006e73380071713600716f3600726d3600716b38007368390076633b +007b5a3c0084503f00854d3f00864b3f00894541008a404400883f4800863c4b +007d314e00782c4d0074284c0071264a006e25490068244400622241005c213e +0058203d004f1f3e004e1f3e004e1f3f004d1f3e004e1f3f004f1e3f00511f3e +0059203d005b223d005d243d0061283c00682c3c00702f3c0078313b00813238 +00893336009b3533009e373200a23a3200a5423300aa4a3400ad553700ae613b +00ae7c4500ad814700ad874900ad8d4c00af8f4d00b08d4b00b18b4a00b28949 +00b1834a00b07e4a00ad794b00a7784d009f774e0097764e0090764d00897349 +00886b40008a693f008c673e008f643c0090643e008f6842008b6e4800867b4d +007885520067875300608953006489530071885500818757008c7c590093705a +00996b5b009c645d00995e600095596400915165008e4863008b3f5c00883654 +00842e4d008329440082243e0082253b0082273d00802c40007e3245007c364b +007b394d007a3c50007b3c4f007d3b4b00813a4800883945008f3a4500963e45 +009d444400a14a4700a54f4a00aa544c00ad554b00b0554600b5504000b9473b +00be463400c4462f00c4422d00c0432d00ba472d00b34c2d00ab522c00a3562a +009a55290092532700905524008f4e22008e4820008d4320008d3c22008c3823 +0085322600813129007b332f00773f3400724c3b00705b4200706d480068784f +"/> +<palette number="692" name="040412-008" data="003a4c9b0038509d0036529f003555a1003259a4002f5ea7002c61a9002a64ab +00236eb4002171b6001f75b9001e76ba001e78bb001d7abc001d7dbe001d7ebe +001d7fbe001d7dbe001e7bbc001f79bb002275b9002672b700276fb500296cb3 +002e60a7003258a000365099003b469300413d8d00453b8b0049398900503585 +0056328300612e7f00642c7c00682b7900682a7600692a74006a2973006c2972 +006d2270006d206d006e1e6a006f1c6b00711b6c00721a6b00741a6a00741a6a +0075196a00741964007619600078195d00791959007b1956007b1955007c1954 +007f1952007f1951007f1950007c195000791950007819500077195000721952 +006e19540068195400681c5a00681f60006722640066266900662d6e00643375 +005c3d810056418500504589004a498c00444d8f00424f9000405291003a5a95 +0035629c002b74a900287db0002687b800268bbc002690c0002998c80029a3cf +0029a9d4002aa6d2002ba4d0002ca0cf002e9dce002e98c8003190c4002f88c0 +003181be003875b8003a70b5003d6cb3003f68b1004265b000465ead004a59ab +005452a800584fa6005c4ca4005d4aa2005e49a00062449d00684099006a3a97 +006d39930068338c0066338b0065338b005d358900563689004d398b00443c8b +0038418b0034438b0031468b002f4589002e4488002d4488002e4588002e4989 +002b4d8c002b5490002a548f0029548f0026528c0023518b001f508b001d4e88 +001946850019468500194685001947860019488700194d890019508c0019508c +001a4e8c001f4c8800204884002144810023387b00262b720029236a002d1e64 +00311a6100331a6000351a6000391a6000411b5e00491b5d00521a5c005c1959 +00611955006e194c0071194a0074194900781946007b1946007d1944007d1946 +007f1948007f1948008019480080194900831949008419490087194900881949 +0089194a0089194a0089194c0088195000871952008419580081195d007d1965 +00721978006d1b7b00681d7f0060228700552a8c00493293003c3a99003645a0 +002f54a5002a5dac002366b1001f70b7001a78bc001980c2001987c4001989c7 +001989c7001988c7001987c4001981c2001a7dbe001b78b8001e74b3001f6dad +001f68a8001e60a4001e5a9f001e5498001e4a93001d448c001e3a8700212f81 +0025297b00292378002b2375002d2377002a277800262e7b0022357f001f3c81 +001b3e84001a408700194088001a3c88001d3a88002139880026368b0029368c +002b3a8f002e4193002e4698002e4e9d002d56a4002a5ea9002962ad002765af +002765af002962ad002a5eab002e5aa7003155a30035509f003354a0003255a1 +003258a1003158a1003258a1003258a1003255a1003355a1003555a1003655a0 +"/> +<palette number="693" name="040412-010" data="00698167006d8367006e84670070856700728667007487670074876700758867 +0078896600798965007b8a65007c8a64007e8a64007f8a6300808a6200808a61 +00818a6100838a5f00838a5e00848a5d00858a5c00868a5c00868a5b00868a5b +0087895a0087895900888958008787560086855400848452008383510080804d +007e7e4a00787944007576410073743f0070723c006d7039006c6e38006b6d37 +00666933006367310061652f005e632d005c612b005a602a00595f2a00575d28 +00545b27004f5724004d5523004b542200485221004651210045502000444f20 +003f4c1f003d4a1f003b491f0039481f0037471f0036461f0035461f0034451f +00324420002f4221002d4121002c4122002b4022002a40230029402400284024 +00263f2600253f2700243f2800233e2900223e2a00213e2a00213e2b00203e2c +001f3e2d001e3e2e001d3e2f001d3e30001c3e30001c3f30001c3f31001b3f32 +001a3f33001a3f33001a40340019403400194035001941350019413600194236 +0019423700194438001a4539001c473b001e483c00204a3e00234d4100265044 +002d554a0030574c00335a4f00345b5000365d51003a5f53003d625600406458 +0043675900496b5d004a6c5d004c6d5e004f7060005272610054746200577664 +005c7966005e7a6600617c6700627d6700637e6800667f6900688169006a8269 +00698167006d8367006e8367006f846700708567007286670074876700758867 +0078896600798965007b8a65007b8a64007c8a64007e8a64007f8a6300808a62 +00818a6100838a5f00838a5e00838a5e00848a5d00858a5c00868a5c00868a5b +0087895a0087895900888959008889580089885800868554008383510080804d +007e7e4a0078794400767842007577410073743f0070723c006d7039006b6d37 +0066693300646832006367310061652f005e632d005c612b00595f2a00575d28 +00545b2700525925004f5724004d5623004b5422004852210046512100444f20 +003f4c1f003e4b1f003d4b1f003b491f0039481f0037471f0035461f0034451f +0032442000304320002f4221002d4221002c4122002a40230029402400284024 +00273f2500263f2600253f2700243f2800233e2900223e2a00213e2b00203e2c +001f3e2d001f3e2e001e3e2e001d3e2f001d3e30001c3f30001c3f31001b3f32 +001b3f32001a3f33001a4034001a403400194035001941350019413600194236 +00194237001943370019443800194438001c473b00204a3e00234d4100265044 +002a5247002d554a0030584c00335a4f00365d51003a5f53003d625600406458 +004367590046695b00496b5d004c6d5e004f7060005272610054746200577664 +005a7765005c7966005f7b6600617c6700637e6800667f6900688169006a8269 +"/> +<palette number="694" name="040412-011" data="007e303700762c4500722b49006e2a4e006a2950006728530065275400632656 +005c265c0057245900532257004d2155004821530046205000451f4e00441e4d +00431e4c003f1e47003f1e45003f1e43003f1e3f003f1e3b003e1e39003e1e37 +00421d3600431c3800451c3a00471b3b00491b3c004a1a3c004b1a3d004d1a3e +004f1940005318430055174400581746005a1647005d1549005e15490060154a +0065134e00681250006b1252006e11530071105500720f5500740f5500770e57 +007a0e5900810c5800840b5800880a58008b0958008f08580091075600930755 +009a0553009d045100a1034f00a5024b00a9014700aa004600ac004500b00242 +00b4043d00bb063400be082e00c20a2900c30b2700c50c2600c90f1d00cc1116 +00d3211000d6280e00da300c00dc380a00df410900e0450800e24a0800e45106 +00e7570400ea640200ec6b0100ee730000ee760000ef7a0000f07e0000f18300 +00f2900000f2930000f3960000f3990000f39c0000f3a00000f3a10000f3a201 +00f2a50200f1a80500f0a90600efaa0800eea90900eea80a00eda60c00eba50f +00e5a31300e1a11300dd9f1300db9e1300d99d1400d49c1500d0981500cc9518 +00c7931800be8b1a00bb891b00b9871d00b4811f00b07d1f00ab762100a67123 +009c622700975c280092562900905329008e502a0089482c00853f2d00803a2e +007e303700762c4500742b4700722b49006e2a4e006a29510067285300632656 +005c265c005724590053225700502256004e2255004821530045205000451f4e +00431e4c003f1e47003e1d46003d1d45003f1e4300411e41003f1e3b003e1e37 +00421d3600421d3800431d3b00451c3a00471b3a00491b3c004b1a3d004d1a3e +004f194000531843005418440055184500581746005a1647005d15490060154a +0065134e0066124f00681250006b1252006e11530071105500740f5500770e57 +007a0e59007e0d5700810c5800840b5800880a58008b0958008f085800930755 +009a0553009c0452009e045200a1034f00a5024b00a9014700ac004500b00242 +00b4043d00b7053a00bb063400be083100c20a2900c50c2600c90f1d00cc1116 +00d0171100d3211000d72a0e00da300c00dd390a00df410900e24a0800e45106 +00e7570400e95f0300ea640200ec6c0100ee730000ef7a0000f07e0000f18300 +00f2890000f2900000f3930000f3960000f39c0000f3a00000f3a10000f3a201 +00f2a50200f2a50300f1a80500f0a80700efaa0800eea80a00eda60c00eba50f +00e9a41100e5a31300e1a11300dd9f1300d99d1400d49c1500d0981500cc9518 +00c7931800c38f1a00be8b1a00b9871d00b4811f00b07d1f00ab762100a67123 +00a16a24009c622700975e2800925629008e502a0089482c00853f2d00803a2e +"/> +<palette number="695" name="040412-012" data="00b9869a00b17f8f00ac7b8900a8788400a4747e00a07179009e6f76009c6e73 +00936668008f6262008b5f5d00865b5700825851007b534a00744e4300704c40 +006d4a3d005f413100593d2c00533a27004e36230049331f0046311d0043301b +00392a1500342712002f2510002b230f0028220e0027210e0027210f0026210f +0025201000231f1100221e1200211e1300201e13001f1e14001e1d14001e1d15 +001c1c16001b1b17001a1b1800191a1800181a1900171a1900171a1a00171a1b +00161a1c00151b1e00151b1f00151c2100151d2200151f240015202500152126 +0016252a0016272c0017292f00182c31001a2f34001a3035001b3237001c3539 +001d393c001f3f410020424300214546002246470023484900244b4c00254e4e +002754540028575600295b59002a5e5b002c615e002c625f002d6461002e6764 +00306a6600346f6c0037716f003a7472003b7573003d77740041797700457b7a +004d7f80005281830057838600598487005c85890061878d00678890006c8a93 +00728b96007d8f9c0082909f008892a2008b93a4008e94a6009495a9009997ac +00a49ab200aa9bb500b09db800b29eb900b59fbb00bba1bf00c0a2c100c5a3c4 +00c9a4c600cfa5c800d0a5c800d2a5c800d3a4c700d4a3c600d4a2c500d4a1c3 +00d29dbd00cf9ab900cd98b500cb96b200ca95b000c691ab00c28ea500bd8aa0 +00b9869a00b17f8f00ae7d8c00ac7c8900a8788400a4757e00a07179009c6e73 +00936668008f6262008b5f5d00885d5a00865c5700825851007b534a00744e43 +006d4a3d005f4131005c3f2e00593d2c00533a27004f37230049331f0043301b +00392a150036291300342812002f2510002a230e0028220e0027210f0026210f +0025201000231f1100221f1100221f1200211e1300201e14001f1e14001e1d15 +001c1c16001b1c16001b1c17001a1b1800191b1800181a1900171a1a00171a1b +00161a1c00151a1d00151b1e00151b1f00151c2100151e2300151f2400152126 +0016252a0016262b0017272c0017292f00182c31001a2f34001b3237001c3539 +001d393c001e3c3e001f3f4100204244002145460023484900244b4c00254e4e +00265151002754540028575600295b59002a5e5c002c615e002d6461002e6764 +00306a6600326c6900346f6c0037726f003a7472003d77740041797700457b7a +00497d7d004d7f800052818300578386005c85890061878d00678890006c8a93 +00728b9600788d99007d8f9c0083909f008892a2008e94a6009495a9009997ac +009f98af00a49ab200aa9cb500b09db800b59fbb00bba1bf00c0a2c100c5a3c4 +00c9a4c600cda5c700cfa5c800d2a5c800d3a4c700d4a3c600d4a2c500d4a1c3 +00d49fc000d29dbd00d09ab900cd98b500ca95b000c691ab00c28ea500bd8aa0 +"/> +<palette number="696" name="040412-013" data="00400b5c003a0a56003709520034094f0031084c002e0849002d0848002c0947 +002709410025093e00230a3c00210a3a001f0b38001c0c36001a0d3400190d33 +00190e32001d0e38001e0e3b00200e3e00220d4100250d4500260d4600270e48 +002a0e4e002c0e51002e0e54002f0e5700310f5a00320e5b00340e5d00360e61 +00370f64003b0e6a003c0e6d003e0f7000400f7300430f7600440f7700450f79 +0048117e004a1180004c1283004d1385004e1487004f14880050148a0052168c +0054168e0057189200581a93005a1c95005c1d96005e1f98005e2099005e219a +0062249d0063269e0065289f00662aa000672ca100672da100682ea2006a30a3 +006b33a4006e37a5006f3aa600703da700713ea700723fa7007342a7007345a8 +00764aa900774ca900794faa007a51aa007b54ab007b55ab007c57ab007c5aac +007e5dac008062ad008065ad008068ae008069ae00816aaf00826caf00846faf +008473b0008475b0008477b0008477b0008578b000817ab000837bb000837baf +00857caf00837eae00887dad008d7dac008e7dab008f7dab008e7daa00927ca9 +009c7aa7009e79a600a078a500a177a400a377a300a275a200a2729a00a1719a +00a06e96009d6891009c678f009c668e009b638c00995f8b00985b8600965885 +0092518000904c7d008f487b008e467a008d457a008c4176008a3d7400883a73 +0087356f00832e6c00822c6a00822a6900802667007e2364007d1e62007b1b60 +0077135c00750f5900740c5700730a5600730955007206540071045200700250 +006f004f006d004d006d004c006d004c006c004d006c004c006c004b006c004b +006c004a006c004a006c004a006c004a006c004a006d004a006d004a006e004a +006f004a0070004a0070014a0071024a0073034c0074064d0075094d00770b4f +007a1353007b1453007c1654007e1a5600801d57008222580084265a0085295c +00872d5d0089315e008b3460008d3960008f3c62009140630093436400944765 +00984f6600995166009a5366009c5766009e5a66009f5e6700a1616600a36466 +00a4676700a56d6800a7716900a8736b00a9796c00aa7b6e00ab7e6e00ab806f +00ac807000ad847100ad837200ad847300ae827400ae847500ae827600ae8077 +00ae7f7800ae7b7800ad787b00ad778100ac768400ac748700ab738c00aa728f +00a96f9300a86d9500a76a9800a6679a00a5659c00a3629f00a25ea0009f5ba1 +009d58a1009a54a1009952a000974ea000944ba0009348a0009044a0008f41a0 +008c3ea0008b3aa0008a379f0087339f0086309f00842d9f0083299f0080269f +007b239a0076219500731f90006e1d8b00691b87006519820061177e005c1679 +00581475005413710050126d004e1069004a0f6500450e6200430e5e00400d5b +"/> +<palette number="697" name="040412-014" data="0032835300348457003485570034865700348657003586580036865800378658 +003884590038835900398359003981580039805800397f5600397e5400397c54 +00397b54003877500038754e0039734c0039714b00396f4b00396e4900396e48 +00396a460038684400376643003764410038623f0037613e0037613d00385e3a +00375d3900365936003657350037553500385233003a4f3200394e3100394e31 +0037492f0036472d0036452c0036432a0037412800363f2800353e2800333c26 +00313a25002e3523002c3221002b302000292e1e00272c1c00262a1b0026291b +002424180022201700201d16001e1b14001c1913001a16130019141400191414 +0019141400191414001914140019141400191414001914140019141400191414 +001914140019141400191414001914140019141400191414001914140013131b +0013131f001411290016122f0018133500191438001b153c001f194200241c4a +002a255a002e296200332d6a00342e6e003630720039367a003e398200413c8b +00444193004c49a3004f4daa005351b2005552b6005854ba005b59c2005d5dca +006161cf006060c9005f5fc4005e5fc0005e60bc005d5eb4005d5fac005c5da4 +00595f9b00595f8d00595f8a00596088005963820058617c0056697200606c53 +0060663f005c623500595f2c00575d2700555b220055591b00545a1600585d16 +00595f1a0060661e006267200065682200676b25006b6e28006e722b0072742f +00797b33007c7d36008080390082823b0084843d00878740008b8842008d8b46 +00918f470097924d0098944e0099964f009b9852009d9a55009f9c5600a09e58 +00a3a05d00a3a15e00a4a25f00a5a16100a5a36300a7a16300a7a36400a7a366 +00a7a36700a5a36a00a5a36b00a5a36c00a4a26c00a3a36d00a1a16d009fa16e +009da071009b9f7100999f7100969f7200979d7200919c7300919c73008d9b76 +00889b76007e9977007799770077987f007697870074978b0074959500738f95 +006f9094006e8c94006d8994006b8993006a8a91006884900065878d0064838c +0061838b00608588005d8186005b8383005a808000577f7c00547c7a00507b72 +004f786d004b7669004974630047725e00446f5b00416c59003d6b53003b684f +00396649003665460033624200305f3e002e5e39002a5b380028593400255630 +0021552c00205329001e5127001d4f24001a4f2300194e2000174d1f00164d1d +00154d1d00154d1c00144d1c00144d1c00144d1c00144e1c00144f1c00144f1d +0014511f00155320001555230017562300185927001a5b28001b5e2b001c5f2f +001e622f001e6532002066340022683700236b3800246c3c00276f3f00277240 +00287343002a7644002b7847002c7b4a002d7c4d002f7f4e0030805000318252 +"/> +<palette number="698" name="040412-015" data="00823177008332750083337500843575008535770086357a0086357900863578 +0086377a0085387900843979008339780082397700803975007f3973007e3974 +007e3976007a3a7200783971007638710074386f0072386e0070386c006f396b +006c386b0069386900663968006438660063386500603863005e3862005c3761 +0056385e0051385a004e3658004b3556004834540046345200423350003f324f +003a2f4b00362d4900332c4700312b4400302b42002d2941002b2841002b283e +0029263c002323380021223500202132001e1f2f001d1e2d001c1d2c001c1c2c +00191c2600171d2400161e23001419200013151d0013161c0013181c00141917 +0014191700141917001419170014191700141917001419170014191700141917 +0014191700141917001419170014191700141917001419170014191700141917 +001b181300241f1200292511002e2c1000312e1100353113003c371500423d19 +00524a21005a51250062582900665c2b006a602d00726630007a6b3600827339 +008b7b3c009b884400a28d4900aa934e00ae964f00b29a5100baa25400c2a859 +00cfb26000cdb06000cbaf6000c7ac5f00c4a95f00bca15e00b49b5d00ac945d +00a4905c00937d5800907b58008d79590088745900826d59007c695800725756 +004c4a6a0041436600363c6200313760002c335f00222b5b001b27590016225a +0016245d001d2c62001d2b64001e2b66002231680025346b0028376e002b3a72 +003043770033467a00374a7e00384b7f00394c80003d5084004053870042588b +00465b8d004b6194004c6395004d6697004f65990052689b00556b9d00566c9f +005b70a1005c71a2005d73a3005f74a4006178a5006377a500637ba700647aa7 +00667ca700687da700697ca6006a7ca5006c7da5006c7da4006d7ba3006d7ba1 +006f7aa000707aa000717aa00071779f0072759f0072789d0073739c0073739c +007a769b007f769b0089779900907799009877980097768f0097748a0095747d +0095707200946f7300946f7500946e6d00936b6c00916a6d00906968008d656a +008c6465008b61640088606800865d6300835b6600805a64007f5764007c5461 +007b506500784f6500764b630074496600724766006f4463006c4160006b3d61 +00683b60006639620065366200623360005f305d005c2e5e005b2a5a00582859 +0053255600522155004f2053004d1e5100481d4f00491a4f0047194e0046174d +0045164d0046154d0045154d0045144d0045144d0045144d0046144e0047144f +0048144f004c1451004e155300521555005117560057185900581a5b005c1b5e +005f1c5e00611e6200651e640066206500682266006b2369006c2467006f276a +0072276d0073286b00762a7000782b70007b2c72007c2d71007f2f7600803075 +"/> +<palette number="699" name="040412-016" data="0051737c00557e830056848600578a8a00568d8a0055908b0054918b0054938c +0051988c004f998c004e9b8c004c9b8a004b9c8900499c8800489d8800479c87 +00469c8700429a830040987f003e977c003c947a003a92780039917700389076 +0033896f0030856b002e8168002b7c630029775e0027745b0026715900236c55 +00216651001c5b48001a56440019514100184c3e0018483b0017463a00174439 +00173c3500173833001835320018303000182b2e0017282c0017262b00162028 +00151a2500161423001a1326001f13290025132c002b1430002d143200301434 +003c163a003f153c0043143e0046133f00491341004a1341004b1341004e1243 +0050124300531245005412450055134500551344005513430056134400561443 +0056154100551640005517400053183e00521a3d00511a3b00501b3a004f1d3a +004c1e3600482132004722300046232e0045232d0045242c0046242c0046272a +004b322c004f382e00543e310056403200584333005c483600614f390065533b +0069583e007261430075624400786345007a6546007d67480081694a00856b4c +008e6e50009270520097735500997356009b7457009f775a00a3795d00a77d61 +00a97b6100ac786400ac776400ad776500ae766600af756800af756900b0746b +00b1776f00b1777100b1777300b0777400b0777500b1797800b17b7a00b17d7d +00b17f7f00b0858600af868700ae888900ad8b8d00ab8e8f00a9929300a79597 +00a19c9c009e9f9e009ba2a00099a3a10098a5a30094a6a30091a8a5008ea9a5 +008aa9a40083a8a30081a7a1007fa7a0007ca6a00078a49e0074a29a00709f96 +006899900066978e0064958c00609188005c8c820058877e0054817700507b72 +004b746a0042665c00406258003e5f55003a584e0037524800334d410030483c +002b4032002a3e3000293d2f00273a2b00253827002437250023362300233722 +002237210022382000233a2000243c2000253e21002541210026442200284823 +002a5027002b5228002c5529002d5a2b002f5f2d0030632f0032673100336a33 +00346d3500357035003672370037733900377439003775390037753900377539 +0037753a0037753a0036743a003572380034703700336e3700326b3600306732 +002f6331002c5f2f002a5a2d0028542a00254f280023492500214423001f3f21 +001d3b20001c371e001b341e001a301c001a2e1d00192b1b001a2a1e001a281e +001a271e001b2620001c2521001d2523001e2425001e2326001e2227001e2128 +001f222a0020222c0022232e002425310026273500282938002b2c3c002d2f40 +00303344003235470034384b00373c4f00393f52003b4356003d4659003f4a5d +00424f60004453640046576700485c6b004a5f6e004c6572004e6a7500506f79 +"/> +<palette number="700" name="040412-017" data="000044260000391b00003517000032140000301300002e1200002d1200002d12 +00012c1500012c1700012d1900022e1c0003301f000331220004332500043327 +000434290006372f0006383100073a3400083a3500093b3700093b37000a3b38 +000b3a37000b3935000b3934000b3732000c3630000c352e000c342d000c332a +000c3127000c2e20000c2d1c000d2c19000e2b1700102b1500112b1400122b13 +00182d10001c300f0021330f00273710002d3b1100303e1200344113003c4716 +00444e1900575d2100616525006b6e2a0075762f00807f3400858336008a8839 +009c994200a3a04600aba74a00b0ac4d00b6b25000b7b35100b9b55200bab754 +00bab85500b3b65500acb35300a6b05200a2ad50009eab4f0094a64c008aa049 +00779543006c8e410061883f0056813d004b7b3b0045783a0040753a00367039 +002c6b38001c65390017643b0012643e00106440000e6442000b66470009684c +00056e570003715d000175630000776600007a6a000080710000867900008e81 +000095890002a2990003a8a00004afa80004b2ab0005b5ae0006bab40007bfb9 +0009c7c2000ac9c4000bccc6000bccc6000cccc7000cccc6000dcac4000dc7c0 +000ec3bb000db8ad000cb4a8000cb1a4000ba99b000ba191000a988600098f7c +00067c660005735b00046a510003654c000361470002593d0002513500014a2d +000044260000391b00003719000035170000321400002f1300002e1200002d12 +00012c1500012c1700012d1900012d1a00022e1c0003301f0003312200043325 +000434290006372f000638300007393200073a3400083a3600093b37000a3b38 +000b3a37000b3a36000b3a36000b3934000c3732000c3630000c342d000c332a +000c3127000c2e20000c2d1e000c2d1d000d2c19000e2b1700102b1500122b13 +00182d10001a2e0f001c300f0021330f00263710002d3b1100344113003c4716 +00444e19004e551d00575d2100616526006b6e2a0076762f00807f34008a8839 +009c994200a09c4400a4a04600aba74a00b1ad4d00b6b25000b9b55200bab754 +00bab85500b7b75500b3b65500aeb35400a6b052009eab4f0094a64c008aa049 +00809b4600779543006c8e410061883f0056813d004b7b3b0040753a00367039 +002c6b3800236738001c65390017643b0012643e000e6442000b66470009684c +00076a5200056e570003715d0001756300007a6a000080710000867900008e81 +0000958900019c910002a2990003a9a10004afa80005b5ae0006bab40007bfb9 +0008c4be0009c7c2000acac5000bccc6000cccc7000cccc6000dcac4000dc7c0 +000ec3bb000dbdb4000db8ad000cb1a4000ba99b000ba191000a988600098f7c +0007867100067c660005735b00046a51000361470002593d0002513500014a2d +"/> +</palettes> diff --git a/src/flam3-render.c b/src/flam3-render.c new file mode 100644 index 0000000..11b69cf --- /dev/null +++ b/src/flam3-render.c @@ -0,0 +1,421 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + +#ifdef WIN32 +#define WINVER 0x0500 +#include <windows.h> +#endif + +#ifdef __APPLE__ +#include <sys/sysctl.h> +#endif + +#include <limits.h> + + +#include "private.h" +#include "img.h" +#include "isaacs.h" + + +int calc_nstrips(flam3_frame *spec) { + double mem_required; + double mem_available; + int nstrips,ninc; + char *testmalloc; +#ifdef WIN32 + MEMORYSTATUS stat; + stat.dwLength = sizeof(stat); + GlobalMemoryStatus(&stat); // may want to go to GlobalMemoryStatusEx eventually + mem_available = (double)stat.dwTotalPhys; +// fprintf(stderr,"%lu bytes free memory...\n",(size_t)stat.dwAvailPhys); +// if (mem_available > 1e9) mem_available = 1e9; +#elif defined(_SC_PHYS_PAGES) && defined(_SC_PAGESIZE) + mem_available = + (double)sysconf(_SC_PHYS_PAGES) * sysconf(_SC_PAGESIZE); +#elif defined __APPLE__ + unsigned int physmem; + size_t len = sizeof(physmem); + static int mib[2] = { CTL_HW, HW_PHYSMEM }; + if (sysctl(mib, 2, &physmem, &len, NULL, 0) == 0 && len == sizeof(physmem)) { + mem_available = (double )physmem; + } else { + fprintf(stderr, "warning: unable to determine physical memory.\n"); + mem_available = 2e9; + } +#else + fprintf(stderr, "warning: unable to determine physical memory.\n"); + mem_available = 2e9; +#endif +#if 0 + fprintf(stderr,"available phyical memory is %lu\n", + (unsigned long)mem_available); +#endif + mem_available *= 0.8; + if (getenv("use_mem")) { + mem_available = atof(getenv("use_mem")); + } + mem_required = flam3_render_memory_required(spec); + if (mem_available >= mem_required) return 1; + nstrips = (int) ceil(mem_required / mem_available); + +if (0) { + /* Attempt to malloc a strip, and if it fails, try adding additional strips */ + ninc=-1; + testmalloc = NULL; + while(NULL==testmalloc && ninc<3) { + ninc++; + testmalloc = (char *)malloc((int)ceil(mem_required / (nstrips+ninc))); + } + if (NULL==testmalloc) { + fprintf(stderr,"Unable to allocate memory for render. Please close some running programs and try to render again.\n"); + exit(1); + } else { + free(testmalloc); + nstrips = nstrips + ninc; + } +} + + return nstrips; +} + +int print_progress(void *foo, double fraction, int stage, double eta) { + fprintf(stderr, "stage=%s progress=%g eta=%g\n", stage?"filtering":"chaos", fraction, eta); + return 0; +} + +int main(int argc, char **argv) { + flam3_frame f; + char *ai; + flam3_genome *cps; + int ncps; + int i; + void *image=NULL; + FILE *fp; + char fname[256]; + size_t this_size, last_size = -1; + double imgmem; + unsigned int strip; + double center_y, center_base; + unsigned int nstrips; + randctx savectx; + char *prefix = args("prefix", ""); + char *out = args("out", NULL); + char *format = getenv("format"); + int verbose = argi("verbose", 1); + int bits = argi("bits", 33); + int bpc = argi("bpc",8); + int seed = argi("seed", 0); + int transparency = argi("transparency", 0); + char *inf = getenv("in"); + double qs = argf("qs", 1.0); + double ss = argf("ss", 1.0); + double pixel_aspect = argf("pixel_aspect", 1.0); + int sub_batch_size = argi("sub_batch_size",10000); + int name_enable = argi("name_enable",0); + int num_threads = argi("nthreads",0); + int earlyclip = argi("earlyclip",0); + FILE *in; + double zoom_scale; + unsigned int channels; + long start_time = (long)time(0); + flam3_img_comments fpc; + stat_struct stats; + char numiter_string[64]; + char badval_string[64]; + char rtime_string[64]; + +#ifdef WIN32 + + char *slashloc; + char exepath[256]; + char palpath[256]; + memset(exepath,0,256); + memset(palpath,0,256); + + slashloc = strrchr(argv[0],'\\'); + if (NULL==slashloc) { + sprintf(palpath,"flam3_palettes=flam3-palettes.xml"); + } else { + strncpy(exepath,argv[0],slashloc-argv[0]+1); + sprintf(palpath,"flam3_palettes=%sflam3-palettes.xml",exepath); + } + putenv(palpath); + +#endif + + + if (1 != argc) { + docstring(); + exit(0); + } + + /* Init random number generators */ + flam3_init_frame(&f); + flam3_srandom(); + + /* Set the number of threads */ + if (num_threads==0) { + num_threads = flam3_count_nthreads(); + if (verbose > 1) + fprintf(stderr,"Automatically detected %d core(s)...\n",num_threads); + } else{ + if (verbose) + fprintf(stderr,"Manually specified %d thread(s)...\n",num_threads); + } + + + if (NULL == format) format = "png"; + if (strcmp(format, "jpg") && + strcmp(format, "ppm") && + strcmp(format, "png")) { + fprintf(stderr, + "format must be either jpg, ppm, or png, not %s.\n", + format); + exit(1); + } + + channels = strcmp(format, "png") ? 3 : 4; + + /* Check for 16-bit-per-channel processing */ + if ( (16 == bpc) && (strcmp(format,"png") != 0)) { + fprintf(stderr,"Support for 16 bpc images is only present for the png format.\n"); + exit(1); + } else if (bpc != 8 && bpc != 16) { + fprintf(stderr,"Unexpected bpc specified (%d)\n",bpc); + exit(1); + } + + if (pixel_aspect <= 0.0) { + fprintf(stderr, "pixel aspect ratio must be positive, not %g.\n", + pixel_aspect); + exit(1); + } + + if (inf) + in = fopen(inf, "rb"); + else + in = stdin; + if (NULL == in) { + perror(inf); + exit(1); + } + + cps = flam3_parse_from_file(in, inf, flam3_defaults_on, &ncps); + if (NULL == cps) { + fprintf(stderr,"error reading genomes from file\n"); + exit(1); + } + + if (inf) + fclose(in); + + for (i = 0; i < ncps; i++) { + /* Force ntemporal_samples to 1 for -render */ + cps[i].ntemporal_samples = 1; + cps[i].sample_density *= qs; + cps[i].height = (int)(cps[i].height * ss); + cps[i].width = (int)(cps[i].width * ss); + cps[i].pixels_per_unit *= ss; + if (cps[i].height<=0 || cps[i].width<=0) { + fprintf(stderr,"output image has dimension <=0, aborting.\n"); + exit(1); + } + } + + if (out && (ncps > 1)) { + fprintf(stderr, "hqi-flame: warning: writing multiple images " + "to one file. all but last will be lost.\n"); + } + + + for (i = 0; i < ncps; i++) { + int real_height; + + if (verbose && ncps > 1) { + fprintf(stderr, "flame = %d/%d ", i+1, ncps); + } + +// f.temporal_filter_radius = 0.0; + f.genomes = &cps[i]; + f.ngenomes = 1; + f.verbose = verbose; + f.bits = bits; + f.time = 0.0; + f.pixel_aspect_ratio = pixel_aspect; + f.progress = 0;//print_progress; + f.nthreads = num_threads; + f.earlyclip = earlyclip; + f.sub_batch_size = sub_batch_size; + + if (16==bpc) + f.bytes_per_channel = 2; + else + f.bytes_per_channel = 1; + + + if (getenv("nstrips")) { + nstrips = atoi(getenv("nstrips")); + } else { + nstrips = calc_nstrips(&f); + } + + if (nstrips > cps[i].height) { + fprintf(stderr, "cannot have more strips than rows but %d>%d.\n", + nstrips, cps[i].height); + exit(1); + } + + imgmem = (double)channels * (double)cps[i].width + * (double)cps[i].height * f.bytes_per_channel; + + if (imgmem > ULONG_MAX) { + fprintf(stderr,"Image size > ULONG_MAX. Aborting.\n"); + exit(1); + } + + this_size = (size_t)channels * (size_t)cps[i].width + * (size_t)cps[i].height * f.bytes_per_channel; + if (this_size != last_size) { + if (last_size != -1) + free(image); + last_size = this_size; + image = (void *) malloc(this_size); + if (NULL==image) { + fprintf(stderr,"Error allocating memory for image. Aborting\n"); + exit(1); + } + } else { + memset(image, 0, this_size); + } + + cps[i].sample_density *= nstrips; + real_height = cps[i].height; + cps[i].height = (int) ceil(cps[i].height / (double) nstrips); + center_y = cps[i].center[1]; + zoom_scale = pow(2.0, cps[i].zoom); + center_base = center_y - ((nstrips - 1) * cps[i].height) / + (2 * cps[i].pixels_per_unit * zoom_scale); + + /* Copy off random context to use for each strip */ + memcpy(&savectx, &f.rc, sizeof(randctx)); + + for (strip = 0; strip < nstrips; strip++) { + size_t ssoff = (size_t)cps[i].height * strip * cps[i].width * channels * f.bytes_per_channel; + void *strip_start = image + ssoff; + cps[i].center[1] = center_base + cps[i].height * (double) strip / (cps[i].pixels_per_unit * zoom_scale); + + if ((cps[i].height * (strip + 1)) > real_height) { + int oh = cps[i].height; + cps[i].height = real_height - oh * strip; + cps[i].center[1] -= + (oh - cps[i].height) * 0.5 / + (cps[i].pixels_per_unit * zoom_scale); + } + + /* Use the same random context for each strip */ + memcpy(&f.rc, &savectx, sizeof(randctx)); + + if (verbose && nstrips > 1) { + fprintf(stderr, "strip = %d/%d\n", strip+1, nstrips); + } + if (verbose && (1 == nstrips) && (ncps > 1)) { + fprintf(stderr, "\n"); + } + cps[i].ntemporal_samples = 1; + if (flam3_render(&f, strip_start, flam3_field_both, channels, transparency, &stats)) { + fprintf(stderr,"error rendering image: aborting.\n"); + exit(1); + } + + if (NULL != out) { + strcpy(fname,out); + } else if (name_enable && cps[i].flame_name[0]>0) { + sprintf(fname, "%s.%s",cps[i].flame_name,format); + } else { + sprintf(fname, "%s%05d.%s", prefix, i, format); + } + if (verbose) { + fprintf(stderr, "writing %s...", fname); + } + fp = fopen(fname, "wb"); + if (NULL == fp) { + perror(fname); + exit(1); + } + + /* Generate temp file with genome */ + fpc.genome = flam3_print_to_string(f.genomes); + + sprintf(badval_string,"%g",stats.badvals/(double)stats.num_iters); + fpc.badvals = badval_string; + sprintf(numiter_string,"%g",(double)stats.num_iters); + fpc.numiters = numiter_string; + sprintf(rtime_string,"%d",stats.render_seconds); + fpc.rtime = rtime_string; + + if (!strcmp(format, "png")) { + + write_png(fp, image, cps[i].width, real_height, &fpc, f.bytes_per_channel); + + } else if (!strcmp(format, "jpg")) { + + write_jpeg(fp, (unsigned char *)image, cps[i].width, real_height, &fpc); + + } else { + fprintf(fp, "P6\n"); + fprintf(fp, "%d %d\n255\n", cps[i].width, real_height); + if (this_size != fwrite((unsigned char *)image, 1, this_size, fp)) { + perror(fname); + } + } + /* Free string */ + free(fpc.genome); + + fclose(fp); + } + + /* restore the cps values to their original values */ + cps[i].sample_density /= nstrips; + cps[i].height = real_height; + cps[i].center[1] = center_y; + + if (verbose) { + fprintf(stderr, "done.\n"); + } + } + if (verbose && ((ncps > 1) || (nstrips > 1))) { + long total_time = (long)time(0) - start_time; + + if (total_time > 100) + fprintf(stderr, "total time = %.1f minutes\n", total_time / 60.0); + else + fprintf(stderr, "total time = %ld seconds\n", total_time); + } + + for (i=0;i<ncps;i++) { + + xmlFreeDoc(cps[i].edits); + clear_cp(&cps[i],0); + + } + free(cps); + + free(image); + return 0; +} diff --git a/src/flam3-render.man b/src/flam3-render.man new file mode 100644 index 0000000..b754356 --- /dev/null +++ b/src/flam3-render.man @@ -0,0 +1,36 @@ +.TH flam3-animate 1 "" "" +.SH NAME +flam3-animate +flam3-render +flam3-genome +flam3-convert - render and animate FLAM3s and manipulate their genomes +.SH SYNOPSIS +.B flam3-render < input + +.SH DESCRIPTION + +FLAM3 implements a visual language based on a recursive set equation. + +Flam3-genome creates and manipulates genomes (xml parameter sets) in +this language. Flam3-render turns genomes into still images, and +Flam3-animate renders motion-blurred frames of animation. + +Flam3-convert reads from stdin files in the old format used by the +flame GIMP plugin, and writes the new format to stdout. + +.SH OPTIONS + +Any command line option will cause the program to write its +documentation to standard out. + +.SH ENVIRONMENT + +The environment variables are in the documention written to standard +out given any command line option. + +.SH SEE ALSO +.BR WWW.FLAM3.COM, +.BR electricsheep (1), + +.SH AUTHOR +spot aka Scott Draves, Erik Reckase diff --git a/src/flam3.c b/src/flam3.c new file mode 100644 index 0000000..b7a4ea2 --- /dev/null +++ b/src/flam3.c @@ -0,0 +1,3994 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + +#ifndef _MSC_VER /* VC++ */ +#define _GNU_SOURCE +#endif + +#include "private.h" +#include "img.h" +#include "config.h" +#include "variations.h" +#include "interpolation.h" +#include "parser.h" +#include "filters.h" +#include "palettes.h" +#include <limits.h> +#include <locale.h> +#include <math.h> +#ifdef HAVE_STDINT_H +#include <stdint.h> +#endif +#include <errno.h> + +#ifdef HAVE_LIBPTHREAD +#include <pthread.h> +#endif + +#ifdef __APPLE__ +#include <mach/mach.h> +#include <mach/mach_error.h> +#define flam3_os "OSX" +#else +#ifdef _WIN32 +#define WINVER 0x0500 +#include <windows.h> +#define flam3_os "WIN" +#else +#define flam3_os "LNX" +#endif +#endif + + + +char *flam3_version() { + + if (strcmp(SVN_REV, "exported")) + return flam3_os "-" VERSION "." SVN_REV; + return VERSION; +} + + +#define CHOOSE_XFORM_GRAIN 10000 + +#define random_distrib(v) ((v)[random()%vlen(v)]) + + +unsigned short *flam3_create_xform_distrib(flam3_genome *cp) { + + /* Xform distrib is created in this function */ + int numrows; + int dist_row,i; + unsigned short *xform_distrib; + + numrows = cp->num_xforms - (cp->final_xform_index>=0) + 1; + xform_distrib = calloc(numrows*CHOOSE_XFORM_GRAIN,sizeof(unsigned short)); + + /* First, set up the first row of the xform_distrib (raw weights) */ + flam3_create_chaos_distrib(cp, -1, xform_distrib); + + /* Check for non-unity chaos */ + cp->chaos_enable = 1 - flam3_check_unity_chaos(cp); + + if (cp->chaos_enable) { + + /* Now set up a row for each of the xforms */ + dist_row = 0; + for (i=0;i<cp->num_xforms;i++) { + + if (cp->final_xform_index == i) + continue; + else + dist_row++; + + if (flam3_create_chaos_distrib(cp, i, &(xform_distrib[CHOOSE_XFORM_GRAIN*(dist_row)]))) { + free(xform_distrib); + return(NULL); + } + } + } + + return(xform_distrib); +} + +/* Run this on a copy of a genome to get a strip of the output */ +int flam3_make_strip(flam3_genome *cp, int nstrips, int stripnum) { + + double old_center[2]; + int j; + + /* Strip out motion elements */ + for (j=0;j<cp->num_xforms;j++) + flam3_delete_motion_elements(&cp->xform[j]); + + old_center[0] = cp->center[0]; + old_center[1] = cp->center[1]; + cp->height /= nstrips; + cp->center[1] = cp->center[1] - ((nstrips - 1) * cp->height) / (2 * cp->pixels_per_unit * pow(2.0, cp->zoom)); + cp->center[1] += cp->height * stripnum / ( cp->pixels_per_unit * pow(2.0,cp->zoom) ); + rotate_by(cp->center, old_center, cp->rotate); + + return(0); +} + + +void rotate_by(double *p, double *center, double by) { + double r[2]; + double th = by * 2 * M_PI / 360.0; + double c = cos(th); + double s = -sin(th); + p[0] -= center[0]; + p[1] -= center[1]; + r[0] = c * p[0] - s * p[1]; + r[1] = s * p[0] + c * p[1]; + p[0] = r[0] + center[0]; + p[1] = r[1] + center[1]; +} + + +int flam3_check_unity_chaos(flam3_genome *cp) { + + int i,j; + int num_std; + int unity=1; + num_std = cp->num_xforms - (cp->final_xform_index >= 0); + + for (i=0;i<num_std;i++) { + for (j=0;j<num_std;j++) { + if ( fabs(cp->chaos[i][j]-1.0) > EPS) + unity=0; + } + } + + return(unity); +} + +int flam3_create_chaos_distrib(flam3_genome *cp, int xi, unsigned short *xform_distrib) { + + /* Xform distrib is a preallocated array of CHOOSE_XFORM_GRAIN chars */ + /* address of array is passed in, contents are modified */ + double t,r,dr; + int i,j; + int num_std; + + //fprintf(stdout,"storing at %ld\n",xform_distrib); + + num_std = cp->num_xforms - (cp->final_xform_index >= 0); + + dr = 0.0; + for (i = 0; i < num_std; i++) { + double d = cp->xform[i].density; + + if (xi>=0) + d *= cp->chaos[xi][i]; + + //fprintf(stdout,"%f ",d); + if (d < 0.0) { + fprintf(stderr, "xform weight must be non-negative, not %g.\n", d); + return(1); + } + + dr += d; + } + + //fprintf(stdout,"dr=%f\n",dr); + + if (dr == 0.0) { + fprintf(stderr, "cannot iterate empty flame.\n"); + return(1); + } + + dr = dr / CHOOSE_XFORM_GRAIN; + + j = 0; + t = cp->xform[0].density; + if (xi>=0) + t *= cp->chaos[xi][0]; + r = 0.0; + for (i = 0; i < CHOOSE_XFORM_GRAIN; i++) { + while (r >= t) { + j++; + + if (xi>=0) + t += cp->xform[j].density*cp->chaos[xi][j]; + else + t += cp->xform[j].density; + + } + //fprintf(stdout,"%d ",j); + xform_distrib[i] = j; + r += dr; + } + //fprintf(stdout,"\n---\n"); + + return(0); +} +/* + * run the function system described by CP forward N generations. store + * the N resulting 4-vectors in SAMPLES. the initial point is passed in + * SAMPLES[0..3]. ignore the first FUSE iterations. + */ + + +int flam3_iterate(flam3_genome *cp, int n, int fuse, double *samples, unsigned short *xform_distrib, randctx *rc) { + int i; + double p[4], q[4]; + int consec = 0; + int badvals = 0; + int lastxf=0; + int fn; + + p[0] = samples[0]; + p[1] = samples[1]; + p[2] = samples[2]; + p[3] = samples[3]; + + /* Perform precalculations */ + for (i=0;i<cp->num_xforms;i++) + xform_precalc(cp,i); + + for (i = -4*fuse; i < 4*n; i+=4) { + + if (cp->chaos_enable) + fn = xform_distrib[ lastxf*CHOOSE_XFORM_GRAIN + (((unsigned)irand(rc)) % CHOOSE_XFORM_GRAIN)]; + else + fn = xform_distrib[ ((unsigned)irand(rc)) % CHOOSE_XFORM_GRAIN ]; + + if (apply_xform(cp, fn, p, q, rc)>0) { + consec ++; + badvals ++; + if (consec<5) { + p[0] = q[0]; + p[1] = q[1]; + p[2] = q[2]; + p[3] = q[3]; + i -= 4; + continue; + } else + consec = 0; + } else + consec = 0; + + /* Store the last used transform */ + lastxf = fn+1; + + p[0] = q[0]; + p[1] = q[1]; + p[2] = q[2]; + p[3] = q[3]; + + if (cp->final_xform_enable == 1) { + if (cp->xform[cp->final_xform_index].opacity==1 || + flam3_random_isaac_01(rc)<cp->xform[cp->final_xform_index].opacity) { + apply_xform(cp, cp->final_xform_index, p, q, rc); + /* Keep the opacity from the original xform */ + q[3] = p[3]; + } + } + + /* if fuse over, store it */ + if (i >= 0) { + samples[i] = q[0]; + samples[i+1] = q[1]; + samples[i+2] = q[2]; + samples[i+3] = q[3]; + } + } + + return(badvals); +} + +int flam3_xform_preview(flam3_genome *cp, int xi, double range, int numvals, int depth, double *result, randctx *rc) { + + /* We will evaluate the 'xi'th xform 'depth' times, over the following values: */ + /* x in [-range : range], y in [-range : range], with 2* (2*numvals+1)^2 values returned */ + double p[4]; + double incr; + int outi; + int xx,yy,dd; + double oldweight; + + outi=0; + + oldweight = cp->xform[xi].density; + cp->xform[xi].density = 1.0; + + /* Prepare the function pointers */ + if (prepare_xform_fn_ptrs(cp,rc)) { + cp->xform[xi].density = oldweight; + return(1); + } + + /* Calculate increment */ + incr = range / (double)numvals; + + /* Perform precalculations */ + xform_precalc(cp,xi); + + /* Loop over the grid */ + for (xx=-numvals;xx<=numvals;xx++) { + for (yy=-numvals;yy<=numvals;yy++) { + + /* Calculate the input coordinates */ + p[0] = (double)xx * incr; + p[1] = (double)yy * incr; + + /* Loop over the depth */ + for (dd=0;dd<depth;dd++) + apply_xform(cp, xi, p, p, rc); + + result[outi] = p[0]; + result[outi+1] = p[1]; + + outi += 2; + } + } + cp->xform[xi].density = oldweight; + + return(0); +} + +int flam3_colorhist(flam3_genome *cp, int num_batches, double *hist) { + + int lp,plp; + int mycolor; + long int default_isaac_seed = (long int)time(0); + randctx rc; + unsigned short *xform_distrib; + int sbs = 10000; + double sub_batch[4*10000]; + + /* Set up the isaac rng */ + for (lp = 0; lp < RANDSIZ; lp++) + rc.randrsl[lp] = default_isaac_seed; + + irandinit(&rc,1); + + memset(hist,0,256*sizeof(double)); + + for (lp=0;lp<num_batches;lp++) { + + sub_batch[0] = flam3_random_isaac_11(&rc); + sub_batch[1] = flam3_random_isaac_11(&rc); + sub_batch[2] = 0; + sub_batch[3] = 0; + + // get into the attractor + if (prepare_xform_fn_ptrs(cp,&rc)) + return(1); + + xform_distrib = flam3_create_xform_distrib(cp); + + if (xform_distrib==NULL) + return(1); + flam3_iterate(cp, sbs, 20, sub_batch, xform_distrib, &rc); + free(xform_distrib); + + // histogram the colors in the sub_batch array + for (plp=0;plp<4*sbs;plp+=4) { + mycolor = (int)(sub_batch[plp+2]*CMAP_SIZE); + if (mycolor<0) mycolor=0; + if (mycolor>CMAP_SIZE_M1) mycolor=CMAP_SIZE_M1; + + hist[mycolor] += 1; + } + } + + for (plp=0;plp<256;plp++) + hist[plp] /= (float)(num_batches*sbs); + + return(0); +} + +flam3_genome *sheep_loop(flam3_genome *cp, double blend) { + + flam3_genome *result; + int i; + + /* Allocate the genome - this must be freed by calling function */ + result = calloc(1,sizeof(flam3_genome)); + + /* Clear it */ + clear_cp(result,flam3_defaults_on); + + /* Copy the original */ + flam3_copy(result,cp); + + /* + * Insert motion magic here : + * if there are motion elements, we will modify the contents of + * the result genome before flam3_rotate is called. + */ + for (i=0;i<cp->num_xforms;i++) { + if (cp->xform[i].num_motion>0) { + /* Apply motion parameters to result.xform[i] using blend parameter */ + apply_motion_parameters(&cp->xform[i], &result->xform[i], blend); + } + + /* Delete the motion parameters from the result */ + flam3_delete_motion_elements(&result->xform[i]); + } + + /* Rotate the affines */ + flam3_rotate(result, blend*360.0,result->interpolation_type); + + return(result); +} + + + + +flam3_genome *sheep_edge(flam3_genome *cp, double blend, int seqflag, double stagger) { + + flam3_genome spun[2]; + flam3_genome prealign[2]; + flam3_genome *result; + int i,si; + char *ai; + + memset(spun, 0, 2*sizeof(flam3_genome)); + memset(prealign, 0, 2*sizeof(flam3_genome)); + + /* Allocate the memory for the result */ + result = calloc(1,sizeof(flam3_genome)); + + /* + * Insert motion magic here : + * if there are motion elements, we will modify the contents of + * the prealign genomes before we rotate and interpolate. + */ + + for (si=0;si<2;si++) { + flam3_copy(&prealign[si], &cp[si]); + for (i=0;i<cp[si].num_xforms;i++) { + if (cp[si].xform[i].num_motion>0) { + /* Apply motion parameters to result.xform[i] using blend parameter */ + apply_motion_parameters(&cp[si].xform[i], &prealign[si].xform[i], blend); + } + } + } + + /* Use the un-padded original for blend=0 when creating a sequence */ + /* This keeps the original interpolation type intact */ + if (seqflag && 0.0 == blend) { + flam3_copy(result, &prealign[0]); + } else { + + /* Align what we're going to interpolate */ + flam3_align(spun, prealign, 2); + + spun[0].time = 0.0; + spun[1].time = 1.0; + + /* Call this first to establish the asymmetric reference angles */ + establish_asymmetric_refangles(spun,2); + + /* Rotate the aligned xforms */ + flam3_rotate(&spun[0], blend*360.0, spun[0].interpolation_type); + flam3_rotate(&spun[1], blend*360.0, spun[0].interpolation_type); + + /* Now call the interpolation */ + if (argi("unsmoother",0) == 0) + flam3_interpolate(spun, 2, smoother(blend), stagger, result); + else + flam3_interpolate(spun, 2, blend, stagger, result); + + + /* Interpolation type no longer needs to be forced to linear mode */ +// if (!seqflag) +// result.interpolation_type = flam3_inttype_linear; + } + + /* Clear the genomes we used */ + clear_cp(&spun[0],flam3_defaults_on); + clear_cp(&spun[1],flam3_defaults_on); + clear_cp(&prealign[0],flam3_defaults_on); + clear_cp(&prealign[1],flam3_defaults_on); + + /* Make sure there are no motion elements in the result */ + for (i=0;i<result->num_xforms;i++) + flam3_delete_motion_elements(&result->xform[i]); + + return(result); +} + + +/* BY is angle in degrees */ +void flam3_rotate(flam3_genome *cp, double by, int interpolation_type) { + int i; + for (i = 0; i < cp->num_xforms; i++) { + double r[2][2]; + double T[2][2]; + double U[2][2]; + double dtheta = by * 2.0 * M_PI / 360.0; + + /* Don't rotate xforms with > 0 animate values */ + if (cp->xform[i].animate == 0.0) + continue; + + if (cp->xform[i].padding == 1) { + if (interpolation_type == flam3_inttype_compat) { + /* gen 202 era flam3 did not rotate padded xforms */ + continue; + } else if (interpolation_type == flam3_inttype_older) { + /* not sure if 198 era flam3 rotated padded xforms */ + continue; + } else if (interpolation_type == flam3_inttype_linear) { + /* don't rotate for prettier symsings */ + continue; + } else if (interpolation_type == flam3_inttype_log) { + /* Current flam3: what do we prefer? */ + //continue; + } + } + + /* Do NOT rotate final xforms */ + if (cp->final_xform_enable==1 && cp->final_xform_index==i) + continue; + + r[1][1] = r[0][0] = cos(dtheta); + r[0][1] = sin(dtheta); + r[1][0] = -r[0][1]; + T[0][0] = cp->xform[i].c[0][0]; + T[1][0] = cp->xform[i].c[1][0]; + T[0][1] = cp->xform[i].c[0][1]; + T[1][1] = cp->xform[i].c[1][1]; + mult_matrix(r, T, U); + cp->xform[i].c[0][0] = U[0][0]; + cp->xform[i].c[1][0] = U[1][0]; + cp->xform[i].c[0][1] = U[0][1]; + cp->xform[i].c[1][1] = U[1][1]; + } +} + +#define APPMOT(x) do { addto->x += mot[i].x * motion_funcs(func,freq*blend); } while (0); + +void apply_motion_parameters(flam3_xform *xf, flam3_xform *addto, double blend) { + + int i,j,k; + int freq; + int func; + flam3_xform* mot; + + mot = xf->motion; + + /* Loop over the motion elements and add their contribution to the original vals */ + for (i=0; i<xf->num_motion; i++) { + + freq = mot->motion_freq; + func = mot->motion_func; + + APPMOT(density); /* Must ensure > 0 after all is applied */ + APPMOT(color); /* Must ensure [0,1] after all is applied */ + + APPMOT(opacity); + APPMOT(color_speed); + APPMOT(animate); + APPMOT(blob_low); + APPMOT(blob_high); + APPMOT(blob_waves); + APPMOT(pdj_a); + APPMOT(pdj_b); + APPMOT(pdj_c); + APPMOT(pdj_d); + APPMOT(fan2_x); + APPMOT(fan2_y); + APPMOT(rings2_val); + APPMOT(perspective_angle); + APPMOT(perspective_dist); + APPMOT(julian_power); + APPMOT(julian_dist); + APPMOT(juliascope_power); + APPMOT(juliascope_dist); + APPMOT(radial_blur_angle); + APPMOT(pie_slices); + APPMOT(pie_rotation); + APPMOT(pie_thickness); + APPMOT(ngon_sides); + APPMOT(ngon_power); + APPMOT(ngon_circle); + APPMOT(ngon_corners); + APPMOT(curl_c1); + APPMOT(curl_c2); + APPMOT(rectangles_x); + APPMOT(rectangles_y); + APPMOT(amw_amp); + APPMOT(disc2_rot); + APPMOT(disc2_twist); + APPMOT(super_shape_rnd); + APPMOT(super_shape_m); + APPMOT(super_shape_n1); + APPMOT(super_shape_n2); + APPMOT(super_shape_n3); + APPMOT(super_shape_holes); + APPMOT(flower_petals); + APPMOT(flower_holes); + APPMOT(conic_eccentricity); + APPMOT(conic_holes); + APPMOT(parabola_height); + APPMOT(parabola_width); + APPMOT(bent2_x); + APPMOT(bent2_y); + APPMOT(bipolar_shift); + APPMOT(cell_size); + APPMOT(cpow_r); + APPMOT(cpow_i); + APPMOT(cpow_power); + APPMOT(curve_xamp); + APPMOT(curve_yamp); + APPMOT(curve_xlength); + APPMOT(curve_ylength); + APPMOT(escher_beta); + APPMOT(lazysusan_x); + APPMOT(lazysusan_y); + APPMOT(lazysusan_twist); + APPMOT(lazysusan_space); + APPMOT(lazysusan_spin); + APPMOT(modulus_x); + APPMOT(modulus_y); + APPMOT(oscope_separation); + APPMOT(oscope_frequency); + APPMOT(oscope_amplitude); + APPMOT(oscope_damping); + APPMOT(popcorn2_x); + APPMOT(popcorn2_y); + APPMOT(popcorn2_c); + APPMOT(separation_x); + APPMOT(separation_xinside); + APPMOT(separation_y); + APPMOT(separation_yinside); + APPMOT(split_xsize); + APPMOT(split_ysize); + APPMOT(splits_x); + APPMOT(splits_y); + APPMOT(stripes_space); + APPMOT(stripes_warp); + APPMOT(wedge_angle); + APPMOT(wedge_hole); + APPMOT(wedge_count); + APPMOT(wedge_swirl); + APPMOT(wedge_julia_angle); + APPMOT(wedge_julia_count); + APPMOT(wedge_julia_power); + APPMOT(wedge_julia_dist); + APPMOT(wedge_sph_angle); + APPMOT(wedge_sph_hole); + APPMOT(wedge_sph_count); + APPMOT(wedge_sph_swirl); + APPMOT(whorl_inside); + APPMOT(whorl_outside); + APPMOT(waves2_scalex); + APPMOT(waves2_scaley); + APPMOT(waves2_freqx); + APPMOT(waves2_freqy); + APPMOT(auger_sym); + APPMOT(auger_weight); + APPMOT(auger_freq); + APPMOT(auger_scale); + + for (j = 0; j < flam3_nvariations; j++) + APPMOT(var[j]); + + for (j=0; j<3; j++) { + for (k=0; k<2; k++) { + APPMOT(c[j][k]); + APPMOT(post[j][k]); + } + } + + } + + /* Make sure certain params are within reasonable bounds */ + if (addto->color<0) addto->color=0; + if (addto->color>1) addto->color=1; + if (addto->density<0) addto->density=0; + +} + + +/* + * create a control point that interpolates between the control points + * passed in CPS. CPS must be sorted by time. + */ +void flam3_interpolate(flam3_genome cps[], int ncps, + double time, double stagger, flam3_genome *result) { + int i1, i2; + double c[2]; + flam3_genome cpi[4]; + + if (1 == ncps) { + flam3_copy(result, &(cps[0])); + return; + } + + if (cps[0].time >= time) { + i1 = 0; + i2 = 1; + } else if (cps[ncps - 1].time <= time) { + i1 = ncps - 2; + i2 = ncps - 1; + } else { + i1 = 0; + while (cps[i1].time < time) + i1++; + + i1--; + i2 = i1 + 1; + + } + + c[0] = (cps[i2].time - time) / (cps[i2].time - cps[i1].time); + c[1] = 1.0 - c[0]; + + memset(cpi, 0, 4*sizeof(flam3_genome)); + + /* To interpolate the xforms, we will make copies of the source cps */ + /* and ensure that they both have the same number before progressing */ + if (flam3_interpolation_linear == cps[i1].interpolation) { + flam3_align(&cpi[0], &cps[i1], 2); + + } else { + if (0 == i1) { + fprintf(stderr, "error: cannot use smooth interpolation on first segment.\n"); + exit(1); + } + if (ncps-1 == i2) { + fprintf(stderr, "error: cannot use smooth interpolation on last segment.\n"); + exit(1); + } + flam3_align(&cpi[0], &cps[i1-1], 4); + } + + /* Clear the destination cp */ + clear_cp(result, 1); + + if (cpi[0].final_xform_index >= 0) { + flam3_add_xforms(result, cpi[0].num_xforms-1, 0, 0); + flam3_add_xforms(result, 1, 0, 1); + } else + flam3_add_xforms(result, cpi[0].num_xforms, 0, 0); + + + result->time = time; + result->interpolation = flam3_interpolation_linear; + result->interpolation_type = cpi[0].interpolation_type; + result->palette_interpolation = flam3_palette_interpolation_hsv; + + if (flam3_interpolation_linear == cps[i1].interpolation) { + flam3_interpolate_n(result, 2, cpi, c, stagger); + } else { + interpolate_catmull_rom(cpi, c[1], result); + clear_cp(&(cpi[2]),0); + clear_cp(&(cpi[3]),0); + } + + clear_cp(&(cpi[0]),0); + clear_cp(&(cpi[1]),0); + +} + +void flam3_copy_params(flam3_xform *dest, flam3_xform *src, int varn) { + + /* We only want to copy param var coefs for this one */ + if (varn==VAR_BLOB) { + /* Blob */ + dest->blob_low = src->blob_low; + dest->blob_high = src->blob_high; + dest->blob_waves = src->blob_waves; + } else if (varn==VAR_PDJ) { + /* PDJ */ + dest->pdj_a = src->pdj_a; + dest->pdj_b = src->pdj_b; + dest->pdj_c = src->pdj_c; + dest->pdj_d = src->pdj_d; + } else if (varn==VAR_FAN2) { + /* Fan2 */ + dest->fan2_x = src->fan2_x; + dest->fan2_y = src->fan2_y; + } else if (varn==VAR_RINGS2) { + /* Rings2 */ + dest->rings2_val = src->rings2_val; + } else if (varn==VAR_PERSPECTIVE) { + /* Perspective */ + dest->perspective_angle = src->perspective_angle; + dest->perspective_dist = src->perspective_dist; + dest->persp_vsin = src->persp_vsin; + dest->persp_vfcos = src->persp_vfcos; + } else if (varn==VAR_JULIAN) { + /* Julia_N */ + dest->julian_power = src->julian_power; + dest->julian_dist = src->julian_dist; + dest->julian_rN = src->julian_rN; + dest->julian_cn = src->julian_cn; + } else if (varn==VAR_JULIASCOPE) { + /* Julia_Scope */ + dest->juliascope_power = src->juliascope_power; + dest->juliascope_dist = src->juliascope_dist; + dest->juliascope_rN = src->juliascope_rN; + dest->juliascope_cn = src->juliascope_cn; + } else if (varn==VAR_RADIAL_BLUR) { + /* Radial Blur */ + dest->radial_blur_angle = src->radial_blur_angle; + } else if (varn==VAR_PIE) { + /* Pie */ + dest->pie_slices = src->pie_slices; + dest->pie_rotation = src->pie_rotation; + dest->pie_thickness = src->pie_thickness; + } else if (varn==VAR_NGON) { + /* Ngon */ + dest->ngon_sides = src->ngon_sides; + dest->ngon_power = src->ngon_power; + dest->ngon_corners = src->ngon_corners; + dest->ngon_circle = src->ngon_circle; + } else if (varn==VAR_CURL) { + /* Curl */ + dest->curl_c1 = src->curl_c1; + dest->curl_c2 = src->curl_c2; + } else if (varn==VAR_RECTANGLES) { + /* Rect */ + dest->rectangles_x = src->rectangles_x; + dest->rectangles_y = src->rectangles_y; + } else if (varn==VAR_DISC2) { + /* Disc2 */ + dest->disc2_rot = src->disc2_rot; + dest->disc2_twist = src->disc2_twist; + } else if (varn==VAR_SUPER_SHAPE) { + /* Supershape */ + dest->super_shape_rnd = src->super_shape_rnd; + dest->super_shape_m = src->super_shape_m; + dest->super_shape_n1 = src->super_shape_n1; + dest->super_shape_n2 = src->super_shape_n2; + dest->super_shape_n3 = src->super_shape_n3; + dest->super_shape_holes = src->super_shape_holes; + } else if (varn==VAR_FLOWER) { + /* Flower */ + dest->flower_petals = src->flower_petals; + dest->flower_petals = src->flower_petals; + } else if (varn==VAR_CONIC) { + /* Conic */ + dest->conic_eccentricity = src->conic_eccentricity; + dest->conic_holes = src->conic_holes; + } else if (varn==VAR_PARABOLA) { + /* Parabola */ + dest->parabola_height = src->parabola_height; + dest->parabola_width = src->parabola_width; + } else if (varn==VAR_BENT2) { + /* Bent2 */ + dest->bent2_x = src->bent2_x; + dest->bent2_y = src->bent2_y; + } else if (varn==VAR_BIPOLAR) { + /* Bipolar */ + dest->bipolar_shift = src->bipolar_shift; + } else if (varn==VAR_CELL) { + /* Cell */ + dest->cell_size = src->cell_size; + } else if (varn==VAR_CPOW) { + /* Cpow */ + dest->cpow_i = src->cpow_i; + dest->cpow_r = src->cpow_r; + dest->cpow_power = src->cpow_power; + } else if (varn==VAR_CURVE) { + /* Curve */ + dest->curve_xamp = src->curve_xamp; + dest->curve_yamp = src->curve_yamp; + dest->curve_xlength = src->curve_xlength; + dest->curve_ylength = src->curve_ylength; + } else if (varn==VAR_ESCHER) { + /* Escher */ + dest->escher_beta = src->escher_beta; + } else if (varn==VAR_LAZYSUSAN) { + /* Lazysusan */ + dest->lazysusan_x = src->lazysusan_x; + dest->lazysusan_y = src->lazysusan_y; + dest->lazysusan_spin = src->lazysusan_spin; + dest->lazysusan_space = src->lazysusan_space; + dest->lazysusan_twist = src->lazysusan_twist; + } else if (varn==VAR_MODULUS) { + /* Modulus */ + dest->modulus_x = src->modulus_x; + dest->modulus_y = src->modulus_y; + } else if (varn==VAR_OSCILLOSCOPE) { + /* Oscope */ + dest->oscope_separation = src->oscope_separation; + dest->oscope_frequency = src->oscope_frequency; + dest->oscope_amplitude = src->oscope_amplitude; + dest->oscope_damping = src->oscope_damping; + } else if (varn==VAR_POPCORN2) { + /* Popcorn2 */ + dest->popcorn2_x = src->popcorn2_x; + dest->popcorn2_y = src->popcorn2_y; + dest->popcorn2_c = src->popcorn2_c; + } else if (varn==VAR_SEPARATION) { + /* Separation */ + dest->separation_x = src->separation_x; + dest->separation_y = src->separation_y; + dest->separation_xinside = src->separation_xinside; + dest->separation_yinside = src->separation_yinside; + } else if (varn==VAR_SPLIT) { + /* Split */ + dest->split_xsize = src->split_xsize; + dest->split_ysize = src->split_ysize; + } else if (varn==VAR_SPLITS) { + /* Splits */ + dest->splits_x = src->splits_x; + dest->splits_y = src->splits_y; + } else if (varn==VAR_STRIPES) { + /* Stripes */ + dest->stripes_space = src->stripes_space; + dest->stripes_warp = src->stripes_warp; + } else if (varn==VAR_WEDGE) { + /* Wedge */ + dest->wedge_angle = src->wedge_angle; + dest->wedge_hole = src->wedge_hole; + dest->wedge_count = src->wedge_count; + dest->wedge_swirl = src->wedge_swirl; + } else if (varn==VAR_WEDGE_JULIA) { + /* Wedge_Julia */ + dest->wedge_julia_angle = src->wedge_julia_angle; + dest->wedge_julia_count = src->wedge_julia_count; + dest->wedge_julia_power = src->wedge_julia_power; + dest->wedge_julia_dist = src->wedge_julia_dist; + dest->wedgeJulia_cf = src->wedgeJulia_cf; + dest->wedgeJulia_cn = src->wedgeJulia_cn; + dest->wedgeJulia_rN = src->wedgeJulia_rN; + } else if (varn==VAR_WEDGE_SPH) { + /* Wedge_sph */ + dest->wedge_sph_angle = src->wedge_sph_angle; + dest->wedge_sph_hole = src->wedge_sph_hole; + dest->wedge_sph_count = src->wedge_sph_count; + dest->wedge_sph_swirl = src->wedge_sph_swirl; + } else if (varn==VAR_WHORL) { + /* whorl */ + dest->whorl_inside = src->whorl_inside; + dest->whorl_outside = src->whorl_outside; + } else if (varn==VAR_WAVES2) { + /* waves2 */ + dest->waves2_scalex = src->waves2_scalex; + dest->waves2_scaley = src->waves2_scaley; + dest->waves2_freqx = src->waves2_freqx; + dest->waves2_freqy = src->waves2_freqy; + } else if (varn==VAR_AUGER) { + /* auger */ + dest->auger_sym = src->auger_sym; + dest->auger_weight = src->auger_weight; + dest->auger_freq = src->auger_freq; + dest->auger_scale = src->auger_scale; + } +} + +/* Motion support functions */ +void flam3_add_motion_element(flam3_xform *xf) { + + /* Add one to the xform's count of motion elements */ + xf->num_motion++; + + /* Reallocate the motion storage to include the empty space */ + xf->motion = (struct xform *)realloc(xf->motion, xf->num_motion * sizeof(struct xform)); + + /* Initialize the motion element */ + /* In this case, all elements should be set to 0 */ + memset( &(xf->motion[xf->num_motion-1]), 0, sizeof(struct xform)); + +} + +/* Motion support functions */ +void flam3_delete_motion_elements(flam3_xform *xf) { + + /* Free the motion elements */ + if (xf->num_motion>0) { + free(xf->motion); + xf->num_motion = 0; + } + +} + +/* Xform support functions */ +void flam3_add_xforms(flam3_genome *thiscp, int num_to_add, int interp_padding, int final_flag) { + + int i,j; + int old_num = thiscp->num_xforms; + int oldstd,numstd; + flam3_xform tmp; + + oldstd = thiscp->num_xforms - (thiscp->final_xform_index >= 0); + + /* !!! must make sure that if final_flag is specified, we don't already have a final xform! !!! */ + +// if (thiscp->num_xforms > 0) + thiscp->xform = (flam3_xform *)realloc(thiscp->xform, (thiscp->num_xforms + num_to_add) * sizeof(flam3_xform)); +// else +// thiscp->xform = (flam3_xform *)malloc(num_to_add * sizeof(flam3_xform)); + + thiscp->num_xforms += num_to_add; + + /* Initialize all the new xforms */ + initialize_xforms(thiscp, old_num); + + /* Set the padding flag for the new xforms */ + if (interp_padding) { + for (i = old_num ; i < thiscp->num_xforms ; i++) + thiscp->xform[i].padding=1; + } + + /* If the final xform is not the last xform in the list, make it so */ + if (thiscp->final_xform_index >= 0 && thiscp->final_xform_index != thiscp->num_xforms-1) { + tmp = thiscp->xform[thiscp->final_xform_index]; + for (i=thiscp->final_xform_index; i < thiscp->num_xforms-1; i++) + thiscp->xform[i] = thiscp->xform[i+1]; + + thiscp->final_xform_index = thiscp->num_xforms-1; + thiscp->xform[thiscp->final_xform_index] = tmp; + } + + if (final_flag) { + /* Set the final xform index */ + thiscp->final_xform_enable = 1; + thiscp->final_xform_index = thiscp->num_xforms-1; + } else { + /* Handle the chaos array */ + numstd = thiscp->num_xforms - (thiscp->final_xform_index>=0); + + /* Pad existing rows */ + for (i=0;i<oldstd;i++) { + thiscp->chaos[i] = realloc(thiscp->chaos[i], numstd * sizeof(double)); + for (j=oldstd; j<numstd; j++) + thiscp->chaos[i][j] = 1.0; + } + + /* Add new rows */ + thiscp->chaos = realloc(thiscp->chaos,numstd * sizeof(double *)); + for (i=oldstd; i<numstd; i++) { + thiscp->chaos[i] = malloc(numstd * sizeof(double)); + for (j=0;j<numstd;j++) + thiscp->chaos[i][j] = 1.0; + } + } +} + +void flam3_delete_xform(flam3_genome *thiscp, int idx_to_delete) { + + int i,j; + int num_std = thiscp->num_xforms - (thiscp->final_xform_index >= 0); + + if (thiscp->final_xform_index != idx_to_delete) { + /* We're going to delete the nth std xform. */ + + /* Delete the nth_std row of the chaos array */ + free(thiscp->chaos[idx_to_delete]); + + /* Shift the pointers down one */ + for (i=idx_to_delete+1;i<num_std;i++) + thiscp->chaos[i-1] = thiscp->chaos[i]; + + /* Realloc the pointer array */ + thiscp->chaos = realloc(thiscp->chaos,(num_std-1)*sizeof(double *)); + num_std--; + + /* Loop over all of the rows and remove the nth_std element from them */ + for (i=0;i<num_std;i++) { + for (j=idx_to_delete+1;j<num_std+1;j++) { + thiscp->chaos[i][j-1] = thiscp->chaos[i][j]; + } + /* Realloc the vector to have one less element */ + thiscp->chaos[i] = realloc(thiscp->chaos[i],num_std*sizeof(double)); + + } + } + + /* Handle the final xform index */ + if (thiscp->final_xform_index == idx_to_delete) { + thiscp->final_xform_index = -1; + thiscp->final_xform_enable = 0; + } else if (thiscp->final_xform_index > idx_to_delete) { + thiscp->final_xform_index--; + } + + /* Delete the motion elements of the banished xform */ + flam3_delete_motion_elements(&(thiscp->xform[idx_to_delete])); + + /* Move all of the xforms down one - this does not require manual motion xform adjustment */ + for (i=idx_to_delete; i<thiscp->num_xforms-1; i++) + thiscp->xform[i] = thiscp->xform[i+1]; + + thiscp->num_xforms--; + + /* Reduce the memory storage by one xform */ + thiscp->xform = (flam3_xform *)realloc(thiscp->xform, sizeof(flam3_xform) * thiscp->num_xforms); + +} + +void flam3_copy_xform(flam3_xform *dest, flam3_xform *src) { + + int j; + + /* Make sure the dest doesn't have motion already */ + if (dest->num_motion>0) + flam3_delete_motion_elements(dest); + + /* Copy everything */ + *dest = *src; + + /* Reset motion in dest and copy it */ + dest->num_motion=0; + dest->motion=NULL; + + if (src->num_motion>0) { + for (j=0;j<src->num_motion;j++) + flam3_add_motion_element(dest); + + memcpy(dest->motion,src->motion,src->num_motion*sizeof(flam3_xform)); + } +} + +/* Copy one control point to another */ +void flam3_copy(flam3_genome *dest, flam3_genome *src) { + + int i,ii; + int numstd; + + /* If there are any xforms in dest before the copy, clean them up */ + clear_cp(dest, 1); + + /* Copy main contents of genome */ + memcpy(dest, src, sizeof(flam3_genome)); + + /* Only the pointer to the xform was copied, not the actual xforms. */ + /* We need to create new xform memory storage for this new cp */ + /* This goes for chaos, too. */ + dest->num_xforms = 0; + dest->final_xform_index = -1; + dest->xform = NULL; + dest->chaos = NULL; + + /* Add the standard xforms first */ + numstd = src->num_xforms-(src->final_xform_index>=0); + flam3_add_xforms(dest, numstd, 0, 0); + for (i=0;i<numstd;i++) + flam3_copy_xform(&dest->xform[i], &src->xform[i]); + + /* Add the final x if it's present */ + if (src->final_xform_index>=0) { + i = src->final_xform_index; + flam3_add_xforms(dest, 1, 0, 1); + ii = dest->final_xform_index; + flam3_copy_xform(&dest->xform[ii],&src->xform[i]); + } + + /* Also, only the pointer to the chaos array was copied. + * We have to take care of that as well. */ + for (i=0;i<numstd;i++) + memcpy(dest->chaos[i],src->chaos[i], numstd * sizeof(double)); + +} + +void flam3_copyx(flam3_genome *dest, flam3_genome *src, int dest_std_xforms, int dest_final_xform) { + + int i,numsrcstd; + + /* If there are any xforms in dest before the copy, clean them up */ + clear_cp(dest, 1); + + /* Copy main contents of genome */ + memcpy(dest, src, sizeof(flam3_genome)); + + /* Only the pointer to the xform was copied, not the actual xforms. */ + /* We need to create new xform memory storage for this new cp */ + /* This goes for chaos, too. */ + dest->num_xforms = 0; + dest->xform = NULL; + dest->chaos = NULL; + dest->final_xform_index = -1; + + /* Add the padded standard xform list */ + /* Set the pad to 1 for these */ + flam3_add_xforms(dest, dest_std_xforms, 1, 0); + + numsrcstd = src->num_xforms - (src->final_xform_index >= 0); + + for(i=0;i<numsrcstd;i++) { + + /* When we copy the old xform, the pad is set to 0 */ + flam3_copy_xform(&dest->xform[i],&src->xform[i]); + + /* Copy the initial chaos from the src - the rest are already 1 */ + memcpy(dest->chaos[i], src->chaos[i], numsrcstd*sizeof(double)); + + } + + /* Add the final xform if necessary */ + if (dest_final_xform > 0) { + flam3_add_xforms(dest, dest_final_xform, 1, 1); + + if (src->final_xform_enable > 0) { + + i = src->final_xform_index; + + flam3_copy_xform(&dest->xform[dest->num_xforms-1],&src->xform[i]); + + } else { + /* Interpolated-against final xforms need animate & color_speed set to 0.0 */ + dest->xform[dest->num_xforms-1].num_motion = 0; + dest->xform[dest->num_xforms-1].motion=NULL; + dest->xform[dest->num_xforms-1].animate=0.0; + dest->xform[dest->num_xforms-1].color_speed=0.0; + } + + } else { + dest->final_xform_index = -1; + dest->final_xform_enable = 0; + } + +} + +void clear_cp(flam3_genome *cp, int default_flag) { + cp->palette_index = flam3_palette_random; + cp->center[0] = 0.0; + cp->center[1] = 0.0; + cp->rot_center[0] = 0.0; + cp->rot_center[1] = 0.0; + cp->gamma = 4.0; + cp->vibrancy = 1.0; + cp->contrast = 1.0; + cp->brightness = 4.0; + cp->symmetry = 0; + cp->hue_rotation = 0.0; + cp->rotate = 0.0; + cp->pixels_per_unit = 50; + cp->interpolation = flam3_interpolation_linear; + cp->palette_interpolation = flam3_palette_interpolation_hsv; + + cp->genome_index = 0; + memset(cp->parent_fname,0,flam3_parent_fn_len); + + if (default_flag==flam3_defaults_on) { + /* If defaults are on, set to reasonable values */ + cp->highlight_power = -1.0; + cp->background[0] = 0.0; + cp->background[1] = 0.0; + cp->background[2] = 0.0; + cp->width = 100; + cp->height = 100; + cp->spatial_oversample = 1; + cp->spatial_filter_radius = 0.5; + cp->zoom = 0.0; + cp->sample_density = 1; + /* Density estimation stuff defaulting to ON */ + cp->estimator = 9.0; + cp->estimator_minimum = 0.0; + cp->estimator_curve = 0.4; + cp->gam_lin_thresh = 0.01; +// cp->motion_exp = 0.0; + cp->nbatches = 1; + cp->ntemporal_samples = 1000; + cp->spatial_filter_select = flam3_gaussian_kernel; + cp->interpolation_type = flam3_inttype_log; + cp->temporal_filter_type = flam3_temporal_box; + cp->temporal_filter_width = 1.0; + cp->temporal_filter_exp = 0.0; + cp->palette_mode = flam3_palette_mode_step; + + } else { + /* Defaults are off, so set to UN-reasonable values. */ + cp->highlight_power = -1.0; + cp->background[0] = -1.0; + cp->background[1] = -1.0; + cp->background[2] = -1.0; + cp->zoom = 999999999; + cp->spatial_oversample = -1; + cp->spatial_filter_radius = -1; + cp->nbatches = -1; + cp->ntemporal_samples = -1; + cp->width = -1; + cp->height = -1; + cp->sample_density = -1; + cp->estimator = -1; + cp->estimator_minimum = -1; + cp->estimator_curve = -1; + cp->gam_lin_thresh = -1; +// cp->motion_exp = -999; + cp->nbatches = 0; + cp->ntemporal_samples = 0; + cp->spatial_filter_select = -1; + cp->interpolation_type = -1; + cp->temporal_filter_type = -1; + cp->temporal_filter_width = -1; + cp->temporal_filter_exp = -999; + cp->palette_mode = -1; + } + + if (cp->xform != NULL && cp->num_xforms > 0) { + int i; + int ns = cp->num_xforms - (cp->final_xform_index>=0); + + for (i=0;i<ns;i++) { + free(cp->chaos[i]); + } + free(cp->chaos); + cp->chaos=NULL; + + for (i=0;i<cp->num_xforms;i++) + flam3_delete_motion_elements(&cp->xform[i]); + + free(cp->xform); + cp->xform=NULL; + + cp->num_xforms = 0; + } + + cp->final_xform_enable = 0; + cp->final_xform_index = -1; + +} + + +int flam3_count_nthreads(void) { + int nthreads; +#ifndef HAVE_LIBPTHREAD + return(1); +#endif + +#ifdef _WIN32 + SYSTEM_INFO sysInfo; + GetSystemInfo(&sysInfo); + nthreads = sysInfo.dwNumberOfProcessors; +#else +#ifdef __APPLE__ + kern_return_t kr; + host_name_port_t host; + unsigned int size; + struct host_basic_info hi; + + host = mach_host_self(); + size = sizeof(hi)/sizeof(int); + kr = host_info(host, HOST_BASIC_INFO, (host_info_t)&hi, &size); + if (kr != KERN_SUCCESS) { + mach_error("host_info():", kr); + exit(EXIT_FAILURE); + } + nthreads = hi.avail_cpus; +#else +#ifndef _SC_NPROCESSORS_ONLN + char line[MAXBUF]; + FILE *f = fopen("/proc/cpuinfo", "r"); + if (NULL == f) goto def; + nthreads = 0; + while (fgets(line, MAXBUF, f)) { + if (!strncmp("processor\t:", line, 11)) + nthreads++; + } + fclose(f); + if (nthreads < 1) goto def; + return (nthreads); +def: + fprintf(stderr, "could not read /proc/cpuinfo, using one render thread.\n"); + nthreads = 1; +#else + nthreads = sysconf(_SC_NPROCESSORS_ONLN); + if (nthreads < 1) nthreads = 1; +#endif +#endif +#endif + return (nthreads); +} + +flam3_genome *flam3_parse_xml2(char *xmldata, char *xmlfilename, int default_flag, int *ncps) { + + xmlDocPtr doc; /* Parsed XML document tree */ + xmlNode *rootnode; + char *bn; + int i; + int loc_all_ncps=0; + flam3_genome *loc_all_cp=NULL; + char* locale = NULL; + char* lorig = setlocale(LC_NUMERIC, NULL); + + /* Parse XML string into internal document */ + /* Forbid network access during read */ + doc = xmlReadMemory(xmldata, (int)strlen(xmldata), xmlfilename, NULL, XML_PARSE_NONET); + + /* Check for errors */ + if (doc==NULL) { + fprintf(stderr, "Failed to parse %s\n", xmlfilename); + return NULL; + } + + /* What is the root node of the document? */ + rootnode = xmlDocGetRootElement(doc); + + // force use of "C" locale when writing reals. + // first save away the current settings. + if (lorig == NULL) + fprintf(stderr, "error: couldn't get current locale\n"); + else { + int slen = strlen(lorig) + 1; + locale = (char*)malloc(slen); + if (locale != NULL) + memcpy(locale, lorig, slen); + } + if (setlocale(LC_NUMERIC, "C") == NULL) + fprintf(stderr, "error: couldn't set C locale\n"); + + /* Scan for <flame> nodes, starting with this node */ + bn = basename(xmlfilename); + + /* Have to use &loc_all_cp since the memory gets allocated in scan_for_flame_nodes */ + scan_for_flame_nodes(rootnode, bn, default_flag,&loc_all_cp,&loc_all_ncps); + + // restore locale + if (locale != NULL) { + if (setlocale(LC_NUMERIC, locale) == NULL) + fprintf(stderr, "error: couldn't replace locale settings\n"); + free(locale); + } + + xmlFreeDoc(doc); + + *ncps = loc_all_ncps; + + /* Check to see if the first control point or the second-to-last */ + /* control point has interpolation="smooth". This is invalid */ + /* and should be reset to linear (with a warning). */ + if (loc_all_ncps>=1) { + if (loc_all_cp[0].interpolation == flam3_interpolation_smooth) { + fprintf(stderr,"Warning: smooth interpolation cannot be used for first segment.\n" + " switching to linear.\n"); + loc_all_cp[0].interpolation = flam3_interpolation_linear; + } + } + + if (loc_all_ncps>=2) { + if (loc_all_cp[(loc_all_ncps)-2].interpolation == flam3_interpolation_smooth) { + fprintf(stderr,"Warning: smooth interpolation cannot be used for last segment.\n" + " switching to linear.\n"); + loc_all_cp[loc_all_ncps-2].interpolation = flam3_interpolation_linear; + } + } + + /* Finally, ensure that consecutive 'rotate' parameters never exceed */ + /* a difference of more than 180 degrees (+/-) for interpolation. */ + /* An adjustment of +/- 360 degrees is made until this is true. */ + if (*ncps>1) { + + for (i=1;i<*ncps;i++) { + + /* Only do this adjustment if we're not in compat mode */ + if (flam3_inttype_compat != loc_all_cp[i-1].interpolation_type + && flam3_inttype_older != loc_all_cp[i-1].interpolation_type) { + + while (loc_all_cp[i].rotate < loc_all_cp[i-1].rotate-180) + loc_all_cp[i].rotate += 360; + + while (loc_all_cp[i].rotate > loc_all_cp[i-1].rotate+180) + loc_all_cp[i].rotate -= 360; + } + } + } + + //Note that concurrent calls to flam3, if in parallel, potentially segfault + //if this function is called. technically it's required but it doesn't + //leak memory continuously. + //xmlCleanupParser(); + + return loc_all_cp; +} + +flam3_genome * flam3_parse_from_file(FILE *f, char *fname, int default_flag, int *ncps) { + int i, c, slen = 5000; + char *s, *snew; + flam3_genome *ret; + + /* Incrementally read XML file into a string */ + s = malloc(slen); + i = 0; + do { + c = getc(f); + if (EOF == c) + break; + s[i++] = c; + if (i == slen-1) { + slen *= 2; + snew = realloc(s, slen); + if (snew==NULL) { + fprintf(stderr,"XML file too large to be read - aborting.\n"); + free(s); + exit(1); + } else + s = snew; + } + } while (1); + + /* Null-terminate the read XML data */ + s[i] = 0; + + /* Parse the XML string */ + if (fname) + ret = flam3_parse_xml2(s, fname, default_flag, ncps); + else + ret = flam3_parse_xml2(s, "stdin", default_flag, ncps); + + free(s); + + return(ret); + +} + + +void flam3_apply_template(flam3_genome *cp, flam3_genome *templ) { + + /* Check for invalid values - only replace those with valid ones */ + if (templ->background[0] >= 0) + cp->background[0] = templ->background[0]; + if (templ->background[1] >= 0) + cp->background[1] = templ->background[1]; + if (templ->background[1] >= 0) + cp->background[2] = templ->background[2]; + if (templ->zoom < 999999998) + cp->zoom = templ->zoom; + if (templ->spatial_oversample > 0) + cp->spatial_oversample = templ->spatial_oversample; + if (templ->spatial_filter_radius >= 0) + cp->spatial_filter_radius = templ->spatial_filter_radius; + if (templ->sample_density > 0) + cp->sample_density = templ->sample_density; + if (templ->nbatches > 0) + cp->nbatches = templ->nbatches; + if (templ->ntemporal_samples > 0) + cp->ntemporal_samples = templ->ntemporal_samples; + if (templ->width > 0) { + /* preserving scale should be an option */ + cp->pixels_per_unit = cp->pixels_per_unit * templ->width / cp->width; + cp->width = templ->width; + } + if (templ->height > 0) + cp->height = templ->height; + if (templ->estimator >= 0) + cp->estimator = templ->estimator; + if (templ->estimator_minimum >= 0) + cp->estimator_minimum = templ->estimator_minimum; + if (templ->estimator_curve >= 0) + cp->estimator_curve = templ->estimator_curve; + if (templ->gam_lin_thresh >= 0) + cp->gam_lin_thresh = templ->gam_lin_thresh; + if (templ->nbatches>0) + cp->nbatches = templ->nbatches; + if (templ->ntemporal_samples>0) + cp->ntemporal_samples = templ->ntemporal_samples; + if (templ->spatial_filter_select>0) + cp->spatial_filter_select = templ->spatial_filter_select; + if (templ->interpolation >= 0) + cp->interpolation = templ->interpolation; + if (templ->interpolation_type >= 0) + cp->interpolation_type = templ->interpolation_type; + if (templ->temporal_filter_type >= 0) + cp->temporal_filter_type = templ->temporal_filter_type; + if (templ->temporal_filter_width > 0) + cp->temporal_filter_width = templ->temporal_filter_width; + if (templ->temporal_filter_exp > -900) + cp->temporal_filter_exp = templ->temporal_filter_exp; + if (templ->highlight_power >=0) + cp->highlight_power = templ->highlight_power; + if (templ->palette_mode >= 0) + cp->palette_mode = templ->palette_mode; + +} + +char *flam3_print_to_string(flam3_genome *cp) { + + FILE *tmpflame; + long stringbytes; + char *genome_string; + + tmpflame = tmpfile(); + flam3_print(tmpflame,cp,NULL,flam3_dont_print_edits); + stringbytes = ftell(tmpflame); + fseek(tmpflame,0L, SEEK_SET); + genome_string = (char *)calloc(stringbytes+1,1); + if (stringbytes != fread(genome_string, 1, stringbytes, tmpflame)) { + perror("FLAM3: reading string from temp file"); + } + fclose(tmpflame); + + return(genome_string); +} + + +void flam3_print(FILE *f, flam3_genome *cp, char *extra_attributes, int print_edits) { + int i,numstd; + int flam27_flag; + char *ai; + + // force use of "C" locale when writing reals. + // first save away the current settings. + char* locale = NULL; + char* lorig = setlocale(LC_NUMERIC, NULL); + if (lorig == NULL) + fprintf(stderr, "error: couldn't get current locale\n"); + else { + int slen = strlen(lorig) + 1; + locale = (char*)malloc(slen); + if (locale != NULL) + memcpy(locale, lorig, slen); + } + if (setlocale(LC_NUMERIC, "C") == NULL) + fprintf(stderr, "error: couldn't set C locale\n"); + + + flam27_flag = argi("flam27",0); + + fprintf(f, "<flame version=\"FLAM3-%s\" time=\"%g\"", flam3_version(),cp->time); + + if (cp->flame_name[0]!=0) + fprintf(f, " name=\"%s\"",cp->flame_name); + + fprintf(f, " size=\"%d %d\"", cp->width, cp->height); + fprintf(f, " center=\"%g %g\"", cp->center[0], cp->center[1]); + fprintf(f, " scale=\"%g\"", cp->pixels_per_unit); + + if (cp->zoom != 0.0) + fprintf(f, " zoom=\"%g\"", cp->zoom); + + fprintf(f, " rotate=\"%g\"", cp->rotate); + fprintf(f, " supersample=\"%d\"", cp->spatial_oversample); + fprintf(f, " filter=\"%g\"", cp->spatial_filter_radius); + + /* Need to print the correct kernel to use */ + if (cp->spatial_filter_select == flam3_gaussian_kernel) + fprintf(f, " filter_shape=\"gaussian\""); + else if (cp->spatial_filter_select == flam3_hermite_kernel) + fprintf(f, " filter_shape=\"hermite\""); + else if (cp->spatial_filter_select == flam3_box_kernel) + fprintf(f, " filter_shape=\"box\""); + else if (cp->spatial_filter_select == flam3_triangle_kernel) + fprintf(f, " filter_shape=\"triangle\""); + else if (cp->spatial_filter_select == flam3_bell_kernel) + fprintf(f, " filter_shape=\"bell\""); + else if (cp->spatial_filter_select == flam3_b_spline_kernel) + fprintf(f, " filter_shape=\"bspline\""); + else if (cp->spatial_filter_select == flam3_mitchell_kernel) + fprintf(f, " filter_shape=\"mitchell\""); + else if (cp->spatial_filter_select == flam3_blackman_kernel) + fprintf(f, " filter_shape=\"blackman\""); + else if (cp->spatial_filter_select == flam3_catrom_kernel) + fprintf(f, " filter_shape=\"catrom\""); + else if (cp->spatial_filter_select == flam3_hanning_kernel) + fprintf(f, " filter_shape=\"hanning\""); + else if (cp->spatial_filter_select == flam3_hamming_kernel) + fprintf(f, " filter_shape=\"hamming\""); + else if (cp->spatial_filter_select == flam3_lanczos3_kernel) + fprintf(f, " filter_shape=\"lanczos3\""); + else if (cp->spatial_filter_select == flam3_lanczos2_kernel) + fprintf(f, " filter_shape=\"lanczos2\""); + else if (cp->spatial_filter_select == flam3_quadratic_kernel) + fprintf(f, " filter_shape=\"quadratic\""); + + if (cp->temporal_filter_type == flam3_temporal_box) + fprintf(f, " temporal_filter_type=\"box\""); + else if (cp->temporal_filter_type == flam3_temporal_gaussian) + fprintf(f, " temporal_filter_type=\"gaussian\""); + else if (cp->temporal_filter_type == flam3_temporal_exp) + fprintf(f, " temporal_filter_type=\"exp\" temporal_filter_exp=\"%g\"",cp->temporal_filter_exp); + + fprintf(f, " temporal_filter_width=\"%g\"",cp->temporal_filter_width); + + + + fprintf(f, " quality=\"%g\"", cp->sample_density); + fprintf(f, " passes=\"%d\"", cp->nbatches); + fprintf(f, " temporal_samples=\"%d\"", cp->ntemporal_samples); + fprintf(f, " background=\"%g %g %g\"", + cp->background[0], cp->background[1], cp->background[2]); + fprintf(f, " brightness=\"%g\"", cp->brightness); + fprintf(f, " gamma=\"%g\"", cp->gamma); + + if (!flam27_flag) + fprintf(f, " highlight_power=\"%g\"", cp->highlight_power); + + fprintf(f, " vibrancy=\"%g\"", cp->vibrancy); + fprintf(f, " estimator_radius=\"%g\" estimator_minimum=\"%g\" estimator_curve=\"%g\"", + cp->estimator, cp->estimator_minimum, cp->estimator_curve); + fprintf(f, " gamma_threshold=\"%g\"", cp->gam_lin_thresh); + + if (flam3_palette_mode_step == cp->palette_mode) + fprintf(f, " palette_mode=\"step\""); + else if (flam3_palette_mode_linear == cp->palette_mode) + fprintf(f, " palette_mode=\"linear\""); + + if (flam3_interpolation_linear != cp->interpolation) + fprintf(f, " interpolation=\"smooth\""); + + if (flam3_inttype_linear == cp->interpolation_type) + fprintf(f, " interpolation_type=\"linear\""); + else if (flam3_inttype_log == cp->interpolation_type) + fprintf(f, " interpolation_type=\"log\""); + else if (flam3_inttype_compat == cp->interpolation_type) + fprintf(f, " interpolation_type=\"old\""); + else if (flam3_inttype_older == cp->interpolation_type) + fprintf(f, " interpolation_type=\"older\""); + + + if (flam3_palette_interpolation_hsv != cp->palette_interpolation) + fprintf(f, " palette_interpolation=\"sweep\""); + + if (extra_attributes) + fprintf(f, " %s", extra_attributes); + + fprintf(f, ">\n"); + + if (cp->symmetry) + fprintf(f, " <symmetry kind=\"%d\"/>\n", cp->symmetry); + + numstd = cp->num_xforms - (cp->final_xform_index>=0); + + for (i = 0; i < cp->num_xforms; i++) { + + if (i==cp->final_xform_index) + flam3_print_xform(f, &cp->xform[i], 1, numstd, NULL, 0); + else + flam3_print_xform(f, &cp->xform[i], 0, numstd, cp->chaos[i], 0); + + } + + for (i = 0; i < 256; i++) { + double r, g, b, a; + r = (cp->palette[i].color[0] * 255.0); + g = (cp->palette[i].color[1] * 255.0); + b = (cp->palette[i].color[2] * 255.0); + a = (cp->palette[i].color[3] * 255.0); + +// if (i%4 == 0) + fprintf(f, " "); + + if (flam27_flag || a==255.0) { + + if (flam27_flag && a!=255.0) + fprintf(stderr,"alpha channel in palette cannot be stored in 2.7 compatibility mode; truncating\n"); + + if (getenv("intpalette")) + fprintf(f, "<color index=\"%d\" rgb=\"%d %d %d\"/>", i, (int)rint(r), (int)rint(g), (int)rint(b)); + else { +#ifdef USE_FLOAT_INDICES + fprintf(f, "<color index=\"%.10g\" rgb=\"%.6g %.6g %.6g\"/>", cp->palette[i].index, r, g, b); +#else + fprintf(f, "<color index=\"%d\" rgb=\"%.6g %.6g %.6g\"/>", i, r, g, b); +#endif + } + } else { + if (getenv("intpalette")) + fprintf(f, " <color index=\"%d\" rgba=\"%d %d %d %d\"/>", i, (int)rint(r), (int)rint(g), (int)rint(b), (int)rint(a)); + else + fprintf(f, " <color index=\"%d\" rgba=\"%.6g %.6g %.6g %.6g\"/>", i, r, g, b, a); + } +// if (i%4 == 3) + fprintf(f, "\n"); + + } + + if (cp->edits != NULL && print_edits==flam3_print_edits) { + + /* We need a custom script for printing these */ + /* and it needs to be recursive */ + xmlNodePtr elem_node = xmlDocGetRootElement(cp->edits); + flam3_edit_print(f,elem_node, 1, 1); + } + fprintf(f, "</flame>\n"); + + if (locale != NULL) { + if (setlocale(LC_NUMERIC, locale) == NULL) + fprintf(stderr, "error: couldn't restore locale settings\n"); + free(locale); + } +} + +#define PRINTNON(p) do { if (x->p != 0.0) fprintf(f, #p "=\"%f\" ",x->p); } while(0) + + +void flam3_print_xform(FILE *f, flam3_xform *x, int final_flag, int numstd, double *chaos_row, int motion_flag) { + + int blob_var=0,pdj_var=0,fan2_var=0,rings2_var=0,perspective_var=0; + int juliaN_var=0,juliaScope_var=0,radialBlur_var=0,pie_var=0,disc2_var=0; + int ngon_var=0,curl_var=0,rectangles_var=0,supershape_var=0; + int flower_var=0,conic_var=0,parabola_var=0,bent2_var=0,bipolar_var=0; + int cell_var=0,cpow_var=0,curve_var=0,escher_var=0,lazys_var=0; + int modulus_var=0,oscope_var=0,popcorn2_var=0,separation_var=0; + int split_var=0,splits_var=0,stripes_var=0,wedge_var=0,wedgeJ_var=0; + int wedgeS_var=0,whorl_var=0,waves2_var=0,auger_var=0; + + int j; + int lnv; + + int flam27_flag; + char *ai; + + flam27_flag = argi("flam27",0); + + /* Motion flag will not be set if flam27_flag is set */ + if (motion_flag) { + fprintf(f, " <motion motion_frequency=\"%d\" ",x->motion_freq); + if (x->motion_func == MOTION_SIN) + fprintf(f, "motion_function=\"sin\" "); + else if (x->motion_func == MOTION_TRIANGLE) + fprintf(f, "motion_function=\"triangle\" "); + else if (x->motion_func == MOTION_HILL) + fprintf(f, "motion_function=\"hill\" "); + } else { + if (final_flag) + fprintf(f, " <finalxform "); + else + fprintf(f, " <xform weight=\"%g\" ", x->density); + } + + if (!motion_flag || x->color != 0.0) + fprintf(f, "color=\"%g\" ", x->color); + + if (flam27_flag) + fprintf(f, "symmetry=\"%g\" ", 1.0-2.0*x->color_speed); + else if (!motion_flag) + fprintf(f, "color_speed=\"%g\" ", x->color_speed); + + if (!final_flag && !motion_flag && !flam27_flag) + fprintf(f, "animate=\"%g\" ", x->animate); + + lnv = flam27_flag ? 54:flam3_nvariations; + + for (j = 0; j < lnv; j++) { + double v = x->var[j]; + if (0.0 != v) { + fprintf(f, "%s=\"%g\" ", flam3_variation_names[j], v); + if (j==VAR_BLOB) + blob_var=1; + else if (j==VAR_PDJ) + pdj_var=1; + else if (j==VAR_FAN2) + fan2_var=1; + else if (j==VAR_RINGS2) + rings2_var=1; + else if (j==VAR_PERSPECTIVE) + perspective_var=1; + else if (j==VAR_JULIAN) + juliaN_var=1; + else if (j==VAR_JULIASCOPE) + juliaScope_var=1; + else if (j==VAR_RADIAL_BLUR) + radialBlur_var=1; + else if (j==VAR_PIE) + pie_var=1; + else if (j==VAR_NGON) + ngon_var=1; + else if (j==VAR_CURL) + curl_var=1; + else if (j==VAR_RECTANGLES) + rectangles_var=1; + else if (j==VAR_DISC2) + disc2_var=1; + else if (j==VAR_SUPER_SHAPE) + supershape_var=1; + else if (j==VAR_FLOWER) + flower_var=1; + else if (j==VAR_CONIC) + conic_var=1; + else if (j==VAR_PARABOLA) + parabola_var=1; + else if (j==VAR_BENT2) + bent2_var=1; + else if (j==VAR_BIPOLAR) + bipolar_var=1; + else if (j==VAR_CELL) + cell_var=1; + else if (j==VAR_CPOW) + cpow_var=1; + else if (j==VAR_CURVE) + curve_var=1; + else if (j==VAR_ESCHER) + escher_var=1; + else if (j==VAR_LAZYSUSAN) + lazys_var=1; + else if (j==VAR_MODULUS) + modulus_var=1; + else if (j==VAR_OSCILLOSCOPE) + oscope_var=1; + else if (j==VAR_POPCORN2) + popcorn2_var=1; + else if (j==VAR_SPLIT) + split_var=1; + else if (j==VAR_SPLITS) + splits_var=1; + else if (j==VAR_STRIPES) + stripes_var=1; + else if (j==VAR_WEDGE) + wedge_var=1; + else if (j==VAR_WEDGE_JULIA) + wedgeJ_var=1; + else if (j==VAR_WEDGE_SPH) + wedgeS_var=1; + else if (j==VAR_WHORL) + whorl_var=1; + else if (j==VAR_WAVES2) + waves2_var=1; + else if (j==VAR_AUGER) + auger_var=1; + } + } + + if (!motion_flag) { + if (blob_var==1) { + fprintf(f, "blob_low=\"%g\" ", x->blob_low); + fprintf(f, "blob_high=\"%g\" ", x->blob_high); + fprintf(f, "blob_waves=\"%g\" ", x->blob_waves); + } + + if (pdj_var==1) { + fprintf(f, "pdj_a=\"%g\" ", x->pdj_a); + fprintf(f, "pdj_b=\"%g\" ", x->pdj_b); + fprintf(f, "pdj_c=\"%g\" ", x->pdj_c); + fprintf(f, "pdj_d=\"%g\" ", x->pdj_d); + } + + if (fan2_var==1) { + fprintf(f, "fan2_x=\"%g\" ", x->fan2_x); + fprintf(f, "fan2_y=\"%g\" ", x->fan2_y); + } + + if (rings2_var==1) { + fprintf(f, "rings2_val=\"%g\" ", x->rings2_val); + } + + if (perspective_var==1) { + fprintf(f, "perspective_angle=\"%g\" ", x->perspective_angle); + fprintf(f, "perspective_dist=\"%g\" ", x->perspective_dist); + } + + if (juliaN_var==1) { + fprintf(f, "julian_power=\"%g\" ", x->julian_power); + fprintf(f, "julian_dist=\"%g\" ", x->julian_dist); + } + + if (juliaScope_var==1) { + fprintf(f, "juliascope_power=\"%g\" ", x->juliascope_power); + fprintf(f, "juliascope_dist=\"%g\" ", x->juliascope_dist); + } + + if (radialBlur_var==1) { + fprintf(f, "radial_blur_angle=\"%g\" ", x->radial_blur_angle); + } + + if (pie_var==1) { + fprintf(f, "pie_slices=\"%g\" ", x->pie_slices); + fprintf(f, "pie_rotation=\"%g\" ", x->pie_rotation); + fprintf(f, "pie_thickness=\"%g\" ", x->pie_thickness); + } + + if (ngon_var==1) { + fprintf(f, "ngon_sides=\"%g\" ", x->ngon_sides); + fprintf(f, "ngon_power=\"%g\" ", x->ngon_power); + fprintf(f, "ngon_corners=\"%g\" ", x->ngon_corners); + fprintf(f, "ngon_circle=\"%g\" ", x->ngon_circle); + } + + if (curl_var==1) { + fprintf(f, "curl_c1=\"%g\" ", x->curl_c1); + fprintf(f, "curl_c2=\"%g\" ", x->curl_c2); + } + + if (rectangles_var==1) { + fprintf(f, "rectangles_x=\"%g\" ", x->rectangles_x); + fprintf(f, "rectangles_y=\"%g\" ", x->rectangles_y); + } + + if (disc2_var==1) { + fprintf(f, "disc2_rot=\"%g\" ", x->disc2_rot); + fprintf(f, "disc2_twist=\"%g\" ", x->disc2_twist); + } + + if (supershape_var==1) { + fprintf(f, "super_shape_rnd=\"%g\" ", x->super_shape_rnd); + fprintf(f, "super_shape_m=\"%g\" ", x->super_shape_m); + fprintf(f, "super_shape_n1=\"%g\" ", x->super_shape_n1); + fprintf(f, "super_shape_n2=\"%g\" ", x->super_shape_n2); + fprintf(f, "super_shape_n3=\"%g\" ", x->super_shape_n3); + fprintf(f, "super_shape_holes=\"%g\" ", x->super_shape_holes); + } + + if (flower_var==1) { + fprintf(f, "flower_petals=\"%g\" ", x->flower_petals); + fprintf(f, "flower_holes=\"%g\" ", x->flower_holes); + } + + if (conic_var==1) { + fprintf(f, "conic_eccentricity=\"%g\" ", x->conic_eccentricity); + fprintf(f, "conic_holes=\"%g\" ", x->conic_holes); + } + + if (parabola_var==1) { + fprintf(f, "parabola_height=\"%g\" ", x->parabola_height); + fprintf(f, "parabola_width=\"%g\" ", x->parabola_width); + } + + if (bent2_var==1) { + fprintf(f, "bent2_x=\"%g\" ", x->bent2_x); + fprintf(f, "bent2_y=\"%g\" ", x->bent2_y); + } + + if (bipolar_var==1) { + fprintf(f, "bipolar_shift=\"%g\" ", x->bipolar_shift); + } + + if (cell_var==1) { + fprintf(f, "cell_size=\"%g\" ", x->cell_size); + } + + if (cpow_var==1) { + fprintf(f, "cpow_i=\"%g\" ", x->cpow_i); + fprintf(f, "cpow_r=\"%g\" ", x->cpow_r); + fprintf(f, "cpow_power=\"%g\" ", x->cpow_power); + } + + if (curve_var==1) { + fprintf(f, "curve_xamp=\"%g\" ", x->curve_xamp); + fprintf(f, "curve_yamp=\"%g\" ", x->curve_yamp); + fprintf(f, "curve_xlength=\"%g\" ", x->curve_xlength); + fprintf(f, "curve_ylength=\"%g\" ", x->curve_ylength); + } + + if (escher_var==1) { + fprintf(f, "escher_beta=\"%g\" ", x->escher_beta); + } + + if (lazys_var==1) { + fprintf(f, "lazysusan_x=\"%g\" ", x->lazysusan_x); + fprintf(f, "lazysusan_y=\"%g\" ", x->lazysusan_y); + fprintf(f, "lazysusan_spin=\"%g\" ", x->lazysusan_spin); + fprintf(f, "lazysusan_space=\"%g\" ", x->lazysusan_space); + fprintf(f, "lazysusan_twist=\"%g\" ", x->lazysusan_twist); + } + + if (modulus_var==1) { + fprintf(f, "modulus_x=\"%g\" ", x->modulus_x); + fprintf(f, "modulus_y=\"%g\" ", x->modulus_y); + } + + if (oscope_var==1) { + fprintf(f, "oscilloscope_separation=\"%g\" ", x->oscope_separation); + fprintf(f, "oscilloscope_frequency=\"%g\" ", x->oscope_frequency); + fprintf(f, "oscilloscope_amplitude=\"%g\" ", x->oscope_amplitude); + fprintf(f, "oscilloscope_damping=\"%g\" ", x->oscope_damping); + } + + if (popcorn2_var==1) { + fprintf(f, "popcorn2_x=\"%g\" ", x->popcorn2_x); + fprintf(f, "popcorn2_y=\"%g\" ", x->popcorn2_y); + fprintf(f, "popcorn2_c=\"%g\" ", x->popcorn2_c); + } + + if (separation_var==1) { + fprintf(f, "separation_x=\"%g\" ", x->separation_x); + fprintf(f, "separation_y=\"%g\" ", x->separation_y); + fprintf(f, "separation_xinside=\"%g\" ", x->separation_xinside); + fprintf(f, "separation_yinside=\"%g\" ", x->separation_yinside); + } + + if (split_var==1) { + fprintf(f, "split_xsize=\"%g\" ", x->split_xsize); + fprintf(f, "split_ysize=\"%g\" ", x->split_ysize); + } + + if (splits_var==1) { + fprintf(f, "splits_x=\"%g\" ", x->splits_x); + fprintf(f, "splits_y=\"%g\" ", x->splits_y); + } + + if (stripes_var==1) { + fprintf(f, "stripes_space=\"%g\" ", x->stripes_space); + fprintf(f, "stripes_warp=\"%g\" ", x->stripes_warp); + } + + if (wedge_var==1) { + fprintf(f, "wedge_angle=\"%g\" ", x->wedge_angle); + fprintf(f, "wedge_hole=\"%g\" ", x->wedge_hole); + fprintf(f, "wedge_count=\"%g\" ", x->wedge_count); + fprintf(f, "wedge_swirl=\"%g\" ", x->wedge_swirl); + } + + if (wedgeJ_var==1) { + fprintf(f, "wedge_julia_angle=\"%g\" ", x->wedge_julia_angle); + fprintf(f, "wedge_julia_count=\"%g\" ", x->wedge_julia_count); + fprintf(f, "wedge_julia_power=\"%g\" ", x->wedge_julia_power); + fprintf(f, "wedge_julia_dist=\"%g\" ", x->wedge_julia_dist); + } + + if (wedgeS_var==1) { + fprintf(f, "wedge_sph_angle=\"%g\" ", x->wedge_sph_angle); + fprintf(f, "wedge_sph_hole=\"%g\" ", x->wedge_sph_hole); + fprintf(f, "wedge_sph_count=\"%g\" ", x->wedge_sph_count); + fprintf(f, "wedge_sph_swirl=\"%g\" ", x->wedge_sph_swirl); + } + + if (whorl_var==1) { + fprintf(f, "whorl_inside=\"%g\" ", x->whorl_inside); + fprintf(f, "whorl_outside=\"%g\" ", x->whorl_outside); + } + + if (waves2_var==1) { + fprintf(f, "waves2_scalex=\"%g\" ", x->waves2_scalex); + fprintf(f, "waves2_scaley=\"%g\" ", x->waves2_scaley); + fprintf(f, "waves2_freqx=\"%g\" ", x->waves2_freqx); + fprintf(f, "waves2_freqy=\"%g\" ", x->waves2_freqy); + } + + if (auger_var==1) { + fprintf(f, "auger_sym=\"%g\" ", x->auger_sym); + fprintf(f, "auger_weight=\"%g\" ", x->auger_weight); + fprintf(f, "auger_freq=\"%g\" ", x->auger_freq); + fprintf(f, "auger_scale=\"%g\" ", x->auger_scale); + } + + fprintf(f, "coefs=\""); + for (j = 0; j < 3; j++) { + if (j) fprintf(f, " "); + fprintf(f, "%g %g", x->c[j][0], x->c[j][1]); + } + fprintf(f, "\""); + + if (!id_matrix(x->post)) { + fprintf(f, " post=\""); + for (j = 0; j < 3; j++) { + if (j) fprintf(f, " "); + fprintf(f, "%g %g", x->post[j][0], x->post[j][1]); + } + fprintf(f, "\""); + } + + + } else { + /* For motion, print any parameter if it's nonzero */ + PRINTNON(blob_low); + PRINTNON(blob_high); + PRINTNON(blob_waves); + + PRINTNON(pdj_a); + PRINTNON(pdj_b); + PRINTNON(pdj_c); + PRINTNON(pdj_d); + + PRINTNON(fan2_x); + PRINTNON(fan2_y); + + PRINTNON(rings2_val); + + PRINTNON(perspective_angle); + PRINTNON(perspective_dist); + + PRINTNON(julian_power); + PRINTNON(julian_dist); + + PRINTNON(juliascope_power); + PRINTNON(juliascope_dist); + + PRINTNON(radial_blur_angle); + + PRINTNON(pie_slices); + PRINTNON(pie_rotation); + PRINTNON(pie_thickness); + + PRINTNON(ngon_sides); + PRINTNON(ngon_power); + PRINTNON(ngon_corners); + PRINTNON(ngon_circle); + + PRINTNON(curl_c1); + PRINTNON(curl_c2); + + PRINTNON(rectangles_x); + PRINTNON(rectangles_y); + + PRINTNON(disc2_rot); + PRINTNON(disc2_twist); + + PRINTNON(super_shape_rnd); + PRINTNON(super_shape_m); + PRINTNON(super_shape_n1); + PRINTNON(super_shape_n2); + PRINTNON(super_shape_n3); + PRINTNON(super_shape_holes); + + PRINTNON(flower_petals); + PRINTNON(flower_holes); + + PRINTNON(conic_eccentricity); + PRINTNON(conic_holes); + + PRINTNON(parabola_height); + PRINTNON(parabola_width); + + PRINTNON(bent2_x); + PRINTNON(bent2_y); + + PRINTNON(bipolar_shift); + + PRINTNON(cell_size); + + PRINTNON(cpow_i); + PRINTNON(cpow_r); + PRINTNON(cpow_power); + + PRINTNON(curve_xamp); + PRINTNON(curve_yamp); + PRINTNON(curve_xlength); + PRINTNON(curve_ylength); + + PRINTNON(escher_beta); + + PRINTNON(lazysusan_x); + PRINTNON(lazysusan_y); + PRINTNON(lazysusan_spin); + PRINTNON(lazysusan_space); + PRINTNON(lazysusan_twist); + + PRINTNON(modulus_x); + PRINTNON(modulus_y); + + PRINTNON(oscope_separation); + PRINTNON(oscope_frequency); + PRINTNON(oscope_amplitude); + PRINTNON(oscope_damping); + + PRINTNON(popcorn2_x); + PRINTNON(popcorn2_y); + PRINTNON(popcorn2_c); + + PRINTNON(separation_x); + PRINTNON(separation_y); + PRINTNON(separation_xinside); + PRINTNON(separation_yinside); + + PRINTNON(split_xsize); + PRINTNON(split_ysize); + + PRINTNON(splits_x); + PRINTNON(splits_y); + + PRINTNON(stripes_space); + PRINTNON(stripes_warp); + + PRINTNON(wedge_angle); + PRINTNON(wedge_hole); + PRINTNON(wedge_count); + PRINTNON(wedge_swirl); + + PRINTNON(wedge_julia_angle); + PRINTNON(wedge_julia_count); + PRINTNON(wedge_julia_power); + PRINTNON(wedge_julia_dist); + + PRINTNON(wedge_sph_angle); + PRINTNON(wedge_sph_hole); + PRINTNON(wedge_sph_count); + PRINTNON(wedge_sph_swirl); + + PRINTNON(whorl_inside); + PRINTNON(whorl_outside); + + PRINTNON(waves2_scalex); + PRINTNON(waves2_scaley); + PRINTNON(waves2_freqx); + PRINTNON(waves2_freqy); + + PRINTNON(auger_sym); + PRINTNON(auger_weight); + PRINTNON(auger_freq); + PRINTNON(auger_scale); + + if (!zero_matrix(x->c)) { + fprintf(f, "coefs=\""); + for (j = 0; j < 3; j++) { + if (j) fprintf(f, " "); + fprintf(f, "%g %g", x->c[j][0], x->c[j][1]); + } + fprintf(f, "\""); + } + + if (!zero_matrix(x->post)) { + fprintf(f, " post=\""); + for (j = 0; j < 3; j++) { + if (j) fprintf(f, " "); + fprintf(f, "%g %g", x->post[j][0], x->post[j][1]); + } + fprintf(f, "\""); + } + } + + if (!final_flag && !motion_flag && !flam27_flag) { + + /* Print out the chaos row for this xform */ + int numcols = numstd; + + while (numcols > 0 && chaos_row[numcols-1]==1.0) + numcols--; + + if (numcols>0) { + fprintf(f, " chaos=\""); + for (j=0;j<numcols;j++) + fprintf(f, "%g ",chaos_row[j]); + fprintf(f, "\""); + } + + + } + + if (!flam27_flag && !motion_flag) { + fprintf(f, " opacity=\"%g\"",x->opacity); + } + + if (!motion_flag && x->num_motion>0 && !flam27_flag) { + int nm; + + fprintf(f,">\n"); + + for (nm=0; nm<x->num_motion; nm++) + flam3_print_xform(f, &(x->motion[nm]), 0, 0, NULL, 1); + + fprintf(f," </xform>\n"); + } else + fprintf(f, "/>\n"); +} + + +/* returns a uniform variable from 0 to 1 */ +double flam3_random01() { + return (random() & 0xfffffff) / (double) 0xfffffff; +} + +double flam3_random11() { + return ((random() & 0xfffffff) - 0x7ffffff) / (double) 0x7ffffff; +} + +/* This function must be called prior to rendering a frame */ +void flam3_init_frame(flam3_frame *f) { + + char *ai; + char *isaac_seed = args("isaac_seed",NULL); + long int default_isaac_seed = (long int)time(0); + + /* Clear out the isaac state */ + memset(f->rc.randrsl, 0, RANDSIZ*sizeof(ub4)); + + /* Set the isaac seed */ + if (NULL == isaac_seed) { + int lp; + /* No isaac seed specified. Use the system time to initialize. */ + for (lp = 0; lp < RANDSIZ; lp++) + f->rc.randrsl[lp] = default_isaac_seed; + } else { + /* Use the specified string */ + strncpy((char *)&f->rc.randrsl,(const char *)isaac_seed, RANDSIZ*sizeof(ub4)); + } + + /* Initialize the random number generator */ + irandinit(&f->rc,1); +} + +/* returns uniform variable from ISAAC rng */ +double flam3_random_isaac_01(randctx *ct) { + return ((int)irand(ct) & 0xfffffff) / (double) 0xfffffff; +} + +double flam3_random_isaac_11(randctx *ct) { + return (((int)irand(ct) & 0xfffffff) - 0x7ffffff) / (double) 0x7ffffff; +} + +int flam3_random_bit() { + /* might not be threadsafe */ + static int n = 0; + static int l; + if (0 == n) { + l = random(); + n = 20; + } else { + l = l >> 1; + n--; + } + return l & 1; +} + +int flam3_random_isaac_bit(randctx *ct) { + int tmp = irand(ct); + return tmp & 1; +} + +static double round6(double x) { + x *= 1e6; + if (x < 0) x -= 1.0; + return 1e-6*(int)(x+0.5); +} + +/* sym=2 or more means rotational + sym=1 means identity, ie no symmetry + sym=0 means pick a random symmetry (maybe none) + sym=-1 means bilateral (reflection) + sym=-2 or less means rotational and reflective +*/ +void flam3_add_symmetry(flam3_genome *cp, int sym) { + int i, j, k; + double a; + int result = 0; + + if (0 == sym) { + static int sym_distrib[] = { + -4, -3, + -2, -2, -2, + -1, -1, -1, + 2, 2, 2, + 3, 3, + 4, 4, + }; + if (random()&1) { + sym = random_distrib(sym_distrib); + } else if (random()&31) { + sym = (random()%13)-6; + } else { + sym = (random()%51)-25; + } + } + + if (1 == sym || 0 == sym) return; + + cp->symmetry = sym; + + if (sym < 0) { + + i = cp->num_xforms; + flam3_add_xforms(cp,1,0,0); + + cp->xform[i].density = 1.0; + cp->xform[i].color_speed = 0.0; + cp->xform[i].animate = 0.0; + cp->xform[i].var[0] = 1.0; + for (j = 1; j < flam3_nvariations; j++) + cp->xform[i].var[j] = 0; + cp->xform[i].color = 1.0; + cp->xform[i].c[0][0] = -1.0; + cp->xform[i].c[0][1] = 0.0; + cp->xform[i].c[1][0] = 0.0; + cp->xform[i].c[1][1] = 1.0; + cp->xform[i].c[2][0] = 0.0; + cp->xform[i].c[2][1] = 0.0; + + result++; + sym = -sym; + } + + a = 2*M_PI/sym; + + for (k = 1; k < sym; k++) { + + i = cp->num_xforms; + flam3_add_xforms(cp, 1, 0,0); + + cp->xform[i].density = 1.0; + cp->xform[i].color_speed = 0.0; + cp->xform[i].animate = 0.0; + cp->xform[i].var[0] = 1.0; + for (j = 1; j < flam3_nvariations; j++) + cp->xform[i].var[j] = 0; + cp->xform[i].color = (sym<3) ? 0.0 : ((k-1.0)/(sym-2.0)); + cp->xform[i].c[0][0] = round6(cos(k*a)); + cp->xform[i].c[0][1] = round6(sin(k*a)); + cp->xform[i].c[1][0] = round6(-cp->xform[i].c[0][1]); + cp->xform[i].c[1][1] = cp->xform[i].c[0][0]; + cp->xform[i].c[2][0] = 0.0; + cp->xform[i].c[2][1] = 0.0; + + result++; + } + + qsort((char *) &cp->xform[cp->num_xforms-result], result, + sizeof(flam3_xform), compare_xforms); + +} + +void add_to_action(char *action, char *addtoaction) { + + /* action is a flam3_max_action_length array */ + if (action != NULL) { + + int alen = strlen(action); + int addlen = strlen(addtoaction); + + if (alen+addlen < flam3_max_action_length) + strcat(action,addtoaction); + else + fprintf(stderr,"action string too long, truncating...\n"); + } +} + + +void flam3_cross(flam3_genome *cp0, flam3_genome *cp1, flam3_genome *out, int cross_mode, randctx *rc, char *action) { + + int i0,i1, i,j, rb; + char ministr[10]; + + if (cross_mode == CROSS_NOT_SPECIFIED) { + + double s = flam3_random_isaac_01(rc); + + if (s < 0.1) + cross_mode = CROSS_UNION; + else if (s < 0.2) + cross_mode = CROSS_INTERPOLATE; + else + cross_mode = CROSS_ALTERNATE; + + } + + if (cross_mode == CROSS_UNION) { + + flam3_xform mycopy; + + /* Make a copy of cp0 */ + flam3_copy(out, cp0); + + for (j=0;j<cp1->num_xforms;j++) { + /* Skip over the final xform, if it's present. */ + /* Default behavior keeps the final from parent0. */ + if (cp1->final_xform_index == j) + continue; + flam3_add_xforms(out, 1, 0, 0); + flam3_copy_xform(&out->xform[out->num_xforms-1],&cp1->xform[j]); + } + + /* Put the final xform last (if there is one) */ + /* We do not need to do complicated xform copies here since we're just moving them around */ + if (out->final_xform_index >= 0) { + mycopy = out->xform[out->final_xform_index]; + out->xform[out->final_xform_index] = out->xform[out->num_xforms-1]; + out->xform[out->num_xforms-1] = mycopy; + out->final_xform_index = out->num_xforms-1; + } + + add_to_action(action,"cross union"); + + } else if (cross_mode == CROSS_INTERPOLATE) { + + /* linearly interpolate somewhere between the two */ + flam3_genome parents[2]; + double t = flam3_random_isaac_01(rc); + + memset(parents, 0, 2*sizeof(flam3_genome)); + + flam3_copy(&(parents[0]), cp0); + flam3_copy(&(parents[1]), cp1); + + parents[0].time = 0.0; + parents[1].time = 1.0; + flam3_interpolate(parents, 2, t, 0, out); + + for (i=0;i<out->num_xforms;i++) + flam3_delete_motion_elements(&out->xform[i]); + + clear_cp(&parents[0],flam3_defaults_on); + clear_cp(&parents[1],flam3_defaults_on); + + sprintf(ministr,"%7.5g",t); + + add_to_action(action,"cross interpolate "); + add_to_action(action,ministr); + + } else { + + /* alternate mode */ + int got0, got1, used_parent; + char *trystr; + + trystr = calloc(4 * (cp0->num_xforms + cp1->num_xforms), sizeof(char)); + + /* each xform comes from a random parent, possible for an entire parent to be excluded */ + do { + + trystr[0] = 0; + got0 = got1 = 0; + rb = flam3_random_isaac_bit(rc); + sprintf(ministr,"%d:",rb); + strcat(trystr,ministr); + + /* Copy the parent, sorting the final xform to the end if it's present. */ + if (rb) + flam3_copyx(out, cp1, cp1->num_xforms - (cp1->final_xform_index > 0), cp1->final_xform_enable); + else + flam3_copyx(out, cp0, cp0->num_xforms - (cp0->final_xform_index > 0), cp0->final_xform_enable); + + used_parent = rb; + + /* Only replace non-final xforms */ + + for (i = 0; i < out->num_xforms - out->final_xform_enable; i++) { + rb = flam3_random_isaac_bit(rc); + + /* Replace xform if bit is 1 */ + if (rb==1) { + if (used_parent==0) { + if (i < cp1->num_xforms && cp1->xform[i].density > 0) { + flam3_copy_xform(&out->xform[i],&cp1->xform[i]); + sprintf(ministr," 1"); + got1 = 1; + } else { + sprintf(ministr," 0"); + got0 = 1; + } + } else { + if (i < cp0->num_xforms && cp0->xform[i].density > 0) { + flam3_copy_xform(&out->xform[i],&cp0->xform[i]); + sprintf(ministr," 0"); + got0 = 1; + } else { + sprintf(ministr," 1"); + got1 = 1; + } + } + } else { + sprintf(ministr," %d",used_parent); + if (used_parent) + got1 = 1; + else + got0 = 1; + } + + strcat(trystr,ministr); + } + + if (used_parent==0 && cp0->final_xform_enable) + got0 = 1; + else if (used_parent==1 && cp1->final_xform_enable) + got1 = 1; + + } while ((i > 1) && !(got0 && got1)); + + add_to_action(action,"cross alternate "); + add_to_action(action,trystr); + + free(trystr); + } + + /* reset color coords */ + for (i = 0; i < out->num_xforms; i++) { + out->xform[i].color = i&1; + } + + /* Potentially genetically cross the two colormaps together */ + if (flam3_random_isaac_01(rc) < 0.4) { + + /* Select the starting parent */ + int startParent=flam3_random_isaac_bit(rc); + int ci; + + add_to_action(action," cmap_cross"); + sprintf(ministr," %d:",startParent); + add_to_action(action,ministr); + + /* Loop over the entries, switching to the other parent 1% of the time */ + for (ci=0;ci<256;ci++) { + if (flam3_random_isaac_01(rc)<.01) { + startParent = 1-startParent; + sprintf(ministr," %d",ci); + add_to_action(action,ministr); + } + + out->palette[ci] = startParent ? cp1->palette[ci]: cp0->palette[ci]; + } + } + +} + +void flam3_mutate(flam3_genome *cp, int mutate_mode, int *ivars, int ivars_n, int sym, double speed, randctx *rc, char *action) { + + double randselect; + flam3_genome mutation; + int i,j,done; + char ministr[30]; + + /* If mutate_mode = -1, choose a random mutation mode */ + if (mutate_mode == MUTATE_NOT_SPECIFIED) { + + randselect = flam3_random_isaac_01(rc); + + if (randselect < 0.1) + mutate_mode = MUTATE_ALL_VARIATIONS; + else if (randselect < 0.3) + mutate_mode = MUTATE_ONE_XFORM_COEFS; + else if (randselect < 0.5) + mutate_mode = MUTATE_ADD_SYMMETRY; + else if (randselect < 0.6) + mutate_mode = MUTATE_POST_XFORMS; + else if (randselect < 0.7) + mutate_mode = MUTATE_COLOR_PALETTE; + else if (randselect < 0.8) + mutate_mode = MUTATE_DELETE_XFORM; + else + mutate_mode = MUTATE_ALL_COEFS; + + } + + memset(&mutation, 0, sizeof(flam3_genome)); + + if (mutate_mode == MUTATE_ALL_VARIATIONS) { + + add_to_action(action,"mutate all variations"); + + do { + /* Create a random flame, and use the variations */ + /* to replace those in the original */ + flam3_random(&mutation, ivars, ivars_n, sym, cp->num_xforms); + for (i = 0; i < cp->num_xforms; i++) { + for (j = 0; j < flam3_nvariations; j++) { + if (cp->xform[i].var[j] != mutation.xform[i].var[j]) { + + /* Copy the new var weights */ + cp->xform[i].var[j] = mutation.xform[i].var[j]; + + /* Copy parameters for this variation only */ + flam3_copy_params(&(cp->xform[i]),&(mutation.xform[i]),j); + + done = 1; + } + } + } + } while (!done); + + } else if (mutate_mode == MUTATE_ONE_XFORM_COEFS) { + + int modxf; + + /* Generate a 2-xform random */ + flam3_random(&mutation, ivars, ivars_n, sym, 2); + + /* Which xform do we mutate? */ + modxf = ((unsigned)irand(rc)) % cp->num_xforms; + + add_to_action(action,"mutate xform "); + sprintf(ministr,"%d coefs",modxf); + add_to_action(action,ministr); + + /* if less than 3 xforms, then change only the translation part */ + if (2 >= cp->num_xforms) { + for (j = 0; j < 2; j++) + cp->xform[modxf].c[2][j] = mutation.xform[0].c[2][j]; + } else { + for (i = 0; i < 3; i++) + for (j = 0; j < 2; j++) + cp->xform[modxf].c[i][j] = mutation.xform[0].c[i][j]; + } + + } else if (mutate_mode == MUTATE_ADD_SYMMETRY) { + + add_to_action(action,"mutate symmetry"); + flam3_add_symmetry(cp, 0); + + } else if (mutate_mode == MUTATE_POST_XFORMS) { + + int b = 1 + ((unsigned)irand(rc))%6; + int same = ((unsigned)irand(rc))&3; /* 25% chance of using the same post for all of them */ + + sprintf(ministr,"(%d%s)",b,(same>0) ? " same" : ""); + add_to_action(action,"mutate post xforms "); + add_to_action(action,ministr); + for (i = 0; i < cp->num_xforms; i++) { + int copy = (i > 0) && same; + + if (copy) { /* Copy the post from the first xform to the rest of them */ + for (j = 0; j < 3; j++) { + cp->xform[i].post[j][0] = cp->xform[0].post[j][0]; + cp->xform[i].post[j][1] = cp->xform[0].post[j][1]; + } + + } else { + + if (b&1) { /* 50% chance */ + + double f = M_PI * flam3_random_isaac_11(rc); + double t[2][2]; + + t[0][0] = (cp->xform[i].c[0][0] * cos(f) + cp->xform[i].c[0][1] * -sin(f)); + t[0][1] = (cp->xform[i].c[0][0] * sin(f) + cp->xform[i].c[0][1] * cos(f)); + t[1][0] = (cp->xform[i].c[1][0] * cos(f) + cp->xform[i].c[1][1] * -sin(f)); + t[1][1] = (cp->xform[i].c[1][0] * sin(f) + cp->xform[i].c[1][1] * cos(f)); + + cp->xform[i].c[0][0] = t[0][0]; + cp->xform[i].c[0][1] = t[0][1]; + cp->xform[i].c[1][0] = t[1][0]; + cp->xform[i].c[1][1] = t[1][1]; + + f *= -1.0; + + t[0][0] = (cp->xform[i].post[0][0] * cos(f) + cp->xform[i].post[0][1] * -sin(f)); + t[0][1] = (cp->xform[i].post[0][0] * sin(f) + cp->xform[i].post[0][1] * cos(f)); + t[1][0] = (cp->xform[i].post[1][0] * cos(f) + cp->xform[i].post[1][1] * -sin(f)); + t[1][1] = (cp->xform[i].post[1][0] * sin(f) + cp->xform[i].post[1][1] * cos(f)); + + cp->xform[i].post[0][0] = t[0][0]; + cp->xform[i].post[0][1] = t[0][1]; + cp->xform[i].post[1][0] = t[1][0]; + cp->xform[i].post[1][1] = t[1][1]; + + } + + if (b&2) { /* 33% chance */ + + double f = 0.2 + flam3_random_isaac_01(rc); + double g = 0.2 + flam3_random_isaac_01(rc); + + if (flam3_random_isaac_bit(rc)) + f = 1.0 / f; + + if (flam3_random_isaac_bit(rc)) + g = f; + else { + if (flam3_random_isaac_bit(rc)) + g = 1.0 / g; + } + + cp->xform[i].c[0][0] /= f; + cp->xform[i].c[0][1] /= f; + cp->xform[i].c[1][1] /= g; + cp->xform[i].c[1][0] /= g; + cp->xform[i].post[0][0] *= f; + cp->xform[i].post[1][0] *= f; + cp->xform[i].post[0][1] *= g; + cp->xform[i].post[1][1] *= g; + } + + if (b&4) { /* 16% chance */ + + double f = flam3_random_isaac_11(rc); + double g = flam3_random_isaac_11(rc); + + cp->xform[i].c[2][0] -= f; + cp->xform[i].c[2][1] -= g; + cp->xform[i].post[2][0] += f; + cp->xform[i].post[2][1] += g; + } + } + } + } else if (mutate_mode == MUTATE_COLOR_PALETTE) { + + double s = flam3_random_isaac_01(rc); + + if (s < 0.4) { /* randomize xform color coords */ + + flam3_improve_colors(cp, 100, 0, 10); + add_to_action(action,"mutate color coords"); + + } else if (s < 0.8) { /* randomize xform color coords and palette */ + + flam3_improve_colors(cp, 25, 1, 10); + add_to_action(action,"mutate color all"); + + } else { /* randomize palette only */ + + cp->palette_index = flam3_get_palette(flam3_palette_random, cp->palette, cp->hue_rotation); + add_to_action(action,"mutate color palette"); + + } + } else if (mutate_mode == MUTATE_DELETE_XFORM) { + + int nx = ((unsigned)irand(rc))%cp->num_xforms; + sprintf(ministr,"%d",nx); + add_to_action(action,"mutate delete xform "); + add_to_action(action,ministr); + + if (cp->num_xforms > 1) + flam3_delete_xform(cp,nx); + + } else { /* MUTATE_ALL_COEFS */ + + int x; + add_to_action(action,"mutate all coefs"); + flam3_random(&mutation, ivars, ivars_n, sym, cp->num_xforms); + + /* change all the coefs by a fraction of the random */ + for (x = 0; x < cp->num_xforms; x++) { + for (i = 0; i < 3; i++) { + for (j = 0; j < 2; j++) { + cp->xform[x].c[i][j] += speed * mutation.xform[x].c[i][j]; + + } + } + /* Eventually, we can mutate the parametric variation coefs here. */ + } + } + + clear_cp(&mutation,flam3_defaults_on); + +} + +static int random_var() { + return random() % flam3_nvariations; +} + +static int random_varn(int n) { + return random() % n; +} + +void flam3_random(flam3_genome *cp, int *ivars, int ivars_n, int sym, int spec_xforms) { + + int i, j, nxforms, var, samed, multid, samepost, postid, addfinal=0; + int finum = -1; + int n; + char *ai; + int f27 = argi("flam27",0); + int mvar = f27 ? 54 : flam3_nvariations; + double sum; + + static int xform_distrib[] = { + 2, 2, 2, 2, + 3, 3, 3, 3, + 4, 4, 4, + 5, 5, + 6 + }; + + clear_cp(cp,flam3_defaults_on); + + cp->hue_rotation = (random()&7) ? 0.0 : flam3_random01(); + cp->palette_index = flam3_get_palette(flam3_palette_random, cp->palette, cp->hue_rotation); + cp->time = 0.0; + cp->interpolation = flam3_interpolation_linear; + cp->palette_interpolation = flam3_palette_interpolation_hsv; + + /* Choose the number of xforms */ + if (spec_xforms>0) { + nxforms = spec_xforms; + flam3_add_xforms(cp,nxforms,0,0); + } else { + nxforms = random_distrib(xform_distrib); + flam3_add_xforms(cp,nxforms,0,0); + /* Add a final xform 15% of the time */ + addfinal = flam3_random01() < 0.15; + if (addfinal) { + flam3_add_xforms(cp,1,0,1); + nxforms = nxforms + addfinal; + finum = nxforms-1; + } + } + + /* If first input variation is 'flam3_variation_random' */ + /* choose one to use or decide to use multiple */ + if (flam3_variation_random == ivars[0]) { + if (flam3_random_bit()) { + var = random_varn(mvar); + } else { + var = flam3_variation_random; + } + } else { + var = flam3_variation_random_fromspecified; + } + + samed = flam3_random_bit(); + multid = flam3_random_bit(); + postid = flam3_random01() < 0.6; + samepost = flam3_random_bit(); + + /* Loop over xforms */ + for (i = 0; i < nxforms; i++) { + int j, k; + cp->xform[i].density = 1.0 / nxforms; + cp->xform[i].color = i&1; + cp->xform[i].color_speed = 0.5; + cp->xform[i].animate = 1.0; + for (j = 0; j < 3; j++) { + for (k = 0; k < 2; k++) { + cp->xform[i].c[j][k] = flam3_random11(); + cp->xform[i].post[j][k] = (double)(k==j); + } + } + + if ( i != finum ) { + + if (!postid) { + + for (j = 0; j < 3; j++) + for (k = 0; k < 2; k++) { + if (samepost || (i==0)) + cp->xform[i].post[j][k] = flam3_random11(); + else + cp->xform[i].post[j][k] = cp->xform[0].post[j][k]; + } + } + + /* Clear all variation coefs */ + for (j = 0; j < flam3_nvariations; j++) + cp->xform[i].var[j] = 0.0; + + if (flam3_variation_random != var && + flam3_variation_random_fromspecified != var) { + + /* Use only one variation specified for all xforms */ + cp->xform[i].var[var] = 1.0; + + } else if (multid && flam3_variation_random == var) { + + /* Choose a random var for this xform */ + cp->xform[i].var[random_varn(mvar)] = 1.0; + + } else { + + if (samed && i > 0) { + + /* Copy the same variations from the previous xform */ + for (j = 0; j < flam3_nvariations; j++) { + cp->xform[i].var[j] = cp->xform[i-1].var[j]; + flam3_copy_params(&(cp->xform[i]),&(cp->xform[i-1]),j); + } + + } else { + + /* Choose a random number of vars to use, at least 2 */ + /* but less than flam3_nvariations.Probability leans */ + /* towards fewer variations. */ + n = 2; + while ((flam3_random_bit()) && (n<mvar)) + n++; + + /* Randomly choose n variations, and change their weights. */ + /* A var can be selected more than once, further reducing */ + /* the probability that multiple vars are used. */ + for (j = 0; j < n; j++) { + if (flam3_variation_random_fromspecified != var) + cp->xform[i].var[random_varn(mvar)] = flam3_random01(); + else + cp->xform[i].var[ivars[random_varn(ivars_n)]] = flam3_random01(); + } + + /* Normalize weights to 1.0 total. */ + sum = 0.0; + for (j = 0; j < flam3_nvariations; j++) + sum += cp->xform[i].var[j]; + if (sum == 0.0) + cp->xform[i].var[random_var()] = 1.0; + else { + for (j = 0; j < flam3_nvariations; j++) + cp->xform[i].var[j] /= sum; + } + } + } + } else { + /* Handle final xform randomness. */ + n = 1; + if (flam3_random_bit()) n++; + + /* Randomly choose n variations, and change their weights. */ + /* A var can be selected more than once, further reducing */ + /* the probability that multiple vars are used. */ + for (j = 0; j < n; j++) { + if (flam3_variation_random_fromspecified != var) + cp->xform[i].var[random_varn(mvar)] = flam3_random01(); + else + cp->xform[i].var[ivars[random_varn(ivars_n)]] = flam3_random01(); + } + + /* Normalize weights to 1.0 total. */ + sum = 0.0; + for (j = 0; j < flam3_nvariations; j++) + sum += cp->xform[i].var[j]; + if (sum == 0.0) + cp->xform[i].var[random_var()] = 1.0; + else { + for (j = 0; j < flam3_nvariations; j++) + cp->xform[i].var[j] /= sum; + } + } + + /* Generate random params for parametric variations, if selected. */ + if (cp->xform[i].var[VAR_BLOB] > 0) { + /* Create random params for blob */ + cp->xform[i].blob_low = 0.2 + 0.5 * flam3_random01(); + cp->xform[i].blob_high = 0.8 + 0.4 * flam3_random01(); + cp->xform[i].blob_waves = (int)(2 + 5 * flam3_random01()); + } + + if (cp->xform[i].var[VAR_PDJ] > 0) { + /* Create random params for PDJ */ + cp->xform[i].pdj_a = 3.0 * flam3_random11(); + cp->xform[i].pdj_b = 3.0 * flam3_random11(); + cp->xform[i].pdj_c = 3.0 * flam3_random11(); + cp->xform[i].pdj_d = 3.0 * flam3_random11(); + } + + if (cp->xform[i].var[VAR_FAN2] > 0) { + /* Create random params for fan2 */ + cp->xform[i].fan2_x = flam3_random11(); + cp->xform[i].fan2_y = flam3_random11(); + } + + if (cp->xform[i].var[VAR_RINGS2] > 0) { + /* Create random params for rings2 */ + cp->xform[i].rings2_val = 2*flam3_random01(); + } + + if (cp->xform[i].var[VAR_PERSPECTIVE] > 0) { + + /* Create random params for perspective */ + cp->xform[i].perspective_angle = flam3_random01(); + cp->xform[i].perspective_dist = 2*flam3_random01() + 1.0; + + } + + if (cp->xform[i].var[VAR_JULIAN] > 0) { + + /* Create random params for julian */ + cp->xform[i].julian_power = (int)(5*flam3_random01() + 2); + cp->xform[i].julian_dist = 1.0; + + } + + if (cp->xform[i].var[VAR_JULIASCOPE] > 0) { + + /* Create random params for juliaScope */ + cp->xform[i].juliascope_power = (int)(5*flam3_random01() + 2); + cp->xform[i].juliascope_dist = 1.0; + + } + + if (cp->xform[i].var[VAR_RADIAL_BLUR] > 0) { + + /* Create random params for radialBlur */ + cp->xform[i].radial_blur_angle = (2 * flam3_random01() - 1); + + } + + if (cp->xform[i].var[VAR_PIE] > 0) { + /* Create random params for pie */ + cp->xform[i].pie_slices = (int) 10.0*flam3_random01(); + cp->xform[i].pie_thickness = flam3_random01(); + cp->xform[i].pie_rotation = 2.0 * M_PI * flam3_random11(); + } + + if (cp->xform[i].var[VAR_NGON] > 0) { + /* Create random params for ngon */ + cp->xform[i].ngon_sides = (int) flam3_random01()* 10 + 3; + cp->xform[i].ngon_power = 3*flam3_random01() + 1; + cp->xform[i].ngon_circle = 3*flam3_random01(); + cp->xform[i].ngon_corners = 2*flam3_random01()*cp->xform[i].ngon_circle; + } + + if (cp->xform[i].var[VAR_CURL] > 0) { + /* Create random params for curl */ + cp->xform[i].curl_c1 = flam3_random01(); + cp->xform[i].curl_c2 = flam3_random01(); + } + + if (cp->xform[i].var[VAR_RECTANGLES] > 0) { + /* Create random params for rectangles */ + cp->xform[i].rectangles_x = flam3_random01(); + cp->xform[i].rectangles_y = flam3_random01(); + } + + if (cp->xform[i].var[VAR_DISC2] > 0) { + /* Create random params for disc2 */ + cp->xform[i].disc2_rot = 0.5 * flam3_random01(); + cp->xform[i].disc2_twist = 0.5 * flam3_random01(); + + } + + if (cp->xform[i].var[VAR_SUPER_SHAPE] > 0) { + /* Create random params for supershape */ + cp->xform[i].super_shape_rnd = flam3_random01(); + cp->xform[i].super_shape_m = (int) flam3_random01()*6; + cp->xform[i].super_shape_n1 = flam3_random01()*40; + cp->xform[i].super_shape_n2 = flam3_random01()*20; + cp->xform[i].super_shape_n3 = cp->xform[i].super_shape_n2; + cp->xform[i].super_shape_holes = 0.0; + } + + if (cp->xform[i].var[VAR_FLOWER] > 0) { + /* Create random params for flower */ + cp->xform[i].flower_petals = 4 * flam3_random01(); + cp->xform[i].flower_holes = flam3_random01(); + } + + if (cp->xform[i].var[VAR_CONIC] > 0) { + /* Create random params for conic */ + cp->xform[i].conic_eccentricity = flam3_random01(); + cp->xform[i].conic_holes = flam3_random01(); + } + + if (cp->xform[i].var[VAR_PARABOLA] > 0) { + /* Create random params for parabola */ + cp->xform[i].parabola_height = 0.5 + flam3_random01(); + cp->xform[i].parabola_width = 0.5 + flam3_random01(); + } + + if (cp->xform[i].var[VAR_BENT2] > 0) { + /* Create random params for bent2 */ + cp->xform[i].bent2_x = 3*(-0.5 + flam3_random01()); + cp->xform[i].bent2_y = 3*(-0.5 + flam3_random01()); + } + + if (cp->xform[i].var[VAR_BIPOLAR] > 0) { + /* Create random params for bipolar */ + cp->xform[i].bipolar_shift = 2.0 * flam3_random01() - 1; + } + + if (cp->xform[i].var[VAR_CELL] > 0) { + /* Create random params for cell */ + cp->xform[i].cell_size = 2.0 * flam3_random01() + 0.5; + } + + if (cp->xform[i].var[VAR_CPOW] > 0) { + /* Create random params for cpow */ + cp->xform[i].cpow_r = 3.0 * flam3_random01(); + cp->xform[i].cpow_i = flam3_random01() - 0.5; + cp->xform[i].cpow_power = (int)(5.0 * flam3_random01()); + } + + if (cp->xform[i].var[VAR_CURVE] > 0) { + /* Create random params for curve */ + cp->xform[i].curve_xamp = 5 * (flam3_random01()-.5); + cp->xform[i].curve_yamp = 4 * (flam3_random01()-.5); + cp->xform[i].curve_xlength = 2 * (flam3_random01()+.5); + cp->xform[i].curve_ylength = 2 * (flam3_random01()+.5); + } + + if (cp->xform[i].var[VAR_ESCHER] > 0) { + /* Create random params for escher */ + cp->xform[i].escher_beta = M_PI * flam3_random11(); + } + + if (cp->xform[i].var[VAR_LAZYSUSAN] > 0) { + /* Create random params for lazysusan */ + cp->xform[i].lazysusan_x = 2.0*flam3_random11(); + cp->xform[i].lazysusan_y = 2.0*flam3_random11(); + cp->xform[i].lazysusan_spin = M_PI*flam3_random11(); + cp->xform[i].lazysusan_space = 2.0*flam3_random11(); + cp->xform[i].lazysusan_twist = 2.0*flam3_random11(); + } + + if (cp->xform[i].var[VAR_MODULUS] > 0) { + /* Create random params for modulus */ + cp->xform[i].modulus_x = flam3_random11(); + cp->xform[i].modulus_y = flam3_random11(); + } + + if (cp->xform[i].var[VAR_OSCILLOSCOPE] > 0) { + /* Create random params for oscope */ + cp->xform[i].oscope_separation = 1.0 + flam3_random11(); + cp->xform[i].oscope_frequency = M_PI * flam3_random11(); + cp->xform[i].oscope_amplitude = 1.0 + 2 * flam3_random01(); + cp->xform[i].oscope_damping = flam3_random01(); + } + + if (cp->xform[i].var[VAR_POPCORN2] > 0) { + /* Create random params for popcorn2 */ + cp->xform[i].popcorn2_x = 0.2 * flam3_random01(); + cp->xform[i].popcorn2_y = 0.2 * flam3_random01(); + cp->xform[i].popcorn2_c = 5 * flam3_random01(); + } + + if (cp->xform[i].var[VAR_SEPARATION] > 0) { + /* Create random params for separation */ + cp->xform[i].separation_x = 1 + flam3_random11(); + cp->xform[i].separation_y = 1 + flam3_random11(); + cp->xform[i].separation_xinside = flam3_random11(); + cp->xform[i].separation_yinside = flam3_random11(); + } + + if (cp->xform[i].var[VAR_SPLIT] > 0) { + /* Create random params for split */ + cp->xform[i].split_xsize = flam3_random11(); + cp->xform[i].split_ysize = flam3_random11(); + } + + if (cp->xform[i].var[VAR_SPLITS] > 0) { + /* Create random params for splits */ + cp->xform[i].splits_x = flam3_random11(); + cp->xform[i].splits_y = flam3_random11(); + } + + if (cp->xform[i].var[VAR_STRIPES] > 0) { + /* Create random params for stripes */ + cp->xform[i].stripes_space = flam3_random01(); + cp->xform[i].stripes_warp = 5*flam3_random01(); + } + + if (cp->xform[i].var[VAR_WEDGE] > 0) { + /* Create random params for wedge */ + cp->xform[i].wedge_angle = M_PI*flam3_random01(); + cp->xform[i].wedge_hole = 0.5*flam3_random11(); + cp->xform[i].wedge_count = floor(5*flam3_random01())+1; + cp->xform[i].wedge_swirl = flam3_random01(); + } + + if (cp->xform[i].var[VAR_WEDGE_JULIA] > 0) { + + /* Create random params for wedge_julia */ + cp->xform[i].wedge_julia_power = (int)(5*flam3_random01() + 2); + cp->xform[i].wedge_julia_dist = 1.0; + cp->xform[i].wedge_julia_count = (int)(3*flam3_random01() + 1); + cp->xform[i].wedge_julia_angle = M_PI * flam3_random01(); + + } + + if (cp->xform[i].var[VAR_WEDGE_SPH] > 0) { + /* Create random params for wedge_sph */ + cp->xform[i].wedge_sph_angle = M_PI*flam3_random01(); + cp->xform[i].wedge_sph_hole = 0.5*flam3_random11(); + cp->xform[i].wedge_sph_count = floor(5*flam3_random01())+1; + cp->xform[i].wedge_sph_swirl = flam3_random01(); + } + + if (cp->xform[i].var[VAR_WHORL] > 0) { + /* Create random params for whorl */ + cp->xform[i].whorl_inside = flam3_random01(); + cp->xform[i].whorl_outside = flam3_random01(); + } + + if (cp->xform[i].var[VAR_WAVES2] > 0) { + /* Create random params for waves2 */ + cp->xform[i].waves2_scalex = 0.5 + flam3_random01(); + cp->xform[i].waves2_scaley = 0.5 + flam3_random01(); + cp->xform[i].waves2_freqx = 4 * flam3_random01(); + cp->xform[i].waves2_freqy = 4 * flam3_random01(); + } + + if (cp->xform[i].var[VAR_AUGER] > 0) { + /* Create random params for auger */ + cp->xform[i].auger_sym = 0; + cp->xform[i].auger_weight = 0.5 + flam3_random01()/2.0; + cp->xform[i].auger_freq = floor(5*flam3_random01())+1; + cp->xform[i].auger_scale = flam3_random01(); + } + + } + + /* Randomly add symmetry (but not if we've already added a final xform) */ + if (sym || (!(random()%4) && !addfinal)) + flam3_add_symmetry(cp, sym); + else + cp->symmetry = 0; + + //qsort((char *) cp->xform, (cp->num_xforms-addfinal), sizeof(flam3_xform), compare_xforms); + + +} + + +static int sort_by_x(const void *av, const void *bv) { + double *a = (double *) av; + double *b = (double *) bv; + if (a[0] < b[0]) return -1; + if (a[0] > b[0]) return 1; + return 0; +} + +static int sort_by_y(const void *av, const void *bv) { + double *a = (double *) av; + double *b = (double *) bv; + if (a[1] < b[1]) return -1; + if (a[1] > b[1]) return 1; + return 0; +} + + +/* Memory helper functions because + + Python on Windows uses the MSVCR71.dll version of the C Runtime and + mingw uses the MSVCRT.dll version. */ + +void *flam3_malloc(size_t size) { + + return (malloc(size)); + +} + +void flam3_free(void *ptr) { + + free(ptr); + +} + +/* + * find a 2d bounding box that does not enclose eps of the fractal density + * in each compass direction. + */ +int flam3_estimate_bounding_box(flam3_genome *cp, double eps, int nsamples, + double *bmin, double *bmax, randctx *rc) { + int i; + int low_target, high_target; + double min[2], max[2]; + double *points; + int bv; + unsigned short *xform_distrib; + + if (nsamples <= 0) nsamples = 10000; + + points = (double *) malloc(sizeof(double) * 4 * nsamples); + points[0] = flam3_random_isaac_11(rc); + points[1] = flam3_random_isaac_11(rc); + points[2] = 0.0; + points[3] = 0.0; + + if (prepare_xform_fn_ptrs(cp,rc)) + return(-1); + xform_distrib = flam3_create_xform_distrib(cp); + if (xform_distrib==NULL) + return(-1); + bv=flam3_iterate(cp, nsamples, 20, points, xform_distrib, rc); + free(xform_distrib); + + if ( bv/(double)nsamples > eps ) + eps = 3*bv/(double)nsamples; + + if ( eps > 0.3 ) + eps = 0.3; + + low_target = (int)(nsamples * eps); + high_target = nsamples - low_target; + + + min[0] = min[1] = 1e10; + max[0] = max[1] = -1e10; + + for (i = 0; i < nsamples; i++) { + double *p = &points[4*i]; + if (p[0] < min[0]) min[0] = p[0]; + if (p[1] < min[1]) min[1] = p[1]; + if (p[0] > max[0]) max[0] = p[0]; + if (p[1] > max[1]) max[1] = p[1]; + } + + if (low_target == 0) { + bmin[0] = min[0]; + bmin[1] = min[1]; + bmax[0] = max[0]; + bmax[1] = max[1]; + free(points); + return(bv); + } + + qsort(points, nsamples, sizeof(double) * 4, sort_by_x); + bmin[0] = points[4 * low_target]; + bmax[0] = points[4 * high_target]; + + qsort(points, nsamples, sizeof(double) * 4, sort_by_y); + bmin[1] = points[4 * low_target + 1]; + bmax[1] = points[4 * high_target + 1]; + free(points); + + return(bv); +} + + +typedef double bucket_double[5]; +typedef double abucket_double[4]; +typedef unsigned int bucket_int[5]; +typedef unsigned int abucket_int[4]; +typedef float bucket_float[5]; +typedef float abucket_float[4]; + +#ifdef HAVE_GCC_64BIT_ATOMIC_OPS +static inline void +double_atomic_add(double *dest, double delta) +{ + uint64_t *int_ptr = (uint64_t *)dest; + union { + double dblval; + uint64_t intval; + } old_val, new_val; + int success; + + do { + old_val.dblval = *dest; + new_val.dblval = old_val.dblval + delta; + success = __sync_bool_compare_and_swap( + int_ptr, old_val.intval, new_val.intval); + } while (!success); +} +#endif /* HAVE_GCC_64BIT_ATOMIC_OPS */ + +#ifdef HAVE_GCC_ATOMIC_OPS +static inline void +float_atomic_add(float *dest, float delta) +{ + uint32_t *int_ptr = (uint32_t *)dest; + union { + float fltval; + uint32_t intval; + } old_val, new_val; + int success; + + do { + old_val.fltval = *dest; + new_val.fltval = old_val.fltval + delta; + success = __sync_bool_compare_and_swap( + int_ptr, old_val.intval, new_val.intval); + } while (!success); +} + +static inline void +uint_atomic_add(unsigned int *dest, unsigned int delta) +{ + unsigned int old_val, new_val; + int success; + + do { + old_val = *dest; + if (UINT_MAX - old_val > delta) + new_val = old_val + delta; + else + new_val = UINT_MAX; + success = __sync_bool_compare_and_swap( + dest, old_val, new_val); + } while (!success); +} + +static inline void +ushort_atomic_add(unsigned short *dest, unsigned short delta) +{ + unsigned short old_val, new_val; + int success; + + do { + old_val = *dest; + if (USHRT_MAX - old_val > delta) + new_val = old_val + delta; + else + new_val = USHRT_MAX; + success = __sync_bool_compare_and_swap( + dest, old_val, new_val); + } while (!success); +} +#endif /* HAVE_GCC_ATOMIC_OPS */ + +/* 64-bit datatypes */ +#define bucket bucket_double +#define abucket abucket_double +#define abump_no_overflow(dest, delta) do {dest += delta;} while (0) +#define add_c_to_accum(acc,i,ii,j,jj,wid,hgt,c) do { \ + if ( (j) + (jj) >=0 && (j) + (jj) < (hgt) && (i) + (ii) >=0 && (i) + (ii) < (wid)) { \ + abucket *a = (acc) + ( (i) + (ii) ) + ( (j) + (jj) ) * (wid); \ + abump_no_overflow(a[0][0],(c)[0]); \ + abump_no_overflow(a[0][1],(c)[1]); \ + abump_no_overflow(a[0][2],(c)[2]); \ + abump_no_overflow(a[0][3],(c)[3]); \ + } \ +} while (0) +/* single-threaded */ +#define USE_LOCKS +#define bump_no_overflow(dest, delta) do {dest += delta;} while (0) +#define render_rectangle render_rectangle_double +#define iter_thread iter_thread_double +#define de_thread_helper de_thread_helper_64 +#define de_thread de_thread_64 +#include "rect.c" +#ifdef HAVE_GCC_64BIT_ATOMIC_OPS + /* multi-threaded */ + #undef USE_LOCKS + #undef bump_no_overflow + #undef render_rectangle + #undef iter_thread + #undef de_thread_helper + #undef de_thread + #define bump_no_overflow(dest, delta) double_atomic_add(&dest, delta) + #define render_rectangle render_rectangle_double_mt + #define iter_thread iter_thread_double_mt + #define de_thread_helper de_thread_helper_64_mt + #define de_thread de_thread_64_mt + #include "rect.c" +#else /* !HAVE_GCC_64BIT_ATOMIC_OPS */ + #define render_rectangle_double_mt render_rectangle_double +#endif /* HAVE_GCC_64BIT_ATOMIC_OPS */ +#undef render_rectangle +#undef iter_thread +#undef add_c_to_accum +#undef bucket +#undef abucket +#undef bump_no_overflow +#undef abump_no_overflow +#undef de_thread_helper +#undef de_thread + +/* 32-bit datatypes */ +#define bucket bucket_int +#define abucket abucket_int +#define abump_no_overflow(dest, delta) do { \ + if (UINT_MAX - dest > delta) dest += delta; else dest = UINT_MAX; \ +} while (0) +#define add_c_to_accum(acc,i,ii,j,jj,wid,hgt,c) do { \ + if ( (j) + (jj) >=0 && (j) + (jj) < (hgt) && (i) + (ii) >=0 && (i) + (ii) < (wid)) { \ + abucket *a = (acc) + ( (i) + (ii) ) + ( (j) + (jj) ) * (wid); \ + abump_no_overflow(a[0][0],(c)[0]); \ + abump_no_overflow(a[0][1],(c)[1]); \ + abump_no_overflow(a[0][2],(c)[2]); \ + abump_no_overflow(a[0][3],(c)[3]); \ + } \ +} while (0) +/* single-threaded */ +#define USE_LOCKS +#define bump_no_overflow(dest, delta) do { \ + if (UINT_MAX - dest > delta) dest += delta; else dest = UINT_MAX; \ +} while (0) +#define render_rectangle render_rectangle_int +#define iter_thread iter_thread_int +#define de_thread_helper de_thread_helper_32 +#define de_thread de_thread_32 +#include "rect.c" +#ifdef HAVE_GCC_ATOMIC_OPS + /* multi-threaded */ + #undef USE_LOCKS + #undef bump_no_overflow + #undef render_rectangle + #undef iter_thread + #undef de_thread_helper + #undef de_thread + #define bump_no_overflow(dest, delta) uint_atomic_add(&dest, delta) + #define render_rectangle render_rectangle_int_mt + #define iter_thread iter_thread_int_mt + #define de_thread_helper de_thread_helper_32_mt + #define de_thread de_thread_32_mt + #include "rect.c" +#else /* !HAVE_GCC_ATOMIC_OPS */ + #define render_rectangle_int_mt render_rectangle_int +#endif /* HAVE_GCC_ATOMIC_OPS */ +#undef iter_thread +#undef render_rectangle +#undef add_c_to_accum +#undef bucket +#undef abucket +#undef bump_no_overflow +#undef abump_no_overflow +#undef de_thread_helper +#undef de_thread + +/* experimental 32-bit datatypes (called 33) */ +#define bucket bucket_int +#define abucket abucket_float +#define abump_no_overflow(dest, delta) do {dest += delta;} while (0) +#define add_c_to_accum(acc,i,ii,j,jj,wid,hgt,c) do { \ + if ( (j) + (jj) >=0 && (j) + (jj) < (hgt) && (i) + (ii) >=0 && (i) + (ii) < (wid)) { \ + abucket *a = (acc) + ( (i) + (ii) ) + ( (j) + (jj) ) * (wid); \ + abump_no_overflow(a[0][0],(c)[0]); \ + abump_no_overflow(a[0][1],(c)[1]); \ + abump_no_overflow(a[0][2],(c)[2]); \ + abump_no_overflow(a[0][3],(c)[3]); \ + } \ +} while (0) +/* single-threaded */ +#define USE_LOCKS +#define bump_no_overflow(dest, delta) do { \ + if (UINT_MAX - dest > delta) dest += delta; else dest = UINT_MAX; \ +} while (0) +#define render_rectangle render_rectangle_float +#define iter_thread iter_thread_float +#define de_thread_helper de_thread_helper_33 +#define de_thread de_thread_33 +#include "rect.c" +#ifdef HAVE_GCC_ATOMIC_OPS + /* multi-threaded */ + #undef USE_LOCKS + #undef bump_no_overflow + #undef render_rectangle + #undef iter_thread + #undef de_thread_helper + #undef de_thread + #define bump_no_overflow(dest, delta) uint_atomic_add(&dest, delta) + #define render_rectangle render_rectangle_float_mt + #define iter_thread iter_thread_float_mt + #define de_thread_helper de_thread_helper_33_mt + #define de_thread de_thread_33_mt + #include "rect.c" +#else /* !HAVE_GCC_ATOMIC_OPS */ + #define render_rectangle_float_mt render_rectangle_float +#endif /* HAVE_GCC_ATOMIC_OPS */ +#undef iter_thread +#undef render_rectangle +#undef add_c_to_accum +#undef bucket +#undef abucket +#undef bump_no_overflow +#undef abump_no_overflow +#undef de_thread_helper +#undef de_thread + + +double flam3_render_memory_required(flam3_frame *spec) +{ + flam3_genome *cps = spec->genomes; + int real_bits = spec->bits; + + if (33 == real_bits) real_bits = 32; + + /* note 4 channels * 2 buffers cancels out 8 bits per byte */ + /* does not yet include memory for density estimation filter */ + + return + (double) cps[0].spatial_oversample * cps[0].spatial_oversample * + (double) cps[0].width * cps[0].height * real_bits; +} + +void bits_error(flam3_frame *spec) { + fprintf(stderr, "flam3: bits must be 32, 33, or 64 not %d.\n", + spec->bits); +} + +int flam3_render(flam3_frame *spec, void *out, + int field, int nchan, int trans, stat_struct *stats) { + + int retval; + + if (spec->nthreads <= 2) { + /* single-threaded or 2 threads without atomic operations */ + switch (spec->bits) { + case 32: + retval = render_rectangle_int(spec, out, field, nchan, trans, stats); + return(retval); + case 33: + retval = render_rectangle_float(spec, out, field, nchan, trans, stats); + return(retval); + case 64: + retval = render_rectangle_double(spec, out, field, nchan, trans, stats); + return(retval); + default: + bits_error(spec); + return(1); + } + } else { + /* 3+ threads using atomic ops if available */ + switch (spec->bits) { + case 32: + retval = render_rectangle_int_mt(spec, out, field, nchan, trans, stats); + return(retval); + case 33: + retval = render_rectangle_float_mt(spec, out, field, nchan, trans, stats); + return(retval); + case 64: + retval = render_rectangle_double_mt(spec, out, field, nchan, trans, stats); + return(retval); + default: + bits_error(spec); + return(1); + } + } +} + + +void flam3_srandom() { + unsigned int seed; + char *s = getenv("seed"); + + if (s) + seed = atoi(s); + else + seed = time(0) + getpid(); + + srandom(seed); +} + + +/* correlation dimension, after clint sprott. + computes slope of the correlation sum at a size scale + the order of 2% the size of the attractor or the camera. */ +double flam3_dimension(flam3_genome *cp, int ntries, int clip_to_camera) { + double fd; + double *hist; + double bmin[2]; + double bmax[2]; + double d2max; + int lp; + long int default_isaac_seed = (long int)time(0); + randctx rc; + int SBS = 10000; + int i, n1=0, n2=0, got, nclipped; + + /* Set up the isaac rng */ + for (lp = 0; lp < RANDSIZ; lp++) + rc.randrsl[lp] = default_isaac_seed; + + irandinit(&rc,1); + + if (ntries < 2) ntries = 3000*1000; + + if (clip_to_camera) { + double scale, ppux, corner0, corner1; + scale = pow(2.0, cp->zoom); + ppux = cp->pixels_per_unit * scale; + corner0 = cp->center[0] - cp->width / ppux / 2.0; + corner1 = cp->center[1] - cp->height / ppux / 2.0; + bmin[0] = corner0; + bmin[1] = corner1; + bmax[0] = corner0 + cp->width / ppux; + bmax[1] = corner1 + cp->height / ppux; + } else { + if (flam3_estimate_bounding_box(cp, 0.0, 0, bmin, bmax, &rc)<0) + return(-1.0); + + } + + d2max = + (bmax[0] - bmin[0]) * (bmax[0] - bmin[0]) + + (bmax[1] - bmin[1]) * (bmax[1] - bmin[1]); + + // fprintf(stderr, "d2max=%g %g %g %g %g\n", d2max, + // bmin[0], bmin[1], bmax[0], bmax[1]); + + hist = malloc(2 * ntries * sizeof(double)); + + got = 0; + nclipped = 0; + while (got < 2*ntries) { + double subb[40000]; + int i4, clipped; + unsigned short *xform_distrib; + subb[0] = flam3_random_isaac_11(&rc); + subb[1] = flam3_random_isaac_11(&rc); + subb[2] = 0.0; + subb[3] = 0.0; + if (prepare_xform_fn_ptrs(cp,&rc)) + return(-1.0); + xform_distrib = flam3_create_xform_distrib(cp); + if (xform_distrib==NULL) + return(-1.0); + flam3_iterate(cp, SBS, 20, subb, xform_distrib, &rc); + free(xform_distrib); + i4 = 0; + for (i = 0; i < SBS; i++) { + if (got == 2*ntries) break; + clipped = clip_to_camera && + ((subb[i4] < bmin[0]) || + (subb[i4+1] < bmin[1]) || + (subb[i4] > bmax[0]) || + (subb[i4+1] > bmax[1])); + if (!clipped) { + hist[got] = subb[i4]; + hist[got+1] = subb[i4+1]; + got += 2; + } else { + nclipped++; + if (nclipped > 10 * ntries) { + fprintf(stderr, "warning: too much clipping, " + "flam3_dimension giving up.\n"); + return sqrt(-1.0); + } + } + i4 += 4; + } + } + if (0) + fprintf(stderr, "cliprate=%g\n", nclipped/(ntries+(double)nclipped)); + + for (i = 0; i < ntries; i++) { + int ri; + double dx, dy, d2; + double tx, ty; + + tx = hist[2*i]; + ty = hist[2*i+1]; + + do { + ri = 2 * (random() % ntries); + } while (ri == i); + + dx = hist[ri] - tx; + dy = hist[ri+1] - ty; + d2 = dx*dx + dy*dy; + if (d2 < 0.004 * d2max) n2++; + if (d2 < 0.00004 * d2max) n1++; + } + + fd = 0.434294 * log(n2 / (n1 - 0.5)); + + if (0) + fprintf(stderr, "n1=%d n2=%d\n", n1, n2); + + free(hist); + return fd; +} + +double flam3_lyapunov(flam3_genome *cp, int ntries) { + double p[4]; + double x, y; + double xn, yn; + double xn2, yn2; + double dx, dy, r; + double eps = 1e-5; + int i; + double sum = 0.0; + unsigned short *xform_distrib; + + int lp; + long int default_isaac_seed = (long int)time(0); + randctx rc; + + /* Set up the isaac rng */ + for (lp = 0; lp < RANDSIZ; lp++) + rc.randrsl[lp] = default_isaac_seed; + + irandinit(&rc,1); + + + if (ntries < 1) ntries = 10000; + + for (i = 0; i < ntries; i++) { + x = flam3_random_isaac_11(&rc); + y = flam3_random_isaac_11(&rc); + + p[0] = x; + p[1] = y; + p[2] = 0.0; + p[3] = 0.0; + + // get into the attractor + if (prepare_xform_fn_ptrs(cp,&rc)) + return(-1.0); + xform_distrib = flam3_create_xform_distrib(cp); + if (xform_distrib==NULL) + return(-1.0); + + flam3_iterate(cp, 1, 20+(random()%10), p, xform_distrib, &rc); + free(xform_distrib); + + x = p[0]; + y = p[1]; + + // take one deterministic step + srandom(i); + + if (prepare_xform_fn_ptrs(cp,&rc)) + return(-1.0); + xform_distrib = flam3_create_xform_distrib(cp); + if (xform_distrib==NULL) + return(-1.0); + + flam3_iterate(cp, 1, 0, p, xform_distrib, &rc); + free(xform_distrib); + + xn = p[0]; + yn = p[1]; + + do { + dx = flam3_random_isaac_11(&rc); + dy = flam3_random_isaac_11(&rc); + r = sqrt(dx * dx + dy * dy); + } while (r == 0.0); + dx /= r; + dy /= r; + + dx *= eps; + dy *= eps; + + p[0] = x + dx; + p[1] = y + dy; + p[2] = 0.0; + + // take the same step but with eps + srandom(i); + if (prepare_xform_fn_ptrs(cp,&rc)) + return(-1.0); + xform_distrib = flam3_create_xform_distrib(cp); + if (xform_distrib==NULL) + return(-1.0); + + flam3_iterate(cp, 1, 0, p, xform_distrib, &rc); + free(xform_distrib); + + xn2 = p[0]; + yn2 = p[1]; + + r = sqrt((xn-xn2)*(xn-xn2) + (yn-yn2)*(yn-yn2)); + + sum += log(r/eps); + } + return sum/(log(2.0)*ntries); +} + diff --git a/src/flam3.dsw b/src/flam3.dsw new file mode 100644 index 0000000..ac76a19 --- /dev/null +++ b/src/flam3.dsw @@ -0,0 +1,65 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "anim"=.\anim.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "convert"=.\convert.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "hqi"=.\hqi.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "pick"=.\pick.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/src/flam3.h b/src/flam3.h new file mode 100644 index 0000000..7ccb135 --- /dev/null +++ b/src/flam3.h @@ -0,0 +1,657 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + + +#ifndef flam3_included +#define flam3_included + +#include <stdio.h> +#include <libxml/parser.h> +#include "isaac.h" + +#if defined(_MSC_VER) /* VC++ */ +#include <windows.h> +#define EXPORT __declspec (dllexport) +#else +#define EXPORT +#endif + +EXPORT char *flam3_version(); + +#define flam3_palette_random (-1) +#define flam3_palette_interpolated (-2) + +#define flam3_defaults_on (1) +#define flam3_defaults_off (0) + +#define flam3_name_len 64 + +#define flam3_print_edits (1) +#define flam3_dont_print_edits (0) + +//typedef double flam3_palette[256][3]; +typedef struct { + double index; + double color[4]; +} flam3_palette_entry; + +typedef flam3_palette_entry flam3_palette[256]; + +int flam3_get_palette(int palette_index, flam3_palette p, double hue_rotation); + +#define flam3_variation_random (-1) +#define flam3_variation_random_fromspecified (-2) + +extern char *flam3_variation_names[]; + +#define flam3_nvariations 97 +#define flam3_nxforms 12 + +#define flam3_parent_fn_len 30 + +#define flam3_interpolation_linear 0 +#define flam3_interpolation_smooth 1 + +#define flam3_inttype_linear 0 +#define flam3_inttype_log 1 +#define flam3_inttype_compat 2 /* Linear and old behaviour */ +#define flam3_inttype_older 3 /* rotate padded xforms */ + +#define flam3_palette_interpolation_hsv 0 +#define flam3_palette_interpolation_sweep 1 + +#define flam3_max_action_length 10000 + +#define flam3_palette_mode_step 0 +#define flam3_palette_mode_linear 1 + +#define VAR_LINEAR 0 +#define VAR_SINUSOIDAL 1 +#define VAR_SPHERICAL 2 +#define VAR_SWIRL 3 +#define VAR_HORSESHOE 4 +#define VAR_POLAR 5 +#define VAR_HANDKERCHIEF 6 +#define VAR_HEART 7 +#define VAR_DISC 8 +#define VAR_SPIRAL 9 +#define VAR_HYPERBOLIC 10 +#define VAR_DIAMOND 11 +#define VAR_EX 12 +#define VAR_JULIA 13 +#define VAR_BENT 14 +#define VAR_WAVES 15 +#define VAR_FISHEYE 16 +#define VAR_POPCORN 17 +#define VAR_EXPONENTIAL 18 +#define VAR_POWER 19 +#define VAR_COSINE 20 +#define VAR_RINGS 21 +#define VAR_FAN 22 +#define VAR_BLOB 23 +#define VAR_PDJ 24 +#define VAR_FAN2 25 +#define VAR_RINGS2 26 +#define VAR_EYEFISH 27 +#define VAR_BUBBLE 28 +#define VAR_CYLINDER 29 +#define VAR_PERSPECTIVE 30 +#define VAR_NOISE 31 +#define VAR_JULIAN 32 +#define VAR_JULIASCOPE 33 +#define VAR_BLUR 34 +#define VAR_GAUSSIAN_BLUR 35 +#define VAR_RADIAL_BLUR 36 +#define VAR_PIE 37 +#define VAR_NGON 38 +#define VAR_CURL 39 +#define VAR_RECTANGLES 40 +#define VAR_ARCH 41 +#define VAR_TANGENT 42 +#define VAR_SQUARE 43 +#define VAR_RAYS 44 +#define VAR_BLADE 45 +#define VAR_SECANT2 46 +#define VAR_TWINTRIAN 47 +#define VAR_CROSS 48 +#define VAR_DISC2 49 +#define VAR_SUPER_SHAPE 50 +#define VAR_FLOWER 51 +#define VAR_CONIC 52 +#define VAR_PARABOLA 53 +#define VAR_BENT2 54 +#define VAR_BIPOLAR 55 +#define VAR_BOARDERS 56 +#define VAR_BUTTERFLY 57 +#define VAR_CELL 58 +#define VAR_CPOW 59 +#define VAR_CURVE 60 +#define VAR_EDISC 61 +#define VAR_ELLIPTIC 62 +#define VAR_ESCHER 63 +#define VAR_FOCI 64 +#define VAR_LAZYSUSAN 65 +#define VAR_LOONIE 66 +#define VAR_PRE_BLUR 67 +#define VAR_MODULUS 68 +#define VAR_OSCILLOSCOPE 69 +#define VAR_POLAR2 70 +#define VAR_POPCORN2 71 +#define VAR_SCRY 72 +#define VAR_SEPARATION 73 +#define VAR_SPLIT 74 +#define VAR_SPLITS 75 +#define VAR_STRIPES 76 +#define VAR_WEDGE 77 +#define VAR_WEDGE_JULIA 78 +#define VAR_WEDGE_SPH 79 +#define VAR_WHORL 80 +#define VAR_WAVES2 81 +#define VAR_EXP 82 +#define VAR_LOG 83 +#define VAR_SIN 84 +#define VAR_COS 85 +#define VAR_TAN 86 +#define VAR_SEC 87 +#define VAR_CSC 88 +#define VAR_COT 89 +#define VAR_SINH 90 +#define VAR_COSH 91 +#define VAR_TANH 92 +#define VAR_SECH 93 +#define VAR_CSCH 94 +#define VAR_COTH 95 +#define VAR_AUGER 96 + +typedef struct { + + double badvals; + long int num_iters; + int render_seconds; + +} stat_struct; + +typedef struct { + + unsigned int width, height; + int version; + int id; + + /* There are 256 levels of gray to work with */ + double intensity_weight[256]; + unsigned int bin_size[256]; + unsigned int bin_offset[256]; + + /* Pointer to newly allocated memory; we will be allocating */ + /* 2*w*h ushorts for this storage. The bin offset will */ + /* provide the starting point for a random selection from */ + /* (bin size) ordered pairs */ + unsigned short *rowcols; + +} flam3_image_store; + + +typedef struct xform { + double var[flam3_nvariations]; /* interp coefs between variations */ + double c[3][2]; /* the coefs to the affine part of the function */ + double post[3][2]; /* the post transform */ + double density; /* probability that this function is chosen. 0 - 1 */ + double color; /* color coords for this function. 0 - 1 */ + double color_speed; /* scaling factor on color added to current iteration */ + double animate; /* whether or not this xform rotates (in sheep) >0 means stationary */ + double opacity; /* 0=invisible, 1=totally visible */ + double vis_adjusted; /* adjusted visibility for better transitions */ + + int padding;/* Set to 1 for padding xforms */ + double wind[2]; /* winding numbers */ + + int precalc_angles_flag; + int precalc_atan_xy_flag; + int precalc_atan_yx_flag; + double has_preblur; + int has_post; + + /* Params for new parameterized variations */ + /* Blob */ + double blob_low; + double blob_high; + double blob_waves; + + /* PDJ */ + double pdj_a; + double pdj_b; + double pdj_c; + double pdj_d; + + /* Fan2 */ + double fan2_x; + double fan2_y; + + /* Rings2 */ + double rings2_val; + + /* Perspective */ + double perspective_angle; + double perspective_dist; + + /* Julia_N */ + double julian_power; + double julian_dist; + + /* Julia_Scope */ + double juliascope_power; + double juliascope_dist; + + /* Radial_Blur */ + double radial_blur_angle; + + /* Pie */ + double pie_slices; + double pie_rotation; + double pie_thickness; + + /* Ngon */ + double ngon_sides; + double ngon_power; + double ngon_circle; + double ngon_corners; + + /* Curl */ + double curl_c1; + double curl_c2; + + /* Rectangles */ + double rectangles_x; + double rectangles_y; + + /* AMW */ + double amw_amp; + + /* Disc 2 */ + double disc2_rot; + double disc2_twist; + + /* Supershape */ + double super_shape_rnd; + double super_shape_m; + double super_shape_n1; + double super_shape_n2; + double super_shape_n3; + double super_shape_holes; + + /* Flower */ + double flower_petals; + double flower_holes; + + /* Conic */ + double conic_eccentricity; + double conic_holes; + + /* Parabola */ + double parabola_height; + double parabola_width; + + /* Bent2 */ + double bent2_x; + double bent2_y; + + /* Bipolar */ + double bipolar_shift; + + /* Cell */ + double cell_size; + + /* Cpow */ + double cpow_r; + double cpow_i; + double cpow_power; /* int in apo */ + + /* Curve */ + double curve_xamp,curve_yamp; + double curve_xlength,curve_ylength; + + /* Escher */ + double escher_beta; + + /* Lazysusan */ + double lazysusan_spin; + double lazysusan_space; + double lazysusan_twist; + double lazysusan_x, lazysusan_y; + + /* Modulus */ + double modulus_x, modulus_y; + + /* Oscope */ + double oscope_separation; + double oscope_frequency; + double oscope_amplitude; + double oscope_damping; + + /* Popcorn2 */ + double popcorn2_x, popcorn2_y, popcorn2_c; + + /* Separation */ + double separation_x, separation_xinside; + double separation_y, separation_yinside; + + /* Split */ + double split_xsize; + double split_ysize; + + /* Splits */ + double splits_x,splits_y; + + /* Stripes */ + double stripes_space; + double stripes_warp; + + /* Wedge */ + double wedge_angle, wedge_hole; + double wedge_count, wedge_swirl; + + /* Wedge_Julia */ + double wedge_julia_angle; + double wedge_julia_count; + double wedge_julia_power; + double wedge_julia_dist; + + /* Wedge_Sph */ + double wedge_sph_angle, wedge_sph_count; + double wedge_sph_hole, wedge_sph_swirl; + + /* Whorl */ + double whorl_inside, whorl_outside; + + /* Waves2 */ + double waves2_freqx, waves2_scalex; + double waves2_freqy, waves2_scaley; + + /* Auger */ + double auger_sym, auger_weight; + double auger_freq, auger_scale; + + /* If perspective is used, precalculate these values */ + /* from the _angle and _dist */ + double persp_vsin; + double persp_vfcos; + + /* If Julia_N is used, precalculate these values */ + double julian_rN; + double julian_cn; + + /* If Julia_Scope is used, precalculate these values */ + double juliascope_rN; + double juliascope_cn; + + /* if Wedge_Julia, precalculate */ + double wedgeJulia_rN; + double wedgeJulia_cn; + double wedgeJulia_cf; + + /* If Radial_Blur is used, precalculate these values */ + double radialBlur_spinvar; + double radialBlur_zoomvar; + + /* Precalculate these values for waves */ + double waves_dx2; + double waves_dy2; + + /* If disc2 is used, precalculate these values */ + double disc2_sinadd; + double disc2_cosadd; + double disc2_timespi; + + /* If supershape is used, precalculate these values */ + double super_shape_pm_4; + double super_shape_pneg1_n1; + + int num_active_vars; + double active_var_weights[flam3_nvariations]; + int varFunc[flam3_nvariations]; + + int motion_freq; + int motion_func; + + struct xform *motion; + int num_motion; + + +} flam3_xform; + +typedef struct { + char flame_name[flam3_name_len+1]; /* 64 chars plus a null */ + double time; + int interpolation; + int interpolation_type; + int palette_interpolation; + int num_xforms; + int final_xform_index; + int final_xform_enable; + flam3_xform *xform; + + /* Xaos implementation */ + double **chaos; + int chaos_enable; + + int genome_index; /* index into source file */ + char parent_fname[flam3_parent_fn_len]; /* base filename where parent was located */ + int symmetry; /* 0 means none */ + flam3_palette palette; + char *input_image; /* preview/temporary! */ + int palette_index; + double brightness; /* 1.0 = normal */ + double contrast; /* 1.0 = normal */ + double gamma; + double highlight_power; + int width, height; /* of the final image */ + int spatial_oversample; + double center[2]; /* of camera */ + double rot_center[2]; /* really the center */ + double rotate; /* camera */ + double vibrancy; /* blend between color algs (0=old,1=new) */ + double hue_rotation; /* applies to cmap, 0-1 */ + double background[3]; + double zoom; /* effects ppu, sample density, scale */ + double pixels_per_unit; /* vertically */ + double spatial_filter_radius; /* radius of spatial filter */ + int spatial_filter_select; /* selected spatial filter */ +// double (*spatial_filter_func)(double); /* spatial filter kernel function */ +// double spatial_filter_support; /* size of standard kernel for specific function */ + double sample_density; /* samples per pixel (not bucket) */ + /* in order to motion blur more accurately we compute the logs of the + sample density many times and average the results. */ + /* nbatches is the number of times the buckets are filtered into + the abucket log accumulator */ + /* ntemporal_samples is the number of time steps per batch. this many + interpolated control points are used per batch and accumulated */ + int nbatches; + int ntemporal_samples; + + /* Density estimation parameters for blurring low density hits */ + double estimator; /* Filter width for bin with one hit */ + double estimator_curve; /* Exponent on decay function ( MAX / a^(k-1) ) */ + double estimator_minimum; /* Minimum filter width used - + forces filter to be used of at least this width on all pts */ + + /* XML Edit structure */ + xmlDocPtr edits; + + /* Small-gamma linearization threshold */ + double gam_lin_thresh; + + /* for cmap_interpolated hack */ + int palette_index0; + double hue_rotation0; + int palette_index1; + double hue_rotation1; + double palette_blend; + + int temporal_filter_type; /* Temporal filters */ + double temporal_filter_width, temporal_filter_exp; + + int palette_mode; + + +} flam3_genome; + +typedef struct { + int from; + int to; + double scalar; +} flam3_chaos_entry; + +/* xform manipulation */ + +void flam3_add_motion_element(flam3_xform *xf); +void flam3_add_xforms(flam3_genome *cp, int num_to_add, int interp_padding, int final_flag); +void flam3_delete_xform(flam3_genome *thiscp, int idx_to_delete); +void flam3_copy_xform(flam3_xform *dest, flam3_xform *src); +void flam3_copy(flam3_genome *dest, flam3_genome *src); +void flam3_copyx(flam3_genome *dest, flam3_genome *src, int num_std, int num_final); +void flam3_copy_params(flam3_xform *dest, flam3_xform *src, int varn); +void flam3_delete_motion_elements(flam3_xform *xf); + +EXPORT int flam3_xform_preview(flam3_genome *cp, int xi, double range, int numvals, int depth, double *result, randctx *rc); +EXPORT unsigned short* flam3_create_xform_distrib(flam3_genome *cp); +int flam3_create_chaos_distrib(flam3_genome *cp, int xi, unsigned short *xform_distrib); +int flam3_check_unity_chaos(flam3_genome *cp); +void clear_cp(flam3_genome *cp, int def_flag); + +/* samples is array nsamples*4 long of x,y,color triples. + using (samples[0], samples[1]) as starting XY point and + (samples[2], samples[3]) as starting color coordinate, + perform fuse iterations and throw them away, then perform + nsamples iterations and save them in the samples array */ +EXPORT int flam3_iterate(flam3_genome *g, int nsamples, int fuse, double *samples, + unsigned short *xform_distrib, randctx *rc); + +void apply_motion_parameters(flam3_xform *xf, flam3_xform *addto, double blend); + +/* genomes is array ngenomes long, with times set and in ascending order. + interpolate to the requested time and return in result */ +EXPORT void flam3_interpolate(flam3_genome *genomes, int ngenomes, double time, double stagger, flam3_genome *result); + +/* print genome to given file with extra_attributes if not NULL */ +void flam3_print(FILE *f, flam3_genome *g, char *extra_attributes, int print_edits); +void flam3_print_xform(FILE *f, flam3_xform *x, int final_flag, int numstd, double *chaos_row, int motion_flag); +char *flam3_print_to_string(flam3_genome *cp); + +/* ivars is a list of variations to use, or flam3_variation_random */ +/* ivars_n is the number of values in ivars to select from. */ +/* sym is either a symmetry group or 0 meaning random or no symmetry */ +/* spec_xforms specifies the number of xforms to use, setting to 0 makes the number random. */ +EXPORT void flam3_random(flam3_genome *g, int *ivars, int ivars_n, int sym, int spec_xforms); + +void add_to_action(char *action, char *addtoaction); + +EXPORT void flam3_mutate(flam3_genome *cp, int mutate_mode, int *ivars, int ivars_n, int sym, double speed, randctx *rc, char *action); +EXPORT void flam3_cross(flam3_genome *cp0, flam3_genome *cp1, flam3_genome *out, int cross_mode, randctx *rc, char *action); + +/* return NULL in case of error */ +EXPORT flam3_genome *flam3_parse_xml2(char *s, char *fn, int default_flag, int *ncps); +flam3_genome *flam3_parse_from_file(FILE *f, char *fn, int default_flag, int *ncps); + +void flam3_add_symmetry(flam3_genome *g, int sym); + +void flam3_improve_colors(flam3_genome *g, int ntries, int change_palette, int color_resolution); +EXPORT int flam3_colorhist(flam3_genome *cp, int num_batches, double *hist); +EXPORT int flam3_estimate_bounding_box(flam3_genome *g, double eps, int nsamples, + double *bmin, double *bmax, randctx *rc); +void flam3_rotate(flam3_genome *g, double angle, int interp_type); /* angle in degrees */ + +double flam3_dimension(flam3_genome *g, int ntries, int clip_to_camera); +double flam3_lyapunov(flam3_genome *g, int ntries); + +void flam3_apply_template(flam3_genome *cp, flam3_genome *templ); + +EXPORT int flam3_count_nthreads(void); + +typedef struct { +// double temporal_filter_radius; + double pixel_aspect_ratio; /* width over height of each pixel */ + flam3_genome *genomes; + int ngenomes; + int verbose; + int bits; + int bytes_per_channel; + int earlyclip; + double time; + int (*progress)(void *, double, int, double); + void *progress_parameter; + randctx rc; + int nthreads; + int sub_batch_size; +} flam3_frame; + + +#define flam3_field_both 0 +#define flam3_field_even 1 +#define flam3_field_odd 2 + +/* out is pixel array. + pixels are rgb or rgba if nchan is 3 or 4. */ +EXPORT int flam3_render(flam3_frame *f, void *out, int field, int nchan, int transp, stat_struct *stats); + +EXPORT double flam3_render_memory_required(flam3_frame *f); +EXPORT int flam3_make_strip(flam3_genome *cp, int nstrips, int stripnum); +void rotate_by(double *p, double *center, double by); + + +double flam3_random01(); +double flam3_random11(); +int flam3_random_bit(); + +/* ISAAC random numbers */ +double flam3_random_isaac_01(randctx *); +double flam3_random_isaac_11(randctx *); +int flam3_random_isaac_bit(randctx *); + +EXPORT void flam3_init_frame(flam3_frame *f); + +/* External memory helpers */ +EXPORT void *flam3_malloc(size_t size); +EXPORT void flam3_free(void *ptr); + +void flam3_srandom(); + +flam3_genome *sheep_loop(flam3_genome *cp, double blend); +flam3_genome *sheep_edge(flam3_genome *cp, double blend, int seqflag, double stagger); + +/* Motion function indices */ +#define MOTION_SIN 1 +#define MOTION_TRIANGLE 2 +#define MOTION_HILL 3 + +/* Mutation modes */ +#define MUTATE_NOT_SPECIFIED -1 +#define MUTATE_ALL_VARIATIONS 0 +#define MUTATE_ONE_XFORM_COEFS 1 +#define MUTATE_ADD_SYMMETRY 2 +#define MUTATE_POST_XFORMS 3 +#define MUTATE_COLOR_PALETTE 4 +#define MUTATE_DELETE_XFORM 5 +#define MUTATE_ALL_COEFS 6 + +/* Cross modes */ +#define CROSS_NOT_SPECIFIED -1 +#define CROSS_UNION 0 +#define CROSS_INTERPOLATE 1 +#define CROSS_ALTERNATE 2 + +#endif diff --git a/src/flam3.pc.in b/src/flam3.pc.in new file mode 100644 index 0000000..e78b2da --- /dev/null +++ b/src/flam3.pc.in @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ +datarootdir=@datarootdir@ + +Name: flam3 +Description: Renders and animates fractal flames and manipulates their genetic codes, see www.flam3.com for more info. +Version: @VERSION@ +Requires: libpng12 >= 1.0 libxml-2.0 +Libs: -L${libdir} -lflam3 -ljpeg -lpthread +Cflags: -I${includedir} diff --git a/src/genome.dsp b/src/genome.dsp new file mode 100644 index 0000000..5ea7f1c --- /dev/null +++ b/src/genome.dsp @@ -0,0 +1,146 @@ +# Microsoft Developer Studio Project File - Name="pick" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=pick - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "genome.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "genome.mak" CFG="pick - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "pick - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "pick - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "pick - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "c:\src\libpng" /I "c:\src\zlib" /I "c:\src\libxml2\include" /I "c:\src\jpeg" /I "c:\src\iconv\include" /I "c:\src\pthreads" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /Zm1000 /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib c:\src\jpeg\libjpeg.lib c:\src\libpng\libpng.lib c:\src\libxml2\lib\libxml2.lib c:\src\zlib\zlib.lib c:\src\pthreads\pthreadVC2.lib /nologo /subsystem:console /machine:I386 /out:"Release/flam3-genome.exe" + +!ELSEIF "$(CFG)" == "pick - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "c:\src\libpng" /I "c:\src\libxml2\include" /I "c:\src\jpeg" /I "c:\src\iconv\include" /I "c:\src\zlib" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /Zm1000 /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib c:\src\jpeg\libjpeg.lib c:\src\libpng\libpng.lib c:\src\libxml2\lib\libxml2.lib c:\src\zlib\zlib.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "pick - Win32 Release" +# Name "pick - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\docstring.c +# End Source File +# Begin Source File + +SOURCE=".\flam3-genome.c" +# End Source File +# Begin Source File + +SOURCE=".\flam3-palettes.c" +# End Source File +# Begin Source File + +SOURCE=.\flam3.c +# End Source File +# Begin Source File + +SOURCE=.\isaac.c +# End Source File +# Begin Source File + +SOURCE=.\jpeg.c +# End Source File +# Begin Source File + +SOURCE=.\png.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=cmap.h +# End Source File +# Begin Source File + +SOURCE=config.h +# End Source File +# Begin Source File + +SOURCE=jpeg.h +# End Source File +# Begin Source File + +SOURCE=libifs.h +# End Source File +# Begin Source File + +SOURCE=rect.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/src/img.h b/src/img.h new file mode 100644 index 0000000..6bab912 --- /dev/null +++ b/src/img.h @@ -0,0 +1,44 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + + +#include <stdio.h> +#include "flam3.h" + +#define FLAM3_PNG_COM 8 + +#ifdef WIN32 + #define snprintf _snprintf +#endif + +typedef struct { + + char *genome; + char *badvals; + char *numiters; + char *rtime; + +} flam3_img_comments; + + +void write_jpeg(FILE *file, unsigned char *image, int width, int height, flam3_img_comments *fpc); +void write_png(FILE *file, void *image, int width, int height, flam3_img_comments *fpc, int bpc); + +/* returns RGBA pixel array or NULL on failure */ +unsigned char *read_png(FILE *file, int *width, int *height); +unsigned char *read_jpeg(FILE *file, int *width, int *height); diff --git a/src/install-sh b/src/install-sh new file mode 100755 index 0000000..e843669 --- /dev/null +++ b/src/install-sh @@ -0,0 +1,250 @@ +#!/bin/sh +# +# install - install a program, script, or datafile +# This comes from X11R5 (mit/util/scripts/install.sh). +# +# Copyright 1991 by the Massachusetts Institute of Technology +# +# Permission to use, copy, modify, distribute, and sell this software and its +# documentation for any purpose is hereby granted without fee, provided that +# the above copyright notice appear in all copies and that both that +# copyright notice and this permission notice appear in supporting +# documentation, and that the name of M.I.T. not be used in advertising or +# publicity pertaining to distribution of the software without specific, +# written prior permission. M.I.T. makes no representations about the +# suitability of this software for any purpose. It is provided "as is" +# without express or implied warranty. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. It can only install one file at a time, a restriction +# shared with many OS's install programs. + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +transformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +else + true +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d $dst ]; then + instcmd=: + else + instcmd=mkdir + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f $src -o -d $src ] + then + true + else + echo "install: $src does not exist" + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "install: no destination specified" + exit 1 + else + true + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d $dst ] + then + dst="$dst"/`basename $src` + else + true + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' +' +IFS="${IFS-${defaultIFS}}" + +oIFS="${IFS}" +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS="${oIFS}" + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp="${pathcomp}${1}" + shift + + if [ ! -d "${pathcomp}" ] ; + then + $mkdirprog "${pathcomp}" + else + true + fi + + pathcomp="${pathcomp}/" +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd $dst && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename $dst` + else + dstfile=`basename $dst $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename $dst` + else + true + fi + +# Make a temp file name in the proper directory. + + dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + + $doit $instcmd $src $dsttmp && + + trap "rm -f ${dsttmp}" 0 && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && + +# Now rename the file to the real destination. + + $doit $rmcmd -f $dstdir/$dstfile && + $doit $mvcmd $dsttmp $dstdir/$dstfile + +fi && + + +exit 0 diff --git a/src/interpolation.c b/src/interpolation.c new file mode 100644 index 0000000..d9219fd --- /dev/null +++ b/src/interpolation.c @@ -0,0 +1,956 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + +#include "interpolation.h" +#include "palettes.h" + +double adjust_percentage(double in) { + + if (in==0.0) + return(0.0); + else + return(pow(10.0, -log(1.0/in)/log(2))); + +} + +double motion_funcs(int funcnum, double timeval) { + + /* motion funcs should be cyclic, and equal to 0 at integral time values */ + /* abs peak values should be not be greater than 1 */ + if (funcnum==MOTION_SIN) { + return (sin(2.0*M_PI*timeval)); + } else if (funcnum==MOTION_TRIANGLE) { + double fr = fmod(timeval,1.0); + + if (fr<0) fr+= 1.0; + + if (fr<=.25) + fr = 4.0 * fr; + else if (fr<=.75) + fr = -4.0 * fr + 2.0; + else + fr = 4.0 * fr - 4.0; + + return(fr); + } else { //if (funcnum==MOTION_HILL) { + return( (1.0-cos(2.0*M_PI*timeval)) * 0.5); + } + +} + +double det_matrix(double s[2][2]) { + return s[0][0] * s[1][1] - s[0][1] * s[1][0]; +} + +int id_matrix(double s[3][2]) { + return + (s[0][0] == 1.0) && + (s[0][1] == 0.0) && + (s[1][0] == 0.0) && + (s[1][1] == 1.0) && + (s[2][0] == 0.0) && + (s[2][1] == 0.0); +} + +int zero_matrix(double s[3][2]) { + return + (s[0][0] == 0.0) && + (s[0][1] == 0.0) && + (s[1][0] == 0.0) && + (s[1][1] == 0.0) && + (s[2][0] == 0.0) && + (s[2][1] == 0.0); +} + +void copy_matrix(double to[3][2], double from[3][2]) { + + to[0][0] = from[0][0]; + to[0][1] = from[0][1]; + to[1][0] = from[1][0]; + to[1][1] = from[1][1]; + to[2][0] = from[2][0]; + to[2][1] = from[2][1]; +} + + +void clear_matrix(double m[3][2]) { + m[0][0] = 0.0; + m[0][1] = 0.0; + m[1][0] = 0.0; + m[1][1] = 0.0; + m[2][0] = 0.0; + m[2][1] = 0.0; +} + +void sum_matrix(double s, double m1[3][2], double m2[3][2]) { + + m2[0][0] += s * m1[0][0]; + m2[0][1] += s * m1[0][1]; + m2[1][0] += s * m1[1][0]; + m2[1][1] += s * m1[1][1]; + m2[2][0] += s * m1[2][0]; + m2[2][1] += s * m1[2][1]; +} + +void mult_matrix(double s1[2][2], double s2[2][2], double d[2][2]) { + d[0][0] = s1[0][0] * s2[0][0] + s1[1][0] * s2[0][1]; + d[1][0] = s1[0][0] * s2[1][0] + s1[1][0] * s2[1][1]; + d[0][1] = s1[0][1] * s2[0][0] + s1[1][1] * s2[0][1]; + d[1][1] = s1[0][1] * s2[1][0] + s1[1][1] * s2[1][1]; +} + +int compare_xforms(const void *av, const void *bv) { + flam3_xform *a = (flam3_xform *) av; + flam3_xform *b = (flam3_xform *) bv; + double aa[2][2]; + double bb[2][2]; + double ad, bd; + + aa[0][0] = a->c[0][0]; + aa[0][1] = a->c[0][1]; + aa[1][0] = a->c[1][0]; + aa[1][1] = a->c[1][1]; + bb[0][0] = b->c[0][0]; + bb[0][1] = b->c[0][1]; + bb[1][0] = b->c[1][0]; + bb[1][1] = b->c[1][1]; + ad = det_matrix(aa); + bd = det_matrix(bb); + + if (a->color_speed > b->color_speed) return 1; + if (a->color_speed < b->color_speed) return -1; + if (a->color_speed) { + if (ad < 0) return -1; + if (bd < 0) return 1; + ad = atan2(a->c[0][0], a->c[0][1]); + bd = atan2(b->c[0][0], b->c[0][1]); + } + + if (ad < bd) return -1; + if (ad > bd) return 1; + return 0; +} + +void interpolate_cmap(flam3_palette cmap, double blend, + int index0, double hue0, int index1, double hue1) { + + flam3_palette p0,p1; + int i, j; + + flam3_get_palette(index0, p0, hue0); + flam3_get_palette(index1, p1, hue1); + + for (i = 0; i < 256; i++) { + double t[5], s[5]; + + rgb2hsv(p0[i].color, s); + rgb2hsv(p1[i].color, t); + + s[3] = p0[i].color[3]; + t[3] = p1[i].color[3]; + + s[4] = p0[i].index; + t[4] = p1[i].index; + + for (j = 0; j < 5; j++) + t[j] = ((1.0-blend) * s[j]) + (blend * t[j]); + + hsv2rgb(t, cmap[i].color); + cmap[i].color[3] = t[3]; + cmap[i].index = t[4]; + } +} + +void interp_and_convert_back(double *c, int ncps, int xfi, double cxang[4][2], + double cxmag[4][2], double cxtrn[4][2],double store_array[3][2]) { + + int i,col; + + double accang[2],accmag[2]; + double expmag; + int accmode[2]; + + accang[0] = 0.0; + accang[1] = 0.0; + accmag[0] = 0.0; + accmag[1] = 0.0; + + accmode[0]=accmode[1]=0; + + /* accumulation mode defaults to logarithmic, but in special */ + /* cases we want to switch to linear accumulation */ + for (col=0; col<2; col++) { + for (i=0; i<ncps; i++) { + if (log(cxmag[i][col])<-10) + accmode[col]=1; // Mode set to linear interp + } + } + + for (i=0; i<ncps; i++) { + for (col=0; col<2; col++) { + + accang[col] += c[i] * cxang[i][col]; + + if (accmode[col]==0) + accmag[col] += c[i] * log(cxmag[i][col]); + else + accmag[col] += c[i] * (cxmag[i][col]); + + /* translation is ready to go */ + store_array[2][col] += c[i] * cxtrn[i][col]; + } + } + + /* Convert the angle back to rectangular */ + for (col=0;col<2;col++) { + if (accmode[col]==0) + expmag = exp(accmag[col]); + else + expmag = accmag[col]; + + store_array[col][0] = expmag * cos(accang[col]); + store_array[col][1] = expmag * sin(accang[col]); + } + +} + +void convert_linear_to_polar(flam3_genome *cp, int ncps, int xfi, int cflag, + double cxang[4][2], double cxmag[4][2], double cxtrn[4][2]) { + + double c1[2],d,t,refang; + int col,k; + int zlm[2]; + + for (k=0; k<ncps;k++) { + + /* Establish the angles and magnitudes for each component */ + /* Keep translation linear */ + zlm[0]=zlm[1]=0; + for (col=0;col<2;col++) { + + if (cflag==0) { + c1[0] = cp[k].xform[xfi].c[col][0]; + c1[1] = cp[k].xform[xfi].c[col][1]; + t = cp[k].xform[xfi].c[2][col]; + } else { + c1[0] = cp[k].xform[xfi].post[col][0]; + c1[1] = cp[k].xform[xfi].post[col][1]; + t = cp[k].xform[xfi].post[2][col]; + } + + cxang[k][col] = atan2(c1[1],c1[0]); + cxmag[k][col] = sqrt(c1[0]*c1[0] + c1[1]*c1[1]); + + if (cxmag[k][col]== 0.0) + zlm[col]=1; + + cxtrn[k][col] = t; + } + + if (zlm[0]==1 && zlm[1]==0) + cxang[k][0] = cxang[k][1]; + else if (zlm[0]==0 && zlm[1]==1) + cxang[k][1] = cxang[k][0]; + + } + + /* Make sure the rotation is the shorter direction around the circle */ + /* by adjusting each angle in succession, and rotate clockwise if 180 degrees */ + for (col=0; col<2; col++) { + for (k=1;k<ncps;k++) { + + /* Adjust angles differently if we have an asymmetric case */ + if (cp[k].xform[xfi].wind[col]>0 && cflag==0) { + + /* Adjust the angles to make sure that it's within wind:wind+2pi */ + refang = cp[k].xform[xfi].wind[col] - 2*M_PI; + + /* Make sure both angles are within [refang refang+2*pi] */ + while(cxang[k-1][col] < refang) + cxang[k-1][col] += 2*M_PI; + + while(cxang[k-1][col] > refang + 2*M_PI) + cxang[k-1][col] -= 2*M_PI; + + while(cxang[k][col] < refang) + cxang[k][col] += 2*M_PI; + + while(cxang[k][col] > refang + 2*M_PI) + cxang[k][col] -= 2*M_PI; + + } else { + + /* Normal way of adjusting angles */ + d = cxang[k][col]-cxang[k-1][col]; + + /* Adjust to avoid the -pi/pi discontinuity */ + if (d > M_PI+EPS) + cxang[k][col] -= 2*M_PI; + else if (d < -(M_PI-EPS) ) /* Forces clockwise rotation at 180 */ + cxang[k][col] += 2*M_PI; + } + } + } +} + +void interpolate_catmull_rom(flam3_genome cps[], double t, flam3_genome *result) { + double t2 = t * t; + double t3 = t2 * t; + double cmc[4]; + + cmc[0] = (2*t2 - t - t3) / 2; + cmc[1] = (3*t3 - 5*t2 + 2) / 2; + cmc[2] = (4*t2 - 3*t3 + t) / 2; + cmc[3] = (t3 - t2) / 2; + + flam3_interpolate_n(result, 4, cps, cmc, 0); +} + +double smoother(double t) { + return 3*t*t - 2*t*t*t; +} + +double get_stagger_coef(double t, double stagger_prc, int num_xforms, int this_xform) { + + /* max_stag is the spacing between xform start times if stagger_prc = 1.0 */ + double max_stag = (double)(num_xforms-1)/num_xforms; + + /* scale the spacing by stagger_prc */ + double stag_scaled = stagger_prc * max_stag; + + /* t ranges from 1 to 0 (the contribution of cp[0] to the blend) */ + /* the first line below makes the first xform interpolate first */ + /* the second line makes the last xform interpolate first */ + double st = stag_scaled * (num_xforms - 1 - this_xform) / (num_xforms-1); +// double st = stag_scaled * (this_xform) / (num_xforms-1); + double et = st + (1-stag_scaled); + +// printf("t=%f xf:%d st=%f et=%f : : %f\n",t,this_xform,st,et,smoother((t-st)/(1-stag_scaled))); + + if (t <= st) + return (0); + else if (t >= et) + return (1); + else + return ( smoother((t-st)/(1-stag_scaled)) ); + +} + + + +/* all cpi and result must be aligned (have the same number of xforms, + and have final xform in the same slot) */ +void flam3_interpolate_n(flam3_genome *result, int ncp, + flam3_genome *cpi, double *c, double stagger) { + int i, j, k, numstd; + + if (flam3_palette_interpolation_hsv == cpi[0].palette_interpolation) { + + for (i = 0; i < 256; i++) { + double t[3], s[4]; + s[0] = s[1] = s[2] = s[3] = s[4] = 0.0; + + for (k = 0; k < ncp; k++) { + rgb2hsv(cpi[k].palette[i].color, t); + for (j = 0; j < 3; j++) + s[j] += c[k] * t[j]; + + s[3] += c[k] * cpi[k].palette[i].color[3]; + s[4] += c[k] * cpi[k].palette[i].index; + + } + + hsv2rgb(s, result->palette[i].color); + result->palette[i].color[3] = s[3]; + result->palette[i].index = s[4]; + + for (j = 0; j < 4; j++) { + if (result->palette[i].color[j] < 0.0) + result->palette[i].color[j] = 0.0; + if (result->palette[i].color[j] > 1.0) + result->palette[i].color[j] = 1.0; + } + + if (result->palette[i].index < 0.0) + result->palette[i].index = 0.0; + if (result->palette[i].index > 255.0) + result->palette[i].index = 255.0; + } + } else { + /* Sweep - not the best option for float indices */ + for (i = 0; i < 256; i++) { + j = (i < (256 * c[0])) ? 0 : 1; + result->palette[i] = cpi[j].palette[i]; + } + } + + result->palette_index = flam3_palette_random; + result->symmetry = 0; + result->spatial_filter_select = cpi[0].spatial_filter_select; + result->temporal_filter_type = cpi[0].temporal_filter_type; + result->palette_mode = cpi[0].palette_mode; + + result->interpolation_type = cpi[0].interpolation_type; + INTERP(brightness); + INTERP(contrast); + INTERP(highlight_power); + INTERP(gamma); + INTERP(vibrancy); + INTERP(hue_rotation); + INTERI(width); + INTERI(height); + INTERI(spatial_oversample); + INTERP(center[0]); + INTERP(center[1]); + INTERP(rot_center[0]); + INTERP(rot_center[1]); + INTERP(background[0]); + INTERP(background[1]); + INTERP(background[2]); + INTERP(pixels_per_unit); + INTERP(spatial_filter_radius); + INTERP(temporal_filter_exp); + INTERP(temporal_filter_width); + INTERP(sample_density); + INTERP(zoom); + INTERP(rotate); + INTERI(nbatches); + INTERI(ntemporal_samples); + INTERP(estimator); + INTERP(estimator_minimum); + INTERP(estimator_curve); + INTERP(gam_lin_thresh); + + /* Interpolate the chaos array */ + numstd = cpi[0].num_xforms - (cpi[0].final_xform_index >= 0); + for (i=0;i<numstd;i++) { + for (j=0;j<numstd;j++) { + INTERP(chaos[i][j]); + if (result->chaos[i][j]<0) result->chaos[i][j]=0; + //chaos can be > 1 + //if (result->chaos[i][j]>1) result->chaos[i][j]=1.0; + } + } + + /* Interpolate each xform */ + for (i = 0; i < cpi[0].num_xforms; i++) { + + double csave[2]; + double td; + int all_id; + int nx = cpi[0].num_xforms-(cpi[0].final_xform_index>=0); + + if (ncp==2 && stagger>0 && i!=cpi[0].final_xform_index) { + csave[0] = c[0]; + csave[1] = c[1]; + c[0] = get_stagger_coef(csave[0],stagger,nx,i); + c[1] = 1.0-c[0]; + } + + + INTERP(xform[i].density); + td = result->xform[i].density; + result->xform[i].density = (td < 0.0) ? 0.0 : td; + INTERP(xform[i].color); + if (result->xform[i].color<0) result->xform[i].color=0; + if (result->xform[i].color>1) result->xform[i].color=1; + + INTERP(xform[i].color_speed); + if (result->xform[i].color_speed<0) result->xform[i].color_speed=0; + if (result->xform[i].color_speed>1) result->xform[i].color_speed=1; + + INTERP(xform[i].opacity); + INTERP(xform[i].animate); + INTERP(xform[i].blob_low); + INTERP(xform[i].blob_high); + INTERP(xform[i].blob_waves); + INTERP(xform[i].pdj_a); + INTERP(xform[i].pdj_b); + INTERP(xform[i].pdj_c); + INTERP(xform[i].pdj_d); + INTERP(xform[i].fan2_x); + INTERP(xform[i].fan2_y); + INTERP(xform[i].rings2_val); + INTERP(xform[i].perspective_angle); + INTERP(xform[i].perspective_dist); + INTERP(xform[i].julian_power); + INTERP(xform[i].julian_dist); + INTERP(xform[i].juliascope_power); + INTERP(xform[i].juliascope_dist); + INTERP(xform[i].radial_blur_angle); + INTERP(xform[i].pie_slices); + INTERP(xform[i].pie_rotation); + INTERP(xform[i].pie_thickness); + INTERP(xform[i].ngon_sides); + INTERP(xform[i].ngon_power); + INTERP(xform[i].ngon_circle); + INTERP(xform[i].ngon_corners); + INTERP(xform[i].curl_c1); + INTERP(xform[i].curl_c2); + INTERP(xform[i].rectangles_x); + INTERP(xform[i].rectangles_y); + INTERP(xform[i].amw_amp); + INTERP(xform[i].disc2_rot); + INTERP(xform[i].disc2_twist); + INTERP(xform[i].super_shape_rnd); + INTERP(xform[i].super_shape_m); + INTERP(xform[i].super_shape_n1); + INTERP(xform[i].super_shape_n2); + INTERP(xform[i].super_shape_n3); + INTERP(xform[i].super_shape_holes); + INTERP(xform[i].flower_petals); + INTERP(xform[i].flower_holes); + INTERP(xform[i].conic_eccentricity); + INTERP(xform[i].conic_holes); + INTERP(xform[i].parabola_height); + INTERP(xform[i].parabola_width); + INTERP(xform[i].bent2_x); + INTERP(xform[i].bent2_y); + INTERP(xform[i].bipolar_shift); + INTERP(xform[i].cell_size); + INTERP(xform[i].cpow_r); + INTERP(xform[i].cpow_i); + INTERP(xform[i].cpow_power); + INTERP(xform[i].curve_xamp); + INTERP(xform[i].curve_yamp); + INTERP(xform[i].curve_xlength); + INTERP(xform[i].curve_ylength); + INTERP(xform[i].escher_beta); + INTERP(xform[i].lazysusan_x); + INTERP(xform[i].lazysusan_y); + INTERP(xform[i].lazysusan_twist); + INTERP(xform[i].lazysusan_space); + INTERP(xform[i].lazysusan_spin); + INTERP(xform[i].modulus_x); + INTERP(xform[i].modulus_y); + INTERP(xform[i].oscope_separation); + INTERP(xform[i].oscope_frequency); + INTERP(xform[i].oscope_amplitude); + INTERP(xform[i].oscope_damping); + INTERP(xform[i].popcorn2_x); + INTERP(xform[i].popcorn2_y); + INTERP(xform[i].popcorn2_c); + INTERP(xform[i].separation_x); + INTERP(xform[i].separation_xinside); + INTERP(xform[i].separation_y); + INTERP(xform[i].separation_yinside); + INTERP(xform[i].split_xsize); + INTERP(xform[i].split_ysize); + INTERP(xform[i].splits_x); + INTERP(xform[i].splits_y); + INTERP(xform[i].stripes_space); + INTERP(xform[i].stripes_warp); + INTERP(xform[i].wedge_angle); + INTERP(xform[i].wedge_hole); + INTERP(xform[i].wedge_count); + INTERP(xform[i].wedge_swirl); + INTERP(xform[i].wedge_julia_angle); + INTERP(xform[i].wedge_julia_count); + INTERP(xform[i].wedge_julia_power); + INTERP(xform[i].wedge_julia_dist); + INTERP(xform[i].wedge_sph_angle); + INTERP(xform[i].wedge_sph_hole); + INTERP(xform[i].wedge_sph_count); + INTERP(xform[i].wedge_sph_swirl); + INTERP(xform[i].whorl_inside); + INTERP(xform[i].whorl_outside); + INTERP(xform[i].waves2_scalex); + INTERP(xform[i].waves2_scaley); + INTERP(xform[i].waves2_freqx); + INTERP(xform[i].waves2_freqy); + + for (j = 0; j < flam3_nvariations; j++) + INTERP(xform[i].var[j]); + + if (flam3_inttype_log == cpi[0].interpolation_type) { + double cxmag[4][2]; // XXX why only 4? should be ncp + double cxang[4][2]; + double cxtrn[4][2]; + + /* affine part */ + clear_matrix(result->xform[i].c); + convert_linear_to_polar(cpi,ncp,i,0,cxang,cxmag,cxtrn); + interp_and_convert_back(c, ncp, i, cxang, cxmag, cxtrn,result->xform[i].c); + + /* post part */ + all_id = 1; + for (k=0; k<ncp; k++) + all_id &= id_matrix(cpi[k].xform[i].post); + + clear_matrix(result->xform[i].post); + if (all_id) { + result->xform[i].post[0][0] = 1.0; + result->xform[i].post[1][1] = 1.0; + } else { + convert_linear_to_polar(cpi,ncp,i,1,cxang,cxmag,cxtrn); + interp_and_convert_back(c, ncp, i, cxang, cxmag, cxtrn,result->xform[i].post); + } + + } else { + + /* Interpolate c matrix & post */ + clear_matrix(result->xform[i].c); + clear_matrix(result->xform[i].post); + all_id = 1; + for (k = 0; k < ncp; k++) { + sum_matrix(c[k], cpi[k].xform[i].c, result->xform[i].c); + sum_matrix(c[k], cpi[k].xform[i].post, result->xform[i].post); + + all_id &= id_matrix(cpi[k].xform[i].post); + + } + if (all_id) { + clear_matrix(result->xform[i].post); + result->xform[i].post[0][0] = 1.0; + result->xform[i].post[1][1] = 1.0; + } + } + + if (ncp==2 && stagger>0 && i!=cpi[0].final_xform_index) { + c[0] = csave[0]; + c[1] = csave[1]; + } + + } + +} + +void establish_asymmetric_refangles(flam3_genome *cp, int ncps) { + + int k, xfi, col; + + double cxang[4][2],d,c1[2]; + + for (xfi=0; xfi<cp[0].num_xforms; xfi++) { + + /* Final xforms don't rotate regardless of their symmetry */ + if (cp[0].final_xform_enable==1 && xfi==cp[0].final_xform_index) + continue; + + for (k=0; k<ncps;k++) { + + /* Establish the angle for each component */ + /* Should potentially functionalize */ + for (col=0;col<2;col++) { + + c1[0] = cp[k].xform[xfi].c[col][0]; + c1[1] = cp[k].xform[xfi].c[col][1]; + + cxang[k][col] = atan2(c1[1],c1[0]); + } + } + + for (k=1; k<ncps; k++) { + + for (col=0;col<2;col++) { + + int sym0,sym1; + int padsymflag; + + d = cxang[k][col]-cxang[k-1][col]; + + /* Adjust to avoid the -pi/pi discontinuity */ + if (d > M_PI+EPS) + cxang[k][col] -= 2*M_PI; + else if (d < -(M_PI-EPS) ) + cxang[k][col] += 2*M_PI; + + /* If this is an asymmetric case, store the NON-symmetric angle */ + /* Check them pairwise and store the reference angle in the second */ + /* to avoid overwriting if asymmetric on both sides */ + padsymflag = 0; + + sym0 = (cp[k-1].xform[xfi].animate==0 || (cp[k-1].xform[xfi].padding==1 && padsymflag)); + sym1 = (cp[k].xform[xfi].animate==0 || (cp[k].xform[xfi].padding==1 && padsymflag)); + + if ( sym1 && !sym0 ) + cp[k].xform[xfi].wind[col] = cxang[k-1][col] + 2*M_PI; + else if ( sym0 && !sym1 ) + cp[k].xform[xfi].wind[col] = cxang[k][col] + 2*M_PI; + + } + } + } +} + +void flam3_align(flam3_genome *dst, flam3_genome *src, int nsrc) { + int i, tfx, tnx, max_nx = 0, max_fx = 0; + int already_aligned=1; + int xf,j; + int ii,fnd; + double normed; + int usethisone; + + usethisone = (nsrc/2) - 1; + + max_nx = src[0].num_xforms - (src[0].final_xform_index >= 0); + max_fx = src[0].final_xform_enable; + + for (i = 1; i < nsrc; i++) { + tnx = src[i].num_xforms - (src[i].final_xform_index >= 0); + if (max_nx != tnx) { + already_aligned = 0; + if (tnx > max_nx) max_nx = tnx; + } + + tfx = src[i].final_xform_enable; + if (max_fx != tfx) { + already_aligned = 0; + max_fx |= tfx; + } + } + + /* Pad the cps to equal xforms */ + for (i = 0; i < nsrc; i++) { + flam3_copyx(&dst[i], &src[i], max_nx, max_fx); + } + + /* Skip if this genome is compatibility mode */ + if (dst[usethisone].interpolation_type == flam3_inttype_compat || + dst[usethisone].interpolation_type == flam3_inttype_older) + return; + + + /* Check to see if there's a parametric variation present in one xform */ + /* but not in an aligned xform. If this is the case, use the parameters */ + /* from the xform with the variation as the defaults for the blank one. */ + + /* All genomes will have the same number of xforms at this point */ + /* num = max_nx + max_fx */ + for (i = 0; i<nsrc; i++) { + + + for (xf = 0; xf<max_nx+max_fx; xf++) { + + /* Loop over the variations to see which of them are set to 0 */ + /* Note that there are no parametric variations < 23 */ + for (j = 23; j < flam3_nvariations; j++) { + + if (dst[i].xform[xf].var[j]==0) { + + if (i>0) { + + /* Check to see if the prior genome's xform is populated */ + if (dst[i-1].xform[xf].var[j] != 0) { + + /* Copy the prior genome's parameters and continue */ + flam3_copy_params(&(dst[i].xform[xf]), &(dst[i-1].xform[xf]), j); + continue; + } + + } else if (i<nsrc-1) { + + /* Check to see if the next genome's xform is populated */ + if (dst[i+1].xform[xf].var[j] != 0) { + + /* Copy the next genome's parameters and continue */ + flam3_copy_params(&(dst[i].xform[xf]), &(dst[i+1].xform[xf]), j); + continue; + } + } + } + } /* variations */ + + if (dst[i].xform[xf].padding == 1 && !already_aligned) { + + /* This is a new xform. Let's see if we can choose a better 'identity' xform. */ + /* Check the neighbors to see if any of these variations are used: */ + /* rings2, fan2, blob, perspective, julian, juliascope, ngon, curl, super_shape, split */ + /* If so, we can use a better starting point for these */ + + /* Remove linear from the list */ + dst[i].xform[xf].var[0] = 0.0; + + /* Look through all of the 'companion' xforms to see if we get a match on any of these */ + fnd=0; + + /* Only do the next substitution for log interpolation */ + if ( (i==0 && dst[i].interpolation_type == flam3_inttype_log) + || (i>0 && dst[i-1].interpolation_type==flam3_inttype_log) ) { + + for (ii=-1; ii<=1; ii+=2) { + + /* Skip if out of bounds */ + if (i+ii<0 || i+ii>=nsrc) + continue; + + /* Skip if this is also padding */ + if (dst[i+ii].xform[xf].padding==1) + continue; + + /* Spherical / Ngon (trumps all others due to holes) */ + /* Interpolate these against a 180 degree rotated identity */ + /* with weight -1. */ + /* Added JULIAN/JULIASCOPE to get rid of black wedges */ + if (dst[i+ii].xform[xf].var[VAR_SPHERICAL]>0 || + dst[i+ii].xform[xf].var[VAR_NGON]>0 || + dst[i+ii].xform[xf].var[VAR_JULIAN]>0 || + dst[i+ii].xform[xf].var[VAR_JULIASCOPE]>0 || + dst[i+ii].xform[xf].var[VAR_POLAR]>0 || + dst[i+ii].xform[xf].var[VAR_WEDGE_SPH]>0 || + dst[i+ii].xform[xf].var[VAR_WEDGE_JULIA]>0) { + + dst[i].xform[xf].var[VAR_LINEAR] = -1.0; + /* Set the coefs appropriately */ + dst[i].xform[xf].c[0][0] = -1.0; + dst[i].xform[xf].c[0][1] = 0.0; + dst[i].xform[xf].c[1][0] = 0.0; + dst[i].xform[xf].c[1][1] = -1.0; + dst[i].xform[xf].c[2][0] = 0.0; + dst[i].xform[xf].c[2][1] = 0.0; + fnd=-1; + } + } + + } + + if (fnd==0) { + + for (ii=-1; ii<=1; ii+=2) { + + /* Skip if out of bounds */ + if (i+ii<0 || i+ii>=nsrc) + continue; + + /* Skip if also padding */ + if (dst[i+ii].xform[xf].padding==1) + continue; + + /* Rectangles */ + if (dst[i+ii].xform[xf].var[VAR_RECTANGLES]>0) { + dst[i].xform[xf].var[VAR_RECTANGLES] = 1.0; + dst[i].xform[xf].rectangles_x = 0.0; + dst[i].xform[xf].rectangles_y = 0.0; + fnd++; + } + + /* Rings 2 */ + if (dst[i+ii].xform[xf].var[VAR_RINGS2]>0) { + dst[i].xform[xf].var[VAR_RINGS2] = 1.0; + dst[i].xform[xf].rings2_val = 0.0; + fnd++; + } + + /* Fan 2 */ + if (dst[i+ii].xform[xf].var[VAR_FAN2]>0) { + dst[i].xform[xf].var[VAR_FAN2] = 1.0; + dst[i].xform[xf].fan2_x = 0.0; + dst[i].xform[xf].fan2_y = 0.0; + fnd++; + } + + /* Blob */ + if (dst[i+ii].xform[xf].var[VAR_BLOB]>0) { + dst[i].xform[xf].var[VAR_BLOB] = 1.0; + dst[i].xform[xf].blob_low = 1.0; + dst[i].xform[xf].blob_high = 1.0; + dst[i].xform[xf].blob_waves = 1.0; + fnd++; + } + + /* Perspective */ + if (dst[i+ii].xform[xf].var[VAR_PERSPECTIVE]>0) { + dst[i].xform[xf].var[VAR_PERSPECTIVE] = 1.0; + dst[i].xform[xf].perspective_angle = 0.0; + /* Keep the perspective distance as-is */ + fnd++; + } + + /* Curl */ + if (dst[i+ii].xform[xf].var[VAR_CURL]>0) { + dst[i].xform[xf].var[VAR_CURL] = 1.0; + dst[i].xform[xf].curl_c1 = 0.0; + dst[i].xform[xf].curl_c2 = 0.0; + fnd++; + } + + /* Super-Shape */ + if (dst[i+ii].xform[xf].var[VAR_SUPER_SHAPE]>0) { + dst[i].xform[xf].var[VAR_SUPER_SHAPE] = 1.0; + /* Keep supershape_m the same */ + dst[i].xform[xf].super_shape_n1 = 2.0; + dst[i].xform[xf].super_shape_n2 = 2.0; + dst[i].xform[xf].super_shape_n3 = 2.0; + dst[i].xform[xf].super_shape_rnd = 0.0; + dst[i].xform[xf].super_shape_holes = 0.0; + fnd++; + } + } + } + + /* If we didn't have any matches with those, */ + /* try the affine ones, fan and rings */ + if (fnd==0) { + + for (ii=-1; ii<=1; ii+=2) { + + /* Skip if out of bounds */ + if (i+ii<0 || i+ii>=nsrc) + continue; + + /* Skip if also a padding xform */ + if (dst[i+ii].xform[xf].padding==1) + continue; + + /* Fan */ + if (dst[i+ii].xform[xf].var[VAR_FAN]>0) { + dst[i].xform[xf].var[VAR_FAN] = 1.0; + fnd++; + } + + /* Rings */ + if (dst[i+ii].xform[xf].var[VAR_RINGS]>0) { + dst[i].xform[xf].var[VAR_RINGS] = 1.0; + fnd++; + } + + } + + if (fnd>0) { + /* Set the coefs appropriately */ + dst[i].xform[xf].c[0][0] = 0.0; + dst[i].xform[xf].c[0][1] = 1.0; + dst[i].xform[xf].c[1][0] = 1.0; + dst[i].xform[xf].c[1][1] = 0.0; + dst[i].xform[xf].c[2][0] = 0.0; + dst[i].xform[xf].c[2][1] = 0.0; + } + } + + /* If we still have no matches, switch back to linear */ + if (fnd==0) + + dst[i].xform[xf].var[VAR_LINEAR] = 1.0; + + else if (fnd>0) { + + /* Otherwise, go through and normalize the weights. */ + normed = 0.0; + for (j = 0; j < flam3_nvariations; j++) + normed += dst[i].xform[xf].var[j]; + + for (j = 0; j < flam3_nvariations; j++) + dst[i].xform[xf].var[j] /= normed; + + } + } + } /* xforms */ + } /* genomes */ + +} + diff --git a/src/interpolation.h b/src/interpolation.h new file mode 100644 index 0000000..82d3133 --- /dev/null +++ b/src/interpolation.h @@ -0,0 +1,58 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + +#ifndef interpolation_included +#define interpolation_included + +#include "private.h" + +#define INTERP(x) do { result->x = 0.0; \ + for (k = 0; k < ncp; k++) result->x += c[k] * cpi[k].x; } while(0) + +#define INTERI(x) do { double tt = 0.0; \ + for (k = 0; k < ncp; k++) tt += c[k] * cpi[k].x; \ + result->x = (int)rint(tt); } while(0) + +double adjust_percentage(double in); +double motion_funcs(int funcnum, double timeval); + +double smoother(double t); +double get_stagger_coef(double t, double stagger_prc, int num_xforms, int this_xform); + +double det_matrix(double s[2][2]); +int id_matrix(double s[3][2]); +int zero_matrix(double s[3][2]); +void copy_matrix(double to[3][2], double from[3][2]); +void clear_matrix(double m[3][2]); +void sum_matrix(double s, double m1[3][2], double m2[3][2]); +void mult_matrix(double s1[2][2], double s2[2][2], double d[2][2]); + +int compare_xforms(const void *av, const void *bv); + +void interpolate_cmap(flam3_palette cmap, double blend, + int index0, double hue0, int index1, double hue1); +void interp_and_convert_back(double *c, int ncps, int xfi, double cxang[4][2], + double cxmag[4][2], double cxtrn[4][2],double store_array[3][2]); +void convert_linear_to_polar(flam3_genome *cp, int ncps, int xfi, int cflag, + double cxang[4][2], double cxmag[4][2], double cxtrn[4][2]); + +void interpolate_catmull_rom(flam3_genome cps[], double t, flam3_genome *result); +void flam3_interpolate_n(flam3_genome *result, int ncp, flam3_genome *cpi, double *c, double stagger); +void establish_asymmetric_refangles(flam3_genome *cp, int ncps); +void flam3_align(flam3_genome *dst, flam3_genome *src, int nsrc); +#endif diff --git a/src/isaac.c b/src/isaac.c new file mode 100644 index 0000000..014c4d9 --- /dev/null +++ b/src/isaac.c @@ -0,0 +1,110 @@ +/* +------------------------------------------------------------------------------ +isaac.c: By Bob Jenkins. My random number generator, ISAAC. +MODIFIED: + 960327: Creation (addition of randinit, really) + 970719: use context, not global variables, for internal state + 980324: make a portable version + 991209: modified for inclusion with GNU Backgammon by Gary Wong + 070121: modified for inclusion with flam3 by Erik Reckase +------------------------------------------------------------------------------ +*/ + +#include "isaacs.h" +#include "isaac.h" + +#define ind(mm,x) ((mm)[(x>>2)&(RANDSIZ-1)]) +#define rngstep(mix,a,b,mm,m,m2,r,x) \ +{ \ + x = *m; \ + a = ((a^(mix)) + *(m2++)) & 0xffffffff; \ + *(m++) = y = (ind(mm,x) + a + b) & 0xffffffff; \ + *(r++) = b = (ind(mm,y>>RANDSIZL) + x) & 0xffffffff; \ +} + +void isaac(randctx *ctx) +{ + register ub4 a,b,x,y,*m,*mm,*m2,*r,*mend; + mm=ctx->randmem; r=ctx->randrsl; + a = ctx->randa; b = (ctx->randb + (++ctx->randc)) & 0xffffffff; + for (m = mm, mend = m2 = m+(RANDSIZ/2); m<mend; ) + { + rngstep( a<<13, a, b, mm, m, m2, r, x); + rngstep( a>>6 , a, b, mm, m, m2, r, x); + rngstep( a<<2 , a, b, mm, m, m2, r, x); + rngstep( a>>16, a, b, mm, m, m2, r, x); + } + for (m2 = mm; m2<mend; ) + { + rngstep( a<<13, a, b, mm, m, m2, r, x); + rngstep( a>>6 , a, b, mm, m, m2, r, x); + rngstep( a<<2 , a, b, mm, m, m2, r, x); + rngstep( a>>16, a, b, mm, m, m2, r, x); + } + ctx->randb = b; ctx->randa = a; +} + + +#define mix(a,b,c,d,e,f,g,h) \ +{ \ + a^=b<<11; d+=a; b+=c; \ + b^=c>>2; e+=b; c+=d; \ + c^=d<<8; f+=c; d+=e; \ + d^=e>>16; g+=d; e+=f; \ + e^=f<<10; h+=e; f+=g; \ + f^=g>>4; a+=f; g+=h; \ + g^=h<<8; b+=g; h+=a; \ + h^=a>>9; c+=h; a+=b; \ +} + +/* if (flag==TRUE), then use the contents of randrsl[] to initialize mm[]. */ +void irandinit(randctx *ctx, word flag) +{ + word i; + ub4 a,b,c,d,e,f,g,h; + ub4 *m,*r; + ctx->randa = ctx->randb = ctx->randc = 0; + m=ctx->randmem; + r=ctx->randrsl; + a=b=c=d=e=f=g=h=0x9e3779b9; /* the golden ratio */ + + for (i=0; i<4; ++i) /* scramble it */ + { + mix(a,b,c,d,e,f,g,h); + } + + if (flag) + { + /* initialize using the contents of r[] as the seed */ + for (i=0; i<RANDSIZ; i+=8) + { + a+=r[i ]; b+=r[i+1]; c+=r[i+2]; d+=r[i+3]; + e+=r[i+4]; f+=r[i+5]; g+=r[i+6]; h+=r[i+7]; + mix(a,b,c,d,e,f,g,h); + m[i ]=a; m[i+1]=b; m[i+2]=c; m[i+3]=d; + m[i+4]=e; m[i+5]=f; m[i+6]=g; m[i+7]=h; + } + /* do a second pass to make all of the seed affect all of m */ + for (i=0; i<RANDSIZ; i+=8) + { + a+=m[i ]; b+=m[i+1]; c+=m[i+2]; d+=m[i+3]; + e+=m[i+4]; f+=m[i+5]; g+=m[i+6]; h+=m[i+7]; + mix(a,b,c,d,e,f,g,h); + m[i ]=a; m[i+1]=b; m[i+2]=c; m[i+3]=d; + m[i+4]=e; m[i+5]=f; m[i+6]=g; m[i+7]=h; + } + } + else + { + for (i=0; i<RANDSIZ; i+=8) + { + /* fill in mm[] with messy stuff */ + mix(a,b,c,d,e,f,g,h); + m[i ]=a; m[i+1]=b; m[i+2]=c; m[i+3]=d; + m[i+4]=e; m[i+5]=f; m[i+6]=g; m[i+7]=h; + } + } + + isaac(ctx); /* fill in the first set of results */ + ctx->randcnt=RANDSIZ; /* prepare to use the first set of results */ +} diff --git a/src/isaac.h b/src/isaac.h new file mode 100644 index 0000000..6554569 --- /dev/null +++ b/src/isaac.h @@ -0,0 +1,56 @@ +/* +------------------------------------------------------------------------------ +isaac.h: definitions for a random number generator +MODIFIED: + 960327: Creation (addition of randinit, really) + 970719: use context, not global variables, for internal state + 980324: renamed seed to flag + 980605: recommend RANDSIZL=4 for noncryptography. + 991209: modified for inclusion with GNU Backgammon by Gary Wong + 070121: modified for inclusion with flam3 by Erik Reckase +------------------------------------------------------------------------------ +*/ + +#include "isaacs.h" + +#ifndef _ISAAC_H_ +#define _ISAAC_H_ + +#define RANDSIZL (4) /* I recommend 8 for crypto, 4 for simulations */ +#define RANDSIZ (1<<RANDSIZL) + +/* context of random number generator */ +struct randctx +{ + ub4 randcnt; + ub4 randrsl[RANDSIZ]; + ub4 randmem[RANDSIZ]; + ub4 randa; + ub4 randb; + ub4 randc; +}; +typedef struct randctx randctx; + +/* +------------------------------------------------------------------------------ + If (flag==TRUE), then use the contents of randrsl[0..RANDSIZ-1] as the seed. +------------------------------------------------------------------------------ +*/ +void irandinit( randctx *r, word flag ); + +void isaac( randctx *r ); + + +/* +------------------------------------------------------------------------------ + Call irand(/o_ randctx *r _o/) to retrieve a single 32-bit random value +------------------------------------------------------------------------------ +*/ +#define irand(r) \ + (!(r)->randcnt-- ? \ + (isaac(r), (r)->randcnt=RANDSIZ-1, (r)->randrsl[(r)->randcnt]) : \ + (r)->randrsl[(r)->randcnt]) + +#endif + + diff --git a/src/isaacs.h b/src/isaacs.h new file mode 100644 index 0000000..687d8ae --- /dev/null +++ b/src/isaacs.h @@ -0,0 +1,46 @@ +/* + +------------------------------------------------------------------------------ + +Standard definitions and types, Bob Jenkins + +Modified for inclusion with flam3 by Erik Reckase + +------------------------------------------------------------------------------ + +*/ + +#ifndef _ISAACS_H_ + +#define _ISAACS_H_ + +typedef unsigned long int ub4; /* unsigned 4-byte quantities */ + +#define UB4MAXVAL 0xffffffff + +typedef signed long int sb4; + +#define SB4MAXVAL 0x7fffffff + +typedef unsigned short int ub2; + +#define UB2MAXVAL 0xffff + +typedef signed short int sb2; + +#define SB2MAXVAL 0x7fff + +typedef unsigned char ub1; + +#define UB1MAXVAL 0xff + +typedef signed char sb1; /* signed 1-byte quantities */ + +#define SB1MAXVAL 0x7f + +typedef int word; /* fastest type available */ + + + +#endif + diff --git a/src/jpeg.c b/src/jpeg.c new file mode 100644 index 0000000..218f1be --- /dev/null +++ b/src/jpeg.c @@ -0,0 +1,145 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + + +#include <stdio.h> +#include <stdlib.h> +#include <jpeglib.h> +#include <string.h> + +#include "config.h" +#include "img.h" +#include "flam3.h" +#include "private.h" + +void +write_jpeg(FILE *file, unsigned char *image, int width, int height, flam3_img_comments *fpc) { + struct jpeg_compress_struct info; + struct jpeg_error_mgr jerr; + size_t i; + char *nick = getenv("nick"); + char *url = getenv("url"); + char *id = getenv("id"); + char *ai; /* For argi */ + int jpegcom_enable = argi("enable_jpeg_comments",1); + + char nick_string[64], url_string[128], id_string[128]; + char bv_string[64],ni_string[64],rt_string[64]; + char genome_string[65536], ver_string[64]; + + /* Create the mandatory comment strings */ + snprintf(genome_string,65536,"flam3_genome: %s",fpc->genome); + snprintf(bv_string,64,"flam3_error_rate: %s",fpc->badvals); + snprintf(ni_string,64,"flam3_samples: %s",fpc->numiters); + snprintf(rt_string,64,"flam3_time: %s",fpc->rtime); + snprintf(ver_string,64,"flam3_version: %s",flam3_version()); + + info.err = jpeg_std_error(&jerr); + jpeg_create_compress(&info); + jpeg_stdio_dest(&info, file); + info.in_color_space = JCS_RGB; + info.input_components = 3; + info.image_width = width; + info.image_height = height; + jpeg_set_defaults(&info); + + if (getenv("jpeg")) { + int quality = atoi(getenv("jpeg")); + jpeg_set_quality(&info, quality, TRUE); + } + + jpeg_start_compress(&info, TRUE); + + /* Write comments to jpeg */ + if (jpegcom_enable==1) { + jpeg_write_marker(&info, JPEG_COM, (unsigned char *)ver_string, (int)strlen(ver_string)); + + if (0 != nick) { + snprintf(nick_string,64,"flam3_nickname: %s",nick); + jpeg_write_marker(&info, JPEG_COM, (unsigned char *)nick_string, (int)strlen(nick_string)); + } + + if (0 != url) { + snprintf(url_string,128,"flam3_url: %s",url); + jpeg_write_marker(&info, JPEG_COM, (unsigned char *)url_string, (int)strlen(url_string)); + } + + if (0 != id) { + snprintf(id_string,128,"flam3_id: %s",id); + jpeg_write_marker(&info, JPEG_COM, (unsigned char *)id_string, (int)strlen(id_string)); + } + + jpeg_write_marker(&info, JPEG_COM, (unsigned char *)bv_string, (int)strlen(bv_string)); + jpeg_write_marker(&info, JPEG_COM, (unsigned char *)ni_string, (int)strlen(ni_string)); + jpeg_write_marker(&info, JPEG_COM, (unsigned char *)rt_string, (int)strlen(rt_string)); + jpeg_write_marker(&info, JPEG_COM, (unsigned char *)genome_string, (int)strlen(genome_string)); + } + + for (i = 0; i < height; i++) { + JSAMPROW row_pointer[1]; + row_pointer[0] = (unsigned char *) image + (3 * width * i); + jpeg_write_scanlines(&info, row_pointer, 1); + } + jpeg_finish_compress(&info); + jpeg_destroy_compress(&info); +} + +unsigned char *read_jpeg(FILE *ifp, int *width, int *height) { + struct jpeg_decompress_struct cinfo; + struct jpeg_error_mgr jerr; + int num_scanlines; + unsigned char *p, *q, *t; + + cinfo.err = jpeg_std_error(&jerr); + jpeg_create_decompress(&cinfo); + jpeg_stdio_src(&cinfo, ifp); + (void) jpeg_read_header(&cinfo, TRUE); + (void) jpeg_start_decompress(&cinfo); + + /* or image_width? */ + *width = cinfo.output_width; + *height = cinfo.output_height; + + if (3 != cinfo.output_components) { + printf("can only read RGB JPEG files, not %d components.\n", + cinfo.output_components); + return 0; + } + p = q = malloc(4 * *width * *height); + t = malloc(3 * *width); + + while (cinfo.output_scanline < cinfo.output_height) { + unsigned char *s = t; + int i; + num_scanlines = jpeg_read_scanlines(&cinfo, &t, 1); + for (i = 0; i < *width; i++) { + p[0] = s[0]; + p[1] = s[1]; + p[2] = s[2]; + p[3] = 255; + s += 3; + p += 4; + } + } + + (void) jpeg_finish_decompress(&cinfo); + jpeg_destroy_decompress(&cinfo); + + free(t); + return q; +} diff --git a/src/ltmain.sh b/src/ltmain.sh new file mode 100755 index 0000000..e420fac --- /dev/null +++ b/src/ltmain.sh @@ -0,0 +1,6964 @@ +# ltmain.sh - Provide generalized library-building support services. +# NOTE: Changing this file will not affect anything until you rerun configure. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, +# 2007, 2008 Free Software Foundation, Inc. +# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 +# +# 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. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +basename="s,^.*/,,g" + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" + +# The name of this program: +progname=`echo "$progpath" | $SED $basename` +modename="$progname" + +# Global variables: +EXIT_SUCCESS=0 +EXIT_FAILURE=1 + +PROGRAM=ltmain.sh +PACKAGE=libtool +VERSION="1.5.26 Debian 1.5.26-1ubuntu1" +TIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)" + +# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# Check that we have a working $echo. +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then + # Yippee, $echo works! + : +else + # Restart under the correct shell, and then maybe $echo will work. + exec $SHELL "$progpath" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat <<EOF +$* +EOF + exit $EXIT_SUCCESS +fi + +default_mode= +help="Try \`$progname --help' for more information." +magic="%%%MAGIC variable%%%" +mkdir="mkdir" +mv="mv -f" +rm="rm -f" + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed="${SED}"' -e 1s/^X//' +sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + SP2NL='tr \040 \012' + NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + SP2NL='tr \100 \n' + NL2SP='tr \r\n \100\100' + ;; +esac + +# NLS nuisances. +# Only set LANG and LC_ALL to C if already set. +# These must not be set unconditionally because not all systems understand +# e.g. LANG=C (notably SCO). +# We save the old values to restore during execute mode. +lt_env= +for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test \"\${$lt_var+set}\" = set; then + save_$lt_var=\$$lt_var + lt_env=\"$lt_var=\$$lt_var \$lt_env\" + $lt_var=C + export $lt_var + fi" +done + +if test -n "$lt_env"; then + lt_env="env $lt_env" +fi + +# Make sure IFS has a sensible default +lt_nl=' +' +IFS=" $lt_nl" + +if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then + $echo "$modename: not configured to build any kind of library" 1>&2 + $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + exit $EXIT_FAILURE +fi + +# Global variables. +mode=$default_mode +nonopt= +prev= +prevopt= +run= +show="$echo" +show_help= +execute_dlfiles= +duplicate_deps=no +preserve_args= +lo2o="s/\\.lo\$/.${objext}/" +o2lo="s/\\.${objext}\$/.lo/" +extracted_archives= +extracted_serial=0 + +##################################### +# Shell function definitions: +# This seems to be the best place for them + +# func_mktempdir [string] +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, STRING is the basename for that directory. +func_mktempdir () +{ + my_template="${TMPDIR-/tmp}/${1-$progname}" + + if test "$run" = ":"; then + # Return a directory name, but don't create it in dry-run mode + my_tmpdir="${my_template}-$$" + else + + # If mktemp works, use that first and foremost + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + + if test ! -d "$my_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + my_tmpdir="${my_template}-${RANDOM-0}$$" + + save_mktempdir_umask=`umask` + umask 0077 + $mkdir "$my_tmpdir" + umask $save_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$my_tmpdir" || { + $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 + exit $EXIT_FAILURE + } + fi + + $echo "X$my_tmpdir" | $Xsed +} + + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +func_win32_libid () +{ + win32_libid_type="unknown" + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ + $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then + win32_nmres=`eval $NM -f posix -A $1 | \ + $SED -n -e '1,100{ + / I /{ + s,.*,import, + p + q + } + }'` + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $echo $win32_libid_type +} + + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + CC_quoted="$CC_quoted $arg" + done + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + CC_quoted="$CC_quoted $arg" + done + case "$@ " in + " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + $echo "$modename: unable to infer tagged configuration" + $echo "$modename: specify a tag with \`--tag'" 1>&2 + exit $EXIT_FAILURE +# else +# $echo "$modename: using $tagname tagged configuration" + fi + ;; + esac + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" + + $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" + $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 + exit $EXIT_FAILURE + fi +} + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + my_status="" + + $show "${rm}r $my_gentop" + $run ${rm}r "$my_gentop" + $show "$mkdir $my_gentop" + $run $mkdir "$my_gentop" + my_status=$? + if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then + exit $my_status + fi + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + extracted_serial=`expr $extracted_serial + 1` + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir="$my_gentop/$my_xlib_u" + + $show "${rm}r $my_xdir" + $run ${rm}r "$my_xdir" + $show "$mkdir $my_xdir" + $run $mkdir "$my_xdir" + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then + exit $exit_status + fi + case $host in + *-darwin*) + $show "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + if test -z "$run"; then + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` + darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` + if test -n "$darwin_arches"; then + darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + $show "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" + lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" + func_extract_an_archive "`pwd`" "${darwin_base_archive}" + cd "$darwin_curdir" + $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + done # $darwin_arches + ## Okay now we have a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` + lipo -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + ${rm}r unfat-$$ + cd "$darwin_orig_dir" + else + cd "$darwin_orig_dir" + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + fi # $run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + done + func_extract_archives_result="$my_oldobjs" +} +# End of Shell function definitions +##################################### + +# Darwin sucks +eval std_shrext=\"$shrext_cmds\" + +disable_libs=no + +# Parse our command line options once, thoroughly. +while test "$#" -gt 0 +do + arg="$1" + shift + + case $arg in + -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + execute_dlfiles) + execute_dlfiles="$execute_dlfiles $arg" + ;; + tag) + tagname="$arg" + preserve_args="${preserve_args}=$arg" + + # Check whether tagname contains only valid characters + case $tagname in + *[!-_A-Za-z0-9,/]*) + $echo "$progname: invalid tag name: $tagname" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + case $tagname in + CC) + # Don't test for the "default" C tag, as we know, it's there, but + # not specially marked. + ;; + *) + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then + taglist="$taglist $tagname" + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" + else + $echo "$progname: ignoring unknown tag $tagname" 1>&2 + fi + ;; + esac + ;; + *) + eval "$prev=\$arg" + ;; + esac + + prev= + prevopt= + continue + fi + + # Have we seen a non-optional argument yet? + case $arg in + --help) + show_help=yes + ;; + + --version) + echo "\ +$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP + +Copyright (C) 2008 Free Software Foundation, Inc. +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + exit $? + ;; + + --config) + ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath + # Now print the configurations for the tags. + for tagname in $taglist; do + ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" + done + exit $? + ;; + + --debug) + $echo "$progname: enabling shell trace mode" + set -x + preserve_args="$preserve_args $arg" + ;; + + --dry-run | -n) + run=: + ;; + + --features) + $echo "host: $host" + if test "$build_libtool_libs" = yes; then + $echo "enable shared libraries" + else + $echo "disable shared libraries" + fi + if test "$build_old_libs" = yes; then + $echo "enable static libraries" + else + $echo "disable static libraries" + fi + exit $? + ;; + + --finish) mode="finish" ;; + + --mode) prevopt="--mode" prev=mode ;; + --mode=*) mode="$optarg" ;; + + --preserve-dup-deps) duplicate_deps="yes" ;; + + --quiet | --silent) + show=: + preserve_args="$preserve_args $arg" + ;; + + --tag) + prevopt="--tag" + prev=tag + preserve_args="$preserve_args --tag" + ;; + --tag=*) + set tag "$optarg" ${1+"$@"} + shift + prev=tag + preserve_args="$preserve_args --tag" + ;; + + -dlopen) + prevopt="-dlopen" + prev=execute_dlfiles + ;; + + -*) + $echo "$modename: unrecognized option \`$arg'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; + + *) + nonopt="$arg" + break + ;; + esac +done + +if test -n "$prevopt"; then + $echo "$modename: option \`$prevopt' requires an argument" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE +fi + +case $disable_libs in +no) + ;; +shared) + build_libtool_libs=no + build_old_libs=yes + ;; +static) + build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` + ;; +esac + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + +if test -z "$show_help"; then + + # Infer the operation mode. + if test -z "$mode"; then + $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 + $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 + case $nonopt in + *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) + mode=link + for arg + do + case $arg in + -c) + mode=compile + break + ;; + esac + done + ;; + *db | *dbx | *strace | *truss) + mode=execute + ;; + *install*|cp|mv) + mode=install + ;; + *rm) + mode=uninstall + ;; + *) + # If we have no mode, but dlfiles were specified, then do execute mode. + test -n "$execute_dlfiles" && mode=execute + + # Just use the default operation mode. + if test -z "$mode"; then + if test -n "$nonopt"; then + $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 + else + $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 + fi + fi + ;; + esac + fi + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$execute_dlfiles" && test "$mode" != execute; then + $echo "$modename: unrecognized option \`-dlopen'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$modename --help --mode=$mode' for more information." + + # These modes are in order of execution frequency so that they run quickly. + case $mode in + # libtool compile mode + compile) + modename="$modename: compile" + # Get the compilation command and the source file. + base_compile= + srcfile="$nonopt" # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg="$arg" + arg_mode=normal + ;; + + target ) + libobj="$arg" + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + if test -n "$libobj" ; then + $echo "$modename: you cannot specify \`-o' more than once" 1>&2 + exit $EXIT_FAILURE + fi + arg_mode=target + continue + ;; + + -static | -prefer-pic | -prefer-non-pic) + later="$later $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` + lastarg= + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" + + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + lastarg="$lastarg $arg" + done + IFS="$save_ifs" + lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` + + # Add the arguments to base_compile. + base_compile="$base_compile $lastarg" + continue + ;; + + * ) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg="$srcfile" + srcfile="$arg" + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` + + case $lastarg in + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, and some SunOS ksh mistreat backslash-escaping + # in scan sets (worked around with variable expansion), + # and furthermore cannot handle '|' '&' '(' ')' in scan sets + # at all, so we specify them separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + lastarg="\"$lastarg\"" + ;; + esac + + base_compile="$base_compile $lastarg" + done # for arg + + case $arg_mode in + arg) + $echo "$modename: you must specify an argument for -Xcompile" + exit $EXIT_FAILURE + ;; + target) + $echo "$modename: you must specify a target with \`-o'" 1>&2 + exit $EXIT_FAILURE + ;; + *) + # Get the name of the library object. + [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + xform='[cCFSifmso]' + case $libobj in + *.ada) xform=ada ;; + *.adb) xform=adb ;; + *.ads) xform=ads ;; + *.asm) xform=asm ;; + *.c++) xform=c++ ;; + *.cc) xform=cc ;; + *.ii) xform=ii ;; + *.class) xform=class ;; + *.cpp) xform=cpp ;; + *.cxx) xform=cxx ;; + *.[fF][09]?) xform=[fF][09]. ;; + *.for) xform=for ;; + *.java) xform=java ;; + *.obj) xform=obj ;; + *.sx) xform=sx ;; + esac + + libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` + + case $libobj in + *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; + *) + $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -static) + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` + case $qlibobj in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qlibobj="\"$qlibobj\"" ;; + esac + test "X$libobj" != "X$qlibobj" \ + && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." + objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` + xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$obj"; then + xdir= + else + xdir=$xdir/ + fi + lobj=${xdir}$objdir/$objname + + if test -z "$base_compile"; then + $echo "$modename: you must specify a compilation command" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Delete any leftover library objects. + if test "$build_old_libs" = yes; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + $run $rm $removelist + trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2*) + pic_mode=default + ;; + esac + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then + output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + removelist="$removelist $output_obj $lockfile" + trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$need_locks" = yes; then + until $run ln "$progpath" "$lockfile" 2>/dev/null; do + $show "Waiting for $lockfile to be removed" + sleep 2 + done + elif test "$need_locks" = warn; then + if test -f "$lockfile"; then + $echo "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit $EXIT_FAILURE + fi + $echo "$srcfile" > "$lockfile" + fi + + if test -n "$fix_srcfile_path"; then + eval srcfile=\"$fix_srcfile_path\" + fi + qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` + case $qsrcfile in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qsrcfile="\"$qsrcfile\"" ;; + esac + + $run $rm "$libobj" "${libobj}T" + + # Create a libtool object file (analogous to a ".la" file), + # but don't create it if we're doing a dry run. + test -z "$run" && cat > ${libobj}T <<EOF +# $libobj - a libtool object file +# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +EOF + + # Only build a PIC object if we are building libtool libraries. + if test "$build_libtool_libs" = yes; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test "$pic_mode" != no; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + if test ! -d "${xdir}$objdir"; then + $show "$mkdir ${xdir}$objdir" + $run $mkdir ${xdir}$objdir + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then + exit $exit_status + fi + fi + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + command="$command -o $lobj" + fi + + $run $rm "$lobj" "$output_obj" + + $show "$command" + if $run eval $lt_env "$command"; then : + else + test -n "$output_obj" && $run $rm $removelist + exit $EXIT_FAILURE + fi + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $echo "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + $show "$mv $output_obj $lobj" + if $run $mv $output_obj $lobj; then : + else + error=$? + $run $rm $removelist + exit $error + fi + fi + + # Append the name of the PIC object to the libtool object file. + test -z "$run" && cat >> ${libobj}T <<EOF +pic_object='$objdir/$objname' + +EOF + + # Allow error messages only from the first compilation. + if test "$suppress_opt" = yes; then + suppress_output=' >/dev/null 2>&1' + fi + else + # No PIC object so indicate it doesn't exist in the libtool + # object file. + test -z "$run" && cat >> ${libobj}T <<EOF +pic_object=none + +EOF + fi + + # Only build a position-dependent object if we build old libraries. + if test "$build_old_libs" = yes; then + if test "$pic_mode" != yes; then + # Don't build PIC code + command="$base_compile $qsrcfile" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test "$compiler_c_o" = yes; then + command="$command -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + command="$command$suppress_output" + $run $rm "$obj" "$output_obj" + $show "$command" + if $run eval $lt_env "$command"; then : + else + $run $rm $removelist + exit $EXIT_FAILURE + fi + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $echo "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + $show "$mv $output_obj $obj" + if $run $mv $output_obj $obj; then : + else + error=$? + $run $rm $removelist + exit $error + fi + fi + + # Append the name of the non-PIC object the libtool object file. + # Only append if the libtool object file exists. + test -z "$run" && cat >> ${libobj}T <<EOF +# Name of the non-PIC object. +non_pic_object='$objname' + +EOF + else + # Append the name of the non-PIC object the libtool object file. + # Only append if the libtool object file exists. + test -z "$run" && cat >> ${libobj}T <<EOF +# Name of the non-PIC object. +non_pic_object=none + +EOF + fi + + $run $mv "${libobj}T" "${libobj}" + + # Unlock the critical section if it was locked + if test "$need_locks" != no; then + $run $rm "$lockfile" + fi + + exit $EXIT_SUCCESS + ;; + + # libtool link mode + link | relink) + modename="$modename: link" + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # which system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll which has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args="$nonopt" + base_compile="$nonopt $@" + compile_command="$nonopt" + finalize_command="$nonopt" + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + + avoid_version=no + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + non_pic_objects= + notinst_path= # paths that contain not-installed libtool libraries + precious_files_regex= + prefer_static_libs=no + preload=no + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + single_module="${wl}-single_module" + + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then + $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg="$1" + shift + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test + ;; + *) qarg=$arg ;; + esac + libtool_args="$libtool_args $qarg" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + compile_command="$compile_command @OUTPUT@" + finalize_command="$finalize_command @OUTPUT@" + ;; + esac + + case $prev in + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. + compile_command="$compile_command @SYMFILE@" + finalize_command="$finalize_command @SYMFILE@" + preload=yes + fi + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test "$prev" = dlprefiles; then + dlself=yes + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test "$prev" = dlfiles; then + dlfiles="$dlfiles $arg" + else + dlprefiles="$dlprefiles $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols="$arg" + if test ! -f "$arg"; then + $echo "$modename: symbol file \`$arg' does not exist" + exit $EXIT_FAILURE + fi + prev= + continue + ;; + expsyms_regex) + export_symbols_regex="$arg" + prev= + continue + ;; + inst_prefix) + inst_prefix_dir="$arg" + prev= + continue + ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; + release) + release="-$arg" + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat $save_arg` + do +# moreargs="$moreargs $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + pic_object= + non_pic_object= + + # Read the .lo file + # If there is no directory component, then add one. + case $arg in + */* | *\\*) . $arg ;; + *) . ./$arg ;; + esac + + if test -z "$pic_object" || \ + test -z "$non_pic_object" || + test "$pic_object" = none && \ + test "$non_pic_object" = none; then + $echo "$modename: cannot find name of object for \`$arg'" 1>&2 + exit $EXIT_FAILURE + fi + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + libobjs="$libobjs $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + non_pic_objects="$non_pic_objects $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if test -z "$run"; then + $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 + exit $EXIT_FAILURE + else + # Dry-run case. + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` + non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` + libobjs="$libobjs $pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + fi + done + else + $echo "$modename: link input file \`$save_arg' does not exist" + exit $EXIT_FAILURE + fi + arg=$save_arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + $echo "$modename: only absolute run-paths are allowed" 1>&2 + exit $EXIT_FAILURE + ;; + esac + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; + *) rpath="$rpath $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) xrpath="$xrpath $arg" ;; + esac + fi + prev= + continue + ;; + xcompiler) + compiler_flags="$compiler_flags $qarg" + prev= + compile_command="$compile_command $qarg" + finalize_command="$finalize_command $qarg" + continue + ;; + xlinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $wl$qarg" + prev= + compile_command="$compile_command $wl$qarg" + finalize_command="$finalize_command $wl$qarg" + continue + ;; + xcclinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $qarg" + prev= + compile_command="$compile_command $qarg" + finalize_command="$finalize_command $qarg" + continue + ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; + darwin_framework|darwin_framework_skip) + test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + prev= + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg="$arg" + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + compile_command="$compile_command $link_static_flag" + finalize_command="$finalize_command $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 + continue + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + $echo "$modename: more than one -exported-symbols argument is not allowed" + exit $EXIT_FAILURE + fi + if test "X$arg" = "X-export-symbols"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework|-arch|-isysroot) + case " $CC " in + *" ${arg} ${1} "* | *" ${arg} ${1} "*) + prev=darwin_framework_skip ;; + *) compiler_flags="$compiler_flags $arg" + prev=darwin_framework ;; + esac + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + ;; + esac + continue + ;; + + -L*) + dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 + absdir="$dir" + notinst_path="$notinst_path $dir" + fi + dir="$absdir" + ;; + esac + case "$deplibs " in + *" -L$dir "*) ;; + *) + deplibs="$deplibs -L$dir" + lib_search_path="$lib_search_path $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + *) dllsearchpath="$dllsearchpath:$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test "X$arg" = "X-lc" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + deplibs="$deplibs -framework System" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test "X$arg" = "X-lc" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; + esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + deplibs="$deplibs $arg" + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + -model) + compile_command="$compile_command $arg" + compiler_flags="$compiler_flags $arg" + finalize_command="$finalize_command $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + compiler_flags="$compiler_flags $arg" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + continue + ;; + + -multi_module) + single_module="${wl}-multi_module" + continue + ;; + + -module) + module=yes + continue + ;; + + # -64, -mips[0-9] enable 64-bit mode on the SGI compiler + # -r[0-9][0-9]* specifies the processor on the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler + # +DA*, +DD* enable 64-bit mode on the HP compiler + # -q* pass through compiler args for the IBM compiler + # -m* pass through architecture-specific compiler args for GCC + # -m*, -t[45]*, -txscale* pass through architecture-specific + # compiler args for GCC + # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC + # -F/path gives path to uninstalled frameworks, gcc on darwin + # @file GCC response files + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) + + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + compiler_flags="$compiler_flags $arg" + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 + $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + $echo "$modename: only absolute run-paths are allowed" 1>&2 + exit $EXIT_FAILURE + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -Wc,*) + args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + case $flag in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + flag="\"$flag\"" + ;; + esac + arg="$arg $wl$flag" + compiler_flags="$compiler_flags $flag" + done + IFS="$save_ifs" + arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + ;; + + -Wl,*) + args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + case $flag in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + flag="\"$flag\"" + ;; + esac + arg="$arg $wl$flag" + compiler_flags="$compiler_flags $wl$flag" + linker_flags="$linker_flags $flag" + done + IFS="$save_ifs" + arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # Some other compiler flag. + -* | +*) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + ;; + + *.$objext) + # A standard object. + objs="$objs $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + pic_object= + non_pic_object= + + # Read the .lo file + # If there is no directory component, then add one. + case $arg in + */* | *\\*) . $arg ;; + *) . ./$arg ;; + esac + + if test -z "$pic_object" || \ + test -z "$non_pic_object" || + test "$pic_object" = none && \ + test "$non_pic_object" = none; then + $echo "$modename: cannot find name of object for \`$arg'" 1>&2 + exit $EXIT_FAILURE + fi + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + libobjs="$libobjs $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + non_pic_objects="$non_pic_objects $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if test -z "$run"; then + $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 + exit $EXIT_FAILURE + else + # Dry-run case. + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` + non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` + libobjs="$libobjs $pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + fi + ;; + + *.$libext) + # An archive. + deplibs="$deplibs $arg" + old_deplibs="$old_deplibs $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. + dlfiles="$dlfiles $arg" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. + dlprefiles="$dlprefiles $arg" + prev= + else + deplibs="$deplibs $arg" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi + done # argument parsing loop + + if test -n "$prev"; then + $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` + libobjs_save="$libobjs" + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` + if test "X$output_objdir" = "X$output"; then + output_objdir="$objdir" + else + output_objdir="$output_objdir/$objdir" + fi + # Create the object directory. + if test ! -d "$output_objdir"; then + $show "$mkdir $output_objdir" + $run $mkdir $output_objdir + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then + exit $exit_status + fi + fi + + # Determine the type of output + case $output in + "") + $echo "$modename: you must specify an output file" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + case $host in + *cygwin* | *mingw* | *pw32*) + # don't eliminate duplications in $postdeps and $predeps + duplicate_compiler_generated_deps=yes + ;; + *) + duplicate_compiler_generated_deps=$duplicate_deps + ;; + esac + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if test "X$duplicate_deps" = "Xyes" ; then + case "$libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + libs="$libs $deplib" + done + + if test "$linkmode" = lib; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; + esac + pre_post_deps="$pre_post_deps $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + case $linkmode in + lib) + passes="conv link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 + exit $EXIT_FAILURE + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=no + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + for pass in $passes; do + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan"; then + libs="$deplibs" + deplibs= + fi + if test "$linkmode" = prog; then + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; + esac + fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi + for deplib in $libs; do + lib= + found=no + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + compiler_flags="$compiler_flags $deplib" + fi + continue + ;; + -l*) + if test "$linkmode" != lib && test "$linkmode" != prog; then + $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 + continue + fi + name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` + if test "$linkmode" = lib; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib="$searchdir/lib${name}${search_ext}" + if test -f "$lib"; then + if test "$search_ext" = ".la"; then + found=yes + else + found=no + fi + break 2 + fi + done + done + if test "$found" != yes; then + # deplib doesn't seem to be a libtool library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + else # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $deplib "*) + if (${SED} -e '2q' $lib | + grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + library_names= + old_library= + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + for l in $old_library $library_names; do + ll="$l" + done + if test "X$ll" = "X$old_library" ; then # only static version available + found=no + ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` + test "X$ladir" = "X$lib" && ladir="." + lib=$ladir/$old_library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + fi + ;; # -l + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + ;; + prog) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + if test "$pass" = scan; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + ;; + *) + $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test "$pass" = link; then + dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) lib="$deplib" ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + valid_a_lib=no + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method + match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` + if eval $echo \"$deplib\" 2>/dev/null \ + | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi + ;; + pass_all) + valid_a_lib=yes + ;; + esac + if test "$valid_a_lib" != yes; then + $echo + $echo "*** Warning: Trying to link with static lib archive $deplib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because the file extensions .$libext of this argument makes me believe" + $echo "*** that it is just a static archive that I should not used here." + else + $echo + $echo "*** Warning: Linking the shared library $output against the" + $echo "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + fi + continue + ;; + prog) + if test "$pass" != link; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + elif test "$linkmode" = prog; then + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + newdlprefiles="$newdlprefiles $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + newdlfiles="$newdlfiles $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=yes + continue + ;; + esac # case $deplib + if test "$found" = yes || test -f "$lib"; then : + else + $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 + exit $EXIT_FAILURE + fi + + # Check to see that this really is a libtool archive. + if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + + ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` + test "X$ladir" = "X$lib" && ladir="." + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then + test -n "$dlopen" && dlfiles="$dlfiles $dlopen" + test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" + fi + + if test "$pass" = conv; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + # It is a libtool convenience library, so add in its objects. + convenience="$convenience $ladir/$objdir/$old_library" + old_convenience="$old_convenience $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done + elif test "$linkmode" != prog && test "$linkmode" != lib; then + $echo "$modename: \`$lib' is not a convenience library" 1>&2 + exit $EXIT_FAILURE + fi + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + for l in $old_library $library_names; do + linklib="$l" + done + if test -z "$linklib"; then + $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + + # This library was specified with -dlopen. + if test "$pass" = dlopen; then + if test -z "$libdir"; then + $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + if test -z "$dlname" || + test "$dlopen_support" != yes || + test "$build_libtool_libs" = no; then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + dlprefiles="$dlprefiles $lib $dependency_libs" + else + newdlfiles="$newdlfiles $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 + $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 + abs_ladir="$ladir" + fi + ;; + esac + laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then + if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + $echo "$modename: warning: library \`$lib' was moved." 1>&2 + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else + dir="$libdir" + absdir="$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + fi + fi # $installed = yes + name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` + + # This library was specified with -dlpreopen. + if test "$pass" = dlpreopen; then + if test -z "$libdir"; then + $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + newdlprefiles="$newdlprefiles $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + newdlprefiles="$newdlprefiles $dir/$dlname" + else + newdlprefiles="$newdlprefiles $dir/$linklib" + fi + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test "$linkmode" = lib; then + deplibs="$dir/$old_library $deplibs" + elif test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test "$linkmode" = prog && test "$pass" != link; then + newlib_search_path="$newlib_search_path $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no + if test "$link_all_deplibs" != no || test -z "$library_names" || + test "$build_libtool_libs" = no; then + linkalldeplibs=yes + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test + esac + # Need to link against all dependency_libs? + if test "$linkalldeplibs" = yes; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && + { { test "$prefer_static_libs" = no || + test "$prefer_static_libs,$installed" = "built,yes"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + # Make sure the rpath contains only unique directories. + case "$temp_rpath " in + *" $dir "*) ;; + *" $absdir "*) ;; + *) temp_rpath="$temp_rpath $absdir" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if test "$alldeplibs" = yes && + { test "$deplibs_check_method" = pass_all || + { test "$build_libtool_libs" = yes && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test "$use_static_libs" = built && test "$installed" = yes ; then + use_static_libs=no + fi + if test -n "$library_names" && + { test "$use_static_libs" = no || test -z "$old_library"; }; then + if test "$installed" = no; then + notinst_deplibs="$notinst_deplibs $lib" + need_relink=yes + fi + # This is a shared library + + # Warn about portability, can't link against -module's on + # some systems (darwin) + if test "$shouldnotlink" = yes && test "$pass" = link ; then + $echo + if test "$linkmode" = prog; then + $echo "*** Warning: Linking the executable $output against the loadable module" + else + $echo "*** Warning: Linking the shared library $output against the loadable module" + fi + $echo "*** $linklib is not portable!" + fi + if test "$linkmode" = lib && + test "$hardcode_into_libs" = yes; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + realname="$2" + shift; shift + libname=`eval \\$echo \"$libname_spec\"` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname="$dlname" + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw*) + major=`expr $current - $age` + versuffix="-$major" + ;; + esac + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot="$soname" + soname=`$echo $soroot | ${SED} -e 's/^.*\///'` + newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + $show "extracting exported symbol list from \`$soname'" + save_ifs="$IFS"; IFS='~' + cmds=$extract_expsyms_cmds + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + $show "generating import library for \`$soname'" + save_ifs="$IFS"; IFS='~' + cmds=$old_archive_from_expsyms_cmds + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test "$linkmode" = prog || test "$mode" != relink; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test "$hardcode_direct" = no; then + add="$dir/$linklib" + case $host in + *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; + *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir="-L$dir" ;; + *-*-darwin* ) + # if the lib is a module then we can not link against + # it, someone is ignoring the new warnings I added + if /usr/bin/file -L $add 2> /dev/null | + $EGREP ": [^:]* bundle" >/dev/null ; then + $echo "** Warning, lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then + $echo + $echo "** And there doesn't seem to be a static archive available" + $echo "** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi + fi + esac + elif test "$hardcode_minus_L" = no; then + case $host in + *-*-sunos*) add_shlibpath="$dir" ;; + esac + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = no; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + relink) + if test "$hardcode_direct" = yes; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$dir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test "$lib_linked" != yes; then + $echo "$modename: configuration error: unsupported hardcode properties" + exit $EXIT_FAILURE + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test "$hardcode_direct" != yes && \ + test "$hardcode_minus_L" != yes && \ + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + fi + fi + fi + + if test "$linkmode" = prog || test "$mode" = relink; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test "$hardcode_direct" = yes; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib" ; then + add="$inst_prefix_dir$libdir/$linklib" + else + add="$libdir/$linklib" + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir="-L$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + fi + + if test "$linkmode" = prog; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test "$linkmode" = prog; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test "$hardcode_direct" != unsupported; then + test -n "$old_library" && linklib="$old_library" + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test "$build_libtool_libs" = yes; then + # Not a shared library + if test "$deplibs_check_method" != pass_all; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + $echo + $echo "*** Warning: This system can not link to static lib archive $lib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have." + if test "$module" = yes; then + $echo "*** But as you try to build a module library, libtool will still create " + $echo "*** a static module, that should work as long as the dlopening application" + $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + $echo + $echo "*** However, this would only work if libtool was able to extract symbol" + $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + $echo "*** not find such a program. So, this module is probably useless." + $echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test "$linkmode" = lib; then + if test -n "$dependency_libs" && + { test "$hardcode_into_libs" != yes || + test "$build_old_libs" = yes || + test "$link_static" = yes; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) xrpath="$xrpath $temp_xrpath";; + esac;; + *) temp_deplibs="$temp_deplibs $libdir";; + esac + done + dependency_libs="$temp_deplibs" + fi + + newlib_search_path="$newlib_search_path $absdir" + # Link against this library + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done + + if test "$link_all_deplibs" != no; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + case $deplib in + -L*) path="$deplib" ;; + *.la) + dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` + test "X$dir" = "X$deplib" && dir="." + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 + absdir="$dir" + fi + ;; + esac + if grep "^installed=no" $deplib > /dev/null; then + path="$absdir/$objdir" + else + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + if test -z "$libdir"; then + $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + if test "$absdir" != "$libdir"; then + $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 + fi + path="$absdir" + fi + depdepl= + case $host in + *-*-darwin*) + # we do not want to link against static libs, + # but need to link against shared + eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names" ; then + for tmp in $deplibrary_names ; do + depdepl=$tmp + done + if test -f "$deplibdir/$depdepl" ; then + depdepl="$deplibdir/$depdepl" + elif test -f "$path/$depdepl" ; then + depdepl="$path/$depdepl" + else + # Can't find it, oh well... + depdepl= + fi + # do not add paths which are already there + case " $newlib_search_path " in + *" $path "*) ;; + *) newlib_search_path="$newlib_search_path $path";; + esac + fi + path="" + ;; + *) + path="-L$path" + ;; + esac + ;; + -l*) + case $host in + *-*-darwin*) + # Again, we only want to link against shared libraries + eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` + for tmp in $newlib_search_path ; do + if test -f "$tmp/lib$tmp_libs.dylib" ; then + eval depdepl="$tmp/lib$tmp_libs.dylib" + break + fi + done + path="" + ;; + *) continue ;; + esac + ;; + *) continue ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + case " $deplibs " in + *" $depdepl "*) ;; + *) deplibs="$depdepl $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + dependency_libs="$newdependency_libs" + if test "$pass" = dlpreopen; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test "$pass" != dlopen; then + if test "$pass" != conv; then + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) lib_search_path="$lib_search_path $dir" ;; + esac + done + newlib_search_path= + fi + + if test "$linkmode,$pass" != "prog,link"; then + vars="deplibs" + else + vars="compile_deplibs finalize_deplibs" + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) tmp_libs="$tmp_libs $deplib" ;; + esac + ;; + *) tmp_libs="$tmp_libs $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs ; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i="" + ;; + esac + if test -n "$i" ; then + tmp_libs="$tmp_libs $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test "$linkmode" = prog; then + dlfiles="$newdlfiles" + dlprefiles="$newdlprefiles" + fi + + case $linkmode in + oldlib) + case " $deplibs" in + *\ -l* | *\ -L*) + $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;; + esac + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 + fi + + if test -n "$rpath"; then + $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 + fi + + if test -n "$xrpath"; then + $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 + fi + + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 + fi + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" + objs="$objs$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form `libNAME.la'. + case $outputname in + lib*) + name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + if test "$module" = no; then + $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + if test "$need_lib_prefix" != no; then + # Add the "lib" prefix for modules if required + name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` + fi + ;; + esac + + if test -n "$objs"; then + if test "$deplibs_check_method" != pass_all; then + $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 + exit $EXIT_FAILURE + else + $echo + $echo "*** Warning: Linking the shared library $output against the non-libtool" + $echo "*** objects $objs is not portable!" + libobjs="$libobjs $objs" + fi + fi + + if test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 + fi + + set dummy $rpath + if test "$#" -gt 2; then + $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 + fi + install_libdir="$2" + + oldlibs= + if test -z "$rpath"; then + if test "$build_libtool_libs" = yes; then + # Building a libtool convenience library. + # Some compilers have problems with a `.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 + fi + else + + # Parse the version information argument. + save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 + IFS="$save_ifs" + + if test -n "$8"; then + $echo "$modename: too many parameters to \`-version-info'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major="$2" + number_minor="$3" + number_revision="$4" + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # which has an extra 1 added just for fun + # + case $version_type in + darwin|linux|osf|windows|none) + current=`expr $number_major + $number_minor` + age="$number_minor" + revision="$number_revision" + ;; + freebsd-aout|freebsd-elf|sunos) + current="$number_major" + revision="$number_minor" + age="0" + ;; + irix|nonstopux) + current=`expr $number_major + $number_minor` + age="$number_minor" + revision="$number_minor" + lt_irix_increment=no + ;; + *) + $echo "$modename: unknown library version type \`$version_type'" 1>&2 + $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + exit $EXIT_FAILURE + ;; + esac + ;; + no) + current="$2" + revision="$3" + age="$4" + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + if test "$age" -gt "$current"; then + $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit $EXIT_FAILURE + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + major=.`expr $current - $age` + versuffix="$major.$age.$revision" + # Darwin ld doesn't like 0 for these options... + minor_current=`expr $current + 1` + xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + + freebsd-aout) + major=".$current" + versuffix=".$current.$revision"; + ;; + + freebsd-elf) + major=".$current" + versuffix=".$current"; + ;; + + irix | nonstopux) + if test "X$lt_irix_increment" = "Xno"; then + major=`expr $current - $age` + else + major=`expr $current - $age + 1` + fi + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring="$verstring_prefix$major.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test "$loop" -ne 0; do + iface=`expr $revision - $loop` + loop=`expr $loop - 1` + verstring="$verstring_prefix$major.$iface:$verstring" + done + + # Before this point, $major must not contain `.'. + major=.$major + versuffix="$major.$revision" + ;; + + linux) + major=.`expr $current - $age` + versuffix="$major.$age.$revision" + ;; + + osf) + major=.`expr $current - $age` + versuffix=".$current.$age.$revision" + verstring="$current.$age.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$age + while test "$loop" -ne 0; do + iface=`expr $current - $loop` + loop=`expr $loop - 1` + verstring="$verstring:${iface}.0" + done + + # Make executables depend on our current version. + verstring="$verstring:${current}.0" + ;; + + sunos) + major=".$current" + versuffix=".$current.$revision" + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 filesystems. + major=`expr $current - $age` + versuffix="-$major" + ;; + + *) + $echo "$modename: unknown library version type \`$version_type'" 1>&2 + $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + exit $EXIT_FAILURE + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring="0.0" + ;; + esac + if test "$need_version" = no; then + versuffix= + else + versuffix=".0.0" + fi + fi + + # Remove version info from name if versioning should be avoided + if test "$avoid_version" = yes && test "$need_version" = no; then + major= + versuffix= + verstring="" + fi + + # Check to see if the archive will have undefined symbols. + if test "$allow_undefined" = yes; then + if test "$allow_undefined_flag" = unsupported; then + $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 + build_libtool_libs=no + build_old_libs=yes + fi + else + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" + fi + fi + + if test "$mode" != relink; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$echo "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) + if test "X$precious_files_regex" != "X"; then + if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + removelist="$removelist $p" + ;; + *) ;; + esac + done + if test -n "$removelist"; then + $show "${rm}r $removelist" + $run ${rm}r $removelist + fi + fi + + # Now set the variables for building old libraries. + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then + oldlibs="$oldlibs $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` + # deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` + # dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + temp_xrpath="$temp_xrpath -R$libdir" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles="$dlfiles" + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) dlfiles="$dlfiles $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles="$dlprefiles" + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) dlprefiles="$dlprefiles $lib" ;; + esac + done + + if test "$build_libtool_libs" = yes; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + deplibs="$deplibs -framework System" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test "$build_libtool_need_lc" = "yes"; then + deplibs="$deplibs -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release="" + versuffix="" + major="" + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $rm conftest.c + cat > conftest.c <<EOF + int main() { return 0; } +EOF + $rm conftest + if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then + ldd_output=`ldd conftest` + for i in $deplibs; do + name=`expr $i : '-l\(.*\)'` + # If $name is empty we are operating on a -L argument. + if test "$name" != "" && test "$name" != "0"; then + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $i "*) + newdeplibs="$newdeplibs $i" + i="" + ;; + esac + fi + if test -n "$i" ; then + libname=`eval \\$echo \"$libname_spec\"` + deplib_matches=`eval \\$echo \"$library_names_spec\"` + set dummy $deplib_matches + deplib_match=$2 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then + newdeplibs="$newdeplibs $i" + else + droppeddeps=yes + $echo + $echo "*** Warning: dynamic linker does not accept needed library $i." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which I believe you do not have" + $echo "*** because a test_compile did reveal that the linker did not use it for" + $echo "*** its dynamic dependency list that programs get resolved with at runtime." + fi + fi + else + newdeplibs="$newdeplibs $i" + fi + done + else + # Error occurred in the first compile. Let's try to salvage + # the situation: Compile a separate program for each library. + for i in $deplibs; do + name=`expr $i : '-l\(.*\)'` + # If $name is empty we are operating on a -L argument. + if test "$name" != "" && test "$name" != "0"; then + $rm conftest + if $LTCC $LTCFLAGS -o conftest conftest.c $i; then + ldd_output=`ldd conftest` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $i "*) + newdeplibs="$newdeplibs $i" + i="" + ;; + esac + fi + if test -n "$i" ; then + libname=`eval \\$echo \"$libname_spec\"` + deplib_matches=`eval \\$echo \"$library_names_spec\"` + set dummy $deplib_matches + deplib_match=$2 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then + newdeplibs="$newdeplibs $i" + else + droppeddeps=yes + $echo + $echo "*** Warning: dynamic linker does not accept needed library $i." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because a test_compile did reveal that the linker did not use this one" + $echo "*** as a dynamic dependency that programs can get resolved with at runtime." + fi + fi + else + droppeddeps=yes + $echo + $echo "*** Warning! Library $i is needed by this library but I was not able to" + $echo "*** make it link in! You will probably need to install it or some" + $echo "*** library that it depends on before this library will be fully" + $echo "*** functional. Installing it before continuing would be even better." + fi + else + newdeplibs="$newdeplibs $i" + fi + done + fi + ;; + file_magic*) + set dummy $deplibs_check_method + file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` + for a_deplib in $deplibs; do + name=`expr $a_deplib : '-l\(.*\)'` + # If $name is empty we are operating on a -L argument. + if test "$name" != "" && test "$name" != "0"; then + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval \\$echo \"$libname_spec\"` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null \ + | grep " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib="$potent_lib" + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; + *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ + | ${SED} 10q \ + | $EGREP "$file_magic_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + $echo + $echo "*** Warning: linker path does not have real file for library $a_deplib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $echo "*** with $libname but no candidates were found. (...for file magic test)" + else + $echo "*** with $libname and none of the candidates passed a file format test" + $echo "*** using a file magic. Last file checked: $potlib" + fi + fi + else + # Add a -L argument. + newdeplibs="$newdeplibs $a_deplib" + fi + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method + match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` + for a_deplib in $deplibs; do + name=`expr $a_deplib : '-l\(.*\)'` + # If $name is empty we are operating on a -L argument. + if test -n "$name" && test "$name" != "0"; then + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval \\$echo \"$libname_spec\"` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test + if eval $echo \"$potent_lib\" 2>/dev/null \ + | ${SED} 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + $echo + $echo "*** Warning: linker path does not have real file for library $a_deplib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $echo "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $echo "*** with $libname and none of the candidates passed a file format test" + $echo "*** using a regex pattern. Last file checked: $potlib" + fi + fi + else + # Add a -L argument. + newdeplibs="$newdeplibs $a_deplib" + fi + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs="" + tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ + -e 's/ -[LR][^ ]*//g'` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + for i in $predeps $postdeps ; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` + done + fi + if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ + | grep . >/dev/null; then + $echo + if test "X$deplibs_check_method" = "Xnone"; then + $echo "*** Warning: inter-library dependencies are not supported in this platform." + else + $echo "*** Warning: inter-library dependencies are not known to be supported." + fi + $echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + fi + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` + ;; + esac + + if test "$droppeddeps" = yes; then + if test "$module" = yes; then + $echo + $echo "*** Warning: libtool could not satisfy all declared inter-library" + $echo "*** dependencies of module $libname. Therefore, libtool will create" + $echo "*** a static module, that should work as long as the dlopening" + $echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + $echo + $echo "*** However, this would only work if libtool was able to extract symbol" + $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + $echo "*** not find such a program. So, this module is probably useless." + $echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + $echo "*** The inter-library dependencies that have been dropped here will be" + $echo "*** automatically added whenever a program is linked with this library" + $echo "*** or is declared to -dlopen it." + + if test "$allow_undefined" = no; then + $echo + $echo "*** Since this library must not contain undefined symbols," + $echo "*** because either the platform does not support them or" + $echo "*** it was explicitly requested with -no-undefined," + $echo "*** libtool will only create a static version of it." + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + deplibs="$new_libs" + + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test "$build_libtool_libs" = yes; then + if test "$hardcode_into_libs" = yes; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath="$finalize_rpath" + test "$mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + dep_rpath="$dep_rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + if test -n "$hardcode_libdir_flag_spec_ld"; then + case $archive_cmds in + *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;; + *) eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;; + esac + else + eval dep_rpath=\"$hardcode_libdir_flag_spec\" + fi + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + rpath="$rpath$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath="$finalize_shlibpath" + test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + realname="$2" + shift; shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib="$output_objdir/$realname" + linknames= + for link + do + linknames="$linknames $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then + $show "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $run $rm $export_symbols + cmds=$export_symbols_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + if len=`expr "X$cmd" : ".*"` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + $show "$cmd" + $run eval "$cmd" || exit $? + skipped_export=false + else + # The command line is too long to execute in one step. + $show "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS="$save_ifs" + if test -n "$export_symbols_regex"; then + $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" + $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + $show "$mv \"${export_symbols}T\" \"$export_symbols\"" + $run eval '$mv "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + tmp_deplibs="$tmp_deplibs $test_deplib" + ;; + esac + done + deplibs="$tmp_deplibs" + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + else + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $convenience + libobjs="$libobjs $func_extract_archives_result" + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + linker_flags="$linker_flags $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test "X$skipped_export" != "X:" && + len=`expr "X$test_cmds" : ".*" 2>/dev/null` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise. + $echo "creating reloadable object files..." + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + output_la=`$echo "X$output" | $Xsed -e "$basename"` + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + delfiles= + last_robj= + k=1 + output=$output_objdir/$output_la-${k}.$objext + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + eval test_cmds=\"$reload_cmds $objlist $last_robj\" + if test "X$objlist" = X || + { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && + test "$len" -le "$max_cmd_len"; }; then + objlist="$objlist $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. + eval concat_cmds=\"$reload_cmds $objlist $last_robj\" + else + # All subsequent reloadable object files will link in + # the last one created. + eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" + fi + last_robj=$output_objdir/$output_la-${k}.$objext + k=`expr $k + 1` + output=$output_objdir/$output_la-${k}.$objext + objlist=$obj + len=1 + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" + + if ${skipped_export-false}; then + $show "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $run $rm $export_symbols + libobjs=$output + # Append the command to create the export file. + eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" + fi + + # Set up a command to remove the reloadable object files + # after they are used. + i=0 + while test "$i" -lt "$k" + do + i=`expr $i + 1` + delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" + done + + $echo "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs="$IFS"; IFS='~' + for cmd in $concat_cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + + # Append the command to remove the reloadable object files + # to the just-reset $cmds. + eval cmds=\"\$cmds~\$rm $delfiles\" + fi + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + $show "${rm}r $gentop" + $run ${rm}r "$gentop" + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" + $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test "$module" = yes || test "$export_dynamic" = yes; then + # On all known operating systems, these are identical. + dlname="$soname" + fi + fi + ;; + + obj) + case " $deplibs" in + *\ -l* | *\ -L*) + $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;; + esac + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 + fi + + if test -n "$rpath"; then + $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 + fi + + if test -n "$xrpath"; then + $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 + fi + + case $output in + *.lo) + if test -n "$objs$old_deplibs"; then + $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 + exit $EXIT_FAILURE + fi + libobj="$output" + obj=`$echo "X$output" | $Xsed -e "$lo2o"` + ;; + *) + libobj= + obj="$output" + ;; + esac + + # Delete the old objects. + $run $rm $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # reload_cmds runs $LD directly, so let us get rid of + # -Wl from whole_archive_flag_spec and hope we can get by with + # turning comma into space.. + wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` + else + gentop="$output_objdir/${obj}x" + generated="$generated $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # Create the old-style object. + reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + cmds=$reload_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + exit $EXIT_SUCCESS + fi + + if test "$build_libtool_libs" != yes; then + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $run eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + fi + + if test -n "$pic_flag" || test "$pic_mode" != default; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output="$libobj" + cmds=$reload_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; + esac + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 + fi + + if test "$preload" = yes; then + if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && + test "$dlopen_self_static" = unknown; then + $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." + fi + fi + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` + finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` + ;; + esac + + case $host in + *darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + if test "$tagname" = CXX ; then + compile_command="$compile_command ${wl}-bind_at_load" + finalize_command="$finalize_command ${wl}-bind_at_load" + fi + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + + compile_command="$compile_command $compile_deplibs" + finalize_command="$finalize_command $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + *) dllsearchpath="$dllsearchpath:$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath="$rpath" + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath="$rpath" + + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + fi + + dlsyms= + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + dlsyms="${outputname}S.c" + else + $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 + fi + fi + + if test -n "$dlsyms"; then + case $dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist="$output_objdir/${outputname}.nm" + + $show "$rm $nlist ${nlist}S ${nlist}T" + $run $rm "$nlist" "${nlist}S" "${nlist}T" + + # Parse the name list into a source file. + $show "creating $output_objdir/$dlsyms" + + test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ +/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ +/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +/* Prevent the only kind of declaration conflicts we can make. */ +#define lt_preloaded_symbols some_other_symbol + +/* External symbol declarations for the compiler. */\ +" + + if test "$dlself" = yes; then + $show "generating symbol list for \`$output'" + + test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + for arg in $progfiles; do + $show "extracting global C symbols from \`$arg'" + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + $run eval '$mv "$nlist"T "$nlist"' + fi + + if test -n "$export_symbols_regex"; then + $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + $run eval '$mv "$nlist"T "$nlist"' + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols="$output_objdir/$outputname.exp" + $run $rm $export_symbols + $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* ) + $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + else + $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + $run eval 'mv "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* ) + $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + fi + fi + + for arg in $dlprefiles; do + $show "extracting global C symbols from \`$arg'" + name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` + $run eval '$echo ": $name " >> "$nlist"' + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" + done + + if test -z "$run"; then + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $mv "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if grep -v "^: " < "$nlist" | + if sort -k 3 </dev/null >/dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + grep -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' + else + $echo '/* NONE */' >> "$output_objdir/$dlsyms" + fi + + $echo >> "$output_objdir/$dlsyms" "\ + +#undef lt_preloaded_symbols + +#if defined (__STDC__) && __STDC__ +# define lt_ptr void * +#else +# define lt_ptr char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +" + + case $host in + *cygwin* | *mingw* ) + $echo >> "$output_objdir/$dlsyms" "\ +/* DATA imports from DLLs on WIN32 can't be const, because + runtime relocations are performed -- see ld's documentation + on pseudo-relocs */ +struct { +" + ;; + * ) + $echo >> "$output_objdir/$dlsyms" "\ +const struct { +" + ;; + esac + + + $echo >> "$output_objdir/$dlsyms" "\ + const char *name; + lt_ptr address; +} +lt_preloaded_symbols[] = +{\ +" + + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" + + $echo >> "$output_objdir/$dlsyms" "\ + {0, (lt_ptr) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + fi + + pic_flag_for_symtable= + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + case "$compile_command " in + *" -static "*) ;; + *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; + esac;; + *-*-hpux*) + case "$compile_command " in + *" -static "*) ;; + *) pic_flag_for_symtable=" $pic_flag";; + esac + esac + + # Now compile the dynamic symbol file. + $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" + $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? + + # Clean up the generated files. + $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" + $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" + + # Transform the symbol file into the correct name. + case $host in + *cygwin* | *mingw* ) + if test -f "$output_objdir/${outputname}.def" ; then + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` + else + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + fi + ;; + * ) + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + ;; + esac + ;; + *) + $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 + exit $EXIT_FAILURE + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` + fi + + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then + # Replace the output file specification. + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP` + link_command="$compile_command$compile_rpath" + + # We have no uninstalled library dependencies, so finalize right now. + $show "$link_command" + $run eval "$link_command" + exit_status=$? + + # Delete the generated files. + if test -n "$dlsyms"; then + $show "$rm $output_objdir/${outputname}S.${objext}" + $run $rm "$output_objdir/${outputname}S.${objext}" + fi + + exit $exit_status + fi + + if test -n "$shlibpath_var"; then + # We should set the shlibpath_var + rpath= + for dir in $temp_rpath; do + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) + # Absolute path. + rpath="$rpath$dir:" + ;; + *) + # Relative path: add a thisdir entry. + rpath="$rpath\$thisdir/$dir:" + ;; + esac + done + temp_rpath="$rpath" + fi + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + rpath="$rpath$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + rpath="$rpath$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test "$no_install" = yes; then + # We don't need to create a wrapper script. + link_command="$compile_var$compile_command$compile_rpath" + # Replace the output file specification. + link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $run $rm $output + # Link the executable and exit + $show "$link_command" + $run eval "$link_command" || exit $? + exit $EXIT_SUCCESS + fi + + if test "$hardcode_action" = relink; then + # Fast installation is not supported + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + + $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 + $echo "$modename: \`$output' will be relinked during installation" 1>&2 + else + if test "$fast_install" != no; then + link_command="$finalize_var$compile_command$finalize_rpath" + if test "$fast_install" = yes; then + relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP` + else + # fast_install is set to needless + relink_command= + fi + else + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + fi + fi + + # Replace the output file specification. + link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname + + $show "$link_command" + $run eval "$link_command" || exit $? + + # Now create the wrapper script. + $show "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` + relink_command="$var=\"$var_value\"; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` + fi + + # Quote $echo for shipping. + if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then + case $progpath in + [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; + *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; + esac + qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` + else + qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` + fi + + # Only actually do things if our run command is non-null. + if test -z "$run"; then + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + output_name=`basename $output` + output_path=`dirname $output` + cwrappersource="$output_path/$objdir/lt-$output_name.c" + cwrapper="$output_path/$output_name.exe" + $rm $cwrappersource $cwrapper + trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + cat > $cwrappersource <<EOF + +/* $cwrappersource - temporary wrapper executable for $objdir/$outputname + Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP + + The $output program cannot be directly executed until all the libtool + libraries that it depends on are installed. + + This wrapper executable should never be moved out of the build directory. + If it is, it will not operate correctly. + + Currently, it simply execs the wrapper *script* "/bin/sh $output", + but could eventually absorb all of the scripts functionality and + exec $objdir/$outputname directly. +*/ +EOF + cat >> $cwrappersource<<"EOF" +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <malloc.h> +#include <stdarg.h> +#include <assert.h> +#include <string.h> +#include <ctype.h> +#include <sys/stat.h> + +#if defined(PATH_MAX) +# define LT_PATHMAX PATH_MAX +#elif defined(MAXPATHLEN) +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ + defined (__OS2__) +# define HAVE_DOS_BASED_FILE_SYSTEM +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free ((void *) stale); stale = 0; } \ +} while (0) + +/* -DDEBUG is fairly common in CFLAGS. */ +#undef DEBUG +#if defined DEBUGWRAPPER +# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) +#else +# define DEBUG(format, ...) +#endif + +const char *program_name = NULL; + +void * xmalloc (size_t num); +char * xstrdup (const char *string); +const char * base_name (const char *name); +char * find_executable(const char *wrapper); +int check_executable(const char *path); +char * strendzap(char *str, const char *pat); +void lt_fatal (const char *message, ...); + +int +main (int argc, char *argv[]) +{ + char **newargz; + int i; + + program_name = (char *) xstrdup (base_name (argv[0])); + DEBUG("(main) argv[0] : %s\n",argv[0]); + DEBUG("(main) program_name : %s\n",program_name); + newargz = XMALLOC(char *, argc+2); +EOF + + cat >> $cwrappersource <<EOF + newargz[0] = (char *) xstrdup("$SHELL"); +EOF + + cat >> $cwrappersource <<"EOF" + newargz[1] = find_executable(argv[0]); + if (newargz[1] == NULL) + lt_fatal("Couldn't find %s", argv[0]); + DEBUG("(main) found exe at : %s\n",newargz[1]); + /* we know the script has the same name, without the .exe */ + /* so make sure newargz[1] doesn't end in .exe */ + strendzap(newargz[1],".exe"); + for (i = 1; i < argc; i++) + newargz[i+1] = xstrdup(argv[i]); + newargz[argc+1] = NULL; + + for (i=0; i<argc+1; i++) + { + DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]); + ; + } + +EOF + + case $host_os in + mingw*) + cat >> $cwrappersource <<EOF + execv("$SHELL",(char const **)newargz); +EOF + ;; + *) + cat >> $cwrappersource <<EOF + execv("$SHELL",newargz); +EOF + ;; + esac + + cat >> $cwrappersource <<"EOF" + return 127; +} + +void * +xmalloc (size_t num) +{ + void * p = (void *) malloc (num); + if (!p) + lt_fatal ("Memory exhausted"); + + return p; +} + +char * +xstrdup (const char *string) +{ + return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL +; +} + +const char * +base_name (const char *name) +{ + const char *base; + +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + /* Skip over the disk name in MSDOS pathnames. */ + if (isalpha ((unsigned char)name[0]) && name[1] == ':') + name += 2; +#endif + + for (base = name; *name; name++) + if (IS_DIR_SEPARATOR (*name)) + base = name + 1; + return base; +} + +int +check_executable(const char * path) +{ + struct stat st; + + DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); + if ((!path) || (!*path)) + return 0; + + if ((stat (path, &st) >= 0) && + ( + /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ +#if defined (S_IXOTH) + ((st.st_mode & S_IXOTH) == S_IXOTH) || +#endif +#if defined (S_IXGRP) + ((st.st_mode & S_IXGRP) == S_IXGRP) || +#endif + ((st.st_mode & S_IXUSR) == S_IXUSR)) + ) + return 1; + else + return 0; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise */ +char * +find_executable (const char* wrapper) +{ + int has_slash = 0; + const char* p; + const char* p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + int tmp_len; + char* concat_name; + + DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + } +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char* path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char* q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR(*q)) + break; + p_len = q - p; + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal ("getcwd failed"); + tmp_len = strlen(tmp); + concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal ("getcwd failed"); + tmp_len = strlen(tmp); + concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + return NULL; +} + +char * +strendzap(char *str, const char *pat) +{ + size_t len, patlen; + + assert(str != NULL); + assert(pat != NULL); + + len = strlen(str); + patlen = strlen(pat); + + if (patlen <= len) + { + str += len - patlen; + if (strcmp(str, pat) == 0) + *str = '\0'; + } + return str; +} + +static void +lt_error_core (int exit_status, const char * mode, + const char * message, va_list ap) +{ + fprintf (stderr, "%s: %s: ", program_name, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, "FATAL", message, ap); + va_end (ap); +} +EOF + # we should really use a build-platform specific compiler + # here, but OTOH, the wrappers (shell script and this C one) + # are only useful if you want to execute the "real" binary. + # Since the "real" binary is built for $host, then this + # wrapper might as well be built for $host, too. + $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource + ;; + esac + $rm $output + trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 + + $echo > $output "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='${SED} -e 1s/^X//' +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variable: + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$echo are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + echo=\"$qecho\" + file=\"\$0\" + # Make sure echo works. + if test \"X\$1\" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift + elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then + # Yippee, \$echo works! + : + else + # Restart under the correct shell, and then maybe \$echo will work. + exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} + fi + fi\ +" + $echo >> $output "\ + + # Find the directory that this script lives in. + thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` + done + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test "$fast_install" = yes; then + $echo >> $output "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || \\ + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $mkdir \"\$progdir\" + else + $rm \"\$progdir/\$file\" + fi" + + $echo >> $output "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + $echo \"\$relink_command_output\" >&2 + $rm \"\$progdir/\$file\" + exit $EXIT_FAILURE + fi + fi + + $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $rm \"\$progdir/\$program\"; + $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $rm \"\$progdir/\$file\" + fi" + else + $echo >> $output "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $echo >> $output "\ + + if test -f \"\$progdir/\$program\"; then" + + # Export our shlibpath_var if we have one. + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $echo >> $output "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` + + export $shlibpath_var +" + fi + + # fixup the dll searchpath if we need to. + if test -n "$dllsearchpath"; then + $echo >> $output "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + $echo >> $output "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2*) + $echo >> $output "\ + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $echo >> $output "\ + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $echo >> $output "\ + \$echo \"\$0: cannot exec \$program \$*\" + exit $EXIT_FAILURE + fi + else + # The program doesn't exist. + \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 + \$echo \"This script is just a wrapper for \$program.\" 1>&2 + $echo \"See the $PACKAGE documentation for more information.\" 1>&2 + exit $EXIT_FAILURE + fi +fi\ +" + chmod +x $output + fi + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + if test "$build_libtool_libs" = convenience; then + oldobjs="$libobjs_save" + addlibs="$convenience" + build_libtool_libs=no + else + if test "$build_libtool_libs" = module; then + oldobjs="$libobjs_save" + build_libtool_libs=no + else + oldobjs="$old_deplibs $non_pic_objects" + fi + addlibs="$old_convenience" + fi + + if test -n "$addlibs"; then + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $addlibs + oldobjs="$oldobjs $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + cmds=$old_archive_from_new_cmds + else + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + $echo "X$obj" | $Xsed -e 's%^.*/%%' + done | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "copying selected object files to avoid basename conflicts..." + + if test -z "$gentop"; then + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + $show "${rm}r $gentop" + $run ${rm}r "$gentop" + $show "$mkdir $gentop" + $run $mkdir "$gentop" + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$gentop"; then + exit $exit_status + fi + fi + + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + counter=`expr $counter + 1` + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + $run ln "$obj" "$gentop/$newobj" || + $run cp "$obj" "$gentop/$newobj" + oldobjs="$oldobjs $gentop/$newobj" + ;; + *) oldobjs="$oldobjs $obj" ;; + esac + done + fi + + eval cmds=\"$old_archive_cmds\" + + if len=`expr "X$cmds" : ".*"` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + $echo "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + for obj in $save_oldobjs + do + oldobjs="$objlist $obj" + objlist="$objlist $obj" + eval test_cmds=\"$old_archive_cmds\" + if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && + test "$len" -le "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj" ; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + objlist= + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test "X$oldobjs" = "X" ; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + eval cmd=\"$cmd\" + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + done + + if test -n "$generated"; then + $show "${rm}r$generated" + $run ${rm}r$generated + fi + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test "$build_old_libs" = yes && old_library="$libname.$libext" + $show "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` + relink_command="$var=\"$var_value\"; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi + + + # Only create the output if not a dry run. + if test -z "$run"; then + for installed in no yes; do + if test "$installed" = yes; then + if test -z "$install_libdir"; then + break + fi + output="$output_objdir/$outputname"i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + if test -z "$libdir"; then + $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + newdependency_libs="$newdependency_libs $libdir/$name" + ;; + *) newdependency_libs="$newdependency_libs $deplib" ;; + esac + done + dependency_libs="$newdependency_libs" + newdlfiles= + for lib in $dlfiles; do + name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + if test -z "$libdir"; then + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + newdlfiles="$newdlfiles $libdir/$name" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + if test -z "$libdir"; then + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + newdlprefiles="$newdlprefiles $libdir/$name" + done + dlprefiles="$newdlprefiles" + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + newdlfiles="$newdlfiles $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + newdlprefiles="$newdlprefiles $abs" + done + dlprefiles="$newdlprefiles" + fi + $rm $output + # place dlname in correct position for cygwin + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; + esac + $echo > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test "$installed" = no && test "$need_relink" = yes; then + $echo >> $output "\ +relink_command=\"$relink_command\"" + fi + done + fi + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" + $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? + ;; + esac + exit $EXIT_SUCCESS + ;; + + # libtool install mode + install) + modename="$modename: install" + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + # Allow the use of GNU shtool's install command. + $echo "X$nonopt" | grep shtool > /dev/null; then + # Aesthetically quote it. + arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + install_prog="$arg " + arg="$1" + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + install_prog="$install_prog$arg" + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=no + stripme= + for arg + do + if test -n "$dest"; then + files="$files $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=yes ;; + -f) + case " $install_prog " in + *[\\\ /]cp\ *) ;; + *) prev=$arg ;; + esac + ;; + -g | -m | -o) prev=$arg ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + install_prog="$install_prog $arg" + done + + if test -z "$install_prog"; then + $echo "$modename: you must specify an install program" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + if test -n "$prev"; then + $echo "$modename: the \`$prev' option requires an argument" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + if test -z "$files"; then + if test -z "$dest"; then + $echo "$modename: no file or destination specified" 1>&2 + else + $echo "$modename: you must specify a destination" 1>&2 + fi + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Strip any trailing slash from the destination. + dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=yes + if test "$isdir" = yes; then + destdir="$dest" + destname= + else + destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` + test "X$destdir" = "X$dest" && destdir=. + destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` + + # Not a directory, so check to see that there is only one file specified. + set dummy $files + if test "$#" -gt 2; then + $echo "$modename: \`$dest' is not a directory" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + staticlibs="$staticlibs $file" + ;; + + *.la) + # Check to see that this really is a libtool archive. + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + library_names= + old_library= + relink_command= + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) current_libdirs="$current_libdirs $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) future_libdirs="$future_libdirs $libdir" ;; + esac + fi + + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ + test "X$dir" = "X$file/" && dir= + dir="$dir$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + if test "$inst_prefix_dir" = "$destdir"; then + $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 + exit $EXIT_FAILURE + fi + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP` + else + relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP` + fi + + $echo "$modename: warning: relinking \`$file'" 1>&2 + $show "$relink_command" + if $run eval "$relink_command"; then : + else + $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 + exit $EXIT_FAILURE + fi + fi + + # See the names of the shared library. + set dummy $library_names + if test -n "$2"; then + realname="$2" + shift + shift + + srcname="$realname" + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. + $show "$install_prog $dir/$srcname $destdir/$realname" + $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? + if test -n "$stripme" && test -n "$striplib"; then + $show "$striplib $destdir/$realname" + $run eval "$striplib $destdir/$realname" || exit $? + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try `ln -sf' first, because the `ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + if test "$linkname" != "$realname"; then + $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" + $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" + fi + done + fi + + # Do each command in the postinstall commands. + lib="$destdir/$realname" + cmds=$postinstall_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + fi + + # Install the pseudo-library for information purposes. + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + instname="$dir/$name"i + $show "$install_prog $instname $destdir/$name" + $run eval "$install_prog $instname $destdir/$name" || exit $? + + # Maybe install the static library, too. + test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + destfile="$destdir/$destfile" + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` + ;; + *.$objext) + staticdest="$destfile" + destfile= + ;; + *) + $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + # Install the libtool object if requested. + if test -n "$destfile"; then + $show "$install_prog $file $destfile" + $run eval "$install_prog $file $destfile" || exit $? + fi + + # Install the old object if enabled. + if test "$build_old_libs" = yes; then + # Deduce the name of the old-style object file. + staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` + + $show "$install_prog $staticobj $staticdest" + $run eval "$install_prog \$staticobj \$staticdest" || exit $? + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + destfile="$destdir/$destfile" + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext="" + case $file in + *.exe) + if test ! -f "$file"; then + file=`$echo $file|${SED} 's,.exe$,,'` + stripped_ext=".exe" + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin*|*mingw*) + wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` + ;; + *) + wrapper=$file + ;; + esac + if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then + notinst_deplibs= + relink_command= + + # Note that it is not necessary on cygwin/mingw to append a dot to + # foo even if both foo and FILE.exe exist: automatic-append-.exe + # behavior happens only for exec(3), not for open(2)! Also, sourcing + # `FILE.' does not work on cygwin managed mounts. + # + # If there is no directory component, then add one. + case $wrapper in + */* | *\\*) . ${wrapper} ;; + *) . ./${wrapper} ;; + esac + + # Check the variables that should have been set. + if test -z "$notinst_deplibs"; then + $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 + exit $EXIT_FAILURE + fi + + finalize=yes + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + # If there is no directory component, then add one. + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + fi + libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 + finalize=no + fi + done + + relink_command= + # Note that it is not necessary on cygwin/mingw to append a dot to + # foo even if both foo and FILE.exe exist: automatic-append-.exe + # behavior happens only for exec(3), not for open(2)! Also, sourcing + # `FILE.' does not work on cygwin managed mounts. + # + # If there is no directory component, then add one. + case $wrapper in + */* | *\\*) . ${wrapper} ;; + *) . ./${wrapper} ;; + esac + + outputname= + if test "$fast_install" = no && test -n "$relink_command"; then + if test "$finalize" = yes && test -z "$run"; then + tmpdir=`func_mktempdir` + file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` + outputname="$tmpdir/$file" + # Replace the output file specification. + relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP` + + $show "$relink_command" + if $run eval "$relink_command"; then : + else + $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 + ${rm}r "$tmpdir" + continue + fi + file="$outputname" + else + $echo "$modename: warning: cannot relink \`$file'" 1>&2 + fi + else + # Install the binary that we compiled earlier. + file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` + ;; + esac + ;; + esac + $show "$install_prog$stripme $file $destfile" + $run eval "$install_prog\$stripme \$file \$destfile" || exit $? + test -n "$outputname" && ${rm}r "$tmpdir" + ;; + esac + done + + for file in $staticlibs; do + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + + # Set up the ranlib parameters. + oldlib="$destdir/$name" + + $show "$install_prog $file $oldlib" + $run eval "$install_prog \$file \$oldlib" || exit $? + + if test -n "$stripme" && test -n "$old_striplib"; then + $show "$old_striplib $oldlib" + $run eval "$old_striplib $oldlib" || exit $? + fi + + # Do each command in the postinstall commands. + cmds=$old_postinstall_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + done + + if test -n "$future_libdirs"; then + $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 + fi + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + test -n "$run" && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi + ;; + + # libtool finish mode + finish) + modename="$modename: finish" + libdirs="$nonopt" + admincmds= + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for dir + do + libdirs="$libdirs $dir" + done + + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + cmds=$finish_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || admincmds="$admincmds + $cmd" + done + IFS="$save_ifs" + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $run eval "$cmds" || admincmds="$admincmds + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + test "$show" = : && exit $EXIT_SUCCESS + + $echo "X----------------------------------------------------------------------" | $Xsed + $echo "Libraries have been installed in:" + for libdir in $libdirs; do + $echo " $libdir" + done + $echo + $echo "If you ever happen to want to link against installed libraries" + $echo "in a given directory, LIBDIR, you must either use libtool, and" + $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + $echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + $echo " during execution" + fi + if test -n "$runpath_var"; then + $echo " - add LIBDIR to the \`$runpath_var' environment variable" + $echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $echo " - use the \`$flag' linker flag" + fi + if test -n "$admincmds"; then + $echo " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + $echo + $echo "See any operating system documentation about shared libraries for" + $echo "more information, such as the ld(1) and ld.so(8) manual pages." + $echo "X----------------------------------------------------------------------" | $Xsed + exit $EXIT_SUCCESS + ;; + + # libtool execute mode + execute) + modename="$modename: execute" + + # The first argument is the command name. + cmd="$nonopt" + if test -z "$cmd"; then + $echo "$modename: you must specify a COMMAND" 1>&2 + $echo "$help" + exit $EXIT_FAILURE + fi + + # Handle -dlopen flags immediately. + for file in $execute_dlfiles; do + if test ! -f "$file"; then + $echo "$modename: \`$file' is not a file" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + dir= + case $file in + *.la) + # Check to see that this really is a libtool archive. + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Read the libtool library. + dlname= + library_names= + + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" + continue + fi + + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` + test "X$dir" = "X$file" && dir=. + + if test -f "$dir/$objdir/$dlname"; then + dir="$dir/$objdir" + else + if test ! -f "$dir/$dlname"; then + $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 + exit $EXIT_FAILURE + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` + test "X$dir" = "X$file" && dir=. + ;; + + *) + $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir="$absdir" + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic="$magic" + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -*) ;; + *) + # Do a test to see if this is really a libtool program. + if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + # Transform arg to wrapped name. + file="$progdir/$program" + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` + args="$args \"$file\"" + done + + if test -z "$run"; then + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd="\$cmd$args" + else + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" + $echo "export $shlibpath_var" + fi + $echo "$cmd$args" + exit $EXIT_SUCCESS + fi + ;; + + # libtool clean and uninstall mode + clean | uninstall) + modename="$modename: $mode" + rm="$nonopt" + files= + rmforce= + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + for arg + do + case $arg in + -f) rm="$rm $arg"; rmforce=yes ;; + -*) rm="$rm $arg" ;; + *) files="$files $arg" ;; + esac + done + + if test -z "$rm"; then + $echo "$modename: you must specify an RM program" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + rmdirs= + + origobjdir="$objdir" + for file in $files; do + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` + if test "X$dir" = "X$file"; then + dir=. + objdir="$origobjdir" + else + objdir="$dir/$origobjdir" + fi + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + test "$mode" = uninstall && objdir="$dir" + + # Remember objdir for removal later, being careful to avoid duplicates + if test "$mode" = clean; then + case " $rmdirs " in + *" $objdir "*) ;; + *) rmdirs="$rmdirs $objdir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if (test -L "$file") >/dev/null 2>&1 \ + || (test -h "$file") >/dev/null 2>&1 \ + || test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif test "$rmforce" = yes; then + continue + fi + + rmfiles="$file" + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + . $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + rmfiles="$rmfiles $objdir/$n" + done + test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" + + case "$mode" in + clean) + case " $library_names " in + # " " in the beginning catches empty $dlname + *" $dlname "*) ;; + *) rmfiles="$rmfiles $objdir/$dlname" ;; + esac + test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + cmds=$postuninstall_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" + if test "$?" -ne 0 && test "$rmforce" != yes; then + exit_status=1 + fi + done + IFS="$save_ifs" + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + cmds=$old_postuninstall_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" + if test "$?" -ne 0 && test "$rmforce" != yes; then + exit_status=1 + fi + done + IFS="$save_ifs" + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + + # Read the .lo file + . $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" \ + && test "$pic_object" != none; then + rmfiles="$rmfiles $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" \ + && test "$non_pic_object" != none; then + rmfiles="$rmfiles $dir/$non_pic_object" + fi + fi + ;; + + *) + if test "$mode" = clean ; then + noexename=$name + case $file in + *.exe) + file=`$echo $file|${SED} 's,.exe$,,'` + noexename=`$echo $name|${SED} 's,.exe$,,'` + # $file with .exe has already been added to rmfiles, + # add $file without .exe + rmfiles="$rmfiles $file" + ;; + esac + # Do a test to see if this is a libtool program. + if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + relink_command= + . $dir/$noexename + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then + rmfiles="$rmfiles $objdir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then + rmfiles="$rmfiles $objdir/lt-${noexename}.c" + fi + fi + fi + ;; + esac + $show "$rm $rmfiles" + $run $rm $rmfiles || exit_status=1 + done + objdir="$origobjdir" + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + $show "rmdir $dir" + $run rmdir $dir >/dev/null 2>&1 + fi + done + + exit $exit_status + ;; + + "") + $echo "$modename: you must specify a MODE" 1>&2 + $echo "$generic_help" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + if test -z "$exec_cmd"; then + $echo "$modename: invalid operation mode \`$mode'" 1>&2 + $echo "$generic_help" 1>&2 + exit $EXIT_FAILURE + fi +fi # test -z "$show_help" + +if test -n "$exec_cmd"; then + eval exec $exec_cmd + exit $EXIT_FAILURE +fi + +# We need to display help for each of the modes. +case $mode in +"") $echo \ +"Usage: $modename [OPTION]... [MODE-ARG]... + +Provide generalized library-building support services. + + --config show all configuration variables + --debug enable verbose shell tracing +-n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --finish same as \`--mode=finish' + --help display this help message and exit + --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] + --quiet same as \`--silent' + --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + --version print version information + +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for +a more detailed description of MODE. + +Report bugs to <bug-libtool@gnu.org>." + exit $EXIT_SUCCESS + ;; + +clean) + $echo \ +"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + +compile) + $echo \ +"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -prefer-pic try to building PIC objects only + -prefer-non-pic try to building non-PIC objects only + -static always build a \`.o' file suitable for static linking + +COMPILE-COMMAND is a command to be used in creating a \`standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix \`.c' with the +library object suffix, \`.lo'." + ;; + +execute) + $echo \ +"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to \`-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + +finish) + $echo \ +"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the \`--dry-run' option if you just want to see what would be executed." + ;; + +install) + $echo \ +"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the \`install' or \`cp' program. + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + +link) + $echo \ +"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE Use a list of object files found in FILE to specify objects + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + +All other options (arguments beginning with \`-') are ignored. + +Every other argument is treated as a filename. Files ending in \`.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in \`.la', then a libtool library is created, +only library objects (\`.lo' files) may be specified, and \`-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created +using \`ar' and \`ranlib', or on Windows using \`lib'. + +If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file +is created, otherwise an executable program is created." + ;; + +uninstall) + $echo \ +"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + +*) + $echo "$modename: invalid operation mode \`$mode'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; +esac + +$echo +$echo "Try \`$modename --help' for more information about other modes." + +exit $? + +# The TAGs below are defined such that we never get into a situation +# in which we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +disable_libs=shared +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +disable_libs=static +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/src/missing b/src/missing new file mode 100755 index 0000000..64b5f90 --- /dev/null +++ b/src/missing @@ -0,0 +1,353 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. + +scriptversion=2004-09-07.08 + +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004 +# Free Software Foundation, Inc. +# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. + +# 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, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +run=: + +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +msg="missing on your system" + +case "$1" in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + tar try tar, gnutar, gtar, then tar without non-portable flags + yacc create \`y.tab.[ch]', if possible, from existing .[ch] + +Send bug reports to <bug-automake@gnu.org>." + exit 0 + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit 0 + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + +esac + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). +case "$1" in + lex|yacc) + # Not GNU programs, they don't have --version. + ;; + + tar) + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + exit 1 + fi + ;; + + *) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running `$TOOL --version' or `$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 + fi + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case "$1" in + aclocal*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acinclude.m4' or \`${configure_ac}'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`${configure_ac}'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acconfig.h' or \`${configure_ac}'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case "$f" in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te) + echo 1>&2 "\ +WARNING: \`$1' is needed, but is $msg. + You might have modified some files without having the + proper tools for further handling them. + You can get \`$1' as part of \`Autoconf' from any GNU + archive site." + + file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` + test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison|yacc) + echo 1>&2 "\ +WARNING: \`$1' $msg. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if [ ! -f y.tab.h ]; then + echo >y.tab.h + fi + if [ ! -f y.tab.c ]; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex|flex) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if [ ! -f lex.yy.c ]; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a dependency of a manual page. You may need the + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + + file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + if test -z "$file"; then + file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` + fi + if [ -f "$file" ]; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit 1 + fi + ;; + + makeinfo) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + if test -z "$file"; then + file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` + fi + touch $file + ;; + + tar) + shift + + # We have already tried tar in the generic part. + # Look for gnutar/gtar before invocation to avoid ugly error + # messages. + if (gnutar --version > /dev/null 2>&1); then + gnutar "$@" && exit 0 + fi + if (gtar --version > /dev/null 2>&1); then + gtar "$@" && exit 0 + fi + firstarg="$1" + if shift; then + case "$firstarg" in + *o*) + firstarg=`echo "$firstarg" | sed s/o//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + case "$firstarg" in + *h*) + firstarg=`echo "$firstarg" | sed s/h//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + fi + + echo 1>&2 "\ +WARNING: I can't seem to be able to run \`tar' with the given arguments. + You may want to install GNU tar or Free paxutils, or check the + command line arguments." + exit 1 + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and is $msg. + You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequisites for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/src/mkinstalldirs b/src/mkinstalldirs new file mode 100755 index 0000000..318cc98 --- /dev/null +++ b/src/mkinstalldirs @@ -0,0 +1,40 @@ +#! /bin/sh +# mkinstalldirs --- make directory hierarchy +# Author: Noah Friedman <friedman@prep.ai.mit.edu> +# Created: 1993-05-16 +# Public domain + +# $Id: mkinstalldirs,v 1.1.1.1 2004-10-26 19:54:13 spotspot Exp $ + +errstatus=0 + +for file +do + set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + shift + + pathcomp= + for d + do + pathcomp="$pathcomp$d" + case "$pathcomp" in + -* ) pathcomp=./$pathcomp ;; + esac + + if test ! -d "$pathcomp"; then + echo "mkdir $pathcomp" 1>&2 + + mkdir "$pathcomp" || lasterr=$? + + if test ! -d "$pathcomp"; then + errstatus=$lasterr + fi + fi + + pathcomp="$pathcomp/" + done +done + +exit $errstatus + +# mkinstalldirs ends here diff --git a/src/palettes.c b/src/palettes.c new file mode 100644 index 0000000..d6fc20f --- /dev/null +++ b/src/palettes.c @@ -0,0 +1,483 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + +#include "private.h" +#include "palettes.h" + +lib_palette *the_palettes = NULL; +int npalettes; + +static void parse_palettes(xmlNode *node) { + xmlAttrPtr attr; + char *val; + lib_palette *pal; + + while (node) { + if (node->type == XML_ELEMENT_NODE && !xmlStrcmp(node->name, (const xmlChar *)"palette")) { + attr = node->properties; + pal = &the_palettes[npalettes]; + memset(pal, 0, sizeof(lib_palette)); + + while (attr) { + val = (char *) xmlGetProp(node, attr->name); + if (!xmlStrcmp(attr->name, (const xmlChar *)"data")) { + int count = 256; + int c_idx = 0; + int r,g,b; + int col_count = 0; + int sscanf_ret; + + c_idx=0; + col_count = 0; + + do { + sscanf_ret = sscanf((char *)&(val[c_idx]),"00%2x%2x%2x",&r,&g,&b); + if (sscanf_ret != 3) { + printf("Error: Problem reading hexadecimal color data.\n"); + exit(1); + } + c_idx += 8; + while (isspace( (int)val[c_idx])) + c_idx++; + + pal->colors[col_count][0] = r; + pal->colors[col_count][1] = g; + pal->colors[col_count][2] = b; + + col_count++; + } while (col_count<count); + } else if (!xmlStrcmp(attr->name, (const xmlChar *)"number")) { + pal->number = atoi(val); + } else if (!xmlStrcmp(attr->name, (const xmlChar *)"name")) { + strncpy(pal->name, val, flam3_name_len); + pal->name[flam3_name_len-1] = 0; + } + + xmlFree(val); + attr = attr->next; + } + + npalettes++; + the_palettes = realloc(the_palettes, (1 + npalettes) * sizeof(lib_palette)); + } else + parse_palettes(node->children); + + node = node->next; + } +} + +static int init_palettes(char *filename) { + FILE *fp; + xmlDocPtr doc; + xmlNode *rootnode; + int i, c, slen = 5000; + char *s; + + fp = fopen(filename, "rb"); + if (NULL == fp) { + fprintf(stderr, "flam3: could not open palette file "); + perror(filename); + exit(1); + } + + /* Incrementally read XML file into a string */ + s = malloc(slen); + i = 0; + do { + c = getc(fp); + if (EOF == c) { + if (ferror(fp)) { + perror(filename); + exit(1); + } + break; + } + s[i++] = c; + if (i == slen-1) { + slen *= 2; + s = realloc(s, slen); + } + } while (1); + + fclose(fp); + s[i] = 0; + + doc = xmlReadMemory(s, (int)strlen(s), filename, NULL, XML_PARSE_NONET); + if (NULL == doc) { + fprintf(stderr, "error parsing %s (%s).\n", filename, s); + exit(1); + } + rootnode = xmlDocGetRootElement(doc); + the_palettes = malloc(sizeof(lib_palette)); + npalettes = 0; + parse_palettes(rootnode); + xmlFreeDoc(doc); + + free(s); + xmlCleanupParser(); + return(1); +} + +int flam3_get_palette(int n, flam3_palette c, double hue_rotation) { + int cmap_len = 256; + int idx, i, j; + + if (NULL == the_palettes) { + + char *d = getenv("flam3_palettes"); + init_palettes(d ? d : (PACKAGE_DATA_DIR "/flam3-palettes.xml")); + } + + if (flam3_palette_random == n) + n = the_palettes[random()%npalettes].number; + + for (idx = 0; idx < npalettes; idx++) { + + if (n == the_palettes[idx].number) { + /* Loop over elements of cmap */ + for (i = 0; i < cmap_len; i++) { + int ii = (i * 256) / cmap_len; + double rgb[3], hsv[3]; + + /* Colors are in 0-1 space */ + for (j = 0; j < 3; j++) + rgb[j] = the_palettes[idx].colors[ii][j] / 255.0; + + rgb2hsv(rgb, hsv); + hsv[0] += hue_rotation * 6.0; + hsv2rgb(hsv, rgb); + + c[i].index = i; + + for (j = 0; j < 3; j++) + c[i].color[j] = rgb[j]; + + c[i].color[3] = 1.0; + } + + return n; + } + } + + fprintf(stderr, "warning: palette number %d not found, using white.\n", n); + + for (i = 0; i < cmap_len; i++) { + c[i].index = i; + for (j = 0; j < 4; j++) + c[i].color[j] = 1.0; + } + + return flam3_palette_random; +} + +/* rgb 0 - 1, + h 0 - 6, s 0 - 1, v 0 - 1 */ +void rgb2hsv(rgb, hsv) + double *rgb; double *hsv; + { + double rd, gd, bd, h, s, v, max, min, del, rc, gc, bc; + + rd = rgb[0]; + gd = rgb[1]; + bd = rgb[2]; + + /* compute maximum of rd,gd,bd */ + if (rd>=gd) { if (rd>=bd) max = rd; else max = bd; } + else { if (gd>=bd) max = gd; else max = bd; } + + /* compute minimum of rd,gd,bd */ + if (rd<=gd) { if (rd<=bd) min = rd; else min = bd; } + else { if (gd<=bd) min = gd; else min = bd; } + + del = max - min; + v = max; + if (max != 0.0) s = (del) / max; + else s = 0.0; + + h = 0; + if (s != 0.0) { + rc = (max - rd) / del; + gc = (max - gd) / del; + bc = (max - bd) / del; + + if (rd==max) h = bc - gc; + else if (gd==max) h = 2 + rc - bc; + else if (bd==max) h = 4 + gc - rc; + + if (h<0) h += 6; + } + + hsv[0] = h; + hsv[1] = s; + hsv[2] = v; +} + + +/* h 0 - 6, s 0 - 1, v 0 - 1 + rgb 0 - 1 */ +void hsv2rgb(hsv, rgb) + double *hsv; + double *rgb; +{ + double h = hsv[0], s = hsv[1], v = hsv[2]; + int j; + double rd, gd, bd; + double f, p, q, t; + + while (h >= 6.0) h = h - 6.0; + while (h < 0.0) h = h + 6.0; + j = (int) floor(h); + f = h - j; + p = v * (1-s); + q = v * (1 - (s*f)); + t = v * (1 - (s*(1 - f))); + + switch (j) { + case 0: rd = v; gd = t; bd = p; break; + case 1: rd = q; gd = v; bd = p; break; + case 2: rd = p; gd = v; bd = t; break; + case 3: rd = p; gd = q; bd = v; break; + case 4: rd = t; gd = p; bd = v; break; + case 5: rd = v; gd = p; bd = q; break; + default: rd = v; gd = t; bd = p; break; + } + + rgb[0] = rd; + rgb[1] = gd; + rgb[2] = bd; +} + +double flam3_calc_alpha(double density, double gamma, double linrange) { + + double dnorm = density; + double funcval = pow(linrange, gamma); + double frac,alpha; + + if (dnorm>0) { + if (dnorm < linrange) { + frac = dnorm/linrange; + alpha = (1.0-frac) * dnorm * (funcval / linrange) + frac * pow(dnorm,gamma); + } else + alpha = pow(dnorm,gamma); + } else + alpha = 0; + + return(alpha); +} + +void flam3_calc_newrgb(double *cbuf, double ls, double highpow, double *newrgb) { + + int rgbi; + double newls,lsratio; + double newhsv[3]; + double a, maxa=-1.0, maxc=0; + double adjhlp; + + if (ls==0.0) { + newrgb[0] = 0.0; + newrgb[1] = 0.0; + newrgb[2] = 0.0; + return; + } + + /* Identify the most saturated channel */ + for (rgbi=0;rgbi<3;rgbi++) { + a = ls * (cbuf[rgbi]/PREFILTER_WHITE); + if (a>maxa) { + maxa = a; + maxc = cbuf[rgbi]/PREFILTER_WHITE; + } + } + + /* If a channel is saturated and we have a non-negative highlight power */ + /* modify the color to prevent hue shift */ + if (maxa>255 && highpow>=0.0) { + newls = 255.0/maxc; + lsratio = pow(newls/ls,highpow); + + /* Calculate the max-value color (ranged 0 - 1) */ + for (rgbi=0;rgbi<3;rgbi++) + newrgb[rgbi] = newls*(cbuf[rgbi]/PREFILTER_WHITE)/255.0; + + /* Reduce saturation by the lsratio */ + rgb2hsv(newrgb,newhsv); + newhsv[1] *= lsratio; + hsv2rgb(newhsv,newrgb); + + for (rgbi=0;rgbi<3;rgbi++) + newrgb[rgbi] *= 255.0; + + } else { + newls = 255.0/maxc; + adjhlp = -highpow; + if (adjhlp>1) + adjhlp=1; + if (maxa<=255) + adjhlp=1.0; + + /* Calculate the max-value color (ranged 0 - 1) interpolated with the old behaviour */ + for (rgbi=0;rgbi<3;rgbi++) + newrgb[rgbi] = ((1.0-adjhlp)*newls + adjhlp*ls)*(cbuf[rgbi]/PREFILTER_WHITE); + +// for (rgbi=0;rgbi<3;rgbi++) +// newrgb[rgbi] = ls*(cbuf[rgbi]/PREFILTER_WHITE); + } +} + +static int random_xform(flam3_genome *g, int excluded) { + int ntries = 0; + while (ntries++ < 100) { + int i = random() % g->num_xforms; + if (g->xform[i].density > 0.0 && i != excluded) + return i; + } + return -1; +} + + +static double try_colors(flam3_genome *g, int color_resolution) { + int *hist; + int i, hits, res = color_resolution; + int res3 = res * res * res; + flam3_frame f; + unsigned char *image, *p; + flam3_genome saved; + double scalar; + int pixtotal; + stat_struct stats; + + memset(&saved, 0, sizeof(flam3_genome)); + + flam3_copy(&saved, g); + + g->sample_density = 1; + g->spatial_oversample = 1; + g->estimator = 0.0; + + /* Scale the image so that the total number of pixels is ~10000 */ + pixtotal = g->width * g->height; + scalar = sqrt( 10000.0 / (double)pixtotal); + g->width *= scalar; + g->height *= scalar; + g->pixels_per_unit *= scalar; + +// g->width = 100; // XXX keep aspect ratio +// g->height = 100; +// g->pixels_per_unit = 50; + g->nbatches = 1; + g->ntemporal_samples = 1; + +// f.temporal_filter_radius = 0.0; + flam3_init_frame(&f); + f.bits = 33; + f.bytes_per_channel=1; + f.verbose = 0; + f.genomes = g; + f.ngenomes = 1; + f.earlyclip = 1; + f.pixel_aspect_ratio = 1.0; + f.progress = 0; + f.nthreads = 1; + + image = (unsigned char *) calloc(g->width * g->height, 3); + if (flam3_render(&f, image, flam3_field_both, 3, 0, &stats)) { + fprintf(stderr,"Error rendering test image for trycolors. Aborting.\n"); + exit(1); + } + + hist = calloc(sizeof(int), res3); + p = image; + for (i = 0; i < g->height * g->width; i++) { + hist[(p[0] * res / 256) + + (p[1] * res / 256) * res + + (p[2] * res / 256) * res * res]++; + p += 3; + } + + if (0) { + int j, k; + for (i = 0; i < res; i++) { + fprintf(stderr, "\ni=%d: \n", i); + for (j = 0; j < res; j++) { + for (k = 0; k < res; k++) { + fprintf(stderr, " %5d", hist[i * res * res + j * res + k]); + } + fprintf(stderr, "\n"); + } + } + } + + hits = 0; + for (i = 0; i < res3; i++) { + if (hist[i]) hits++; + } + + free(hist); + free(image); + + g->sample_density = saved.sample_density; + g->width = saved.width; + g->height = saved.height; + g->spatial_oversample = saved.spatial_oversample; + g->pixels_per_unit = saved.pixels_per_unit; + g->nbatches = saved.nbatches; + g->ntemporal_samples = saved.ntemporal_samples; + g->estimator = saved.estimator; + + /* Free xform storage */ + clear_cp(&saved,flam3_defaults_on); + + return (double) hits / res3; +} + +static void change_colors(flam3_genome *g, int change_palette) { + int i; + int x0, x1; + if (change_palette) { + g->hue_rotation = 0.0; + g->palette_index = flam3_get_palette(flam3_palette_random, g->palette, 0.0); + } + for (i = 0; i < g->num_xforms; i++) { + g->xform[i].color = flam3_random01(); + } + x0 = random_xform(g, -1); + x1 = random_xform(g, x0); + if (x0 >= 0 && (random()&1)) g->xform[x0].color = 0.0; + if (x1 >= 0 && (random()&1)) g->xform[x1].color = 1.0; +} + +void flam3_improve_colors(flam3_genome *g, int ntries, int change_palette, int color_resolution) { + int i; + double best, b; + flam3_genome best_genome; + + memset(&best_genome, 0, sizeof(flam3_genome)); + best = try_colors(g, color_resolution); + flam3_copy(&best_genome,g); + for (i = 0; i < ntries; i++) { + change_colors(g, change_palette); + b = try_colors(g, color_resolution); + if (b > best) { + best = b; + flam3_copy(&best_genome,g); + } + } + flam3_copy(g,&best_genome); + clear_cp(&best_genome,flam3_defaults_on); +} + diff --git a/src/palettes.h b/src/palettes.h new file mode 100644 index 0000000..5d7b617 --- /dev/null +++ b/src/palettes.h @@ -0,0 +1,37 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + +#ifndef palettes_included +#define palettes_included + + +typedef struct { + int number; + char name[flam3_name_len]; + unsigned char colors[256][3]; +} lib_palette; + + +void rgb2hsv(double *rgb, double *hsv); +void hsv2rgb(double *hsv, double *rgb); + +double flam3_calc_alpha(double density, double gamma, double linrange); +void flam3_calc_newrgb(double *cbuf, double ls, double highpow, double *newrgb); + +#endif + diff --git a/src/parser.c b/src/parser.c new file mode 100644 index 0000000..272f212 --- /dev/null +++ b/src/parser.c @@ -0,0 +1,1364 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + +#include "parser.h" +#include "interpolation.h" +#include "filters.h" +#include <errno.h> + +static int flam3_conversion_failed; + +int flam3_atoi(char *nstr) { + + /* Note that this is NOT thread-safe, but simplifies things significantly. */ + int res; + char *endp; + + /* Reset errno */ + errno=0; + + /* Convert the string using strtol */ + res = strtol(nstr, &endp, 10); + + /* Check errno & return string */ + if (endp!=nstr+strlen(nstr)) { + flam3_conversion_failed = 1; + fprintf(stderr,"flam3_atoi : Error converting :%s: extra chars\n",nstr); + } + if (errno) { + flam3_conversion_failed = 1; + fprintf(stderr,"flam3_atoi : Error converting :%s:\n",nstr); + } + return(res); +} + +double flam3_atof(char *nstr) { + + /* Note that this is NOT thread-safe, but simplifies things significantly. */ + double res; + char *endp; + + /* Reset errno */ + errno=0; + + /* Convert the string using strtod */ + res = strtod(nstr, &endp); + + /* Check errno & return string */ + if (endp!=nstr+strlen(nstr)) { + flam3_conversion_failed = 1; + fprintf(stderr,"flam3_atof: Error converting :%s: extra chars\n",nstr); + } + if (errno) { + flam3_conversion_failed = 1; + fprintf(stderr,"flam3_atof: Error converting :%s:\n",nstr); + } + return(res); +} + +int var2n(const char *s) { + int i; + + for (i = 0; i < flam3_nvariations; i++) + if (!strcmp(s, flam3_variation_names[i])) return i; + + return flam3_variation_none; +} + +int flam3_parse_hexformat_colors(char *colstr, flam3_genome *cp, int numcolors, int chan) { + + int c_idx=0; + int col_count=0; + int r,g,b,a; + int sscanf_ret; + char tmps[2]; + int skip = (int)fabs(chan); + + /* Strip whitespace prior to first color */ + while (isspace( (int)colstr[c_idx])) + c_idx++; + + do { + + /* Parse an RGB triplet at a time... */ + a = 255; + if (chan==3) + sscanf_ret = sscanf(&(colstr[c_idx]),"%2x%2x%2x",&r,&g,&b); + else if (chan==-4) + sscanf_ret = sscanf(&(colstr[c_idx]),"00%2x%2x%2x",&r,&g,&b); + else // chan==4 + sscanf_ret = sscanf(&(colstr[c_idx]),"%2x%2x%2x%2x",&r,&g,&b,&a); + + if ((chan!=4 && sscanf_ret != 3) || (chan==4 && sscanf_ret != 4)) { + fprintf(stderr, "Error: Problem reading hexadecimal color data.\n"); + return(1); + } + + c_idx += 2*skip; + + while (isspace( (int)colstr[c_idx])) + c_idx++; + + cp->palette[col_count].color[0] = r / 255.0; + cp->palette[col_count].color[1] = g / 255.0; + cp->palette[col_count].color[2] = b / 255.0; + cp->palette[col_count].color[3] = a / 255.0; + cp->palette[col_count].index = col_count; + + col_count++; + + } while (col_count<numcolors); + + if (sscanf(&(colstr[c_idx]),"%1s",tmps)>0) { + fprintf(stderr,"error: extra data at end of hex color data '%s'\n",&(colstr[c_idx])); + return(1); + } + + return(0); +} + +int flam3_interp_missing_colors(flam3_genome *cp) { + + /* Check for a non-full palette */ + int minix,maxix; + int colorli,colorri; + int wrapmin,wrapmax; + int intl, intr; + int str,enr; + int i,j,k; + double prcr; + + for (i=0; i<256; i++) { + if (cp->palette[i].index >= 0) { + minix = i; + break; + } + } + + if (i==256) { + /* No colors. Set all indices properly. */ + for (i=0;i<256;i++) + cp->palette[i].index = i; + return(1); + } + + wrapmin = minix + 256; + + for (i=255;i>=0;i--) { + if (cp->palette[i].index >= 0) { + maxix = i; + break; + } + } + + wrapmax = maxix - 256; + + /* Loop over the indices looking for negs */ + i = 0; + while(i<256) { + + if (cp->palette[i].index < 0) { + /* Start of a range of negs */ + str = i; + intl = i-1; + colorli = intl; + while (cp->palette[i].index<0 && i<256) { + enr = i; + intr = i+1; + colorri = intr; + i++; + } + + if (intl==-1) { + intl = wrapmax; + colorli = maxix; + } + + if (intr==256) { + intr = wrapmin; + colorri = minix; + } + + for (j=str;j<=enr;j++) { + + prcr = (j-intl)/(double)(intr-intl); + + for (k=0;k<=3;k++) + cp->palette[j].color[k] = cp->palette[colorli].color[k] * (1.0-prcr) + cp->palette[colorri].color[k] * prcr; + + cp->palette[j].index = j; + } + + i = colorri+1; + } else + i ++; + } + + return(0); +} + + +void scan_for_flame_nodes(xmlNode *cur_node, char *parent_file, int default_flag, flam3_genome **all_cps, int *all_ncps) { + + xmlNode *this_node = NULL; + flam3_genome loc_current_cp; + flam3_genome *genome_storage = *all_cps; /* To simplify semantics */ + size_t f3_storage; + int pfe_success; + int col_success; + + memset(&loc_current_cp,0,sizeof(flam3_genome)); + + /* Loop over this level of elements */ + for (this_node=cur_node; this_node; this_node = this_node->next) { + + /* Check to see if this element is a <flame> element */ + if (this_node->type == XML_ELEMENT_NODE && !xmlStrcmp(this_node->name, (const xmlChar *)"flame")) { + + /* This is a flame element. Parse it. */ + clear_cp(&loc_current_cp, default_flag); + + pfe_success = parse_flame_element(this_node,&loc_current_cp); + + if (pfe_success>0) { + fprintf(stderr,"error parsing flame element\n"); + all_cps = NULL; /* leaks memory but terminates */ + /* !!! free all_cp properly !!! */ + *all_ncps = 0; + return; + } + + /* Copy this cp into the array */ + f3_storage = (1+*all_ncps)*sizeof(flam3_genome); + genome_storage = realloc(genome_storage, f3_storage); + + /* Must set value of pointer to new storage location */ + *all_cps = genome_storage; + + /* Clear out the realloc'd memory */ + memset(&(genome_storage[*all_ncps]),0,sizeof(flam3_genome)); + + if (loc_current_cp.palette_index != flam3_palette_random) { + flam3_get_palette(loc_current_cp.palette_index, loc_current_cp.palette, + loc_current_cp.hue_rotation); + } + + col_success = flam3_interp_missing_colors(&loc_current_cp); + + loc_current_cp.genome_index = *all_ncps; + memset(loc_current_cp.parent_fname, 0, flam3_parent_fn_len); + strncpy(loc_current_cp.parent_fname,parent_file,flam3_parent_fn_len-1); + + flam3_copy(&(genome_storage[*all_ncps]), &loc_current_cp); + (*all_ncps) ++; + + } else { + /* Check all of the children of this element */ + scan_for_flame_nodes(this_node->children, parent_file, default_flag, all_cps, all_ncps); + } + } + + /* Clear the cp (frees allocated memory) */ + clear_cp(&loc_current_cp, default_flag); + +} + + +int parse_flame_element(xmlNode *flame_node, flam3_genome *loc_current_cp) { + flam3_genome *cp = loc_current_cp; + xmlNode *chld_node, *motion_node; + xmlNodePtr edit_node; + xmlAttrPtr att_ptr, cur_att; + int solo_xform=-1; + char *att_str; + int num_std_xforms=-1; + char tmps[2]; + int i,j; + flam3_xform tmpcpy; + flam3_chaos_entry *xaos=NULL; + int num_xaos=0; + + /* Reset the conversion error flag */ + /* NOT threadsafe */ + flam3_conversion_failed=0; + + /* Store this flame element in the current cp */ + + /* Wipe out the current palette, replace with -1 for each element */ + for (i=0;i<256;i++) { + cp->palette[i].color[0] = 0; + cp->palette[i].color[1] = 0; + cp->palette[i].color[2] = 0; + cp->palette[i].color[3] = 0; + cp->palette[i].index = -1; + } + + /* The top level element is a flame element. */ + /* Read the attributes of it and store them. */ + att_ptr = flame_node->properties; + + if (att_ptr==NULL) { + fprintf(stderr, "Error : <flame> element has no attributes.\n"); + return(1); + } + + memset(cp->flame_name,0,flam3_name_len+1); + + for (cur_att = att_ptr; cur_att; cur_att = cur_att->next) { + + att_str = (char *) xmlGetProp(flame_node,cur_att->name); + + /* Compare attribute names */ + if (!xmlStrcmp(cur_att->name, (const xmlChar *)"time")) { + cp->time = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"interpolation")) { + if (!strcmp("linear", att_str)) { + cp->interpolation = flam3_interpolation_linear; + } else if (!strcmp("smooth", att_str)) { + cp->interpolation = flam3_interpolation_smooth; + } else { + fprintf(stderr, "warning: unrecognized interpolation type %s.\n", att_str); + } + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"palette_interpolation")) { + if (!strcmp("hsv", att_str)) { + cp->palette_interpolation = flam3_palette_interpolation_hsv; + } else if (!strcmp("sweep", att_str)) { + cp->palette_interpolation = flam3_palette_interpolation_sweep; + } else { + fprintf(stderr, "warning: unrecognized palette interpolation type %s.\n", att_str); + } + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"interpolation_space") || + !xmlStrcmp(cur_att->name, (const xmlChar *)"interpolation_type")) { + + if (!strcmp("linear", att_str)) + cp->interpolation_type = flam3_inttype_linear; + else if (!strcmp("log", att_str)) + cp->interpolation_type = flam3_inttype_log; + else if (!strcmp("old", att_str)) + cp->interpolation_type = flam3_inttype_compat; + else if (!strcmp("older", att_str)) + cp->interpolation_type = flam3_inttype_older; + else + fprintf(stderr,"warning: unrecognized interpolation_type %s.\n",att_str); + + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"name")) { + strncpy(cp->flame_name, att_str, flam3_name_len); + i = (int)strlen(cp->flame_name)-1; + while(i-->0) { + if (isspace(cp->flame_name[i])) + cp->flame_name[i] = '_'; + } + + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"palette")) { + cp->palette_index = flam3_atoi(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"size")) { + if (sscanf(att_str, "%d %d%1s", &cp->width, &cp->height, tmps) != 2) { + fprintf(stderr,"error: invalid size attribute '%s'\n",att_str); + xmlFree(att_str); + return(1); + } + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"center")) { + if (sscanf(att_str, "%lf %lf%1s", &cp->center[0], &cp->center[1], tmps) != 2) { + fprintf(stderr,"error: invalid center attribute '%s'\n",att_str); + xmlFree(att_str); + return(1); + } + cp->rot_center[0] = cp->center[0]; + cp->rot_center[1] = cp->center[1]; + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"scale")) { + cp->pixels_per_unit = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"rotate")) { + cp->rotate = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"zoom")) { + cp->zoom = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"oversample")) { + cp->spatial_oversample = flam3_atoi(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"supersample")) { + cp->spatial_oversample = flam3_atoi(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"filter")) { + cp->spatial_filter_radius = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"filter_shape")) { + if (!strcmp("gaussian", att_str)) + cp->spatial_filter_select = flam3_gaussian_kernel; + else if (!strcmp("hermite", att_str)) + cp->spatial_filter_select = flam3_hermite_kernel; + else if (!strcmp("box", att_str)) + cp->spatial_filter_select = flam3_box_kernel; + else if (!strcmp("triangle", att_str)) + cp->spatial_filter_select = flam3_triangle_kernel; + else if (!strcmp("bell", att_str)) + cp->spatial_filter_select = flam3_bell_kernel; + else if (!strcmp("bspline", att_str)) + cp->spatial_filter_select = flam3_b_spline_kernel; + else if (!strcmp("mitchell", att_str)) + cp->spatial_filter_select = flam3_mitchell_kernel; + else if (!strcmp("blackman", att_str)) + cp->spatial_filter_select = flam3_blackman_kernel; + else if (!strcmp("catrom", att_str)) + cp->spatial_filter_select = flam3_catrom_kernel; + else if (!strcmp("hanning", att_str)) + cp->spatial_filter_select = flam3_hanning_kernel; + else if (!strcmp("hamming", att_str)) + cp->spatial_filter_select = flam3_hamming_kernel; + else if (!strcmp("lanczos3", att_str)) + cp->spatial_filter_select = flam3_lanczos3_kernel; + else if (!strcmp("lanczos2", att_str)) + cp->spatial_filter_select = flam3_lanczos2_kernel; + else if (!strcmp("quadratic", att_str)) + cp->spatial_filter_select = flam3_quadratic_kernel; + else + fprintf(stderr, "warning: unrecognized kernel shape %s. Using gaussian.\n", att_str); + + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"temporal_filter_type")) { + if (!strcmp("box", att_str)) + cp->temporal_filter_type = flam3_temporal_box; + else if (!strcmp("gaussian", att_str)) + cp->temporal_filter_type = flam3_temporal_gaussian; + else if (!strcmp("exp",att_str)) + cp->temporal_filter_type = flam3_temporal_exp; + else + fprintf(stderr, "warning: unrecognized temporal filter %s. Using box.\n",att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"temporal_filter_width")) { + cp->temporal_filter_width = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"temporal_filter_exp")) { + cp->temporal_filter_exp = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"palette_mode")) { + if (!strcmp("step", att_str)) + cp->palette_mode = flam3_palette_mode_step; + else if (!strcmp("linear", att_str)) + cp->palette_mode = flam3_palette_mode_linear; + else + fprintf(stderr,"warning: unrecognized palette mode %s. Using step.\n",att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"quality")) { + cp->sample_density = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"passes")) { + cp->nbatches = flam3_atoi(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"temporal_samples")) { + cp->ntemporal_samples = flam3_atoi(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"background")) { + if (sscanf(att_str, "%lf %lf %lf%1s", &cp->background[0], &cp->background[1], &cp->background[2], tmps) != 3) { + fprintf(stderr,"error: invalid background attribute '%s'\n",att_str); + xmlFree(att_str); + return(1); + } + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"brightness")) { + cp->brightness = flam3_atof(att_str); +/* } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"contrast")) { + cp->contrast = flam3_atof(att_str);*/ + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"gamma")) { + cp->gamma = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"highlight_power")) { + cp->highlight_power = atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"vibrancy")) { + cp->vibrancy = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"hue")) { + cp->hue_rotation = fmod(flam3_atof(att_str), 1.0); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"estimator_radius")) { + cp->estimator = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"estimator_minimum")) { + cp->estimator_minimum = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"estimator_curve")) { + cp->estimator_curve = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"gamma_threshold")) { + cp->gam_lin_thresh = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"soloxform")) { + solo_xform = flam3_atof(att_str); + } + + xmlFree(att_str); + + } + + /* Finished with flame attributes. Now look at children of flame element. */ + for (chld_node=flame_node->children; chld_node; chld_node = chld_node->next) { + + /* Is this a color node? */ + if (!xmlStrcmp(chld_node->name, (const xmlChar *)"color")) { + int index = -1; + double r=0.0,g=0.0,b=0.0,a=0.0; + + /* Loop through the attributes of the color element */ + att_ptr = chld_node->properties; + + if (att_ptr==NULL) { + fprintf(stderr,"Error: No attributes for color element.\n"); + return(1); + } + + for (cur_att=att_ptr; cur_att; cur_att = cur_att->next) { + + att_str = (char *) xmlGetProp(chld_node,cur_att->name); + + a = 255.0; + + if (!xmlStrcmp(cur_att->name, (const xmlChar *)"index")) { + index = flam3_atoi(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"rgb")) { + if (sscanf(att_str, "%lf %lf %lf%1s", &r, &g, &b, tmps) != 3) { + fprintf(stderr,"error: invalid rgb attribute '%s'\n",att_str); + xmlFree(att_str); + return(1); + } + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"rgba")) { + if (sscanf(att_str, "%lf %lf %lf %lf%1s", &r, &g, &b, &a, tmps) != 4) { + fprintf(stderr,"error: invalid rgba attribute '%s'\n",att_str); + xmlFree(att_str); + return(1); + } + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"a")) { + if (sscanf(att_str, "%lf%1s", &a, tmps) != 1) { + fprintf(stderr,"error: invalid a attribute '%s'\n",att_str); + xmlFree(att_str); + return(1); + } + } else { + fprintf(stderr,"Error: Unknown color attribute '%s'\n",cur_att->name); + xmlFree(att_str); + return(1); + } + + xmlFree(att_str); + } + + if (index >= 0 && index <= 255) { + cp->palette[index].color[3] = a / 255.0; + /* Don't forget to premultiply the palette... */ + cp->palette[index].color[0] = cp->palette[index].color[3] * r / 255.0; + cp->palette[index].color[1] = cp->palette[index].color[3] * g / 255.0; + cp->palette[index].color[2] = cp->palette[index].color[3] * b / 255.0; + cp->palette[index].index = index; + } else { + fprintf(stderr,"Error: Color element with bad/missing index attribute (%d)\n",index); + return(1); + } + } else if (!xmlStrcmp(chld_node->name, (const xmlChar *)"colors")) { + + int count; + + /* Loop through the attributes of the colors element */ + att_ptr = chld_node->properties; + + if (att_ptr==NULL) { + fprintf(stderr,"Error: No attributes for colors element.\n"); + return(1); + } + + for (cur_att=att_ptr; cur_att; cur_att = cur_att->next) { + + att_str = (char *) xmlGetProp(chld_node,cur_att->name); + + if (!xmlStrcmp(cur_att->name, (const xmlChar *)"count")) { + count = flam3_atoi(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"data")) { + if (flam3_parse_hexformat_colors(att_str, cp, count, -4) > 0) { + fprintf(stderr,"error parsing hexformatted colors\n"); + xmlFree(att_str); + return(1); + } + } else { + fprintf(stderr,"Error: Unknown color attribute '%s'\n",cur_att->name); + xmlFree(att_str); + return(1); + } + + xmlFree(att_str); + } + + + } else if (!xmlStrcmp(chld_node->name, (const xmlChar *)"palette")) { + + /* This could be either the old form of palette or the new form */ + /* Make sure BOTH are not specified, otherwise either are ok */ + int numcolors=0; + int numbytes=0; + int old_format=0; + int new_format=0; + int index0, index1; + double hue0, hue1; + double blend = 0.5; + index0 = index1 = flam3_palette_random; + hue0 = hue1 = 0.0; + + /* Loop through the attributes of the palette element */ + att_ptr = chld_node->properties; + + if (att_ptr==NULL) { + fprintf(stderr,"Error: No attributes for palette element.\n"); + return(1); + } + + for (cur_att=att_ptr; cur_att; cur_att = cur_att->next) { + + att_str = (char *) xmlGetProp(chld_node,cur_att->name); + + if (!xmlStrcmp(cur_att->name, (const xmlChar *)"index0")) { + old_format++; + index0 = flam3_atoi(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"index1")) { + old_format++; + index1 = flam3_atoi(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"hue0")) { + old_format++; + hue0 = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"hue1")) { + old_format++; + hue1 = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"blend")) { + old_format++; + blend = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"count")) { + new_format++; + numcolors = flam3_atoi(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"format")) { + new_format++; + if (!strcmp(att_str,"RGB")) + numbytes=3; + else if (!strcmp(att_str,"RGBA")) + numbytes=4; + else { + fprintf(stderr,"Error: Unrecognized palette format string (%s)\n",att_str); + xmlFree(att_str); + return(1); + } + } else { + fprintf(stderr,"Error: Unknown palette attribute '%s'\n",cur_att->name); + xmlFree(att_str); + return(1); + } + + xmlFree(att_str); + } + + /* Old or new format? */ + if (new_format>0 && old_format>0) { + fprintf(stderr,"Error: mixing of old and new palette tag syntax not allowed.\n"); + return(1); + } + + if (old_format>0) + interpolate_cmap(cp->palette, blend, index0, hue0, index1, hue1); + else { + + char *pal_str; + + /* Read formatted string from contents of tag */ + + pal_str = (char *) xmlNodeGetContent(chld_node); + + if (flam3_parse_hexformat_colors(pal_str, cp, numcolors, numbytes) > 0) { + fprintf(stderr,"error reading hexformatted colors\n"); + xmlFree(pal_str); + return(1); + } + + xmlFree(pal_str); + } + } else if (!xmlStrcmp(chld_node->name, (const xmlChar *)"symmetry")) { + + int kind=0; + int bef,aft; + + /* Loop through the attributes of the symmetry element */ + att_ptr = chld_node->properties; + + if (att_ptr==NULL) { + fprintf(stderr,"Error: No attributes for symmetry element.\n"); + return(1); + } + + for (cur_att=att_ptr; cur_att; cur_att = cur_att->next) { + + att_str = (char *) xmlGetProp(chld_node,cur_att->name); + + if (!xmlStrcmp(cur_att->name, (const xmlChar *)"kind")) { + kind = flam3_atoi(att_str); + } else { + fprintf(stderr,"Error: Unknown symmetry attribute '%s'\n",cur_att->name); + xmlFree(att_str); + return(1); + } + + xmlFree(att_str); + } + + bef = cp->num_xforms; + flam3_add_symmetry(cp,kind); + aft = cp->num_xforms; + num_std_xforms += (aft-bef); + + + } else if (!xmlStrcmp(chld_node->name, (const xmlChar *)"xform") || + !xmlStrcmp(chld_node->name, (const xmlChar *)"finalxform")) { + + int xf = cp->num_xforms; + + if (!xmlStrcmp(chld_node->name, (const xmlChar *)"finalxform")) { + + if (cp->final_xform_index >=0) { + fprintf(stderr,"Error: Cannot specify more than one final xform.\n"); + return(1); + } + + flam3_add_xforms(cp, 1, 0, 1); + cp->xform[xf].var[0]=0.0; + cp->final_xform_index = xf; + /* Now, if present, the xform enable defaults to on */ + cp->final_xform_enable = 1; + + } else { + + /* Add one to the counter */ + flam3_add_xforms(cp, 1, 0, 0); + + /* If there was already a final xform, we have to change xf to point to the second to last xform */ + if (cp->final_xform_index>=0) + xf--; + + cp->xform[xf].var[0]=0.0; + num_std_xforms++; + + } + + if (parse_xform_xml(chld_node, &(cp->xform[xf]), &num_xaos, &xaos, num_std_xforms, 0) != 0) + return(1); + + if (cp->final_xform_index == xf && cp->xform[xf].density != 0.0) { + fprintf(stderr,"Error: Final xforms should not have weight specified.\n"); + return(1); + } + + /* Check for non-zero motion_* params */ + if (cp->xform[xf].motion_freq != 0 || cp->xform[xf].motion_func != 0) { + fprintf(stderr,"Error: Motion parameters should not be specified in xforms.\n"); + return(1); + } + + + /* Motion Language: Check the xform element for children - should be named 'motion'. */ + for (motion_node=chld_node->children; motion_node; motion_node = motion_node->next) { + + if (!xmlStrcmp(motion_node->name, (const xmlChar *)"motion")) { + + int nm = cp->xform[xf].num_motion; + + /* Add motion element to xform */ + flam3_add_motion_element( &cp->xform[xf] ); + + /* Read motion xml */ + if (parse_xform_xml(motion_node, &(cp->xform[xf].motion[nm]), NULL, NULL, 0, 1) != 0) + return(1); + + } + + } + + } else if (!xmlStrcmp(chld_node->name, (const xmlChar *)"edit")) { + + /* Create a new XML document with this edit node as the root node */ + cp->edits = xmlNewDoc( (const xmlChar *)"1.0"); + edit_node = xmlCopyNode( chld_node, 1 ); + xmlDocSetRootElement(cp->edits, edit_node); + + } + } /* Done parsing flame element. */ + + num_std_xforms++; + + for (i=0;i<num_std_xforms;i++) { + + /* Adjust opacity with solo xform setting */ + if (solo_xform>=0 && i!=solo_xform) + cp->xform[i].opacity = 0.0; + + } + + /* Set the chaos array entries with the values in the xaos list */ + for (i=0;i<num_xaos;i++) + cp->chaos[xaos[i].from][xaos[i].to] = xaos[i].scalar; + + free(xaos); + + /* If there is a final xform in this cp, move it to the end of the list */ + if (cp->final_xform_index >=0 && cp->final_xform_index != (cp->num_xforms-1)) { + /* Make a copy of the final xform */ + tmpcpy = cp->xform[cp->final_xform_index]; + + /* Move each other xform up one */ + for (i=cp->final_xform_index+1;i<cp->num_xforms;i++) + cp->xform[i-1] = cp->xform[i]; + + /* Put the final at the end */ + cp->xform[cp->num_xforms-1] = tmpcpy; + + cp->final_xform_index = cp->num_xforms - 1; + } + + /* Check for bad parse */ + if (flam3_conversion_failed) { + fprintf(stderr,"error: parsing a double or int attribute's value.\n"); + return(1); + } + + return(0); + +} + +int parse_xform_xml(xmlNode *chld_node,flam3_xform *this_xform, int *num_xaos, + flam3_chaos_entry **xaos, int numstd, int motionxf) { + + xmlAttrPtr att_ptr, cur_att; + char *att_str, *cpy; + char tmps[2]; + int j,k; + + /* Loop through the attributes of the xform element */ + att_ptr = chld_node->properties; + + if (att_ptr==NULL) { + fprintf(stderr,"Error: No attributes for element.\n"); + return(1); + } + + for (cur_att=att_ptr; cur_att; cur_att = cur_att->next) { + + att_str = (char *) xmlGetProp(chld_node,cur_att->name); + + cpy = att_str; + if (!xmlStrcmp(cur_att->name, (const xmlChar *)"weight")) { + this_xform->density = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"symmetry")) { + /* Deprecated. Set both color_speed and animate to this value. */ + this_xform->color_speed = (1.0-flam3_atof(att_str))/2.0; + this_xform->animate = flam3_atof(att_str)>0 ? 0 : 1; + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"color_speed")) { + this_xform->color_speed = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"animate")) { + this_xform->animate = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"motion_frequency")) { + this_xform->motion_freq = flam3_atoi(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"motion_function")) { + if (!strcmp("sin", att_str)) { + this_xform->motion_func = MOTION_SIN; + } else if (!strcmp("triangle",att_str)) { + this_xform->motion_func = MOTION_TRIANGLE; + } else if (!strcmp("hill",att_str)) { + this_xform->motion_func = MOTION_HILL; + } else { + fprintf(stderr,"Error: unknown motion function '%s'\n",att_str); + xmlFree(att_str); + return(1); + } + + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"color")) { + double tmpc1; + this_xform->color = 0.0; + /* Try two coords first */ + if (sscanf(att_str, "%lf %lf%1s", &this_xform->color, &tmpc1, tmps) != 2) { + /* Try one color */ + if (sscanf(att_str, "%lf%1s", &this_xform->color,tmps) != 1) { + fprintf(stderr,"Error: malformed xform color attribute '%s'\n",att_str); + xmlFree(att_str); + return(1); + } + } + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"var1")) { + for (j=0; j < flam3_nvariations; j++) { + this_xform->var[j] = 0.0; + } + j = flam3_atoi(att_str); + + if (j < 0 || j >= flam3_nvariations) { + fprintf(stderr,"Error: Bad variation (%d)\n",j); + xmlFree(att_str); + return(1); + } + + this_xform->var[j] = 1.0; + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"var")) { + for (j=0; j < flam3_nvariations; j++) { + char *cpy2; + errno=0; + this_xform->var[j] = strtod(cpy, &cpy2); + if (errno != 0 || cpy==cpy2) { + fprintf(stderr,"error: bad value in var attribute '%s'\n",att_str); + xmlFree(att_str); + return(1); + } + cpy=cpy2; + } + + if (cpy != att_str+strlen(att_str)) { + fprintf(stderr,"error: extra chars at the end of var attribute '%s'\n",att_str); + xmlFree(att_str); + return(1); + } + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"chaos")) { + /* Chaos scalars */ + + char *tok; + double scal; + int toi=0; + + if (motionxf==1) { + fprintf(stderr,"error: motion element cannot have a chaos attribute.\n"); + xmlFree(att_str); + return(1); + } + + /* The att string contains at least one value, delimited by a space */ + tok = strtok(cpy," "); + while (tok!=NULL) { + scal = flam3_atof(tok); + + /* Skip 1.0 entries */ + if (scal==1.0) { + toi++; + tok = strtok(NULL," "); + continue; + } + + /* Realloc the xaos list */ + *xaos = realloc((*xaos),(*num_xaos+1) * sizeof(flam3_chaos_entry)); + + /* Populate the xaos list */ + (*xaos)[*num_xaos].from = numstd; + (*xaos)[*num_xaos].to = toi; + (*xaos)[*num_xaos].scalar = scal; + toi++; + (*num_xaos)++; + + /* Get the next token */ + tok = strtok(NULL," "); + } + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"plotmode")) { + + if (motionxf==1) { + fprintf(stderr,"error: motion element cannot have a plotmode attribute.\n"); + xmlFree(att_str); + return(1); + } + + if (!strcmp("off", att_str)) + this_xform->opacity = 0.0; + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"opacity")) { + this_xform->opacity = flam3_atof(att_str); + + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"coefs")) { + for (k=0; k<3; k++) { + for (j=0; j<2; j++) { + char *cpy2; + errno = 0; + this_xform->c[k][j] = strtod(cpy, &cpy2); + if (errno != 0 || cpy==cpy2) { + fprintf(stderr,"error: bad value in coefs attribute '%s'\n",att_str); + xmlFree(att_str); + return(1); + } + cpy=cpy2; + } + } + if (cpy != att_str+strlen(att_str)) { + fprintf(stderr,"error: extra chars at the end of coefs attribute '%s'\n",att_str); + xmlFree(att_str); + return(1); + } + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"post")) { + for (k = 0; k < 3; k++) { + for (j = 0; j < 2; j++) { + char *cpy2; + errno = 0; + this_xform->post[k][j] = strtod(cpy, &cpy2); + if (errno != 0 || cpy==cpy2) { + fprintf(stderr,"error: bad value in post attribute '%s'\n",att_str); + xmlFree(att_str); + return(1); + } + cpy=cpy2; + } + } + if (cpy != att_str+strlen(att_str)) { + fprintf(stderr,"error: extra chars at end of post attribute '%s'\n",att_str); + xmlFree(att_str); + return(1); + } + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"blob_low")) { + this_xform->blob_low = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"blob_high")) { + this_xform->blob_high = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"blob_waves")) { + this_xform->blob_waves = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"pdj_a")) { + this_xform->pdj_a = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"pdj_b")) { + this_xform->pdj_b = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"pdj_c")) { + this_xform->pdj_c = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"pdj_d")) { + this_xform->pdj_d = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"fan2_x")) { + this_xform->fan2_x = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"fan2_y")) { + this_xform->fan2_y = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"rings2_val")) { + this_xform->rings2_val = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"perspective_angle")) { + this_xform->perspective_angle = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"perspective_dist")) { + this_xform->perspective_dist = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"julian_power")) { + this_xform->julian_power = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"julian_dist")) { + this_xform->julian_dist = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"juliascope_power")) { + this_xform->juliascope_power = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"juliascope_dist")) { + this_xform->juliascope_dist = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"radial_blur_angle")) { + this_xform->radial_blur_angle = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"pie_slices")) { + this_xform->pie_slices = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"pie_rotation")) { + this_xform->pie_rotation = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"pie_thickness")) { + this_xform->pie_thickness = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"ngon_sides")) { + this_xform->ngon_sides = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"ngon_power")) { + this_xform->ngon_power = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"ngon_circle")) { + this_xform->ngon_circle = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"ngon_corners")) { + this_xform->ngon_corners = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"curl_c1")) { + this_xform->curl_c1 = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"curl_c2")) { + this_xform->curl_c2 = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"rectangles_x")) { + this_xform->rectangles_x = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"rectangles_y")) { + this_xform->rectangles_y = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"amw_amp")) { + this_xform->amw_amp = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"disc2_rot")) { + this_xform->disc2_rot = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"disc2_twist")) { + this_xform->disc2_twist = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"super_shape_rnd")) { + this_xform->super_shape_rnd = flam3_atof(att_str); + /* Limit to [0,1] */ + if (this_xform->super_shape_rnd<0) + this_xform->super_shape_rnd=0; + else if (this_xform->super_shape_rnd>1) + this_xform->super_shape_rnd=1; + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"super_shape_m")) { + this_xform->super_shape_m = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"super_shape_n1")) { + this_xform->super_shape_n1 = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"super_shape_n2")) { + this_xform->super_shape_n2 = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"super_shape_n3")) { + this_xform->super_shape_n3 = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"super_shape_holes")) { + this_xform->super_shape_holes = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"flower_petals")) { + this_xform->flower_petals = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"flower_holes")) { + this_xform->flower_holes = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"conic_eccentricity")) { + this_xform->conic_eccentricity = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"conic_holes")) { + this_xform->conic_holes = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"parabola_height")) { + this_xform->parabola_height = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"parabola_width")) { + this_xform->parabola_width = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"bent2_x")) { + this_xform->bent2_x = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"bent2_y")) { + this_xform->bent2_y = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"bipolar_shift")) { + this_xform->bipolar_shift = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"cell_size")) { + this_xform->cell_size = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"cpow_i")) { + this_xform->cpow_i = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"cpow_r")) { + this_xform->cpow_r = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"cpow_power")) { + this_xform->cpow_power = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"curve_xamp")) { + this_xform->curve_xamp = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"curve_yamp")) { + this_xform->curve_yamp = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"curve_xlength")) { + this_xform->curve_xlength = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"curve_ylength")) { + this_xform->curve_ylength = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"escher_beta")) { + this_xform->escher_beta = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"lazysusan_x")) { + this_xform->lazysusan_x = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"lazysusan_y")) { + this_xform->lazysusan_y = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"lazysusan_spin")) { + this_xform->lazysusan_spin = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"lazysusan_space")) { + this_xform->lazysusan_space = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"lazysusan_twist")) { + this_xform->lazysusan_twist = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"modulus_x")) { + this_xform->modulus_x = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"modulus_y")) { + this_xform->modulus_y = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"oscilloscope_separation")) { + this_xform->oscope_separation = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"oscilloscope_frequency")) { + this_xform->oscope_frequency = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"oscilloscope_amplitude")) { + this_xform->oscope_amplitude = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"oscilloscope_damping")) { + this_xform->oscope_damping = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"oscope_separation")) { + this_xform->oscope_separation = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"oscope_frequency")) { + this_xform->oscope_frequency = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"oscope_amplitude")) { + this_xform->oscope_amplitude = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"oscope_damping")) { + this_xform->oscope_damping = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"popcorn2_x")) { + this_xform->popcorn2_x = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"popcorn2_y")) { + this_xform->popcorn2_y = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"popcorn2_c")) { + this_xform->popcorn2_c = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"separation_x")) { + this_xform->separation_x = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"separation_xinside")) { + this_xform->separation_xinside = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"separation_y")) { + this_xform->separation_y = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"separation_yinside")) { + this_xform->separation_yinside = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"split_xsize")) { + this_xform->split_xsize = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"split_ysize")) { + this_xform->split_ysize = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"splits_x")) { + this_xform->splits_x = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"splits_y")) { + this_xform->splits_y = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"stripes_space")) { + this_xform->stripes_space = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"stripes_warp")) { + this_xform->stripes_warp = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"wedge_angle")) { + this_xform->wedge_angle = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"wedge_hole")) { + this_xform->wedge_hole = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"wedge_count")) { + this_xform->wedge_count = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"wedge_swirl")) { + this_xform->wedge_swirl = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"wedge_julia_angle")) { + this_xform->wedge_julia_angle = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"wedge_julia_count")) { + this_xform->wedge_julia_count = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"wedge_julia_power")) { + this_xform->wedge_julia_power = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"wedge_julia_dist")) { + this_xform->wedge_julia_dist = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"wedge_sph_angle")) { + this_xform->wedge_sph_angle = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"wedge_sph_hole")) { + this_xform->wedge_sph_hole = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"wedge_sph_count")) { + this_xform->wedge_sph_count = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"wedge_sph_swirl")) { + this_xform->wedge_sph_swirl = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"whorl_inside")) { + this_xform->whorl_inside = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"whorl_outside")) { + this_xform->whorl_outside = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"waves2_scalex")) { + this_xform->waves2_scalex = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"waves2_scaley")) { + this_xform->waves2_scaley = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"waves2_freqx")) { + this_xform->waves2_freqx = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"waves2_freqy")) { + this_xform->waves2_freqy = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"auger_freq")) { + this_xform->auger_freq = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"auger_weight")) { + this_xform->auger_weight = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"auger_sym")) { + this_xform->auger_sym = flam3_atof(att_str); + } else if (!xmlStrcmp(cur_att->name, (const xmlChar *)"auger_scale")) { + this_xform->auger_scale = flam3_atof(att_str); + } else { + int v = var2n((char *) cur_att->name); + if (v != flam3_variation_none) + this_xform->var[v] = flam3_atof(att_str); + else + fprintf(stderr,"Warning: unrecognized variation %s. Ignoring.\n",(char *)cur_att->name); + } + + + xmlFree(att_str); + } + return(0); +} + +void flam3_edit_print(FILE *f, xmlNodePtr editNode, int tabs, int formatting) { + + char *tab_string = " "; + int ti,strl; + xmlAttrPtr att_ptr=NULL,cur_att=NULL; + xmlNodePtr chld_ptr=NULL, cur_chld=NULL; + int edit_or_sheep = 0, indent_printed = 0; + char *ai; + int tablim = argi("print_edit_depth",0); + + char *att_str,*cont_str,*cpy_string; + + if (tablim>0 && tabs>tablim) + return; + + /* If this node is an XML_ELEMENT_NODE, print it and it's attributes */ + if (editNode->type==XML_ELEMENT_NODE) { + + /* Print the node at the tab specified */ + if (formatting) { + for (ti=0;ti<tabs;ti++) + fprintf(f,"%s",tab_string); + } + + fprintf(f,"<%s",editNode->name); + + /* This can either be an edit node or a sheep node */ + /* If it's an edit node, add one to the tab */ + if (!xmlStrcmp(editNode->name, (const xmlChar *)"edit")) { + edit_or_sheep = 1; + tabs ++; + } else if (!xmlStrcmp(editNode->name, (const xmlChar *)"sheep")) + edit_or_sheep = 2; + else + edit_or_sheep = 0; + + + /* Print the attributes */ + att_ptr = editNode->properties; + + for (cur_att = att_ptr; cur_att; cur_att = cur_att->next) { + + att_str = (char *) xmlGetProp(editNode,cur_att->name); + fprintf(f," %s=\"%s\"",cur_att->name,att_str); + xmlFree(att_str); + } + + /* Does this node have children? */ + if (!editNode->children || (tablim>0 && tabs>tablim)) { + /* Close the tag and subtract the tab */ + fprintf(f,"/>"); + if (formatting) + fprintf(f,"\n"); + tabs--; + } else { + + /* Close the tag */ + fprintf(f,">"); + + if (formatting) + fprintf(f,"\n"); + + /* Loop through the children and print them */ + chld_ptr = editNode->children; + + indent_printed = 0; + + for (cur_chld=chld_ptr; cur_chld; cur_chld = cur_chld->next) { + + /* If child is an element, indent first and then print it. */ + if (cur_chld->type==XML_ELEMENT_NODE && + (!xmlStrcmp(cur_chld->name, (const xmlChar *)"edit") || + (!xmlStrcmp(cur_chld->name, (const xmlChar *)"sheep")))) { + + if (indent_printed) { + indent_printed = 0; + fprintf(f,"\n"); + } + + flam3_edit_print(f, cur_chld, tabs, 1); + + } else { + + /* Child is a text node. We don't want to indent more than once. */ + if (xmlIsBlankNode(cur_chld)) + continue; + + if (indent_printed==0 && formatting==1) { + for (ti=0;ti<tabs;ti++) + fprintf(f,"%s",tab_string); + indent_printed = 1; + } + + /* Print nodes without formatting. */ + flam3_edit_print(f, cur_chld, tabs, 0); + + } + } + + if (indent_printed && formatting) + fprintf(f,"\n"); + + /* Tab out. */ + tabs --; + if (formatting) { + for (ti=0;ti<tabs;ti++) + fprintf(f,"%s",tab_string); + } + + /* Close the tag */ + fprintf(f,"</%s>",editNode->name); + + if (formatting) { + fprintf(f,"\n"); + } + } + + } else if (editNode->type==XML_TEXT_NODE) { + + /* Print text node */ + cont_str = (char *) xmlNodeGetContent(editNode); + cpy_string = &(cont_str[0]); + while (isspace(*cpy_string)) + cpy_string++; + + strl = (int)strlen(cont_str)-1; + + while (isspace(cont_str[strl])) + strl--; + + cont_str[strl+1] = 0; + + fprintf(f,"%s",cpy_string); + + } +} + diff --git a/src/parser.h b/src/parser.h new file mode 100644 index 0000000..73d2c68 --- /dev/null +++ b/src/parser.h @@ -0,0 +1,35 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + +#ifndef parser_included +#define parser_included + +#include "private.h" + +int flam3_atoi(char *nstr); +double flam3_atof(char *nstr); +int var2n(const char *s); +int flam3_parse_hexformat_colors(char *colstr, flam3_genome *cp, int numcolors, int chan); + +void scan_for_flame_nodes(xmlNode *cur_node, char *parent_file, int default_flag, flam3_genome **all_cp, int *all_ncps); +int parse_flame_element(xmlNode *flame_node, flam3_genome *loc_current_cp); +int parse_xform_xml(xmlNode *chld_node,flam3_xform *this_xform, int *num_xaos, + flam3_chaos_entry **xaos, int numstd, int motionxf); +void flam3_edit_print(FILE *f, xmlNodePtr editNode, int tabs, int formatting); +int flam3_interp_missing_colors(flam3_genome *cp); +#endif diff --git a/src/png.c b/src/png.c new file mode 100755 index 0000000..1bdba5f --- /dev/null +++ b/src/png.c @@ -0,0 +1,229 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + + +#include <stdio.h> +#include <stdlib.h> +#include <png.h> +#include <setjmp.h> + +#include "config.h" +#include "img.h" +#include "flam3.h" +#include "private.h" + +#ifdef _WIN32 +#include <winsock.h> /* for htons */ +#else +#include <arpa/inet.h> +#endif + +void write_png(FILE *file, void *image, int width, int height, flam3_img_comments *fpc, int bpc) { + png_structp png_ptr; + png_infop info_ptr; + png_text text[FLAM3_PNG_COM]; + size_t i; + unsigned short testbe = 1; + void **rows = malloc(sizeof(void *) * height); + char *nick = getenv("nick"); + char *url = getenv("url"); + char *id = getenv("id"); + char *ai; /* For argi */ + int pngcom_enable = argi("enable_png_comments", 1); + + text[0].compression = PNG_TEXT_COMPRESSION_NONE; + text[0].key = "flam3_version"; + text[0].text = flam3_version(); + + text[1].compression = PNG_TEXT_COMPRESSION_NONE; + text[1].key = "flam3_nickname"; + text[1].text = nick; + + text[2].compression = PNG_TEXT_COMPRESSION_NONE; + text[2].key = "flam3_url"; + text[2].text = url; + + text[3].compression = PNG_TEXT_COMPRESSION_NONE; + text[3].key = "flam3_id"; + text[3].text = id; + + text[4].compression = PNG_TEXT_COMPRESSION_NONE; + text[4].key = "flam3_error_rate"; + text[4].text = fpc->badvals; + + text[5].compression = PNG_TEXT_COMPRESSION_NONE; + text[5].key = "flam3_samples"; + text[5].text = fpc->numiters; + + text[6].compression = PNG_TEXT_COMPRESSION_NONE; + text[6].key = "flam3_time"; + text[6].text = fpc->rtime; + + text[7].compression = PNG_TEXT_COMPRESSION_zTXt; + text[7].key = "flam3_genome"; + text[7].text = fpc->genome; + + for (i = 0; i < height; i++) + rows[i] = (unsigned char *)image + i * width * 4 * bpc; + + png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, + NULL, NULL, NULL); + info_ptr = png_create_info_struct(png_ptr); + + if (setjmp(png_jmpbuf(png_ptr))) { + fclose(file); + png_destroy_write_struct(&png_ptr, &info_ptr); + perror("writing file"); + return; + } + png_init_io(png_ptr, file); + + png_set_IHDR(png_ptr, info_ptr, width, height, 8*bpc, + PNG_COLOR_TYPE_RGBA, + PNG_INTERLACE_NONE, + PNG_COMPRESSION_TYPE_BASE, + PNG_FILTER_TYPE_BASE); + + /* Swap the bytes if we're doing 16bpc and on little-endian platform */ + if (2==bpc && testbe != htons(testbe)) { + unsigned short *im = (unsigned short *)image; + for (i=0; i<height*width*4; i++) { + im[i] = htons(im[i]); + } + } + + + + if (pngcom_enable==1) + png_set_text(png_ptr, info_ptr, text, FLAM3_PNG_COM); + + png_write_info(png_ptr, info_ptr); + png_write_image(png_ptr, (png_bytepp) rows); + png_write_end(png_ptr, info_ptr); + png_destroy_write_struct(&png_ptr, &info_ptr); + free(rows); +} + +#define SIG_CHECK_SIZE 8 + +unsigned char *read_png(FILE *ifp, int *width, int *height) { + unsigned char sig_buf [SIG_CHECK_SIZE]; + png_struct *png_ptr; + png_info *info_ptr; + png_byte **png_image = NULL; + unsigned int linesize, x, y; + unsigned char *p, *q; + + if (fread (sig_buf, 1, SIG_CHECK_SIZE, ifp) != SIG_CHECK_SIZE) { + fprintf (stderr, "input file empty or too short\n"); + return 0; + } + if (png_sig_cmp (sig_buf, (png_size_t) 0, (png_size_t) SIG_CHECK_SIZE) != 0) { + fprintf (stderr, "input file not a PNG file\n"); + return 0; + } + + png_ptr = png_create_read_struct (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + if (png_ptr == NULL) { + fprintf (stderr, "cannot allocate LIBPNG structure\n"); + return 0; + } + if (setjmp(png_jmpbuf(png_ptr))) { + if (png_image) { + for (y = 0 ; y < info_ptr->height ; y++) + free (png_image[y]); + free (png_image); + } + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); + perror("reading file"); + return 0; + } + info_ptr = png_create_info_struct (png_ptr); + if (info_ptr == NULL) { + png_destroy_read_struct (&png_ptr, (png_infopp)NULL, (png_infopp)NULL); + fprintf (stderr, "cannot allocate LIBPNG structures\n"); + return 0; + } + + png_init_io (png_ptr, ifp); + png_set_sig_bytes (png_ptr, SIG_CHECK_SIZE); + png_read_info (png_ptr, info_ptr); + + if (8 != info_ptr->bit_depth) { + fprintf(stderr, "bit depth type must be 8, not %d.\n", + info_ptr->bit_depth); + return 0; + } + + *width = info_ptr->width; + *height = info_ptr->height; + p = q = malloc(4 * *width * *height); + png_image = (png_byte **)malloc (info_ptr->height * sizeof (png_byte*)); + + linesize = info_ptr->width; + switch (info_ptr->color_type) { + case PNG_COLOR_TYPE_RGB: + linesize *= 3; + break; + case PNG_COLOR_TYPE_RGBA: + linesize *= 4; + break; + default: + fprintf(stderr, "color type must be RGB or RGBA not %d.\n", + info_ptr->color_type); + return 0; + } + + for (y = 0 ; y < info_ptr->height ; y++) { + png_image[y] = malloc (linesize); + } + png_read_image (png_ptr, png_image); + png_read_end (png_ptr, info_ptr); + + for (y = 0 ; y < info_ptr->height ; y++) { + unsigned char *s = png_image[y]; + for (x = 0 ; x < info_ptr->width ; x++) { + + switch (info_ptr->color_type) { + case PNG_COLOR_TYPE_RGB: + p[0] = s[0]; + p[1] = s[1]; + p[2] = s[2]; + p[3] = 255; + s += 3; + p += 4; + break; + case PNG_COLOR_TYPE_RGBA: + p[0] = s[0]; + p[1] = s[1]; + p[2] = s[2]; + p[3] = s[3]; + s += 4; + p += 4; + break; + } + } + } + + for (y = 0 ; y < info_ptr->height ; y++) + free (png_image[y]); + free (png_image); + png_destroy_read_struct (&png_ptr, &info_ptr, (png_infopp)NULL); + + return q; +} diff --git a/src/private.h b/src/private.h new file mode 100644 index 0000000..156b0d2 --- /dev/null +++ b/src/private.h @@ -0,0 +1,154 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + +#ifndef private_included +#define private_included + +#include "flam3.h" +#include "config.h" +#include <stdlib.h> + +#include <ctype.h> +#include <time.h> +#include <string.h> +#include <libxml/parser.h> + +#ifdef _WIN32 +#define basename(x) strdup(x) +#define snprintf _snprintf +#define _USE_MATH_DEFINES +#else +#include <unistd.h> +#include <libgen.h> +#endif + +#include <math.h> + +#ifdef HAVE_LIBPTHREAD +#include <pthread.h> +#endif + +#define PREFILTER_WHITE 255 +#define EPS (1e-10) +#define CMAP_SIZE 256 +#define CMAP_SIZE_M1 255 +#define rbit() (flam3_random_bit()) +#define flam3_variation_none (-1) +#define max_specified_vars (100) +#define vlen(x) (sizeof(x)/sizeof(*x)) + + +#ifdef _WIN32 + +#ifndef M_PI + #define M_PI 3.1415926536 + #define M_1_PI 0.3183098862 + #define M_PI_4 0.7853981634 +#endif +#define random() (rand() ^ (rand()<<15)) +#define srandom(x) (srand(x)) +extern int getpid(); +#define rint(A) floor((A)+(((A) < 0)? -0.5 : 0.5)) +#endif + +#define argi(s,d) ((ai = getenv(s)) ? atoi(ai) : (d)) +#define argf(s,d) ((ai = getenv(s)) ? atof(ai) : (d)) +#define args(s,d) ((ai = getenv(s)) ? ai : (d)) + +void docstring(); + +/* Structures for passing parameters to iteration threads */ +typedef struct { + unsigned short *xform_distrib; /* Distribution of xforms based on weights */ + flam3_frame *spec; /* Frame contains timing information */ + double bounds[4]; /* Corner coords of viewable area */ + double rot[2][2]; /* Rotation transformation */ + double size[2]; + int width, height; /* buffer width/height */ + double ws0, wb0s0, hs1, hb1s1; /* shortcuts for indexing */ + flam3_palette_entry *dmap; /* palette */ + double color_scalar; /* <1.0 if non-uniform motion blur is set */ + void *buckets; /* Points to the first accumulator */ + double badvals; /* accumulates all badvalue resets */ + double batch_size; + int temporal_sample_num,ntemporal_samples; + int batch_num, nbatches, aborted; + time_t *progress_timer; + time_t *progress_timer_history; + double *progress_history; + int *progress_history_mark; +#ifdef HAVE_LIBPTHREAD + /* mutex for bucket accumulator */ + pthread_mutex_t bucket_mutex; +#endif + +} flam3_iter_constants; + +typedef struct { + + double tx,ty; /* Starting coordinates */ + + double precalc_atan, precalc_sina; /* Precalculated, if needed */ + double precalc_cosa, precalc_sqrt; + double precalc_sumsq,precalc_atanyx; + + flam3_xform *xform; /* For the important values */ + + /* Output Coords */ + + double p0, p1; + + /* Pointer to the isaac RNG state */ + randctx *rc; + +} flam3_iter_helper; + +typedef struct { + double *iter_storage; /* Storage for iteration coordinates */ + randctx rc; /* Thread-unique ISAAC seed */ + flam3_genome cp; /* Full copy of genome for use by the thread */ + int first_thread; + int timer_initialize; + flam3_iter_constants *fic; /* Constants for render */ +} flam3_thread_helper; + +double flam3_sinc(double x); + +#define flam3_num_spatialfilters 14 +double flam3_gaussian_filter(double x); +double flam3_hermite_filter(double t); +double flam3_box_filter(double t); +double flam3_triangle_filter(double t); +double flam3_bell_filter(double t); +double flam3_b_spline_filter(double t); +double flam3_lanczos3_filter(double t); +double flam3_lanczos2_filter(double t); +double flam3_mitchell_filter(double t); +double flam3_blackman_filter(double x); +double flam3_catrom_filter(double x); +double flam3_hamming_filter(double x); +double flam3_hanning_filter(double x); +double flam3_quadratic_filter(double x); + +double flam3_spatial_filter(int knum, double x); + +#define flam3_mitchell_b (1.0 / 3.0) +#define flam3_mitchell_c (1.0 / 3.0) + + +#endif diff --git a/src/rect.c b/src/rect.c new file mode 100644 index 0000000..49a1313 --- /dev/null +++ b/src/rect.c @@ -0,0 +1,1268 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + +/* this file is included into flam3.c once for each buffer bit-width */ + +/* + * for batch + * generate de filters + * for temporal_sample_batch + * interpolate + * compute colormap + * for subbatch + * compute samples + * buckets += cmap[samples] + * accum += time_filter[temporal_sample_batch] * log[buckets] * de_filter + * image = filter(accum) + */ + + +/* allow this many iterations for settling into attractor */ +#define FUSE 100 +#define WHITE_LEVEL 255 + + +typedef struct { + + bucket *b; + abucket *accumulate; + int width, height, oversample; + flam3_de_helper *de; + double k1,k2; + double curve; + int last_thread; + int start_row, end_row; + flam3_frame *spec; + int *aborted; + int progress_size; + +} de_thread_helper; + +static void de_thread(void *dth) { + + de_thread_helper *dthp = (de_thread_helper *)dth; + int oversample = dthp->oversample; + int ss = (int)floor(oversample / 2.0); + int scf = !(oversample & 1); + double scfact = pow(oversample/(oversample+1.0), 2.0); + int wid=dthp->width; + int hig=dthp->height; + int ps =dthp->progress_size; + int str = (oversample-1)+dthp->start_row; + int enr = (oversample-1)+dthp->end_row; + int i,j; + time_t progress_timer=0; + struct timespec pauset; + int progress_count = 0; + int pixel_num; + + pauset.tv_sec = 0; + pauset.tv_nsec = 100000000; + + /* Density estimation code */ + for (j = str; j < enr; j++) { + for (i = oversample-1; i < wid-(oversample-1); i++) { + + int ii,jj; + double f_select=0.0; + int f_select_int,f_coef_idx; + int arr_filt_width; + bucket *b; + double c[4],ls; + + b = dthp->b + i + j*wid; + + /* Don't do anything if there's no hits here */ + if (b[0][4] == 0 || b[0][3] == 0) + continue; + + /* Count density in ssxss area */ + /* Scale if OS>1 for equal iters */ + for (ii=-ss; ii<=ss; ii++) { + for (jj=-ss; jj<=ss; jj++) { + b = dthp->b + (i + ii) + (j + jj)*wid; + f_select += b[0][4]/255.0; + } + } + + if (scf) + f_select *= scfact; + + if (f_select > dthp->de->max_filtered_counts) + f_select_int = dthp->de->max_filter_index; + else if (f_select<=DE_THRESH) + f_select_int = (int)ceil(f_select)-1; + else + f_select_int = (int)DE_THRESH + + (int)floor(pow(f_select-DE_THRESH,dthp->curve)); + + /* If the filter selected below the min specified clamp it to the min */ + if (f_select_int > dthp->de->max_filter_index) + f_select_int = dthp->de->max_filter_index; + + /* We only have to calculate the values for ~1/8 of the square */ + f_coef_idx = f_select_int*dthp->de->kernel_size; + + arr_filt_width = (int)ceil(dthp->de->filter_widths[f_select_int])-1; + + b = dthp->b + i + j*wid; + + for (jj=0; jj<=arr_filt_width; jj++) { + for (ii=0; ii<=jj; ii++) { + + /* Skip if coef is 0 */ + if (dthp->de->filter_coefs[f_coef_idx]==0.0) { + f_coef_idx++; + continue; + } + + c[0] = (double) b[0][0]; + c[1] = (double) b[0][1]; + c[2] = (double) b[0][2]; + c[3] = (double) b[0][3]; + + ls = dthp->de->filter_coefs[f_coef_idx]*(dthp->k1 * log(1.0 + c[3] * dthp->k2))/c[3]; + + c[0] *= ls; + c[1] *= ls; + c[2] *= ls; + c[3] *= ls; + + if (jj==0 && ii==0) { + add_c_to_accum(dthp->accumulate,i,ii,j,jj,wid,hig,c); + } + else if (ii==0) { + add_c_to_accum(dthp->accumulate,i,jj,j,0,wid,hig,c); + add_c_to_accum(dthp->accumulate,i,-jj,j,0,wid,hig,c); + add_c_to_accum(dthp->accumulate,i,0,j,jj,wid,hig,c); + add_c_to_accum(dthp->accumulate,i,0,j,-jj,wid,hig,c); + } else if (jj==ii) { + add_c_to_accum(dthp->accumulate,i,ii,j,jj,wid,hig,c); + add_c_to_accum(dthp->accumulate,i,-ii,j,jj,wid,hig,c); + add_c_to_accum(dthp->accumulate,i,ii,j,-jj,wid,hig,c); + add_c_to_accum(dthp->accumulate,i,-ii,j,-jj,wid,hig,c); + } else { + add_c_to_accum(dthp->accumulate,i,ii,j,jj,wid,hig,c); + add_c_to_accum(dthp->accumulate,i,-ii,j,jj,wid,hig,c); + add_c_to_accum(dthp->accumulate,i,ii,j,-jj,wid,hig,c); + add_c_to_accum(dthp->accumulate,i,-ii,j,-jj,wid,hig,c); + add_c_to_accum(dthp->accumulate,i,jj,j,ii,wid,hig,c); + add_c_to_accum(dthp->accumulate,i,-jj,j,ii,wid,hig,c); + add_c_to_accum(dthp->accumulate,i,jj,j,-ii,wid,hig,c); + add_c_to_accum(dthp->accumulate,i,-jj,j,-ii,wid,hig,c); + } + + f_coef_idx++; + + } + } + } + + pixel_num = (j-str+1)*wid; + + if (dthp->last_thread) { + /* Standard progress function */ + if (dthp->spec->verbose && time(NULL) != progress_timer) { + progress_timer = time(NULL); + fprintf(stderr, "\rdensity estimation: %d/%d ", j-str, enr-str); + fflush(stderr); + } + + } + /* Custom progress function */ + if (dthp->spec->progress && pixel_num > progress_count + ps) { + + progress_count = ps * floor(pixel_num/(double)ps); + + if (dthp->last_thread) { + + int rv = (*dthp->spec->progress)(dthp->spec->progress_parameter, + 100*(j-str)/(double)(enr-str), 1, 0); + + if (rv==2) { /* PAUSE */ + + *(dthp->aborted) = -1; + + do { +#if defined(_WIN32) /* mingw or msvc */ + Sleep(100); +#else + nanosleep(&pauset,NULL); +#endif + rv = (*dthp->spec->progress)(dthp->spec->progress_parameter, + 100*(j-str)/(double)(enr-str), 1, 0); + } while (rv==2); + + *(dthp->aborted) = 0; + + } + + if (rv==1) { + *(dthp->aborted) = 1; +#ifdef HAVE_LIBPTHREAD + pthread_exit((void *)0); +#else + return; +#endif + } + } else { +#ifdef HAVE_LIBPTHREAD + + if (*(dthp->aborted)<0) { + + do { +#if defined(_WIN32) /* mingw or msvc */ + Sleep(100); +#else + nanosleep(&pauset,NULL); +#endif + } while (*(dthp->aborted)<0); + } + + if (*(dthp->aborted)>0) pthread_exit((void *)0); +#else + if (*(dthp->aborted)>0) return; +#endif + } + } + + } + + #ifdef HAVE_LIBPTHREAD + pthread_exit((void *)0); + #endif + +} + +static void iter_thread(void *fth) { + double sub_batch; + int j; + flam3_thread_helper *fthp = (flam3_thread_helper *)fth; + flam3_iter_constants *ficp = fthp->fic; + struct timespec pauset; + int SBS = ficp->spec->sub_batch_size; + + double eta = 0.0; + + pauset.tv_sec = 0; + pauset.tv_nsec = 100000000; + + + if (fthp->timer_initialize) { + *(ficp->progress_timer) = 0; + memset(ficp->progress_timer_history,0,64*sizeof(time_t)); + memset(ficp->progress_history,0,64*sizeof(double)); + *(ficp->progress_history_mark) = 0; + } + + for (sub_batch = 0; sub_batch < ficp->batch_size; sub_batch+=SBS) { + int sub_batch_size, badcount; + time_t newt = time(NULL); + /* sub_batch is double so this is sketchy */ + sub_batch_size = (sub_batch + SBS > ficp->batch_size) ? + (ficp->batch_size - sub_batch) : SBS; + + if (fthp->first_thread && newt != *(ficp->progress_timer)) { + double percent = 100.0 * + ((((sub_batch / (double) ficp->batch_size) + ficp->temporal_sample_num) + / ficp->ntemporal_samples) + ficp->batch_num)/ficp->nbatches; + int old_mark = 0; + int ticker; + + if (ficp->spec->verbose) + fprintf(stderr, "\rchaos: %5.1f%%", percent); + + *(ficp->progress_timer) = newt; + if (ficp->progress_timer_history[*(ficp->progress_history_mark)] && + ficp->progress_history[*(ficp->progress_history_mark)] < percent) + old_mark = *(ficp->progress_history_mark); + + if (percent > 0) { + eta = (100 - percent) * (*(ficp->progress_timer) - ficp->progress_timer_history[old_mark]) + / (percent - ficp->progress_history[old_mark]); + + if (ficp->spec->verbose) { + ticker = (*(ficp->progress_timer)&1)?':':'.'; + if (eta < 1000) + ticker = ':'; + if (eta > 100) + fprintf(stderr, " ETA%c %.1f minutes", ticker, eta / 60); + else + fprintf(stderr, " ETA%c %ld seconds ", ticker, (long) ceil(eta)); + fprintf(stderr, " \r"); + fflush(stderr); + } + } + + ficp->progress_timer_history[*(ficp->progress_history_mark)] = *(ficp->progress_timer); + ficp->progress_history[*(ficp->progress_history_mark)] = percent; + *(ficp->progress_history_mark) = (*(ficp->progress_history_mark) + 1) % 64; + } + + /* Custom progress function */ + if (ficp->spec->progress) { + if (fthp->first_thread) { + + int rv; + + /* Recalculate % done, as the other calculation only updates once per second */ + double percent = 100.0 * + ((((sub_batch / (double) ficp->batch_size) + ficp->temporal_sample_num) + / ficp->ntemporal_samples) + ficp->batch_num)/ficp->nbatches; + + rv = (*ficp->spec->progress)(ficp->spec->progress_parameter, percent, 0, eta); + + if (rv==2) { /* PAUSE */ + + time_t tnow = time(NULL); + time_t tend; + int lastpt; + + ficp->aborted = -1; + + do { +#if defined(_WIN32) /* mingw or msvc */ + Sleep(100); +#else + nanosleep(&pauset,NULL); +#endif + rv = (*ficp->spec->progress)(ficp->spec->progress_parameter, percent, 0, eta); + } while (rv==2); + + /* modify the timer history to compensate for the pause */ + tend = time(NULL)-tnow; + + ficp->aborted = 0; + + for (lastpt=0;lastpt<64;lastpt++) { + if (ficp->progress_timer_history[lastpt]) { + ficp->progress_timer_history[lastpt] += tend; + } + } + + } + + if (rv==1) { /* ABORT */ + ficp->aborted = 1; +#ifdef HAVE_LIBPTHREAD + pthread_exit((void *)0); +#else + return; +#endif + } + } else { + if (ficp->aborted<0) { + + do { +#if defined(_WIN32) /* mingw or msvc */ + Sleep(100); +#else + nanosleep(&pauset,NULL); +#endif + } while (ficp->aborted==-1); + } +#ifdef HAVE_LIBPTHREAD + if (ficp->aborted>0) pthread_exit((void *)0); +#else + if (ficp->aborted>0) return; +#endif + } + } + + /* Seed iterations */ + fthp->iter_storage[0] = flam3_random_isaac_11(&(fthp->rc)); + fthp->iter_storage[1] = flam3_random_isaac_11(&(fthp->rc)); + fthp->iter_storage[2] = flam3_random_isaac_01(&(fthp->rc)); + fthp->iter_storage[3] = flam3_random_isaac_01(&(fthp->rc)); + + /* Execute iterations */ + badcount = flam3_iterate(&(fthp->cp), sub_batch_size, FUSE, fthp->iter_storage, ficp->xform_distrib, &(fthp->rc)); + + #if defined(HAVE_LIBPTHREAD) && defined(USE_LOCKS) + /* Lock mutex for access to accumulator */ + pthread_mutex_lock(&ficp->bucket_mutex); + #endif + + /* Add the badcount to the counter */ + ficp->badvals += badcount; + + /* Put them in the bucket accumulator */ + for (j = 0; j < sub_batch_size*4; j+=4) { + double p0, p1, p00, p11; + double dbl_index0,dbl_frac; + double interpcolor[4]; + int ci, color_index0; + double *p = &(fthp->iter_storage[j]); + bucket *b; + + if (fthp->cp.rotate != 0.0) { + p00 = p[0] - fthp->cp.rot_center[0]; + p11 = p[1] - fthp->cp.rot_center[1]; + p0 = p00 * ficp->rot[0][0] + p11 * ficp->rot[0][1] + fthp->cp.rot_center[0]; + p1 = p00 * ficp->rot[1][0] + p11 * ficp->rot[1][1] + fthp->cp.rot_center[1]; + } else { + p0 = p[0]; + p1 = p[1]; + } + + if (p0 >= ficp->bounds[0] && p1 >= ficp->bounds[1] && p0 <= ficp->bounds[2] && p1 <= ficp->bounds[3]) { + + double logvis=1.0; + bucket *buckets = (bucket *)(ficp->buckets); + + /* Skip if invisible */ + if (p[3]==0) + continue; + else + logvis = p[3]; + + b = buckets + (int)(ficp->ws0 * p0 - ficp->wb0s0) + + ficp->width * (int)(ficp->hs1 * p1 - ficp->hb1s1); + +#ifdef USE_FLOAT_INDICES + color_index0 = 0; + + //fprintf(stdout,"%.16f\n",p[2]*256.0); + + while(color_index0 < CMAP_SIZE_M1) { + if (ficp->dmap[color_index0+1].index > p[2]) + break; + else + color_index0++; + } + + if (p[3]==1.0) { + bump_no_overflow(b[0][0], ficp->dmap[color_index0].color[0]); + bump_no_overflow(b[0][1], ficp->dmap[color_index0].color[1]); + bump_no_overflow(b[0][2], ficp->dmap[color_index0].color[2]); + bump_no_overflow(b[0][3], ficp->dmap[color_index0].color[3]); + bump_no_overflow(b[0][4], 255.0); + } else { + bump_no_overflow(b[0][0], logvis*ficp->dmap[color_index0].color[0]); + bump_no_overflow(b[0][1], logvis*ficp->dmap[color_index0].color[1]); + bump_no_overflow(b[0][2], logvis*ficp->dmap[color_index0].color[2]); + bump_no_overflow(b[0][3], logvis*ficp->dmap[color_index0].color[3]); + bump_no_overflow(b[0][4], 255.0); +#else + dbl_index0 = p[2] * CMAP_SIZE; + color_index0 = (int) (dbl_index0); + + if (flam3_palette_mode_linear == fthp->cp.palette_mode) { + if (color_index0 < 0) { + color_index0 = 0; + dbl_frac = 0; + } else if (color_index0 >= CMAP_SIZE_M1) { + color_index0 = CMAP_SIZE_M1-1; + dbl_frac = 1.0; + } else { + /* interpolate between color_index0 and color_index0+1 */ + dbl_frac = dbl_index0 - (double)color_index0; + } + + for (ci=0;ci<4;ci++) { + interpcolor[ci] = ficp->dmap[color_index0].color[ci] * (1.0-dbl_frac) + + ficp->dmap[color_index0+1].color[ci] * dbl_frac; + } + + } else { /* Palette mode step */ + + if (color_index0 < 0) { + color_index0 = 0; + } else if (color_index0 >= CMAP_SIZE_M1) { + color_index0 = CMAP_SIZE_M1; + } + + for (ci=0;ci<4;ci++) + interpcolor[ci] = ficp->dmap[color_index0].color[ci]; + } + + if (p[3]==1.0) { + bump_no_overflow(b[0][0], interpcolor[0]); + bump_no_overflow(b[0][1], interpcolor[1]); + bump_no_overflow(b[0][2], interpcolor[2]); + bump_no_overflow(b[0][3], interpcolor[3]); + bump_no_overflow(b[0][4], 255.0); + } else { + bump_no_overflow(b[0][0], logvis*interpcolor[0]); + bump_no_overflow(b[0][1], logvis*interpcolor[1]); + bump_no_overflow(b[0][2], logvis*interpcolor[2]); + bump_no_overflow(b[0][3], logvis*interpcolor[3]); + bump_no_overflow(b[0][4], 255.0); + } +#endif + + } + } + + #if defined(HAVE_LIBPTHREAD) && defined(USE_LOCKS) + /* Release mutex */ + pthread_mutex_unlock(&ficp->bucket_mutex); + #endif + + } + #ifdef HAVE_LIBPTHREAD + pthread_exit((void *)0); + #endif +} + +static int render_rectangle(flam3_frame *spec, void *out, + int field, int nchan, int transp, stat_struct *stats) { + long nbuckets; + int i, j, k, batch_num, temporal_sample_num; + double nsamples, batch_size; + bucket *buckets; + abucket *accumulate; + double *points; + double *filter, *temporal_filter, *temporal_deltas, *batch_filter; + double ppux=0, ppuy=0; + int image_width, image_height; /* size of the image to produce */ + int out_width; + int filter_width=0; + int bytes_per_channel = spec->bytes_per_channel; + int oversample = spec->genomes[0].spatial_oversample; + double highpow = spec->genomes[0].highlight_power; + int nbatches = spec->genomes[0].nbatches; + int ntemporal_samples = spec->genomes[0].ntemporal_samples; + flam3_palette dmap; + int gutter_width; + double vibrancy = 0.0; + double gamma = 0.0; + double background[3]; + int vib_gam_n = 0; + time_t progress_began=0; + int verbose = spec->verbose; + int gnm_idx,max_gnm_de_fw,de_offset; + flam3_genome cp; + unsigned short *xform_distrib; + flam3_iter_constants fic; + flam3_thread_helper *fth; +#ifdef HAVE_LIBPTHREAD + pthread_attr_t pt_attr; + pthread_t *myThreads=NULL; +#endif + int thread_status; + int thi; + time_t tstart,tend; + double sumfilt; + + char *last_block; + size_t memory_rqd; + + /* Per-render progress timers */ + time_t progress_timer=0; + time_t progress_timer_history[64]; + double progress_history[64]; + int progress_history_mark = 0; + + tstart = time(NULL); + + fic.badvals = 0; + fic.aborted = 0; + + stats->num_iters = 0; + + memset(&cp,0, sizeof(flam3_genome)); + + if (nbatches < 1) { + fprintf(stderr, "nbatches must be positive, not %d.\n", nbatches); + return(1); + } + + if (oversample < 1) { + fprintf(stderr, "oversample must be positive, not %d.\n", oversample); + return(1); + } + + /* Initialize the thread helper structures */ + fth = (flam3_thread_helper *)calloc(spec->nthreads,sizeof(flam3_thread_helper)); + for (i=0;i<spec->nthreads;i++) + fth[i].cp.final_xform_index=-1; + + /* Set up the output image dimensions, adjusted for scanline */ + image_width = spec->genomes[0].width; + out_width = image_width; + if (field) { + image_height = spec->genomes[0].height / 2; + + if (field == flam3_field_odd) + out = (unsigned char *)out + nchan * bytes_per_channel * out_width; + + out_width *= 2; + } else + image_height = spec->genomes[0].height; + + + /* Spatial Filter kernel creation */ + filter_width = flam3_create_spatial_filter(spec, field, &filter); + + /* handle error */ + if (filter_width<0) { + fprintf(stderr,"flam3_create_spatial_filter returned error: aborting\n"); + return(1); + } + + /* note we must free 'filter' at the end */ + + /* batch filter */ + /* may want to revisit this at some point */ + batch_filter = (double *) malloc(sizeof(double) * nbatches); + for (i=0; i<nbatches; i++) + batch_filter[i]=1.0/(double)nbatches; + + /* temporal filter - we must free temporal_filter and temporal_deltas at the end */ + sumfilt = flam3_create_temporal_filter(nbatches*ntemporal_samples, + spec->genomes[0].temporal_filter_type, + spec->genomes[0].temporal_filter_exp, + spec->genomes[0].temporal_filter_width, + &temporal_filter, &temporal_deltas); + + + /* + the number of additional rows of buckets we put at the edge so + that the filter doesn't go off the edge + */ + gutter_width = (filter_width - oversample) / 2; + + /* + Check the size of the density estimation filter. + If the 'radius' of the density estimation filter is greater than the + gutter width, we have to pad with more. Otherwise, we can use the same value. + */ + max_gnm_de_fw=0; + for (gnm_idx = 0; gnm_idx < spec->ngenomes; gnm_idx++) { + int this_width = (int)ceil(spec->genomes[gnm_idx].estimator) * oversample; + if (this_width > max_gnm_de_fw) + max_gnm_de_fw = this_width; + } + + /* Add OS-1 for the averaging at the edges, if it's > 0 already */ + if (max_gnm_de_fw>0) + max_gnm_de_fw += (oversample-1); + + /* max_gnm_de_fw is now the number of pixels of additional gutter */ + /* necessary to appropriately perform the density estimation filtering */ + /* Check to see if it's greater than the gutter_width */ + if (max_gnm_de_fw > gutter_width) { + de_offset = max_gnm_de_fw - gutter_width; + gutter_width = max_gnm_de_fw; + } else + de_offset = 0; + + + /* Allocate the space required to render the image */ + fic.height = oversample * image_height + 2 * gutter_width; + fic.width = oversample * image_width + 2 * gutter_width; + + nbuckets = (long)fic.width * (long)fic.height; + memory_rqd = (sizeof(bucket) * nbuckets + sizeof(abucket) * nbuckets + + 4 * sizeof(double) * (size_t)(spec->sub_batch_size) * spec->nthreads); + last_block = (char *) malloc(memory_rqd); + if (NULL == last_block) { + fprintf(stderr, "render_rectangle: cannot malloc %g bytes.\n", (double)memory_rqd); + fprintf(stderr, "render_rectangle: w=%d h=%d nb=%ld.\n", fic.width, fic.height, nbuckets); + return(1); + } + + /* Just free buckets at the end */ + buckets = (bucket *) last_block; + accumulate = (abucket *) (last_block + sizeof(bucket) * nbuckets); + points = (double *) (last_block + (sizeof(bucket) + sizeof(abucket)) * nbuckets); + + if (verbose) { + fprintf(stderr, "chaos: "); + progress_began = time(NULL); + } + + background[0] = background[1] = background[2] = 0.0; + memset((char *) accumulate, 0, sizeof(abucket) * nbuckets); + + + /* Batch loop - outermost */ + for (batch_num = 0; batch_num < nbatches; batch_num++) { + double de_time; + double sample_density=0.0; + double k1, area, k2; + flam3_de_helper de; + + de_time = spec->time + temporal_deltas[batch_num*ntemporal_samples]; + + memset((char *) buckets, 0, sizeof(bucket) * nbuckets); + + /* interpolate and get a control point */ + /* ONLY FOR DENSITY FILTER WIDTH PURPOSES */ + /* additional interpolation will be done in the temporal_sample loop */ + flam3_interpolate(spec->genomes, spec->ngenomes, de_time, 0, &cp); + + /* if instructed to by the genome, create the density estimation */ + /* filter kernels. Check boundary conditions as well. */ + if (cp.estimator < 0.0 || cp.estimator_minimum < 0.0) { + fprintf(stderr,"density estimator filter widths must be >= 0\n"); + return(1); + } + + if (spec->bits <= 32) { + if (cp.estimator > 0.0) { + fprintf(stderr, "warning: density estimation disabled with %d bit buffers.\n", spec->bits); + cp.estimator = 0.0; + } + } + + /* Create DE filters */ + if (cp.estimator > 0.0) { + de = flam3_create_de_filters(cp.estimator,cp.estimator_minimum, + cp.estimator_curve,oversample); + if (de.kernel_size<0) { + fprintf(stderr,"de.kernel_size returned 0 - aborting.\n"); + return(1); + } + } else + de.max_filter_index = 0; + + /* Temporal sample loop */ + for (temporal_sample_num = 0; temporal_sample_num < ntemporal_samples; temporal_sample_num++) { + + double temporal_sample_time; + double color_scalar = temporal_filter[batch_num*ntemporal_samples + temporal_sample_num]; + + temporal_sample_time = spec->time + + temporal_deltas[batch_num*ntemporal_samples + temporal_sample_num]; + + /* Interpolate and get a control point */ + flam3_interpolate(spec->genomes, spec->ngenomes, temporal_sample_time, 0, &cp); + + /* Get the xforms ready to render */ + if (prepare_xform_fn_ptrs(&cp, &spec->rc)) { + fprintf(stderr,"prepare xform pointers returned error: aborting.\n"); + return(1); + } + xform_distrib = flam3_create_xform_distrib(&cp); + if (xform_distrib==NULL) { + fprintf(stderr,"create xform distrib returned error: aborting.\n"); + return(1); + } + + /* compute the colormap entries. */ + /* the input colormap is 256 long with entries from 0 to 1.0 */ + for (j = 0; j < CMAP_SIZE; j++) { + dmap[j].index = cp.palette[(j * 256) / CMAP_SIZE].index / 256.0; + for (k = 0; k < 4; k++) + dmap[j].color[k] = (cp.palette[(j * 256) / CMAP_SIZE].color[k] * WHITE_LEVEL) * color_scalar; + } + + /* compute camera */ + if (1) { + double t0, t1, shift=0.0, corner0, corner1; + double scale; + + if (cp.sample_density <= 0.0) { + fprintf(stderr, + "sample density (quality) must be greater than zero," + " not %g.\n", cp.sample_density); + return(1); + } + + scale = pow(2.0, cp.zoom); + sample_density = cp.sample_density * scale * scale; + + ppux = cp.pixels_per_unit * scale; + ppuy = field ? (ppux / 2.0) : ppux; + ppux /= spec->pixel_aspect_ratio; + switch (field) { + case flam3_field_both: shift = 0.0; break; + case flam3_field_even: shift = -0.5; break; + case flam3_field_odd: shift = 0.5; break; + } + shift = shift / ppux; + t0 = (double) gutter_width / (oversample * ppux); + t1 = (double) gutter_width / (oversample * ppuy); + corner0 = cp.center[0] - image_width / ppux / 2.0; + corner1 = cp.center[1] - image_height / ppuy / 2.0; + fic.bounds[0] = corner0 - t0; + fic.bounds[1] = corner1 - t1 + shift; + fic.bounds[2] = corner0 + image_width / ppux + t0; + fic.bounds[3] = corner1 + image_height / ppuy + t1 + shift; + fic.size[0] = 1.0 / (fic.bounds[2] - fic.bounds[0]); + fic.size[1] = 1.0 / (fic.bounds[3] - fic.bounds[1]); + fic.rot[0][0] = cos(cp.rotate * 2 * M_PI / 360.0); + fic.rot[0][1] = -sin(cp.rotate * 2 * M_PI / 360.0); + fic.rot[1][0] = -fic.rot[0][1]; + fic.rot[1][1] = fic.rot[0][0]; + fic.ws0 = fic.width * fic.size[0]; + fic.wb0s0 = fic.ws0 * fic.bounds[0]; + fic.hs1 = fic.height * fic.size[1]; + fic.hb1s1 = fic.hs1 * fic.bounds[1]; + + } + + /* number of samples is based only on the output image size */ + nsamples = sample_density * image_width * image_height; + + /* how many of these samples are rendered in this loop? */ + batch_size = nsamples / (nbatches * ntemporal_samples); + + stats->num_iters += batch_size; + + /* Fill in the iter constants */ + fic.xform_distrib = xform_distrib; + fic.spec = spec; + fic.batch_size = batch_size / (double)spec->nthreads; + fic.temporal_sample_num = temporal_sample_num; + fic.ntemporal_samples = ntemporal_samples; + fic.batch_num = batch_num; + fic.nbatches = nbatches; + + fic.dmap = (flam3_palette_entry *)dmap; + fic.color_scalar = color_scalar; + fic.buckets = (void *)buckets; + + /* Need a timer per job */ + fic.progress_timer = &progress_timer; + fic.progress_timer_history = &(progress_timer_history[0]); + fic.progress_history = &(progress_history[0]); + fic.progress_history_mark = &progress_history_mark; + + /* Initialize the thread helper structures */ + for (thi = 0; thi < spec->nthreads; thi++) { + + int rk; + /* Create a new isaac state for this thread */ + for (rk = 0; rk < RANDSIZ; rk++) + fth[thi].rc.randrsl[rk] = irand(&spec->rc); + + irandinit(&(fth[thi].rc),1); + + if (0==thi) { + + fth[thi].first_thread=1; + if (0==batch_num && 0==temporal_sample_num) + fth[thi].timer_initialize = 1; + else + fth[thi].timer_initialize = 0; + + } else { + fth[thi].first_thread=0; + fth[thi].timer_initialize = 0; + } + + fth[thi].iter_storage = &(points[thi*(spec->sub_batch_size)*4]); + fth[thi].fic = &fic; + flam3_copy(&(fth[thi].cp),&cp); + + } + +#ifdef HAVE_LIBPTHREAD + /* Let's make some threads */ + myThreads = (pthread_t *)malloc(spec->nthreads * sizeof(pthread_t)); + + #if defined(USE_LOCKS) + pthread_mutex_init(&fic.bucket_mutex, NULL); + #endif + + pthread_attr_init(&pt_attr); + pthread_attr_setdetachstate(&pt_attr,PTHREAD_CREATE_JOINABLE); + + for (thi=0; thi <spec->nthreads; thi ++) + pthread_create(&myThreads[thi], &pt_attr, (void *)iter_thread, (void *)(&(fth[thi]))); + + pthread_attr_destroy(&pt_attr); + + /* Wait for them to return */ + for (thi=0; thi < spec->nthreads; thi++) + pthread_join(myThreads[thi], (void **)&thread_status); + + #if defined(USE_LOCKS) + pthread_mutex_destroy(&fic.bucket_mutex); + #endif + + free(myThreads); +#else + for (thi=0; thi < spec->nthreads; thi++) + iter_thread( (void *)(&(fth[thi])) ); +#endif + + /* Free the xform_distrib array */ + free(xform_distrib); + + if (fic.aborted) { + if (verbose) fprintf(stderr, "\naborted!\n"); + goto done; + } + + vibrancy += cp.vibrancy; + gamma += cp.gamma; + background[0] += cp.background[0]; + background[1] += cp.background[1]; + background[2] += cp.background[2]; + vib_gam_n++; + + } + + k1 =(cp.contrast * cp.brightness * + PREFILTER_WHITE * 268.0 * batch_filter[batch_num]) / 256; + area = image_width * image_height / (ppux * ppuy); + k2 = (oversample * oversample * nbatches) / + (cp.contrast * area * WHITE_LEVEL * sample_density * sumfilt); +#if 0 + printf("iw=%d,ih=%d,ppux=%f,ppuy=%f\n",image_width,image_height,ppux,ppuy); + printf("contrast=%f, brightness=%f, PREFILTER=%d, temporal_filter=%f\n", + cp.contrast, cp.brightness, PREFILTER_WHITE, temporal_filter[batch_num]); + printf("oversample=%d, nbatches=%d, area = %f, WHITE_LEVEL=%d, sample_density=%f\n", + oversample, nbatches, area, WHITE_LEVEL, sample_density); + printf("k1=%f,k2=%15.12f\n",k1,k2); +#endif + + if (de.max_filter_index == 0) { + + for (j = 0; j < fic.height; j++) { + for (i = 0; i < fic.width; i++) { + + abucket *a = accumulate + i + j * fic.width; + bucket *b = buckets + i + j * fic.width; + double c[4], ls; + + c[0] = (double) b[0][0]; + c[1] = (double) b[0][1]; + c[2] = (double) b[0][2]; + c[3] = (double) b[0][3]; + if (0.0 == c[3]) + continue; + + ls = (k1 * log(1.0 + c[3] * k2))/c[3]; + c[0] *= ls; + c[1] *= ls; + c[2] *= ls; + c[3] *= ls; + + abump_no_overflow(a[0][0], c[0]); + abump_no_overflow(a[0][1], c[1]); + abump_no_overflow(a[0][2], c[2]); + abump_no_overflow(a[0][3], c[3]); + } + } + } else { + + de_thread_helper *deth; + int de_aborted=0; + int myspan = (fic.height-2*(oversample-1)+1); + int swath = myspan/(spec->nthreads); + + /* Create the de helper structures */ + deth = (de_thread_helper *)calloc(spec->nthreads,sizeof(de_thread_helper)); + + for (thi=0;thi<(spec->nthreads);thi++) { + + /* Set up the contents of the helper structure */ + deth[thi].b = buckets; + deth[thi].accumulate = accumulate; + deth[thi].width = fic.width; + deth[thi].height = fic.height; + deth[thi].oversample = oversample; + deth[thi].progress_size = spec->sub_batch_size/10; + deth[thi].de = &de; + deth[thi].k1 = k1; + deth[thi].k2 = k2; + deth[thi].curve = cp.estimator_curve; + deth[thi].spec = spec; + deth[thi].aborted = &de_aborted; + if ( (spec->nthreads)>myspan) { /* More threads than rows */ + deth[thi].start_row=0; + if (thi==spec->nthreads-1) { + deth[thi].end_row=myspan; + deth[thi].last_thread=1; + } else { + deth[thi].end_row=-1; + deth[thi].last_thread=0; + } + } else { /* Normal case */ + deth[thi].start_row=thi*swath; + deth[thi].end_row=(thi+1)*swath; + if (thi==spec->nthreads-1) { + deth[thi].end_row=myspan; + deth[thi].last_thread=1; + } else { + deth[thi].last_thread=0; + } + } + } + +#ifdef HAVE_LIBPTHREAD + /* Let's make some threads */ + myThreads = (pthread_t *)malloc(spec->nthreads * sizeof(pthread_t)); + + pthread_attr_init(&pt_attr); + pthread_attr_setdetachstate(&pt_attr,PTHREAD_CREATE_JOINABLE); + + for (thi=0; thi <spec->nthreads; thi ++) + pthread_create(&myThreads[thi], &pt_attr, (void *)de_thread, (void *)(&(deth[thi]))); + + pthread_attr_destroy(&pt_attr); + + /* Wait for them to return */ + for (thi=0; thi < spec->nthreads; thi++) + pthread_join(myThreads[thi], (void **)&thread_status); + + free(myThreads); +#else + for (thi=0; thi <spec->nthreads; thi ++) + de_thread((void *)(&(deth[thi]))); +#endif + + free(deth); + + if (de_aborted) { + if (verbose) fprintf(stderr, "\naborted!\n"); + goto done; + } + + } /* End density estimation loop */ + + + /* If allocated, free the de filter memory for the next batch */ + if (de.max_filter_index > 0) { + free(de.filter_coefs); + free(de.filter_widths); + } + + } + + if (verbose) { + fprintf(stderr, "\rchaos: 100.0%% took: %ld seconds \n", time(NULL) - progress_began); + fprintf(stderr, "filtering..."); + } + + + /* filter the accumulation buffer down into the image */ + if (1) { + int x, y; + double t[4],newrgb[3]; + double g = 1.0 / (gamma / vib_gam_n); + double tmp,a; + double alpha,ls; + int rgbi; + + double linrange = cp.gam_lin_thresh; + + vibrancy /= vib_gam_n; + background[0] /= vib_gam_n/256.0; + background[1] /= vib_gam_n/256.0; + background[2] /= vib_gam_n/256.0; + + /* If we're in the early clip mode, perform this first step to */ + /* apply the gamma correction and clipping before the spat filt */ + + if (spec->earlyclip) { + + for (j = 0; j < fic.height; j++) { + for (i = 0; i < fic.width; i++) { + + abucket *ac = accumulate + i + j*fic.width; + + if (ac[0][3]<=0) { + alpha = 0.0; + ls = 0.0; + } else { + tmp=ac[0][3]/PREFILTER_WHITE; + alpha = flam3_calc_alpha(tmp,g,linrange); + ls = vibrancy * 256.0 * alpha / tmp; + if (alpha<0.0) alpha = 0.0; + if (alpha>1.0) alpha = 1.0; + } + + t[0] = (double)ac[0][0]; + t[1] = (double)ac[0][1]; + t[2] = (double)ac[0][2]; + t[3] = (double)ac[0][3]; + + flam3_calc_newrgb(t, ls, highpow, newrgb); + + for (rgbi=0;rgbi<3;rgbi++) { + a = newrgb[rgbi]; + a += (1.0-vibrancy) * 256.0 * pow( t[rgbi] / PREFILTER_WHITE, g); + if (nchan<=3 || transp==0) + a += ((1.0 - alpha) * background[rgbi]); + else { + if (alpha>0) + a /= alpha; + else + a = 0; + } + + /* Clamp here to ensure proper filter functionality */ + if (a>255) a = 255; + if (a<0) a = 0; + + /* Replace values in accumulation buffer with these new ones */ + ac[0][rgbi] = a; + } + + ac[0][3] = alpha; + + } + } + } + + /* Apply the spatial filter */ + y = de_offset; + for (j = 0; j < image_height; j++) { + x = de_offset; + for (i = 0; i < image_width; i++) { + int ii, jj,rgbi; + void *p; + unsigned short *p16; + unsigned char *p8; + t[0] = t[1] = t[2] = t[3] = 0.0; + for (ii = 0; ii < filter_width; ii++) { + for (jj = 0; jj < filter_width; jj++) { + double k = filter[ii + jj * filter_width]; + abucket *ac = accumulate + x+ii + (y+jj)*fic.width; + + + t[0] += k * ac[0][0]; + t[1] += k * ac[0][1]; + t[2] += k * ac[0][2]; + t[3] += k * ac[0][3]; + + + } + } + + p = (unsigned char *)out + nchan * bytes_per_channel * (i + j * out_width); + p8 = (unsigned char *)p; + p16 = (unsigned short *)p; + + /* The old way, spatial filter first and then clip after gamma */ + if (!spec->earlyclip) { + + tmp=t[3]/PREFILTER_WHITE; + + if (t[3]<=0) { + alpha = 0.0; + ls = 0.0; + } else { + alpha = flam3_calc_alpha(tmp,g,linrange); + ls = vibrancy * 256.0 * alpha / tmp; + if (alpha<0.0) alpha = 0.0; + if (alpha>1.0) alpha = 1.0; + } + + flam3_calc_newrgb(t, ls, highpow, newrgb); + + for (rgbi=0;rgbi<3;rgbi++) { + a = newrgb[rgbi]; + a += (1.0-vibrancy) * 256.0 * pow( t[rgbi] / PREFILTER_WHITE, g); + if (nchan<=3 || transp==0) + a += ((1.0 - alpha) * background[rgbi]); + else { + if (alpha>0) + a /= alpha; + else + a = 0; + } + + /* Clamp here to ensure proper filter functionality */ + if (a>255) a = 255; + if (a<0) a = 0; + + /* Replace values in accumulation buffer with these new ones */ + t[rgbi] = a; + } + t[3] = alpha; + } + + for (rgbi=0;rgbi<3;rgbi++) { + + a = t[rgbi]; + + if (a > 255) + a = 255; + if (a < 0) + a = 0; + + if (2==bytes_per_channel) { + a *= 256.0; /* Scales to [0-65280] */ + p16[rgbi] = (unsigned short) a; + } else { + p8[rgbi] = (unsigned char) a; + } + } + + + if (t[3]>1) + t[3]=1; + if (t[3]<0) + t[3]=0; + + /* alpha */ + if (nchan>3) { + if (transp==1) { + if (2==bytes_per_channel) + p16[3] = (unsigned short) (t[3] * 65535); + else + p8[3] = (unsigned char) (t[3] * 255); + } else { + if (2==bytes_per_channel) + p16[3] = 65535; + else + p8[3] = 255; + } + } + + x += oversample; + } + y += oversample; + } + } + + done: + + stats->badvals = fic.badvals; + + free(temporal_filter); + free(temporal_deltas); + free(batch_filter); + free(filter); + free(buckets); +// free(accumulate); +// free(points); + /* We have to clear the cps in fth first */ + for (thi = 0; thi < spec->nthreads; thi++) { + clear_cp(&(fth[thi].cp),0); + } + free(fth); + clear_cp(&cp,0); + + if (getenv("insert_palette")) { + int ph = 100; + if (ph >= image_height) ph = image_height; + /* insert the palette into the image */ + for (j = 0; j < ph; j++) { + for (i = 0; i < image_width; i++) { + unsigned char *p = (unsigned char *)out + nchan * (i + j * out_width); + p[0] = (unsigned char)dmap[i * 256 / image_width].color[0]; + p[1] = (unsigned char)dmap[i * 256 / image_width].color[1]; + p[2] = (unsigned char)dmap[i * 256 / image_width].color[2]; + } + } + } + + tend = time(NULL); + stats->render_seconds = (int)(tend-tstart); + + return(0); + +} diff --git a/src/render.dsp b/src/render.dsp new file mode 100644 index 0000000..bf99407 --- /dev/null +++ b/src/render.dsp @@ -0,0 +1,143 @@ +# Microsoft Developer Studio Project File - Name="hqi" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=hqi - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "render.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "render.mak" CFG="hqi - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "hqi - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "hqi - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "hqi - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "c:\src\libpng" /I "c:\src\zlib" /I "c:\src\libxml2\include" /I "c:\src\jpeg" /I "c:\src\iconv\include" /I "c:\src\pthreads" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /Zm1000 /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib c:\src\jpeg\libjpeg.lib c:\src\libpng\libpng.lib c:\src\libxml2\lib\libxml2.lib c:\src\zlib\zlib.lib c:\src\pthreads\pthreadVC2.lib /nologo /subsystem:console /machine:I386 /out:"Release/flam3-render.exe" + +!ELSEIF "$(CFG)" == "hqi - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "c:\src\jpeg" /I "c:\src\libpng" /I "c:\src\zlib" /I "c:\src\libxml2\include" /I "c:\src\iconv\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /Zm1000 /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib c:\src\jpeg\libjpeg.lib c:\src\libpng\libpng.lib c:\src\libxml2\lib\libxml2.lib c:\src\zlib\zlib.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# SUBTRACT LINK32 /pdb:none + +!ENDIF + +# Begin Target + +# Name "hqi - Win32 Release" +# Name "hqi - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\docstring.c +# End Source File +# Begin Source File + +SOURCE=".\flam3-palettes.c" +# End Source File +# Begin Source File + +SOURCE=".\flam3-render.c" +# End Source File +# Begin Source File + +SOURCE=.\flam3.c +# End Source File +# Begin Source File + +SOURCE=.\isaac.c +# End Source File +# Begin Source File + +SOURCE=.\jpeg.c +# End Source File +# Begin Source File + +SOURCE=.\png.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=cmap.h +# End Source File +# Begin Source File + +SOURCE=.\jpeg.h +# End Source File +# Begin Source File + +SOURCE=libifs.h +# End Source File +# Begin Source File + +SOURCE=rect.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/src/test.flam3 b/src/test.flam3 new file mode 100644 index 0000000..62dcc79 --- /dev/null +++ b/src/test.flam3 @@ -0,0 +1,14 @@ +<test> +<flame time="0" palette="15" size="640 480" center="0 0" scale="240" zoom="0" oversample="1" filter="1" quality="10" background="0 0 0" brightness="4" gamma="4" vibrancy="1" hue="0.22851"> + <xform weight="0.25" color="1" spherical="1" coefs="-0.681206 -0.0779465 0.20769 0.755065 -0.0416126 -0.262334"/> + <xform weight="0.25" color="0.66" spherical="1" coefs="0.953766 0.48396 0.43268 -0.0542476 0.642503 -0.995898"/> + <xform weight="0.25" color="0.33" spherical="1" coefs="0.840613 -0.816191 0.318971 -0.430402 0.905589 0.909402"/> + <xform weight="0.25" color="0" spherical="1" coefs="0.960492 -0.466555 0.215383 -0.727377 -0.126074 0.253509"/> +</flame> +<flame time="100" palette="29" size="640 480" center="0 0" scale="240" zoom="0" oversample="1" filter="1" quality="10" background="0 0 0" brightness="4" gamma="4" vibrancy="1" hue="0.147038"> + <xform weight="0.25" color="1" spherical="1" coefs="-0.357523 0.774667 0.397446 0.674359 -0.730708 0.812876"/> + <xform weight="0.25" color="0.66" spherical="1" coefs="-0.69942 0.141688 -0.743472 0.475451 -0.336206 0.0958816"/> + <xform weight="0.25" color="0.33" spherical="1" coefs="0.0738451 -0.349212 -0.635205 0.262572 -0.398985 -0.736904"/> + <xform weight="0.25" color="0" spherical="1" coefs="0.992697 0.433488 -0.427202 -0.339112 -0.507145 0.120765"/> +</flame> +</test> diff --git a/src/variations.c b/src/variations.c new file mode 100644 index 0000000..c070b0d --- /dev/null +++ b/src/variations.c @@ -0,0 +1,2521 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + +#include "variations.h" +#include "interpolation.h" + +#define badvalue(x) (((x)!=(x))||((x)>1e10)||((x)<-1e10)) + +/* Wrap the sincos function for Macs */ +#if defined(__APPLE__) || defined(_MSC_VER) +#define sincos(x,s,c) *(s)=sin(x); *(c)=cos(x); +#else +extern void sincos(double x, double *s, double *c); +#endif + +#ifdef _MSC_VER +#define trunc (int) +#endif + +char *flam3_variation_names[1+flam3_nvariations] = { + "linear", + "sinusoidal", + "spherical", + "swirl", + "horseshoe", + "polar", + "handkerchief", + "heart", + "disc", + "spiral", + "hyperbolic", + "diamond", + "ex", + "julia", + "bent", + "waves", + "fisheye", + "popcorn", + "exponential", + "power", + "cosine", + "rings", + "fan", + "blob", + "pdj", + "fan2", + "rings2", + "eyefish", + "bubble", + "cylinder", + "perspective", + "noise", + "julian", + "juliascope", + "blur", + "gaussian_blur", + "radial_blur", + "pie", + "ngon", + "curl", + "rectangles", + "arch", + "tangent", + "square", + "rays", + "blade", + "secant2", + "twintrian", + "cross", + "disc2", + "super_shape", + "flower", + "conic", + "parabola", + "bent2", + "bipolar", + "boarders", + "butterfly", + "cell", + "cpow", + "curve", + "edisc", + "elliptic", + "escher", + "foci", + "lazysusan", + "loonie", + "pre_blur", + "modulus", + "oscilloscope", + "polar2", + "popcorn2", + "scry", + "separation", + "split", + "splits", + "stripes", + "wedge", + "wedge_julia", + "wedge_sph", + "whorl", + "waves2", + "exp", + "log", + "sin", + "cos", + "tan", + "sec", + "csc", + "cot", + "sinh", + "cosh", + "tanh", + "sech", + "csch", + "coth", + "auger", + 0 +}; + +/* + * VARIATION FUNCTIONS + * must be of the form void (void *, double) + */ +void var0_linear (flam3_iter_helper *f, double weight) { + /* linear */ + /* nx = tx; + ny = ty; + p[0] += v * nx; + p[1] += v * ny; */ + + f->p0 += weight * f->tx; + f->p1 += weight * f->ty; +} + +void var1_sinusoidal (flam3_iter_helper *f, double weight) { + /* sinusoidal */ + /* nx = sin(tx); + ny = sin(ty); + p[0] += v * nx; + p[1] += v * ny; */ + + f->p0 += weight * sin(f->tx); + f->p1 += weight * sin(f->ty); +} + +void var2_spherical (flam3_iter_helper *f, double weight) { + /* spherical */ + /* double r2 = tx * tx + ty * ty + 1e-6; + nx = tx / r2; + ny = ty / r2; + p[0] += v * nx; + p[1] += v * ny; */ + + double r2 = weight / ( f->precalc_sumsq + EPS); + + f->p0 += r2 * f->tx; + f->p1 += r2 * f->ty; +} + +void var3_swirl (flam3_iter_helper *f, double weight) { + /* swirl */ + /* double r2 = tx * tx + ty * ty; /k here is fun + double c1 = sin(r2); + double c2 = cos(r2); + nx = c1 * tx - c2 * ty; + ny = c2 * tx + c1 * ty; + p[0] += v * nx; + p[1] += v * ny; */ + + double r2 = f->precalc_sumsq; + double c1,c2; + double nx,ny; + + sincos(r2,&c1,&c2); +// double c1 = sin(r2); +// double c2 = cos(r2); + nx = c1 * f->tx - c2 * f->ty; + ny = c2 * f->tx + c1 * f->ty; + + f->p0 += weight * nx; + f->p1 += weight * ny; +} + +void var4_horseshoe (flam3_iter_helper *f, double weight) { + /* horseshoe */ + /* a = atan2(tx, ty); + c1 = sin(a); + c2 = cos(a); + nx = c1 * tx - c2 * ty; + ny = c2 * tx + c1 * ty; + p[0] += v * nx; + p[1] += v * ny; */ + + double r = weight / (f->precalc_sqrt + EPS); + + f->p0 += (f->tx - f->ty) * (f->tx + f->ty) * r; + f->p1 += 2.0 * f->tx * f->ty * r; +} + +void var5_polar (flam3_iter_helper *f, double weight) { + /* polar */ + /* nx = atan2(tx, ty) / M_PI; + ny = sqrt(tx * tx + ty * ty) - 1.0; + p[0] += v * nx; + p[1] += v * ny; */ + + double nx = f->precalc_atan * M_1_PI; + double ny = f->precalc_sqrt - 1.0; + + f->p0 += weight * nx; + f->p1 += weight * ny; +} + +void var6_handkerchief (flam3_iter_helper *f, double weight) { + /* folded handkerchief */ + /* a = atan2(tx, ty); + r = sqrt(tx*tx + ty*ty); + p[0] += v * sin(a+r) * r; + p[1] += v * cos(a-r) * r; */ + + double a = f->precalc_atan; + double r = f->precalc_sqrt; + + f->p0 += weight * r * sin(a+r); + f->p1 += weight * r * cos(a-r); +} + +void var7_heart (flam3_iter_helper *f, double weight) { + /* heart */ + /* a = atan2(tx, ty); + r = sqrt(tx*tx + ty*ty); + a *= r; + p[0] += v * sin(a) * r; + p[1] += v * cos(a) * -r; */ + + double a = f->precalc_sqrt * f->precalc_atan; + double ca,sa; + double r = weight * f->precalc_sqrt; + + sincos(a,&sa,&ca); + + f->p0 += r * sa; + f->p1 += (-r) * ca; +} + +void var8_disc (flam3_iter_helper *f, double weight) { + /* disc */ + /* nx = tx * M_PI; + ny = ty * M_PI; + a = atan2(nx, ny); + r = sqrt(nx*nx + ny*ny); + p[0] += v * sin(r) * a / M_PI; + p[1] += v * cos(r) * a / M_PI; */ + + double a = f->precalc_atan * M_1_PI; + double r = M_PI * f->precalc_sqrt; + double sr,cr; + sincos(r,&sr,&cr); + + f->p0 += weight * sr * a; + f->p1 += weight * cr * a; +} + +void var9_spiral (flam3_iter_helper *f, double weight) { + /* spiral */ + /* a = atan2(tx, ty); + r = sqrt(tx*tx + ty*ty) + 1e-6; + p[0] += v * (cos(a) + sin(r)) / r; + p[1] += v * (sin(a) - cos(r)) / r; */ + + double r = f->precalc_sqrt + EPS; + double r1 = weight/r; + double sr,cr; + sincos(r,&sr,&cr); + + f->p0 += r1 * (f->precalc_cosa + sr); + f->p1 += r1 * (f->precalc_sina - cr); +} + +void var10_hyperbolic (flam3_iter_helper *f, double weight) { + /* hyperbolic */ + /* a = atan2(tx, ty); + r = sqrt(tx*tx + ty*ty) + 1e-6; + p[0] += v * sin(a) / r; + p[1] += v * cos(a) * r; */ + + double r = f->precalc_sqrt + EPS; + + f->p0 += weight * f->precalc_sina / r; + f->p1 += weight * f->precalc_cosa * r; +} + +void var11_diamond (flam3_iter_helper *f, double weight) { + /* diamond */ + /* a = atan2(tx, ty); + r = sqrt(tx*tx + ty*ty); + p[0] += v * sin(a) * cos(r); + p[1] += v * cos(a) * sin(r); */ + + double r = f->precalc_sqrt; + double sr,cr; + sincos(r,&sr,&cr); + + f->p0 += weight * f->precalc_sina * cr; + f->p1 += weight * f->precalc_cosa * sr; +} + +void var12_ex (flam3_iter_helper *f, double weight) { + /* ex */ + /* a = atan2(tx, ty); + r = sqrt(tx*tx + ty*ty); + n0 = sin(a+r); + n1 = cos(a-r); + m0 = n0 * n0 * n0 * r; + m1 = n1 * n1 * n1 * r; + p[0] += v * (m0 + m1); + p[1] += v * (m0 - m1); */ + + double a = f->precalc_atan; + double r = f->precalc_sqrt; + + double n0 = sin(a+r); + double n1 = cos(a-r); + + double m0 = n0 * n0 * n0 * r; + double m1 = n1 * n1 * n1 * r; + + f->p0 += weight * (m0 + m1); + f->p1 += weight * (m0 - m1); +} + +void var13_julia (flam3_iter_helper *f, double weight) { + /* julia */ + /* a = atan2(tx, ty)/2.0; + if (flam3_random_bit()) a += M_PI; + r = pow(tx*tx + ty*ty, 0.25); + nx = r * cos(a); + ny = r * sin(a); + p[0] += v * nx; + p[1] += v * ny; */ + + double r; + double a = 0.5 * f->precalc_atan; + double sa,ca; + + if (flam3_random_isaac_bit(f->rc)) //(flam3_random_bit()) + a += M_PI; + + r = weight * sqrt(f->precalc_sqrt); + + sincos(a,&sa,&ca); + + f->p0 += r * ca; + f->p1 += r * sa; +} + +void var14_bent (flam3_iter_helper *f, double weight) { + /* bent */ + /* nx = tx; + ny = ty; + if (nx < 0.0) nx = nx * 2.0; + if (ny < 0.0) ny = ny / 2.0; + p[0] += v * nx; + p[1] += v * ny; */ + + double nx = f->tx; + double ny = f->ty; + + if (nx < 0.0) + nx = nx * 2.0; + if (ny < 0.0) + ny = ny / 2.0; + + f->p0 += weight * nx; + f->p1 += weight * ny; +} + +void var15_waves (flam3_iter_helper *f, double weight) { + /* waves */ + /* dx = coef[2][0]; + dy = coef[2][1]; + nx = tx + coef[1][0]*sin(ty/((dx*dx)+EPS)); + ny = ty + coef[1][1]*sin(tx/((dy*dy)+EPS)); + p[0] += v * nx; + p[1] += v * ny; */ + + double c10 = f->xform->c[1][0]; + double c11 = f->xform->c[1][1]; + + double nx = f->tx + c10 * sin( f->ty * f->xform->waves_dx2 ); + double ny = f->ty + c11 * sin( f->tx * f->xform->waves_dy2 ); + + f->p0 += weight * nx; + f->p1 += weight * ny; +} + +void var16_fisheye (flam3_iter_helper *f, double weight) { + /* fisheye */ + /* a = atan2(tx, ty); + r = sqrt(tx*tx + ty*ty); + r = 2 * r / (r + 1); + nx = r * cos(a); + ny = r * sin(a); + p[0] += v * nx; + p[1] += v * ny; */ + + double r = f->precalc_sqrt; + + r = 2 * weight / (r+1); + + f->p0 += r * f->ty; + f->p1 += r * f->tx; +} + +void var17_popcorn (flam3_iter_helper *f, double weight) { + /* popcorn */ + /* dx = tan(3*ty); + dy = tan(3*tx); + nx = tx + coef[2][0] * sin(dx); + ny = ty + coef[2][1] * sin(dy); + p[0] += v * nx; + p[1] += v * ny; */ + + double dx = tan(3*f->ty); + double dy = tan(3*f->tx); + + double nx = f->tx + f->xform->c[2][0] * sin(dx); + double ny = f->ty + f->xform->c[2][1] * sin(dy); + + f->p0 += weight * nx; + f->p1 += weight * ny; +} + +void var18_exponential (flam3_iter_helper *f, double weight) { + /* exponential */ + /* dx = exp(tx-1.0); + dy = M_PI * ty; + nx = cos(dy) * dx; + ny = sin(dy) * dx; + p[0] += v * nx; + p[1] += v * ny; */ + + double dx = weight * exp(f->tx - 1.0); + double dy = M_PI * f->ty; + double sdy,cdy; + + sincos(dy,&sdy,&cdy); + + + f->p0 += dx * cdy; + f->p1 += dx * sdy; +} + +void var19_power (flam3_iter_helper *f, double weight) { + /* power */ + /* a = atan2(tx, ty); + sa = sin(a); + r = sqrt(tx*tx + ty*ty); + r = pow(r, sa); + nx = r * precalc_cosa; + ny = r * sa; + p[0] += v * nx; + p[1] += v * ny; */ + + double r = weight * pow(f->precalc_sqrt, f->precalc_sina); + + f->p0 += r * f->precalc_cosa; + f->p1 += r * f->precalc_sina; +} + +void var20_cosine (flam3_iter_helper *f, double weight) { + /* cosine */ + /* nx = cos(tx * M_PI) * cosh(ty); + ny = -sin(tx * M_PI) * sinh(ty); + p[0] += v * nx; + p[1] += v * ny; */ + + double a = f->tx * M_PI; + double sa,ca; + double nx,ny; + + sincos(a,&sa,&ca); + nx = ca * cosh(f->ty); + ny = -sa * sinh(f->ty); + + f->p0 += weight * nx; + f->p1 += weight * ny; +} + +void var21_rings (flam3_iter_helper *f, double weight) { + /* rings */ + /* dx = coef[2][0]; + dx = dx * dx + EPS; + r = sqrt(tx*tx + ty*ty); + r = fmod(r + dx, 2*dx) - dx + r*(1-dx); + a = atan2(tx, ty); + nx = cos(a) * r; + ny = sin(a) * r; + p[0] += v * nx; + p[1] += v * ny; */ + + double dx = f->xform->c[2][0] * f->xform->c[2][0] + EPS; + double r = f->precalc_sqrt; + r = weight * (fmod(r+dx, 2*dx) - dx + r * (1 - dx)); + + f->p0 += r * f->precalc_cosa; + f->p1 += r * f->precalc_sina; +} + +void var22_fan (flam3_iter_helper *f, double weight) { + /* fan */ + /* dx = coef[2][0]; + dy = coef[2][1]; + dx = M_PI * (dx * dx + EPS); + dx2 = dx/2; + a = atan(tx,ty); + r = sqrt(tx*tx + ty*ty); + a += (fmod(a+dy, dx) > dx2) ? -dx2 : dx2; + nx = cos(a) * r; + ny = sin(a) * r; + p[0] += v * nx; + p[1] += v * ny; */ + + double dx = M_PI * (f->xform->c[2][0] * f->xform->c[2][0] + EPS); + double dy = f->xform->c[2][1]; + double dx2 = 0.5 * dx; + + double a = f->precalc_atan; + double r = weight * f->precalc_sqrt; + double sa,ca; + + a += (fmod(a+dy,dx) > dx2) ? -dx2 : dx2; + sincos(a,&sa,&ca); + + f->p0 += r * ca; + f->p1 += r * sa; +} + +void var23_blob (flam3_iter_helper *f, double weight) { + /* blob */ + /* a = atan2(tx, ty); + r = sqrt(tx*tx + ty*ty); + r = r * (bloblow + (blobhigh-bloblow) * (0.5 + 0.5 * sin(blobwaves * a))); + nx = sin(a) * r; + ny = cos(a) * r; + + p[0] += v * nx; + p[1] += v * ny; */ + + double r = f->precalc_sqrt; + double a = f->precalc_atan; + double bdiff = f->xform->blob_high - f->xform->blob_low; + + r = r * (f->xform->blob_low + + bdiff * (0.5 + 0.5 * sin(f->xform->blob_waves * a))); + + f->p0 += weight * f->precalc_sina * r; + f->p1 += weight * f->precalc_cosa * r; +} + +void var24_pdj (flam3_iter_helper *f, double weight) { + /* pdj */ + /* nx1 = cos(pdjb * tx); + nx2 = sin(pdjc * tx); + ny1 = sin(pdja * ty); + ny2 = cos(pdjd * ty); + + p[0] += v * (ny1 - nx1); + p[1] += v * (nx2 - ny2); */ + + double nx1 = cos(f->xform->pdj_b * f->tx); + double nx2 = sin(f->xform->pdj_c * f->tx); + double ny1 = sin(f->xform->pdj_a * f->ty); + double ny2 = cos(f->xform->pdj_d * f->ty); + + f->p0 += weight * (ny1 - nx1); + f->p1 += weight * (nx2 - ny2); +} + +void var25_fan2 (flam3_iter_helper *f, double weight) { + /* fan2 */ + /* a = precalc_atan; + r = precalc_sqrt; + + dy = fan2y; + dx = M_PI * (fan2x * fan2x + EPS); + dx2 = dx / 2.0; + + t = a + dy - dx * (int)((a + dy)/dx); + + if (t > dx2) + a = a - dx2; + else + a = a + dx2; + + nx = sin(a) * r; + ny = cos(a) * r; + + p[0] += v * nx; + p[1] += v * ny; */ + + double dy = f->xform->fan2_y; + double dx = M_PI * (f->xform->fan2_x * f->xform->fan2_x + EPS); + double dx2 = 0.5 * dx; + double a = f->precalc_atan; + double sa,ca; + double r = weight * f->precalc_sqrt; + + double t = a + dy - dx * (int)((a + dy)/dx); + + if (t>dx2) + a = a-dx2; + else + a = a+dx2; + + sincos(a,&sa,&ca); + + f->p0 += r * sa; + f->p1 += r * ca; +} + +void var26_rings2 (flam3_iter_helper *f, double weight) { + /* rings2 */ + /* r = precalc_sqrt; + dx = rings2val * rings2val + EPS; + r += dx - 2.0*dx*(int)((r + dx)/(2.0 * dx)) - dx + r * (1.0-dx); + nx = precalc_sina * r; + ny = precalc_cosa * r; + p[0] += v * nx; + p[1] += v * ny; */ + + double r = f->precalc_sqrt; + double dx = f->xform->rings2_val * f->xform->rings2_val + EPS; + + r += -2.0*dx*(int)((r+dx)/(2.0*dx)) + r * (1.0-dx); + + f->p0 += weight * f->precalc_sina * r; + f->p1 += weight * f->precalc_cosa * r; +} + +void var27_eyefish (flam3_iter_helper *f, double weight) { + /* eyefish */ + /* r = 2.0 * v / (precalc_sqrt + 1.0); + p[0] += r*tx; + p[1] += r*ty; */ + + double r = (weight * 2.0) / (f->precalc_sqrt + 1.0); + + f->p0 += r * f->tx; + f->p1 += r * f->ty; +} + +void var28_bubble (flam3_iter_helper *f, double weight) { + /* bubble */ + + double r = weight / (0.25 * (f->precalc_sumsq) + 1); + + f->p0 += r * f->tx; + f->p1 += r * f->ty; +} + +void var29_cylinder (flam3_iter_helper *f, double weight) { + /* cylinder (01/06) */ + + f->p0 += weight * sin(f->tx); + f->p1 += weight * f->ty; +} + +void var30_perspective (flam3_iter_helper *f, double weight) { + /* perspective (01/06) */ + + double t = 1.0 / (f->xform->perspective_dist - f->ty * f->xform->persp_vsin); + + f->p0 += weight * f->xform->perspective_dist * f->tx * t; + f->p1 += weight * f->xform->persp_vfcos * f->ty * t; +} + +void var31_noise (flam3_iter_helper *f, double weight) { + /* noise (03/06) */ + + double tmpr, sinr, cosr, r; + + tmpr = flam3_random_isaac_01(f->rc) * 2 * M_PI; + sincos(tmpr,&sinr,&cosr); + + r = weight * flam3_random_isaac_01(f->rc); + + f->p0 += f->tx * r * cosr; + f->p1 += f->ty * r * sinr; +} + +void var32_juliaN_generic (flam3_iter_helper *f, double weight) { + /* juliaN (03/06) */ + + int t_rnd = trunc((f->xform->julian_rN)*flam3_random_isaac_01(f->rc)); + + double tmpr = (f->precalc_atanyx + 2 * M_PI * t_rnd) / f->xform->julian_power; + + double r = weight * pow(f->precalc_sumsq, f->xform->julian_cn); + double sina, cosa; + sincos(tmpr,&sina,&cosa); + + f->p0 += r * cosa; + f->p1 += r * sina; +} + +void var33_juliaScope_generic (flam3_iter_helper *f, double weight) { + /* juliaScope (03/06) */ + + int t_rnd = trunc((f->xform->juliascope_rN) * flam3_random_isaac_01(f->rc)); + + double tmpr, r; + double sina, cosa; + + if ((t_rnd & 1) == 0) + tmpr = (2 * M_PI * t_rnd + f->precalc_atanyx) / f->xform->juliascope_power; + else + tmpr = (2 * M_PI * t_rnd - f->precalc_atanyx) / f->xform->juliascope_power; + + sincos(tmpr,&sina,&cosa); + + r = weight * pow(f->precalc_sumsq, f->xform->juliascope_cn); + + f->p0 += r * cosa; + f->p1 += r * sina; +} + +void var34_blur (flam3_iter_helper *f, double weight) { + /* blur (03/06) */ + + double tmpr, sinr, cosr, r; + + tmpr = flam3_random_isaac_01(f->rc) * 2 * M_PI; + sincos(tmpr,&sinr,&cosr); + + r = weight * flam3_random_isaac_01(f->rc); + + f->p0 += r * cosr; + f->p1 += r * sinr; +} + +void var35_gaussian (flam3_iter_helper *f, double weight) { + /* gaussian (09/06) */ + + double ang, r, sina, cosa; + + ang = flam3_random_isaac_01(f->rc) * 2 * M_PI; + sincos(ang,&sina,&cosa); + + r = weight * ( flam3_random_isaac_01(f->rc) + flam3_random_isaac_01(f->rc) + + flam3_random_isaac_01(f->rc) + flam3_random_isaac_01(f->rc) - 2.0 ); + + f->p0 += r * cosa; + f->p1 += r * sina; +} + +void var36_radial_blur (flam3_iter_helper *f, double weight) { + /* radial blur (09/06) */ + /* removed random storage 6/07 */ + + double rndG, ra, rz, tmpa, sa, ca; + + /* Get pseudo-gaussian */ + rndG = weight * (flam3_random_isaac_01(f->rc) + flam3_random_isaac_01(f->rc) + + flam3_random_isaac_01(f->rc) + flam3_random_isaac_01(f->rc) - 2.0); + + /* Calculate angle & zoom */ + ra = f->precalc_sqrt; + tmpa = f->precalc_atanyx + f->xform->radialBlur_spinvar*rndG; + sincos(tmpa,&sa,&ca); + rz = f->xform->radialBlur_zoomvar * rndG - 1; + + f->p0 += ra * ca + rz * f->tx; + f->p1 += ra * sa + rz * f->ty; +} + +void var37_pie(flam3_iter_helper *f, double weight) { + /* pie by Joel Faber (June 2006) */ + + double a, r, sa, ca; + int sl; + + sl = (int) (flam3_random_isaac_01(f->rc) * f->xform->pie_slices + 0.5); + a = f->xform->pie_rotation + + 2.0 * M_PI * (sl + flam3_random_isaac_01(f->rc) * f->xform->pie_thickness) / f->xform->pie_slices; + r = weight * flam3_random_isaac_01(f->rc); + sincos(a,&sa,&ca); + + f->p0 += r * ca; + f->p1 += r * sa; +} + +void var38_ngon(flam3_iter_helper *f, double weight) { + /* ngon by Joel Faber (09/06) */ + + double r_factor,theta,phi,b, amp; + + r_factor = pow(f->precalc_sumsq, f->xform->ngon_power/2.0); + + theta = f->precalc_atanyx; + b = 2*M_PI/f->xform->ngon_sides; + + phi = theta - (b*floor(theta/b)); + if (phi > b/2) + phi -= b; + + amp = f->xform->ngon_corners * (1.0 / (cos(phi) + EPS) - 1.0) + f->xform->ngon_circle; + amp /= (r_factor + EPS); + + f->p0 += weight * f->tx * amp; + f->p1 += weight * f->ty * amp; +} + +void var39_curl(flam3_iter_helper *f, double weight) +{ + double re = 1.0 + f->xform->curl_c1 * f->tx + f->xform->curl_c2 * (f->tx * f->tx - f->ty * f->ty); + double im = f->xform->curl_c1 * f->ty + 2.0 * f->xform->curl_c2 * f->tx * f->ty; + + double r = weight / (re*re + im*im); + + f->p0 += (f->tx * re + f->ty * im) * r; + f->p1 += (f->ty * re - f->tx * im) * r; +} + +void var40_rectangles(flam3_iter_helper *f, double weight) +{ + if (f->xform->rectangles_x==0) + f->p0 += weight * f->tx; + else + f->p0 += weight * ((2 * floor(f->tx / f->xform->rectangles_x) + 1) * f->xform->rectangles_x - f->tx); + + if (f->xform->rectangles_y==0) + f->p1 += weight * f->ty; + else + f->p1 += weight * ((2 * floor(f->ty / f->xform->rectangles_y) + 1) * f->xform->rectangles_y - f->ty); + +} + +void var41_arch(flam3_iter_helper *f, double weight) +{ + /* Z+ variation Jan 07 + procedure TXForm.Arch; + var + sinr, cosr: double; + begin + SinCos(random * vars[29]*pi, sinr, cosr); + FPx := FPx + sinr*vars[29]; + FPy := FPy + sqr(sinr)/cosr*vars[29]; + end; + */ + + /* + * !!! Note !!! + * This code uses the variation weight in a non-standard fashion, and + * it may change or even be removed in future versions of flam3. + */ + + double ang = flam3_random_isaac_01(f->rc) * weight * M_PI; + double sinr,cosr; + sincos(ang,&sinr,&cosr); + + f->p0 += weight * sinr; + f->p1 += weight * (sinr*sinr)/cosr; + +} + +void var42_tangent(flam3_iter_helper *f, double weight) +{ + /* Z+ variation Jan 07 + procedure TXForm.Tangent; + begin + FPx := FPx + vars[30] * (sin(FTx)/cos(FTy)); + FPy := FPy + vars[30] * (sin(FTy)/cos(FTy)); + end; + */ + + f->p0 += weight * sin(f->tx)/cos(f->ty); + f->p1 += weight * tan(f->ty); + +} + +void var43_square(flam3_iter_helper *f, double weight) +{ + /* Z+ variation Jan 07 + procedure TXForm.SquareBlur; + begin + FPx := FPx + vars[31] * (random - 0.5); + FPy := FPy + vars[31] * (random - 0.5); + end; + */ + + f->p0 += weight * (flam3_random_isaac_01(f->rc) - 0.5); + f->p1 += weight * (flam3_random_isaac_01(f->rc) - 0.5); + +} + +void var44_rays(flam3_iter_helper *f, double weight) +{ + /* Z+ variation Jan 07 + procedure TXForm.Rays; + var + r, sinr, cosr, tgr: double; + begin + SinCos(random * vars[32]*pi, sinr, cosr); + r := vars[32] / (sqr(FTx) + sqr(FTy) + EPS); + tgr := sinr/cosr; + FPx := FPx + tgr * (cos(FTx)*vars[32]) * r; + FPy := FPy + tgr * (sin(FTy)*vars[32]) * r; + end; + */ + + /* + * !!! Note !!! + * This code uses the variation weight in a non-standard fashion, and + * it may change or even be removed in future versions of flam3. + */ + + double ang = weight * flam3_random_isaac_01(f->rc) * M_PI; + double r = weight / (f->precalc_sumsq + EPS); + double tanr = weight * tan(ang) * r; + + + f->p0 += tanr * cos(f->tx); + f->p1 += tanr * sin(f->ty); + +} + +void var45_blade(flam3_iter_helper *f, double weight) +{ + /* Z+ variation Jan 07 + procedure TXForm.Blade; + var + r, sinr, cosr: double; + begin + r := sqrt(sqr(FTx) + sqr(FTy))*vars[33]; + SinCos(r*random, sinr, cosr); + FPx := FPx + vars[33] * FTx * (cosr + sinr); + FPy := FPy + vars[33] * FTx * (cosr - sinr); + end; + */ + + /* + * !!! Note !!! + * This code uses the variation weight in a non-standard fashion, and + * it may change or even be removed in future versions of flam3. + */ + + double r = flam3_random_isaac_01(f->rc) * weight * f->precalc_sqrt; + double sinr,cosr; + + sincos(r,&sinr,&cosr); + + f->p0 += weight * f->tx * (cosr + sinr); + f->p1 += weight * f->tx * (cosr - sinr); + +} + +void var46_secant2(flam3_iter_helper *f, double weight) +{ + /* Intended as a 'fixed' version of secant */ + + /* + * !!! Note !!! + * This code uses the variation weight in a non-standard fashion, and + * it may change or even be removed in future versions of flam3. + */ + + double r = weight * f->precalc_sqrt; + double cr = cos(r); + double icr = 1.0/cr; + + f->p0 += weight * f->tx; + + if (cr<0) + f->p1 += weight*(icr + 1); + else + f->p1 += weight*(icr - 1); +} + +void var47_twintrian(flam3_iter_helper *f, double weight) +{ + /* Z+ variation Jan 07 + procedure TXForm.TwinTrian; + var + r, diff, sinr, cosr: double; + begin + r := sqrt(sqr(FTx) + sqr(FTy))*vars[35]; + SinCos(r*random, sinr, cosr); + diff := Math.Log10(sinr*sinr)+cosr; + FPx := FPx + vars[35] * FTx * diff; + FPy := FPy + vars[35] * FTx * (diff - (sinr*pi)); + end; + */ + + /* + * !!! Note !!! + * This code uses the variation weight in a non-standard fashion, and + * it may change or even be removed in future versions of flam3. + */ + + double r = flam3_random_isaac_01(f->rc) * weight * f->precalc_sqrt; + double sinr,cosr,diff; + + sincos(r,&sinr,&cosr); + diff = log10(sinr*sinr)+cosr; + + if (badvalue(diff)) + diff = -30.0; + + f->p0 += weight * f->tx * diff; + f->p1 += weight * f->tx * (diff - sinr*M_PI); + +} + +void var48_cross(flam3_iter_helper *f, double weight) +{ + /* Z+ variation Jan 07 + procedure TXForm.Cross; + var + r: double; + begin + r := vars[36]*sqrt(1/(sqr(sqr(FTx)-sqr(FTy))+EPS)); + FPx := FPx + FTx * r; + FPy := FPy + FTy * r; + end; + */ + + double s = f->tx*f->tx - f->ty*f->ty; + double r = weight * sqrt(1.0 / (s*s+EPS)); + + f->p0 += f->tx * r; + f->p1 += f->ty * r; + +} + +void var49_disc2(flam3_iter_helper *f, double weight) +{ + /* Z+ variation Jan 07 + c := vvar/PI; + k := rot*PI; + sinadd := Sin(add); + cosadd := Cos(add); + cosadd := cosadd - 1; + if (add > 2*PI) then begin + cosadd := cosadd * (1 + add - 2*PI); + sinadd := sinadd * (1 + add - 2*PI) + end + else if (add < -2*PI) then begin + cosadd := cosadd * (1 + add + 2*PI); + sinadd := sinadd * (1 + add + 2*PI) + end + end; + procedure TVariationDisc2.CalcFunction; + var + r, sinr, cosr: extended; + begin + SinCos(k * (FTx^+FTy^), sinr, cosr); //rot*PI + r := c * arctan2(FTx^, FTy^); //vvar/PI + FPx^ := FPx^ + (sinr + cosadd) * r; + FPy^ := FPy^ + (cosr + sinadd) * r; + */ + + double r,t,sinr, cosr; + + t = f->xform->disc2_timespi * (f->tx + f->ty); + sincos(t,&sinr,&cosr); + r = weight * f->precalc_atan / M_PI; + + f->p0 += (sinr + f->xform->disc2_cosadd) * r; + f->p1 += (cosr + f->xform->disc2_sinadd) * r; + +} + +void var50_supershape(flam3_iter_helper *f, double weight) { + + double theta; + double t1,t2,r; + double st,ct; + double myrnd; + + theta = f->xform->super_shape_pm_4 * f->precalc_atanyx + M_PI_4; + + sincos(theta,&st,&ct); + + t1 = fabs(ct); + t1 = pow(t1,f->xform->super_shape_n2); + + t2 = fabs(st); + t2 = pow(t2,f->xform->super_shape_n3); + + myrnd = f->xform->super_shape_rnd; + + r = weight * ( (myrnd*flam3_random_isaac_01(f->rc) + (1.0-myrnd)*f->precalc_sqrt) - f->xform->super_shape_holes) + * pow(t1+t2,f->xform->super_shape_pneg1_n1) / f->precalc_sqrt; + + f->p0 += r * f->tx; + f->p1 += r * f->ty; +} + +void var51_flower(flam3_iter_helper *f, double weight) { + /* cyberxaos, 4/2007 */ + /* theta := arctan2(FTy^, FTx^); + r := (random-holes)*cos(petals*theta); + FPx^ := FPx^ + vvar*r*cos(theta); + FPy^ := FPy^ + vvar*r*sin(theta);*/ + + double theta = f->precalc_atanyx; + double r = weight * (flam3_random_isaac_01(f->rc) - f->xform->flower_holes) * + cos(f->xform->flower_petals*theta) / f->precalc_sqrt; + + f->p0 += r * f->tx; + f->p1 += r * f->ty; +} + +void var52_conic(flam3_iter_helper *f, double weight) { + /* cyberxaos, 4/2007 */ + /* theta := arctan2(FTy^, FTx^); + r := (random - holes)*((eccentricity)/(1+eccentricity*cos(theta))); + FPx^ := FPx^ + vvar*r*cos(theta); + FPy^ := FPy^ + vvar*r*sin(theta); */ + + double ct = f->tx / f->precalc_sqrt; + double r = weight * (flam3_random_isaac_01(f->rc) - f->xform->conic_holes) * + f->xform->conic_eccentricity / (1 + f->xform->conic_eccentricity*ct) / f->precalc_sqrt; + + f->p0 += r * f->tx; + f->p1 += r * f->ty; +} + +void var53_parabola(flam3_iter_helper *f, double weight) { + /* cyberxaos, 4/2007 */ + /* r := sqrt(sqr(FTx^) + sqr(FTy^)); + FPx^ := FPx^ + parabola_height*vvar*sin(r)*sin(r)*random; + FPy^ := FPy^ + parabola_width*vvar*cos(r)*random; */ + + double r = f->precalc_sqrt; + double sr,cr; + + sincos(r,&sr,&cr); + + f->p0 += f->xform->parabola_height * weight * sr*sr * flam3_random_isaac_01(f->rc); + f->p1 += f->xform->parabola_width * weight * cr * flam3_random_isaac_01(f->rc); + +} + +void var54_bent2 (flam3_iter_helper *f, double weight) { + + /* Bent2 in the Apophysis Plugin Pack */ + + double nx = f->tx; + double ny = f->ty; + + if (nx < 0.0) + nx = nx * f->xform->bent2_x; + if (ny < 0.0) + ny = ny * f->xform->bent2_y; + + f->p0 += weight * nx; + f->p1 += weight * ny; +} + +void var55_bipolar (flam3_iter_helper *f, double weight) { + + /* Bipolar in the Apophysis Plugin Pack */ + + double x2y2 = f->precalc_sumsq; + double t = x2y2+1; + double x2 = 2*f->tx; + double ps = -M_PI_2 * f->xform->bipolar_shift; + double y = 0.5 * atan2(2.0 * f->ty, x2y2 - 1.0) + ps; + + if (y > M_PI_2) + y = -M_PI_2 + fmod(y + M_PI_2, M_PI); + else if (y < -M_PI_2) + y = M_PI_2 - fmod(M_PI_2 - y, M_PI); + + f->p0 += weight * 0.25 * M_2_PI * log ( (t+x2) / (t-x2) ); + f->p1 += weight * M_2_PI * y; +} + +void var56_boarders (flam3_iter_helper *f, double weight) { + + /* Boarders in the Apophysis Plugin Pack */ + + double roundX, roundY, offsetX, offsetY; + + roundX = rint(f->tx); + roundY = rint(f->ty); + offsetX = f->tx - roundX; + offsetY = f->ty - roundY; + + if (flam3_random_isaac_01(f->rc) >= 0.75) { + f->p0 += weight*(offsetX*0.5 + roundX); + f->p1 += weight*(offsetY*0.5 + roundY); + } else { + + if (fabs(offsetX) >= fabs(offsetY)) { + + if (offsetX >= 0.0) { + f->p0 += weight*(offsetX*0.5 + roundX + 0.25); + f->p1 += weight*(offsetY*0.5 + roundY + 0.25 * offsetY / offsetX); + } else { + f->p0 += weight*(offsetX*0.5 + roundX - 0.25); + f->p1 += weight*(offsetY*0.5 + roundY - 0.25 * offsetY / offsetX); + } + + } else { + + if (offsetY >= 0.0) { + f->p1 += weight*(offsetY*0.5 + roundY + 0.25); + f->p0 += weight*(offsetX*0.5 + roundX + offsetX/offsetY*0.25); + } else { + f->p1 += weight*(offsetY*0.5 + roundY - 0.25); + f->p0 += weight*(offsetX*0.5 + roundX - offsetX/offsetY*0.25); + } + } + } +} + +void var57_butterfly (flam3_iter_helper *f, double weight) { + + /* Butterfly in the Apophysis Plugin Pack */ + + /* wx is weight*4/sqrt(3*pi) */ + double wx = weight*1.3029400317411197908970256609023; + + double y2 = f->ty*2.0; + double r = wx*sqrt(fabs(f->ty * f->tx)/(EPS + f->tx*f->tx + y2*y2)); + + f->p0 += r * f->tx; + f->p1 += r * y2; + +} + +void var58_cell (flam3_iter_helper *f, double weight) { + + /* Cell in the Apophysis Plugin Pack */ + + double inv_cell_size = 1.0/f->xform->cell_size; + + /* calculate input cell */ + int x = floor(f->tx*inv_cell_size); + int y = floor(f->ty*inv_cell_size); + + /* Offset from cell origin */ + double dx = f->tx - x*f->xform->cell_size; + double dy = f->ty - y*f->xform->cell_size; + + /* interleave cells */ + if (y >= 0) { + if (x >= 0) { + y *= 2; + x *= 2; + } else { + y *= 2; + x = -(2*x+1); + } + } else { + if (x >= 0) { + y = -(2*y+1); + x *= 2; + } else { + y = -(2*y+1); + x = -(2*x+1); + } + } + + f->p0 += weight * (dx + x*f->xform->cell_size); + f->p1 -= weight * (dy + y*f->xform->cell_size); + +} + +void var59_cpow (flam3_iter_helper *f, double weight) { + + /* Cpow in the Apophysis Plugin Pack */ + + double a = f->precalc_atanyx; + double lnr = 0.5 * log(f->precalc_sumsq); + double va = 2.0 * M_PI / f->xform->cpow_power; + double vc = f->xform->cpow_r / f->xform->cpow_power; + double vd = f->xform->cpow_i / f->xform->cpow_power; + double ang = vc*a + vd*lnr + va*floor(f->xform->cpow_power*flam3_random_isaac_01(f->rc)); + double sa,ca; + + double m = weight * exp(vc * lnr - vd * a); + + sincos(ang,&sa,&ca); + + f->p0 += m * ca; + f->p1 += m * sa; + +} + +void var60_curve (flam3_iter_helper *f, double weight) { + + /* Curve in the Apophysis Plugin Pack */ + + double pc_xlen = f->xform->curve_xlength*f->xform->curve_xlength; + double pc_ylen = f->xform->curve_ylength*f->xform->curve_ylength; + + if (pc_xlen<1E-20) pc_xlen = 1E-20; + + if (pc_ylen<1E-20) pc_ylen = 1E-20; + + f->p0 += weight * (f->tx + f->xform->curve_xamp * exp(-f->ty*f->ty/pc_xlen)); + f->p1 += weight * (f->ty + f->xform->curve_yamp * exp(-f->tx*f->tx/pc_ylen)); + +} + +void var61_edisc (flam3_iter_helper *f, double weight) { + + /* Edisc in the Apophysis Plugin Pack */ + + double tmp = f->precalc_sumsq + 1.0; + double tmp2 = 2.0 * f->tx; + double r1 = sqrt(tmp+tmp2); + double r2 = sqrt(tmp-tmp2); + double xmax = (r1+r2) * 0.5; + double a1 = log(xmax + sqrt(xmax - 1.0)); + double a2 = -acos(f->tx/xmax); + double w = weight / 11.57034632; + double snv,csv,snhu,cshu; + + sincos(a1,&snv,&csv); + + snhu = sinh(a2); + cshu = cosh(a2); + + if (f->ty > 0.0) snv = -snv; + + f->p0 += w * cshu * csv; + f->p1 += w * snhu * snv; + +} + +void var62_elliptic (flam3_iter_helper *f, double weight) { + + /* Elliptic in the Apophysis Plugin Pack */ + + double tmp = f->precalc_sumsq + 1.0; + double x2 = 2.0 * f->tx; + double xmax = 0.5 * (sqrt(tmp+x2) + sqrt(tmp-x2)); + double a = f->tx / xmax; + double b = 1.0 - a*a; + double ssx = xmax - 1.0; + double w = weight / M_PI_2; + + if (b<0) + b = 0; + else + b = sqrt(b); + + if (ssx<0) + ssx = 0; + else + ssx = sqrt(ssx); + + f->p0 += w * atan2(a,b); + + if (f->ty > 0) + f->p1 += w * log(xmax + ssx); + else + f->p1 -= w * log(xmax + ssx); + +} + +void var63_escher (flam3_iter_helper *f, double weight) { + + /* Escher in the Apophysis Plugin Pack */ + + double seb,ceb; + double vc,vd; + double m,n; + double sn,cn; + + double a = f->precalc_atanyx; + double lnr = 0.5 * log(f->precalc_sumsq); + + sincos(f->xform->escher_beta,&seb,&ceb); + + vc = 0.5 * (1.0 + ceb); + vd = 0.5 * seb; + + m = weight * exp(vc*lnr - vd*a); + n = vc*a + vd*lnr; + + sincos(n,&sn,&cn); + + f->p0 += m * cn; + f->p1 += m * sn; + +} + +void var64_foci (flam3_iter_helper *f, double weight) { + + /* Foci in the Apophysis Plugin Pack */ + + double expx = exp(f->tx) * 0.5; + double expnx = 0.25 / expx; + double sn,cn,tmp; + + sincos(f->ty,&sn,&cn); + tmp = weight/(expx + expnx - cn); + + f->p0 += tmp * (expx - expnx); + f->p1 += tmp * sn; + +} + +void var65_lazysusan (flam3_iter_helper *f, double weight) { + + /* Lazysusan in the Apophysis Plugin Pack */ + + double x = f->tx - f->xform->lazysusan_x; + double y = f->ty + f->xform->lazysusan_y; + double r = sqrt(x*x + y*y); + double sina, cosa; + + if (r<weight) { + double a = atan2(y,x) + f->xform->lazysusan_spin + + f->xform->lazysusan_twist*(weight-r); + sincos(a,&sina,&cosa); + r = weight * r; + + f->p0 += r*cosa + f->xform->lazysusan_x; + f->p1 += r*sina - f->xform->lazysusan_y; + } else { + + r = weight * (1.0 + f->xform->lazysusan_space / r); + + f->p0 += r*x + f->xform->lazysusan_x; + f->p1 += r*y - f->xform->lazysusan_y; + + } + +} + +void var66_loonie (flam3_iter_helper *f, double weight) { + + /* Loonie in the Apophysis Plugin Pack */ + + /* + * !!! Note !!! + * This code uses the variation weight in a non-standard fashion, and + * it may change or even be removed in future versions of flam3. + */ + + double r2 = f->precalc_sumsq; + double w2 = weight*weight; + + if (r2 < w2) { + double r = weight * sqrt(w2/r2 - 1.0); + f->p0 += r * f->tx; + f->p1 += r * f->ty; + } else { + f->p0 += weight * f->tx; + f->p1 += weight * f->ty; + } + +} + +void var67_pre_blur (flam3_iter_helper *f, double weight) { + + /* pre-xform: PreBlur (Apo 2.08) */ + + /* Get pseudo-gaussian */ + double rndG = weight * (flam3_random_isaac_01(f->rc) + flam3_random_isaac_01(f->rc) + + flam3_random_isaac_01(f->rc) + flam3_random_isaac_01(f->rc) - 2.0); + double rndA = flam3_random_isaac_01(f->rc) * 2.0 * M_PI; + double sinA,cosA; + + sincos(rndA,&sinA,&cosA); + + /* Note: original coordinate changed */ + f->tx += rndG * cosA; + f->ty += rndG * sinA; + +} + +void var68_modulus (flam3_iter_helper *f, double weight) { + + /* Modulus in the Apophysis Plugin Pack */ + + double xr = 2*f->xform->modulus_x; + double yr = 2*f->xform->modulus_y; + + if (f->tx > f->xform->modulus_x) + f->p0 += weight * (-f->xform->modulus_x + fmod(f->tx + f->xform->modulus_x, xr)); + else if (f->tx < -f->xform->modulus_x) + f->p0 += weight * ( f->xform->modulus_x - fmod(f->xform->modulus_x - f->tx, xr)); + else + f->p0 += weight * f->tx; + + if (f->ty > f->xform->modulus_y) + f->p1 += weight * (-f->xform->modulus_y + fmod(f->ty + f->xform->modulus_y, yr)); + else if (f->ty < -f->xform->modulus_y) + f->p1 += weight * ( f->xform->modulus_y - fmod(f->xform->modulus_y - f->ty, yr)); + else + f->p1 += weight * f->ty; + +} + +void var69_oscope (flam3_iter_helper *f, double weight) { + + /* oscilloscope from the apophysis plugin pack */ + + double tpf = 2 * M_PI * f->xform->oscope_frequency; + double t; + + if (f->xform->oscope_damping == 0.0) + t = f->xform->oscope_amplitude * cos(tpf*f->tx) + f->xform->oscope_separation; + else { + t = f->xform->oscope_amplitude * exp(-fabs(f->tx)*f->xform->oscope_damping) + * cos(tpf*f->tx) + f->xform->oscope_separation; + } + + if (fabs(f->ty) <= t) { + f->p0 += weight*f->tx; + f->p1 -= weight*f->ty; + } else { + f->p0 += weight*f->tx; + f->p1 += weight*f->ty; + } +} + +void var70_polar2 (flam3_iter_helper *f, double weight) { + + /* polar2 from the apophysis plugin pack */ + + double p2v = weight / M_PI; + + f->p0 += p2v * f->precalc_atan; + f->p1 += p2v/2.0 * log(f->precalc_sumsq); +} + +void var71_popcorn2 (flam3_iter_helper *f, double weight) { + + /* popcorn2 from the apophysis plugin pack */ + + f->p0 += weight * ( f->tx + f->xform->popcorn2_x * sin(tan(f->ty*f->xform->popcorn2_c))); + f->p1 += weight * ( f->ty + f->xform->popcorn2_y * sin(tan(f->tx*f->xform->popcorn2_c))); + +} + +void var72_scry (flam3_iter_helper *f, double weight) { + + /* scry from the apophysis plugin pack */ + /* note that scry does not multiply by weight, but as the */ + /* values still approach 0 as the weight approaches 0, it */ + /* should be ok */ + + /* + * !!! Note !!! + * This code uses the variation weight in a non-standard fashion, and + * it may change or even be removed in future versions of flam3. + */ + + double t = f->precalc_sumsq; + double r = 1.0 / (f->precalc_sqrt * (t + 1.0/(weight+EPS))); + + f->p0 += f->tx * r; + f->p1 += f->ty * r; + +} + +void var73_separation (flam3_iter_helper *f, double weight) { + + /* separation from the apophysis plugin pack */ + + double sx2 = f->xform->separation_x * f->xform->separation_x; + double sy2 = f->xform->separation_y * f->xform->separation_y; + + if (f->tx > 0.0) + f->p0 += weight * (sqrt(f->tx*f->tx + sx2)- f->tx*f->xform->separation_xinside); + else + f->p0 -= weight * (sqrt(f->tx*f->tx + sx2)+ f->tx*f->xform->separation_xinside); + + if (f->ty > 0.0) + f->p1 += weight * (sqrt(f->ty*f->ty + sy2)- f->ty*f->xform->separation_yinside); + else + f->p1 -= weight * (sqrt(f->ty*f->ty + sy2)+ f->ty*f->xform->separation_yinside); + +} + +void var74_split (flam3_iter_helper *f, double weight) { + + /* Split from apo plugins pack */ + + if (cos(f->tx*f->xform->split_xsize*M_PI) >= 0) + f->p1 += weight*f->ty; + else + f->p1 -= weight*f->ty; + + if (cos(f->ty*f->xform->split_ysize*M_PI) >= 0) + f->p0 += weight * f->tx; + else + f->p0 -= weight * f->tx; + +} + +void var75_splits (flam3_iter_helper *f, double weight) { + + /* Splits from apo plugins pack */ + + if (f->tx >= 0) + f->p0 += weight*(f->tx+f->xform->splits_x); + else + f->p0 += weight*(f->tx-f->xform->splits_x); + + if (f->ty >= 0) + f->p1 += weight*(f->ty+f->xform->splits_y); + else + f->p1 += weight*(f->ty-f->xform->splits_y); + +} + +void var76_stripes (flam3_iter_helper *f, double weight) { + + /* Stripes from apo plugins pack */ + + double roundx,offsetx; + + roundx = floor(f->tx + 0.5); + offsetx = f->tx - roundx; + + f->p0 += weight * (offsetx*(1.0-f->xform->stripes_space)+roundx); + f->p1 += weight * (f->ty + offsetx*offsetx*f->xform->stripes_warp); + +} + +void var77_wedge (flam3_iter_helper *f, double weight) { + + /* Wedge from apo plugins pack */ + + double r = f->precalc_sqrt; + double a = f->precalc_atanyx + f->xform->wedge_swirl * r; + double c = floor( (f->xform->wedge_count * a + M_PI)*M_1_PI*0.5); + + double comp_fac = 1 - f->xform->wedge_angle*f->xform->wedge_count*M_1_PI*0.5; + double sa, ca; + + a = a * comp_fac + c * f->xform->wedge_angle; + + sincos(a,&sa,&ca); + + r = weight * (r + f->xform->wedge_hole); + + f->p0 += r*ca; + f->p1 += r*sa; + +} + +void var78_wedge_julia (flam3_iter_helper *f, double weight) { + + /* wedge_julia from apo plugin pack */ + + double r = weight * pow(f->precalc_sumsq, f->xform->wedgeJulia_cn); + int t_rnd = (int)((f->xform->wedgeJulia_rN)*flam3_random_isaac_01(f->rc)); + double a = (f->precalc_atanyx + 2 * M_PI * t_rnd) / f->xform->wedge_julia_power; + double c = floor( (f->xform->wedge_julia_count * a + M_PI)*M_1_PI*0.5 ); + double sa,ca; + + a = a * f->xform->wedgeJulia_cf + c * f->xform->wedge_julia_angle; + + sincos(a,&sa,&ca); + + f->p0 += r * ca; + f->p1 += r * sa; +} + +void var79_wedge_sph (flam3_iter_helper *f, double weight) { + + /* Wedge_sph from apo plugins pack */ + + double r = 1.0/(f->precalc_sqrt+EPS); + double a = f->precalc_atanyx + f->xform->wedge_sph_swirl * r; + double c = floor( (f->xform->wedge_sph_count * a + M_PI)*M_1_PI*0.5); + + double comp_fac = 1 - f->xform->wedge_sph_angle*f->xform->wedge_sph_count*M_1_PI*0.5; + double sa, ca; + + a = a * comp_fac + c * f->xform->wedge_sph_angle; + + sincos(a,&sa,&ca); + r = weight * (r + f->xform->wedge_sph_hole); + + f->p0 += r*ca; + f->p1 += r*sa; + +} + +void var80_whorl (flam3_iter_helper *f, double weight) { + + /* whorl from apo plugins pack */ + + /* + * !!! Note !!! + * This code uses the variation weight in a non-standard fashion, and + * it may change or even be removed in future versions of flam3. + */ + + double r = f->precalc_sqrt; + double a,sa,ca; + + if (r<weight) + a = f->precalc_atanyx + f->xform->whorl_inside/(weight-r); + else + a = f->precalc_atanyx + f->xform->whorl_outside/(weight-r); + + sincos(a,&sa,&ca); + + f->p0 += weight*r*ca; + f->p1 += weight*r*sa; + +} + +void var81_waves2 (flam3_iter_helper *f, double weight) { + + /* waves2 from Joel F */ + + f->p0 += weight*(f->tx + f->xform->waves2_scalex*sin(f->ty * f->xform->waves2_freqx)); + f->p1 += weight*(f->ty + f->xform->waves2_scaley*sin(f->tx * f->xform->waves2_freqy)); + +} + +/* complex vars by cothe */ +/* exp log sin cos tan sec csc cot sinh cosh tanh sech csch coth */ + +void var82_exp (flam3_iter_helper *f, double weight) { + //Exponential EXP + double expe = exp(f->tx); + double expcos,expsin; + sincos(f->ty,&expsin,&expcos); + f->p0 += weight * expe * expcos; + f->p1 += weight * expe * expsin; +} + +void var83_log (flam3_iter_helper *f, double weight) { + //Natural Logarithm LOG + // needs precalc_atanyx and precalc_sumsq + f->p0 += weight * 0.5 * log(f->precalc_sumsq); + f->p1 += weight * f->precalc_atanyx; +} + +void var84_sin (flam3_iter_helper *f, double weight) { + //Sine SIN + double sinsin,sinacos,sinsinh,sincosh; + sincos(f->tx,&sinsin,&sinacos); + sinsinh = sinh(f->ty); + sincosh = cosh(f->ty); + f->p0 += weight * sinsin * sincosh; + f->p1 += weight * sinacos * sinsinh; +} + +void var85_cos (flam3_iter_helper *f, double weight) { + //Cosine COS + double cossin,coscos,cossinh,coscosh; + sincos(f->tx,&cossin,&coscos); + cossinh = sinh(f->ty); + coscosh = cosh(f->ty); + f->p0 += weight * coscos * coscosh; + f->p1 -= weight * cossin * cossinh; +} + +void var86_tan (flam3_iter_helper *f, double weight) { + //Tangent TAN + double tansin,tancos,tansinh,tancosh; + double tanden; + sincos(2*f->tx,&tansin,&tancos); + tansinh = sinh(2.0*f->ty); + tancosh = cosh(2.0*f->ty); + tanden = 1.0/(tancos + tancosh); + f->p0 += weight * tanden * tansin; + f->p1 += weight * tanden * tansinh; +} + +void var87_sec (flam3_iter_helper *f, double weight) { + //Secant SEC + double secsin,seccos,secsinh,seccosh; + double secden; + sincos(f->tx,&secsin,&seccos); + secsinh = sinh(f->ty); + seccosh = cosh(f->ty); + secden = 2.0/(cos(2*f->tx) + cosh(2*f->ty)); + f->p0 += weight * secden * seccos * seccosh; + f->p1 += weight * secden * secsin * secsinh; +} + +void var88_csc (flam3_iter_helper *f, double weight) { + //Cosecant CSC + double cscsin,csccos,cscsinh,csccosh; + double cscden; + sincos(f->tx,&cscsin,&csccos); + cscsinh = sinh(f->ty); + csccosh = cosh(f->ty); + cscden = 2.0/(cosh(2.0*f->ty) - cos(2.0*f->tx)); + f->p0 += weight * cscden * cscsin * csccosh; + f->p1 -= weight * cscden * csccos * cscsinh; +} + +void var89_cot (flam3_iter_helper *f, double weight) { + //Cotangent COT + double cotsin,cotcos,cotsinh,cotcosh; + double cotden; + sincos(2.0*f->tx,&cotsin,&cotcos); + cotsinh = sinh(2.0*f->ty); + cotcosh = cosh(2.0*f->ty); + cotden = 1.0/(cotcosh - cotcos); + f->p0 += weight * cotden * cotsin; + f->p1 += weight * cotden * -1 * cotsinh; +} + +void var90_sinh (flam3_iter_helper *f, double weight) { + //Hyperbolic Sine SINH + double sinhsin,sinhcos,sinhsinh,sinhcosh; + sincos(f->ty,&sinhsin,&sinhcos); + sinhsinh = sinh(f->tx); + sinhcosh = cosh(f->tx); + f->p0 += weight * sinhsinh * sinhcos; + f->p1 += weight * sinhcosh * sinhsin; +} + +void var91_cosh (flam3_iter_helper *f, double weight) { + //Hyperbolic Cosine COSH + double coshsin,coshcos,coshsinh,coshcosh; + sincos(f->ty,&coshsin,&coshcos); + coshsinh = sinh(f->tx); + coshcosh = cosh(f->tx); + f->p0 += weight * coshcosh * coshcos; + f->p1 += weight * coshsinh * coshsin; +} + +void var92_tanh (flam3_iter_helper *f, double weight) { + //Hyperbolic Tangent TANH + double tanhsin,tanhcos,tanhsinh,tanhcosh; + double tanhden; + sincos(2.0*f->ty,&tanhsin,&tanhcos); + tanhsinh = sinh(2.0*f->tx); + tanhcosh = cosh(2.0*f->tx); + tanhden = 1.0/(tanhcos + tanhcosh); + f->p0 += weight * tanhden * tanhsinh; + f->p1 += weight * tanhden * tanhsin; +} + +void var93_sech (flam3_iter_helper *f, double weight) { + //Hyperbolic Secant SECH + double sechsin,sechcos,sechsinh,sechcosh; + double sechden; + sincos(f->ty,&sechsin,&sechcos); + sechsinh = sinh(f->tx); + sechcosh = cosh(f->tx); + sechden = 2.0/(cos(2.0*f->ty) + cosh(2.0*f->tx)); + f->p0 += weight * sechden * sechcos * sechcosh; + f->p1 -= weight * sechden * sechsin * sechsinh; +} + +void var94_csch (flam3_iter_helper *f, double weight) { + //Hyperbolic Cosecant CSCH + double cschsin,cschcos,cschsinh,cschcosh; + double cschden; + sincos(f->ty,&cschsin,&cschcos); + cschsinh = sinh(f->tx); + cschcosh = cosh(f->tx); + cschden = 2.0/(cosh(2.0*f->tx) - cos(2.0*f->ty)); + f->p0 += weight * cschden * cschsinh * cschcos; + f->p1 -= weight * cschden * cschcosh * cschsin; +} + +void var95_coth (flam3_iter_helper *f, double weight) { + //Hyperbolic Cotangent COTH + double cothsin,cothcos,cothsinh,cothcosh; + double cothden; + sincos(2.0*f->ty,&cothsin,&cothcos); + cothsinh = sinh(2.0*f->tx); + cothcosh = cosh(2.0*f->tx); + cothden = 1.0/(cothcosh - cothcos); + f->p0 += weight * cothden * cothsinh; + f->p1 += weight * cothden * cothsin; +} + +void var96_auger (flam3_iter_helper *f, double weight) { + + // Auger, by Xyrus01 + double s = sin(f->xform->auger_freq * f->tx); + double t = sin(f->xform->auger_freq * f->ty); + double dy = f->ty + f->xform->auger_weight*(f->xform->auger_scale*s/2.0 + fabs(f->ty)*s); + double dx = f->tx + f->xform->auger_weight*(f->xform->auger_scale*t/2.0 + fabs(f->tx)*t); + + f->p0 += weight * (f->tx + f->xform->auger_sym*(dx-f->tx)); + f->p1 += weight * dy; +} + +/* Precalc functions */ + +void perspective_precalc(flam3_xform *xf) { + double ang = xf->perspective_angle * M_PI / 2.0; + xf->persp_vsin = sin(ang); + xf->persp_vfcos = xf->perspective_dist * cos(ang); +} + +void juliaN_precalc(flam3_xform *xf) { + xf->julian_rN = fabs(xf->julian_power); + xf->julian_cn = xf->julian_dist / (double)xf->julian_power / 2.0; +} + +void wedgeJulia_precalc(flam3_xform *xf) { + xf->wedgeJulia_cf = 1.0 - xf->wedge_julia_angle * xf->wedge_julia_count * M_1_PI * 0.5; + xf->wedgeJulia_rN = fabs(xf->wedge_julia_power); + xf->wedgeJulia_cn = xf->wedge_julia_dist / xf->wedge_julia_power / 2.0; +} + +void juliaScope_precalc(flam3_xform *xf) { + xf->juliascope_rN = fabs(xf->juliascope_power); + xf->juliascope_cn = xf->juliascope_dist / (double)xf->juliascope_power / 2.0; +} + +void radial_blur_precalc(flam3_xform *xf) { + sincos(xf->radial_blur_angle * M_PI / 2.0, + &xf->radialBlur_spinvar, &xf->radialBlur_zoomvar); +} + +void waves_precalc(flam3_xform *xf) { + double dx = xf->c[2][0]; + double dy = xf->c[2][1]; + + xf->waves_dx2 = 1.0/(dx * dx + EPS); + xf->waves_dy2 = 1.0/(dy * dy + EPS); +} + +void disc2_precalc(flam3_xform *xf) { + double add = xf->disc2_twist; + double k; + + xf->disc2_timespi = xf->disc2_rot * M_PI; + + sincos(add,&xf->disc2_sinadd,&xf->disc2_cosadd); + xf->disc2_cosadd -= 1; + + if (add > 2 * M_PI) { + k = (1 + add - 2*M_PI); + xf->disc2_cosadd *= k; + xf->disc2_sinadd *= k; + } + + if (add < -2 * M_PI) { + k = (1 + add + 2*M_PI); + xf->disc2_cosadd *= k; + xf->disc2_sinadd *= k; + } +} + +void supershape_precalc(flam3_xform *xf) { + xf->super_shape_pm_4 = xf->super_shape_m / 4.0; + xf->super_shape_pneg1_n1 = -1.0 / xf->super_shape_n1; +} + +void xform_precalc(flam3_genome *cp, int xi) { + + perspective_precalc(&(cp->xform[xi])); + juliaN_precalc(&(cp->xform[xi])); + juliaScope_precalc(&(cp->xform[xi])); + radial_blur_precalc(&(cp->xform[xi])); + waves_precalc(&(cp->xform[xi])); + disc2_precalc(&(cp->xform[xi])); + supershape_precalc(&(cp->xform[xi])); + wedgeJulia_precalc(&(cp->xform[xi])); +} + +int prepare_xform_fn_ptrs(flam3_genome *cp, randctx *rc) { + + double d; + int i,j,totnum; + + /* Loop over valid xforms */ + for (i = 0; i < cp->num_xforms; i++) { + d = cp->xform[i].density; + if (d < 0.0) { + fprintf(stderr, "xform %d weight must be non-negative, not %g.\n",i,d); + return(1); + } + + if (i != cp->final_xform_index && d == 0.0) + continue; + + totnum = 0; + + cp->xform[i].vis_adjusted = adjust_percentage(cp->xform[i].opacity); + + cp->xform[i].precalc_angles_flag=0; + cp->xform[i].precalc_atan_xy_flag=0; + cp->xform[i].precalc_atan_yx_flag=0; + cp->xform[i].has_preblur=0; + cp->xform[i].has_post = !(id_matrix(cp->xform[i].post)); + + + for (j = 0; j < flam3_nvariations; j++) { + + if (cp->xform[i].var[j]!=0) { + + cp->xform[i].varFunc[totnum] = j; + cp->xform[i].active_var_weights[totnum] = cp->xform[i].var[j]; + + if (j==VAR_POLAR) { + cp->xform[i].precalc_atan_xy_flag=1; + } else if (j==VAR_HANDKERCHIEF) { + cp->xform[i].precalc_atan_xy_flag=1; + } else if (j==VAR_HEART) { + cp->xform[i].precalc_atan_xy_flag=1; + } else if (j==VAR_DISC) { + cp->xform[i].precalc_atan_xy_flag=1; + } else if (j==VAR_SPIRAL) { + cp->xform[i].precalc_angles_flag=1; + } else if (j==VAR_HYPERBOLIC) { + cp->xform[i].precalc_angles_flag=1; + } else if (j==VAR_DIAMOND) { + cp->xform[i].precalc_angles_flag=1; + } else if (j==VAR_EX) { + cp->xform[i].precalc_atan_xy_flag=1; + } else if (j==VAR_JULIA) { + cp->xform[i].precalc_atan_xy_flag=1; + } else if (j==VAR_POWER) { + cp->xform[i].precalc_angles_flag=1; + } else if (j==VAR_RINGS) { + cp->xform[i].precalc_angles_flag=1; + } else if (j==VAR_FAN) { + cp->xform[i].precalc_atan_xy_flag=1; + } else if (j==VAR_BLOB) { + cp->xform[i].precalc_atan_xy_flag=1; + cp->xform[i].precalc_angles_flag=1; + } else if (j==VAR_FAN2) { + cp->xform[i].precalc_atan_xy_flag=1; + } else if (j==VAR_RINGS2) { + cp->xform[i].precalc_angles_flag=1; + } else if (j==VAR_JULIAN) { + cp->xform[i].precalc_atan_yx_flag=1; + } else if (j==VAR_JULIASCOPE) { + cp->xform[i].precalc_atan_yx_flag=1; + } else if (j==VAR_RADIAL_BLUR) { + cp->xform[i].precalc_atan_yx_flag=1; + } else if (j==VAR_NGON) { + cp->xform[i].precalc_atan_yx_flag=1; + } else if (j==VAR_DISC2) { + cp->xform[i].precalc_atan_xy_flag=1; + } else if (j==VAR_SUPER_SHAPE) { + cp->xform[i].precalc_atan_yx_flag=1; + } else if (j==VAR_FLOWER) { + cp->xform[i].precalc_atan_yx_flag=1; + } else if (j==VAR_CONIC) { + cp->xform[i].precalc_atan_yx_flag=1; + } else if (j==VAR_CPOW) { + cp->xform[i].precalc_atan_yx_flag=1; + } else if (j==VAR_ESCHER) { + cp->xform[i].precalc_atan_yx_flag=1; + } else if (j==VAR_PRE_BLUR) { + cp->xform[i].has_preblur=cp->xform[i].var[j]; + } else if (j==VAR_POLAR2) { + cp->xform[i].precalc_atan_xy_flag=1; + } else if (j==VAR_WEDGE) { + cp->xform[i].precalc_atan_yx_flag=1; + } else if (j==VAR_WEDGE_JULIA) { + cp->xform[i].precalc_atan_yx_flag=1; + } else if (j==VAR_WEDGE_SPH) { + cp->xform[i].precalc_atan_yx_flag=1; + } else if (j==VAR_WHORL) { + cp->xform[i].precalc_atan_yx_flag=1; + } else if (j==VAR_LOG) { + cp->xform[i].precalc_atan_yx_flag=1; + } + + totnum++; + } + } + + cp->xform[i].num_active_vars = totnum; + + } + + return(0); +} + + +int apply_xform(flam3_genome *cp, int fn, double *p, double *q, randctx *rc) +{ + flam3_iter_helper f; + int var_n; + double next_color,s,s1; + double weight; + + f.rc = rc; + +// s = 1.0-2.0*cp->xform[fn].color_speed; +// s1 = 0.5 - 0.5 * s; + s1 = cp->xform[fn].color_speed; + s = 1.0 - 2.0*s1; + + next_color = (p[2] + cp->xform[fn].color) * s1 + s * p[2]; + q[2] = next_color; + q[3] = cp->xform[fn].vis_adjusted; + + //fprintf(stderr,"%d : %f %f %f\n",fn,cp->xform[fn].c[0][0],cp->xform[fn].c[1][0],cp->xform[fn].c[2][0]); + + f.tx = cp->xform[fn].c[0][0] * p[0] + cp->xform[fn].c[1][0] * p[1] + cp->xform[fn].c[2][0]; + f.ty = cp->xform[fn].c[0][1] * p[0] + cp->xform[fn].c[1][1] * p[1] + cp->xform[fn].c[2][1]; + + /* Pre-xforms go here, and modify the f.tx and f.ty values */ + if (cp->xform[fn].has_preblur!=0.0) + var67_pre_blur(&f, cp->xform[fn].has_preblur); + + /* Always calculate sumsq and sqrt */ + f.precalc_sumsq = f.tx*f.tx + f.ty*f.ty; + f.precalc_sqrt = sqrt(f.precalc_sumsq); + + /* Check to see if we can precalculate any parts */ + /* Precalculate atanxy, sin, cos */ + if (cp->xform[fn].precalc_atan_xy_flag > 0) { + f.precalc_atan = atan2(f.tx,f.ty); + } + + if (cp->xform[fn].precalc_angles_flag > 0) { + f.precalc_sina = f.tx / f.precalc_sqrt; + f.precalc_cosa = f.ty / f.precalc_sqrt; + } + + /* Precalc atanyx */ + if (cp->xform[fn].precalc_atan_yx_flag > 0) { + f.precalc_atanyx = atan2(f.ty,f.tx); + } + + f.p0 = 0.0; + f.p1 = 0.0; + f.xform = &(cp->xform[fn]); + + + for (var_n=0; var_n < cp->xform[fn].num_active_vars; var_n++) { + + weight = cp->xform[fn].active_var_weights[var_n]; + + switch (cp->xform[fn].varFunc[var_n]) { + + case (VAR_LINEAR): + var0_linear(&f, weight); break; + case (VAR_SINUSOIDAL): + var1_sinusoidal(&f, weight); break; + case (VAR_SPHERICAL): + var2_spherical(&f, weight); break; + case (VAR_SWIRL): + var3_swirl(&f, weight); break; + case (VAR_HORSESHOE): + var4_horseshoe(&f, weight); break; + case (VAR_POLAR): + var5_polar(&f, weight); break; + case (VAR_HANDKERCHIEF): + var6_handkerchief(&f, weight); break; + case (VAR_HEART): + var7_heart(&f, weight); break; + case (VAR_DISC): + var8_disc(&f, weight); break; + case (VAR_SPIRAL): + var9_spiral(&f, weight); break; + case (VAR_HYPERBOLIC): + var10_hyperbolic(&f, weight); break; + case (VAR_DIAMOND): + var11_diamond(&f, weight); break; + case (VAR_EX): + var12_ex(&f, weight); break; + case (VAR_JULIA): + var13_julia(&f, weight); break; + case (VAR_BENT): + var14_bent(&f, weight); break; + case (VAR_WAVES): + var15_waves(&f, weight); break; + case (VAR_FISHEYE): + var16_fisheye(&f, weight); break; + case (VAR_POPCORN): + var17_popcorn(&f, weight); break; + case (VAR_EXPONENTIAL): + var18_exponential(&f, weight); break; + case (VAR_POWER): + var19_power(&f, weight); break; + case (VAR_COSINE): + var20_cosine(&f, weight); break; + case (VAR_RINGS): + var21_rings(&f, weight); break; + case (VAR_FAN): + var22_fan(&f, weight); break; + case (VAR_BLOB): + var23_blob(&f, weight); break; + case (VAR_PDJ): + var24_pdj(&f, weight); break; + case (VAR_FAN2): + var25_fan2(&f, weight); break; + case (VAR_RINGS2): + var26_rings2(&f, weight); break; + case (VAR_EYEFISH): + var27_eyefish(&f, weight); break; + case (VAR_BUBBLE): + var28_bubble(&f, weight); break; + case (VAR_CYLINDER): + var29_cylinder(&f, weight); break; + case (VAR_PERSPECTIVE): + var30_perspective(&f, weight); break; + case (VAR_NOISE): + var31_noise(&f, weight); break; + case (VAR_JULIAN): + var32_juliaN_generic(&f, weight); break; + case (VAR_JULIASCOPE): + var33_juliaScope_generic(&f, weight);break; + case (VAR_BLUR): + var34_blur(&f, weight); break; + case (VAR_GAUSSIAN_BLUR): + var35_gaussian(&f, weight); break; + case (VAR_RADIAL_BLUR): + var36_radial_blur(&f, weight); break; + case (VAR_PIE): + var37_pie(&f, weight); break; + case (VAR_NGON): + var38_ngon(&f, weight); break; + case (VAR_CURL): + var39_curl(&f, weight); break; + case (VAR_RECTANGLES): + var40_rectangles(&f, weight); break; + case (VAR_ARCH): + var41_arch(&f, weight); break; + case (VAR_TANGENT): + var42_tangent(&f, weight); break; + case (VAR_SQUARE): + var43_square(&f, weight); break; + case (VAR_RAYS): + var44_rays(&f, weight); break; + case (VAR_BLADE): + var45_blade(&f, weight); break; + case (VAR_SECANT2): + var46_secant2(&f, weight); break; + case (VAR_TWINTRIAN): + var47_twintrian(&f, weight); break; + case (VAR_CROSS): + var48_cross(&f, weight); break; + case (VAR_DISC2): + var49_disc2(&f, weight); break; + case (VAR_SUPER_SHAPE): + var50_supershape(&f, weight); break; + case (VAR_FLOWER): + var51_flower(&f, weight); break; + case (VAR_CONIC): + var52_conic(&f, weight); break; + case (VAR_PARABOLA): + var53_parabola(&f, weight); break; + case (VAR_BENT2): + var54_bent2(&f, weight); break; + case (VAR_BIPOLAR): + var55_bipolar(&f, weight); break; + case (VAR_BOARDERS): + var56_boarders(&f, weight); break; + case (VAR_BUTTERFLY): + var57_butterfly(&f, weight); break; + case (VAR_CELL): + var58_cell(&f, weight); break; + case (VAR_CPOW): + var59_cpow(&f, weight); break; + case (VAR_CURVE): + var60_curve(&f, weight); break; + case (VAR_EDISC): + var61_edisc(&f, weight); break; + case (VAR_ELLIPTIC): + var62_elliptic(&f, weight); break; + case (VAR_ESCHER): + var63_escher(&f, weight); break; + case (VAR_FOCI): + var64_foci(&f, weight); break; + case (VAR_LAZYSUSAN): + var65_lazysusan(&f, weight); break; + case (VAR_LOONIE): + var66_loonie(&f, weight); break; + case (VAR_MODULUS): + var68_modulus(&f, weight); break; + case (VAR_OSCILLOSCOPE): + var69_oscope(&f, weight); break; + case (VAR_POLAR2): + var70_polar2(&f, weight); break; + case (VAR_POPCORN2): + var71_popcorn2(&f, weight); break; + case (VAR_SCRY): + var72_scry(&f, weight); break; + case (VAR_SEPARATION): + var73_separation(&f, weight); break; + case (VAR_SPLIT): + var74_split(&f, weight); break; + case (VAR_SPLITS): + var75_splits(&f, weight); break; + case (VAR_STRIPES): + var76_stripes(&f, weight); break; + case (VAR_WEDGE): + var77_wedge(&f, weight); break; + case (VAR_WEDGE_JULIA): + var78_wedge_julia(&f, weight); break; + case (VAR_WEDGE_SPH): + var79_wedge_sph(&f, weight); break; + case (VAR_WHORL): + var80_whorl(&f, weight); break; + case (VAR_WAVES2): + var81_waves2(&f, weight); break; + case (VAR_EXP): + var82_exp(&f, weight); break; + case (VAR_LOG): + var83_log(&f, weight); break; + case (VAR_SIN): + var84_sin(&f, weight); break; + case (VAR_COS): + var85_cos(&f, weight); break; + case (VAR_TAN): + var86_tan(&f, weight); break; + case (VAR_SEC): + var87_sec(&f, weight); break; + case (VAR_CSC): + var88_csc(&f, weight); break; + case (VAR_COT): + var89_cot(&f, weight); break; + case (VAR_SINH): + var90_sinh(&f, weight); break; + case (VAR_COSH): + var91_cosh(&f, weight); break; + case (VAR_TANH): + var92_tanh(&f, weight); break; + case (VAR_SECH): + var93_sech(&f, weight); break; + case (VAR_CSCH): + var94_csch(&f, weight); break; + case (VAR_COTH): + var95_coth(&f, weight); break; + case (VAR_AUGER): + var96_auger(&f, weight); break; + } + + } + /* apply the post transform */ + if (cp->xform[fn].has_post) { + q[0] = cp->xform[fn].post[0][0] * f.p0 + cp->xform[fn].post[1][0] * f.p1 + cp->xform[fn].post[2][0]; + q[1] = cp->xform[fn].post[0][1] * f.p0 + cp->xform[fn].post[1][1] * f.p1 + cp->xform[fn].post[2][1]; + } else { + q[0] = f.p0; + q[1] = f.p1; + } + + /* Check for badvalues and return randoms if bad */ + if (badvalue(q[0]) || badvalue(q[1])) { + q[0] = flam3_random_isaac_11(rc); + q[1] = flam3_random_isaac_11(rc); + return(1); + } else + return(0); + +} + +void initialize_xforms(flam3_genome *thiscp, int start_here) { + + int i,j; + for (i = start_here ; i < thiscp->num_xforms ; i++) { + thiscp->xform[i].padding = 0; + thiscp->xform[i].density = 0.0; + thiscp->xform[i].color_speed = 0.5; + thiscp->xform[i].animate = 1.0; + thiscp->xform[i].color = i&1; + thiscp->xform[i].opacity = 1.0; + thiscp->xform[i].var[0] = 1.0; + thiscp->xform[i].motion_freq = 0; + thiscp->xform[i].motion_func = 0; + thiscp->xform[i].num_motion = 0; + thiscp->xform[i].motion = NULL; + for (j = 1; j < flam3_nvariations; j++) + thiscp->xform[i].var[j] = 0.0; + thiscp->xform[i].c[0][0] = 1.0; + thiscp->xform[i].c[0][1] = 0.0; + thiscp->xform[i].c[1][0] = 0.0; + thiscp->xform[i].c[1][1] = 1.0; + thiscp->xform[i].c[2][0] = 0.0; + thiscp->xform[i].c[2][1] = 0.0; + thiscp->xform[i].post[0][0] = 1.0; + thiscp->xform[i].post[0][1] = 0.0; + thiscp->xform[i].post[1][0] = 0.0; + thiscp->xform[i].post[1][1] = 1.0; + thiscp->xform[i].post[2][0] = 0.0; + thiscp->xform[i].post[2][1] = 0.0; + thiscp->xform[i].wind[0] = 0.0; + thiscp->xform[i].wind[1] = 0.0; + thiscp->xform[i].blob_low = 0.0; + thiscp->xform[i].blob_high = 1.0; + thiscp->xform[i].blob_waves = 1.0; + thiscp->xform[i].pdj_a = 0.0; + thiscp->xform[i].pdj_b = 0.0; + thiscp->xform[i].pdj_c = 0.0; + thiscp->xform[i].pdj_d = 0.0; + thiscp->xform[i].fan2_x = 0.0; + thiscp->xform[i].fan2_y = 0.0; + thiscp->xform[i].rings2_val = 0.0; + thiscp->xform[i].perspective_angle = 0.0; + thiscp->xform[i].perspective_dist = 0.0; + thiscp->xform[i].persp_vsin = 0.0; + thiscp->xform[i].persp_vfcos = 0.0; + thiscp->xform[i].radial_blur_angle = 0.0; + thiscp->xform[i].disc2_rot = 0.0; + thiscp->xform[i].disc2_twist = 0.0; + thiscp->xform[i].disc2_sinadd = 0.0; + thiscp->xform[i].disc2_cosadd = 0.0; + thiscp->xform[i].disc2_timespi = 0.0; + thiscp->xform[i].flower_petals = 0.0; + thiscp->xform[i].flower_holes = 0.0; + thiscp->xform[i].parabola_height = 0.0; + thiscp->xform[i].parabola_width = 0.0; + thiscp->xform[i].bent2_x = 1.0; + thiscp->xform[i].bent2_y = 1.0; + thiscp->xform[i].bipolar_shift = 0.0; + thiscp->xform[i].cell_size = 1.0; + thiscp->xform[i].cpow_r = 1.0; + thiscp->xform[i].cpow_i = 0.0; + thiscp->xform[i].cpow_power = 1.0; + thiscp->xform[i].curve_xamp = 0.0; + thiscp->xform[i].curve_yamp = 0.0; + thiscp->xform[i].curve_xlength = 1.0; + thiscp->xform[i].curve_ylength = 1.0; + thiscp->xform[i].escher_beta = 0.0; + thiscp->xform[i].lazysusan_space = 0.0; + thiscp->xform[i].lazysusan_twist = 0.0; + thiscp->xform[i].lazysusan_spin = 0.0; + thiscp->xform[i].lazysusan_x = 0.0; + thiscp->xform[i].lazysusan_y = 0.0; + thiscp->xform[i].modulus_x = 0.0; + thiscp->xform[i].modulus_y = 0.0; + thiscp->xform[i].oscope_separation = 1.0; + thiscp->xform[i].oscope_frequency = M_PI; + thiscp->xform[i].oscope_amplitude = 1.0; + thiscp->xform[i].oscope_damping = 0.0; + thiscp->xform[i].popcorn2_c = 0.0; + thiscp->xform[i].popcorn2_x = 0.0; + thiscp->xform[i].popcorn2_y = 0.0; + thiscp->xform[i].separation_x = 0.0; + thiscp->xform[i].separation_xinside = 0.0; + thiscp->xform[i].separation_y = 0.0; + thiscp->xform[i].separation_yinside = 0.0; + thiscp->xform[i].split_xsize = 0.0; + thiscp->xform[i].split_ysize = 0.0; + thiscp->xform[i].splits_x = 0.0; + thiscp->xform[i].splits_y = 0.0; + thiscp->xform[i].stripes_space = 0.0; + thiscp->xform[i].stripes_warp = 0.0; + thiscp->xform[i].wedge_angle = 0.0; + thiscp->xform[i].wedge_hole = 0.0; + thiscp->xform[i].wedge_count = 1.0; + thiscp->xform[i].wedge_swirl = 0.0; + thiscp->xform[i].wedge_sph_angle = 0.0; + thiscp->xform[i].wedge_sph_hole = 0.0; + thiscp->xform[i].wedge_sph_count = 1.0; + thiscp->xform[i].wedge_sph_swirl = 0.0; + + thiscp->xform[i].wedge_julia_power = 1.0; + thiscp->xform[i].wedge_julia_dist = 0.0; + thiscp->xform[i].wedge_julia_count = 1.0; + thiscp->xform[i].wedge_julia_angle = 0.0; + thiscp->xform[i].wedgeJulia_cf = 0.0; + thiscp->xform[i].wedgeJulia_cn = 0.5; + thiscp->xform[i].wedgeJulia_rN = 1.0; + thiscp->xform[i].whorl_inside = 0.0; + thiscp->xform[i].whorl_outside = 0.0; + + thiscp->xform[i].waves2_scalex = 0.0; + thiscp->xform[i].waves2_scaley = 0.0; + thiscp->xform[i].waves2_freqx = 0.0; + thiscp->xform[i].waves2_freqy = 0.0; + + thiscp->xform[i].auger_freq = 1.0; + thiscp->xform[i].auger_weight = 0.5; + thiscp->xform[i].auger_sym = 0.0; + thiscp->xform[i].auger_scale = 1.0; + + thiscp->xform[i].julian_power = 1.0; + thiscp->xform[i].julian_dist = 1.0; + thiscp->xform[i].julian_rN = 1.0; + thiscp->xform[i].julian_cn = 0.5; + thiscp->xform[i].juliascope_power = 1.0; + thiscp->xform[i].juliascope_dist = 1.0; + thiscp->xform[i].juliascope_rN = 1.0; + thiscp->xform[i].juliascope_cn = 0.5; + thiscp->xform[i].radialBlur_spinvar = 0.0; + thiscp->xform[i].radialBlur_zoomvar = 1.0; + thiscp->xform[i].pie_slices = 6.0; + thiscp->xform[i].pie_rotation = 0.0; + thiscp->xform[i].pie_thickness = 0.5; + thiscp->xform[i].ngon_sides = 5; + thiscp->xform[i].ngon_power = 3; + thiscp->xform[i].ngon_circle = 1; + thiscp->xform[i].ngon_corners = 2; + thiscp->xform[i].curl_c1 = 1.0; + thiscp->xform[i].curl_c2 = 0.0; + thiscp->xform[i].rectangles_x = 1.0; + thiscp->xform[i].rectangles_y = 1.0; + thiscp->xform[i].amw_amp = 1.0; + thiscp->xform[i].super_shape_rnd = 0.0; + thiscp->xform[i].super_shape_m = 0.0; + thiscp->xform[i].super_shape_n1 = 1.0; + thiscp->xform[i].super_shape_n2 = 1.0; + thiscp->xform[i].super_shape_n3 = 1.0; + thiscp->xform[i].super_shape_holes = 0.0; + thiscp->xform[i].conic_eccentricity = 1.0; + thiscp->xform[i].conic_holes = 0.0; + } +} diff --git a/src/variations.h b/src/variations.h new file mode 100644 index 0000000..fdec2ad --- /dev/null +++ b/src/variations.h @@ -0,0 +1,140 @@ +/* + FLAM3 - cosmic recursive fractal flames + Copyright (C) 1992-2009 Spotworks LLC + + 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/>. +*/ + +#ifndef variations_included +#define variations_included + +#include "private.h" + + + +/* Variation functions */ +void var0_linear(flam3_iter_helper *, double); +void var1_sinusoidal(flam3_iter_helper *, double); +void var2_spherical(flam3_iter_helper *, double); +void var3_swirl(flam3_iter_helper *, double); +void var4_horseshoe(flam3_iter_helper *, double); +void var5_polar(flam3_iter_helper *, double); +void var6_handkerchief(flam3_iter_helper *, double); +void var7_heart(flam3_iter_helper *, double); +void var8_disc(flam3_iter_helper *, double); +void var9_spiral(flam3_iter_helper *, double); +void var10_hyperbolic(flam3_iter_helper *, double); +void var11_diamond(flam3_iter_helper *, double); +void var12_ex(flam3_iter_helper *, double); +void var13_julia(flam3_iter_helper *, double); +void var14_bent(flam3_iter_helper *, double); +void var15_waves(flam3_iter_helper *, double); +void var16_fisheye(flam3_iter_helper *, double); +void var17_popcorn(flam3_iter_helper *, double); +void var18_exponential(flam3_iter_helper *, double); +void var19_power(flam3_iter_helper *, double); +void var20_cosine(flam3_iter_helper *, double); +void var21_rings(flam3_iter_helper *, double); +void var22_fan(flam3_iter_helper *, double); +void var23_blob(flam3_iter_helper *, double); +void var24_pdj(flam3_iter_helper *, double); +void var25_fan2(flam3_iter_helper *, double); +void var26_rings2(flam3_iter_helper *, double); +void var27_eyefish(flam3_iter_helper *, double); +void var28_bubble(flam3_iter_helper *, double); +void var29_cylinder(flam3_iter_helper *, double); +void var30_perspective(flam3_iter_helper *, double); +void var31_noise(flam3_iter_helper *, double); +void var32_juliaN_generic(flam3_iter_helper *, double); +void var33_juliaScope_generic(flam3_iter_helper *, double); +void var34_blur(flam3_iter_helper *, double); +void var35_gaussian(flam3_iter_helper *, double); +void var36_radial_blur(flam3_iter_helper *, double); +void var37_pie(flam3_iter_helper *, double); +void var38_ngon(flam3_iter_helper *, double); +void var39_curl(flam3_iter_helper *, double); +void var40_rectangles(flam3_iter_helper *, double); +void var41_arch(flam3_iter_helper *, double); +void var42_tangent(flam3_iter_helper *, double); +void var43_square(flam3_iter_helper *, double); +void var44_rays(flam3_iter_helper *, double); +void var45_blade(flam3_iter_helper *, double); +void var46_secant2(flam3_iter_helper *, double); +void var47_twintrian(flam3_iter_helper *, double); +void var48_cross(flam3_iter_helper *, double); +void var49_disc2(flam3_iter_helper *, double); +void var50_supershape(flam3_iter_helper *, double); +void var51_flower(flam3_iter_helper *, double); +void var52_conic(flam3_iter_helper *, double); +void var53_parabola(flam3_iter_helper *, double); +void var54_bent2(flam3_iter_helper *, double); +void var55_bipolar(flam3_iter_helper *, double); +void var56_boarders(flam3_iter_helper *, double); +void var57_butterfly(flam3_iter_helper *, double); +void var58_cell(flam3_iter_helper *, double); +void var59_cpow(flam3_iter_helper *, double); +void var60_curve(flam3_iter_helper *, double); +void var61_edisc(flam3_iter_helper *, double); +void var62_elliptic(flam3_iter_helper *, double); +void var63_escher(flam3_iter_helper *, double); +void var64_foci(flam3_iter_helper *, double); +void var65_lazysusan(flam3_iter_helper *, double); +void var66_loonie(flam3_iter_helper *, double); +void var67_pre_blur(flam3_iter_helper *, double); +void var68_modulus(flam3_iter_helper *, double); +void var69_oscope(flam3_iter_helper *, double); +void var70_polar2(flam3_iter_helper *, double); +void var71_popcorn2(flam3_iter_helper *, double); +void var72_scry(flam3_iter_helper *, double); +void var73_separation(flam3_iter_helper *, double); +void var74_split(flam3_iter_helper *, double); +void var75_splits(flam3_iter_helper *, double); +void var76_stripes(flam3_iter_helper *, double); +void var77_wedge(flam3_iter_helper *, double); +void var78_wedge_julia(flam3_iter_helper *, double); +void var79_wedge_sph(flam3_iter_helper *, double); +void var80_whorl(flam3_iter_helper *, double); +void var81_waves2(flam3_iter_helper *, double); +void var82_exp (flam3_iter_helper *f, double weight); +void var83_log (flam3_iter_helper *f, double weight); +void var84_sin (flam3_iter_helper *f, double weight); +void var85_cos (flam3_iter_helper *f, double weight); +void var86_tan (flam3_iter_helper *f, double weight); +void var87_sec (flam3_iter_helper *f, double weight); +void var88_csc (flam3_iter_helper *f, double weight); +void var89_cot (flam3_iter_helper *f, double weight); +void var90_sinh (flam3_iter_helper *f, double weight); +void var91_cosh (flam3_iter_helper *f, double weight); +void var92_tanh (flam3_iter_helper *f, double weight); +void var93_sech (flam3_iter_helper *f, double weight); +void var94_csch (flam3_iter_helper *f, double weight); +void var95_coth (flam3_iter_helper *f, double weight); +void var96_auger (flam3_iter_helper *f, double weight); + +/* Precalculation functions */ +void perspective_precalc(flam3_xform *xf); +void juliaN_precalc(flam3_xform *xf); +void juliaScope_precalc(flam3_xform *xf); +void radial_blur_precalc(flam3_xform *xf); +void waves_precalc(flam3_xform *xf); +void disc2_precalc(flam3_xform *xf); +void supershape_precalc(flam3_xform *xf); +void wedgeJulia_precalc(flam3_xform *xf); + +void xform_precalc(flam3_genome *cp, int xi); +int prepare_xform_fn_ptrs(flam3_genome *, randctx *); + +int apply_xform(flam3_genome *cp, int fn, double *p, double *q, randctx *rc); +void initialize_xforms(flam3_genome *thiscp, int start_here); +#endif diff --git a/src/vidres.flam3 b/src/vidres.flam3 new file mode 100755 index 0000000..285b1ce --- /dev/null +++ b/src/vidres.flam3 @@ -0,0 +1,12 @@ +<flame size="640 480" + center="0 0" + scale="240" + zoom="0" + oversample="1" + filter="1" + quality="10" + background="0 0 0" + brightness="4" + gamma="4" + vibrancy="1" +/> |