From dceea38da25a866ef2e27facbe31ffe347696821 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Wed, 2 Jul 2003 10:21:11 +0000 Subject: [PATCH] Added hdspconf utility by Thomas Charbonnel (requiring FLTK) --- hdspconf/AUTHORS | 1 + hdspconf/COPYING | 340 +++++ hdspconf/ChangeLog | 0 hdspconf/INSTALL | 229 +++ hdspconf/Makefile.am | 1 + hdspconf/NEWS | 0 hdspconf/README | 2 + hdspconf/configure.in | 62 + hdspconf/cvscompile | 25 + hdspconf/pixmaps/Makefile.am | 1 + hdspconf/pixmaps/alsalogo.xpm | 451 ++++++ hdspconf/pixmaps/lad_banner.xpm | 1875 +++++++++++++++++++++++++ hdspconf/pixmaps/rme.xpm | 2338 +++++++++++++++++++++++++++++++ hdspconf/src/HC_AboutText.cxx | 46 + hdspconf/src/HC_AboutText.h | 39 + hdspconf/src/HC_AutoSyncRef.cxx | 88 ++ hdspconf/src/HC_AutoSyncRef.h | 45 + hdspconf/src/HC_CardPane.cxx | 46 + hdspconf/src/HC_CardPane.h | 66 + hdspconf/src/HC_ClockSource.cxx | 119 ++ hdspconf/src/HC_ClockSource.h | 48 + hdspconf/src/HC_PrefSyncRef.cxx | 120 ++ hdspconf/src/HC_PrefSyncRef.h | 47 + hdspconf/src/HC_SpdifFreq.cxx | 74 + hdspconf/src/HC_SpdifFreq.h | 44 + hdspconf/src/HC_SpdifIn.cxx | 94 ++ hdspconf/src/HC_SpdifIn.h | 44 + hdspconf/src/HC_SpdifOut.cxx | 140 ++ hdspconf/src/HC_SpdifOut.h | 50 + hdspconf/src/HC_SyncCheck.cxx | 125 ++ hdspconf/src/HC_SyncCheck.h | 59 + hdspconf/src/HC_SystemClock.cxx | 87 ++ hdspconf/src/HC_SystemClock.h | 46 + hdspconf/src/HC_XpmRenderer.cxx | 33 + hdspconf/src/HC_XpmRenderer.h | 39 + hdspconf/src/Makefile.am | 26 + hdspconf/src/defines.h | 42 + hdspconf/src/hdspconf.cxx | 200 +++ 38 files changed, 7092 insertions(+) create mode 100644 hdspconf/AUTHORS create mode 100644 hdspconf/COPYING create mode 100644 hdspconf/ChangeLog create mode 100644 hdspconf/INSTALL create mode 100644 hdspconf/Makefile.am create mode 100644 hdspconf/NEWS create mode 100644 hdspconf/README create mode 100644 hdspconf/configure.in create mode 100644 hdspconf/cvscompile create mode 100644 hdspconf/pixmaps/Makefile.am create mode 100644 hdspconf/pixmaps/alsalogo.xpm create mode 100644 hdspconf/pixmaps/lad_banner.xpm create mode 100644 hdspconf/pixmaps/rme.xpm create mode 100644 hdspconf/src/HC_AboutText.cxx create mode 100644 hdspconf/src/HC_AboutText.h create mode 100644 hdspconf/src/HC_AutoSyncRef.cxx create mode 100644 hdspconf/src/HC_AutoSyncRef.h create mode 100644 hdspconf/src/HC_CardPane.cxx create mode 100644 hdspconf/src/HC_CardPane.h create mode 100644 hdspconf/src/HC_ClockSource.cxx create mode 100644 hdspconf/src/HC_ClockSource.h create mode 100644 hdspconf/src/HC_PrefSyncRef.cxx create mode 100644 hdspconf/src/HC_PrefSyncRef.h create mode 100644 hdspconf/src/HC_SpdifFreq.cxx create mode 100644 hdspconf/src/HC_SpdifFreq.h create mode 100644 hdspconf/src/HC_SpdifIn.cxx create mode 100644 hdspconf/src/HC_SpdifIn.h create mode 100644 hdspconf/src/HC_SpdifOut.cxx create mode 100644 hdspconf/src/HC_SpdifOut.h create mode 100644 hdspconf/src/HC_SyncCheck.cxx create mode 100644 hdspconf/src/HC_SyncCheck.h create mode 100644 hdspconf/src/HC_SystemClock.cxx create mode 100644 hdspconf/src/HC_SystemClock.h create mode 100644 hdspconf/src/HC_XpmRenderer.cxx create mode 100644 hdspconf/src/HC_XpmRenderer.h create mode 100644 hdspconf/src/Makefile.am create mode 100644 hdspconf/src/defines.h create mode 100644 hdspconf/src/hdspconf.cxx diff --git a/hdspconf/AUTHORS b/hdspconf/AUTHORS new file mode 100644 index 0000000..38ca8f0 --- /dev/null +++ b/hdspconf/AUTHORS @@ -0,0 +1 @@ +Thomas Charbonnel diff --git a/hdspconf/COPYING b/hdspconf/COPYING new file mode 100644 index 0000000..d60c31a --- /dev/null +++ b/hdspconf/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/hdspconf/ChangeLog b/hdspconf/ChangeLog new file mode 100644 index 0000000..e69de29 diff --git a/hdspconf/INSTALL b/hdspconf/INSTALL new file mode 100644 index 0000000..54caf7c --- /dev/null +++ b/hdspconf/INSTALL @@ -0,0 +1,229 @@ +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software +Foundation, Inc. + + This file is free documentation; the Free Software Foundation gives +unlimited permission to copy, distribute and modify it. + +Basic Installation +================== + + These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. (Caching is +disabled by default to prevent problems with accidental use of stale +cache files.) + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You only need +`configure.ac' if you want to change it or regenerate `configure' using +a newer version of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes awhile. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you must use a version of `make' that +supports the `VPATH' variable, such as GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not support the `VPATH' +variable, you have to compile the package for one architecture at a +time in the source code directory. After you have installed the +package for one architecture, use `make distclean' before reconfiguring +for another architecture. + +Installation Names +================== + + By default, `make install' will install the package's files in +`/usr/local/bin', `/usr/local/man', etc. You can specify an +installation prefix other than `/usr/local' by giving `configure' the +option `--prefix=PATH'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +give `configure' the option `--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. +Documentation and other data files will still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=PATH' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Specifying the System Type +========================== + + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the `--target=TYPE' option to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +will cause the specified gcc to be used as the C compiler (unless it is +overridden in the site shell script). + +`configure' Invocation +====================== + + `configure' recognizes the following options to control how it +operates. + +`--help' +`-h' + Print a summary of the options to `configure', and exit. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. + diff --git a/hdspconf/Makefile.am b/hdspconf/Makefile.am new file mode 100644 index 0000000..d27796c --- /dev/null +++ b/hdspconf/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = src pixmaps diff --git a/hdspconf/NEWS b/hdspconf/NEWS new file mode 100644 index 0000000..e69de29 diff --git a/hdspconf/README b/hdspconf/README new file mode 100644 index 0000000..0e006c1 --- /dev/null +++ b/hdspconf/README @@ -0,0 +1,2 @@ +HDSPConfig is a GUI to control the Hammerfall HDSP Alsa Settings. +Up to four hdsp cards are supported. diff --git a/hdspconf/configure.in b/hdspconf/configure.in new file mode 100644 index 0000000..32a448c --- /dev/null +++ b/hdspconf/configure.in @@ -0,0 +1,62 @@ +AC_INIT(src/hdspconf.cxx) +AM_INIT_AUTOMAKE(hdspconf, 1.0) + +AC_PROG_CXX +AC_PROG_MAKE_SET +AC_STDC_HEADERS +AC_PATH_X + +AM_PATH_ALSA(0.9.0) + +dnl kernel header files +AC_MSG_CHECKING(for kernel header files) +AC_ARG_WITH(kernel, + [ --with-kernel=ver specify kernel version (for example 2.5.5-pre1)], + [kerneldir="$withval"], [kerneldir=""]) +if test "$kerneldir" != "" -a -r "/lib/modules/$kerneldir/build/include/sound"; then + kerneldir="/lib/modules/$kerneldir/build/include" + AC_MSG_RESULT($kerneldir) +else + if test -z "$kerneldir"; then + AC_MSG_RESULT("not specified") + else + AC_MSG_RESULT("directory /lib/modules/$kerneldir/build/include/sound not found") + fi + kerneldir="" +fi + +dnl path for sound/asound.h +AC_MSG_CHECKING(for directory with ALSA kernel headers) +AC_ARG_WITH(soundbase, + [ --with-soundbase=dir specify base directory with kernel sound headers (optional)], + [soundbasedir="$withval"], [soundbasedir="$kerneldir"]) +if test "$soundbasedir" != "" -a -r "$soundbasedir/sound" ; then + ALSA_CFLAGS="$ALSA_CFLAGS -I$soundbasedir" + CFLAGS="$CFLAGS -I$soundbasedir" + AC_MSG_RESULT($ALSA_CFLAGS) +else + if test "x$prefix" != xNONE; then + aprefix=$prefix + else + aprefix=$ac_default_prefix + fi + if test -z "$soundbasedir" -a -r "$aprefix/include/sound"; then + ALSA_CFLAGS="$ALSA_CFLAGS -I$aprefix/include" + CFLAGS="$CFLAGS -I$aprefix/include" + AC_MSG_RESULT($ALSA_CFLAGS) + else + AC_MSG_RESULT("not specified - using C compiler defaults") + fi +fi + +AC_PATH_PROG(FLTK_CONFIG, fltk-config, no) +if test "$FLTK_CONFIG" = "no"; then + AC_MSG_ERROR(no fltk-config is found) +fi +FLTK_CXXFLAGS=`$FLTK_CONFIG $fltk_config_args --cxxflags` +FLTK_LIBS=`$FLTK_CONFIG $fltk_config_args --ldflags` + +CXXFLAGS="$CXXFLAGS $ALSA_CFLAGS $FLTK_CXXFLAGS" +LDFLAGS="$LDFLAGS $ALSA_LIBS $FLTK_LIBS" + +AC_OUTPUT(Makefile src/Makefile pixmaps/Makefile) diff --git a/hdspconf/cvscompile b/hdspconf/cvscompile new file mode 100644 index 0000000..e8a1c45 --- /dev/null +++ b/hdspconf/cvscompile @@ -0,0 +1,25 @@ +#!/bin/bash + +if test "x$AUTOMAKE_DIR" = "x"; then + if test -d /usr/local/share/automake; then + AUTOMAKE_DIR=/usr/local/share/automake + fi + if test -d /usr/share/automake; then + AUTOMAKE_DIR="/usr/share/automake" + fi +fi + +for f in install-sh mkinstalldirs missing; do + cp -av $AUTOMAKE_DIR/$f . +done + +aclocal $ACLOCAL_FLAGS +automake --foreign --add-missing --copy +touch depcomp +autoconf +export CFLAGS='-O2 -Wall -pipe -g' +echo "CFLAGS=$CFLAGS" +echo "./configure $@" +./configure $@ +unset CFLAGS +make diff --git a/hdspconf/pixmaps/Makefile.am b/hdspconf/pixmaps/Makefile.am new file mode 100644 index 0000000..7278f3b --- /dev/null +++ b/hdspconf/pixmaps/Makefile.am @@ -0,0 +1 @@ +EXTRA_DIST = $(wildcard *.xpm) diff --git a/hdspconf/pixmaps/alsalogo.xpm b/hdspconf/pixmaps/alsalogo.xpm new file mode 100644 index 0000000..39c4023 --- /dev/null +++ b/hdspconf/pixmaps/alsalogo.xpm @@ -0,0 +1,451 @@ +/* XPM */ +static char * alsalogo_xpm[] = { +"50 50 398 2", +" c None", +". c #C0C0C0", +"+ c #BEC1BE", +"@ c #9EAD9D", +"# c #889687", +"$ c #7D8A7C", +"% c #788477", +"& c #9AA799", +"* c #484D47", +"= c #3A3F3A", +"- c #515551", +"; c #6C706B", +"> c #8F958F", +", c #ADAFAD", +"' c #BCBCBB", +") c #BEC0BE", +"! c #606A60", +"~ c #515651", +"{ c #646664", +"] c #828282", +"^ c #A2A4A1", +"/ c #EEEEED", +"( c #FEFEFC", +"_ c #A7B7A5", +": c #7E8B7D", +"< c #414542", +"[ c #5C5E5C", +"} c #BCBDBB", +"| c #F6F6F4", +"1 c #8B978A", +"2 c #4A4F4A", +"3 c #939493", +"4 c #C7C9C6", +"5 c #5C655C", +"6 c #4C4D4C", +"7 c #C3C4C2", +"8 c #768176", +"9 c #626262", +"0 c #E9E9E7", +"a c #93A291", +"b c #5E625E", +"c c #7B7B7A", +"d c #838482", +"e c #FCFCFB", +"f c #F3F4F1", +"g c #EBECE9", +"h c #E6E6E4", +"i c #E7E7E5", +"j c #EEEEEC", +"k c #FDFDFB", +"l c #FAFAF9", +"m c #CBCFCA", +"n c #969796", +"o c #737A73", +"p c #787D77", +"q c #7C817C", +"r c #798079", +"s c #727871", +"t c #9D9F9D", +"u c #EDEEEB", +"v c #F8F8F6", +"w c #D3D4D2", +"x c #9DA09D", +"y c #727672", +"z c #CBCBCB", +"A c #E5E6E4", +"B c #F6F7F4", +"C c #F4F5F2", +"D c #DFE0DE", +"E c #707370", +"F c #C0C2C0", +"G c #FCFCFA", +"H c #ADB3AD", +"I c #515452", +"J c #939793", +"K c #F1F1EF", +"L c #BFC4BE", +"M c #F4F5F4", +"N c #FBFBFA", +"O c #B7BAB7", +"P c #A2A5A0", +"Q c #F9FAF8", +"R c #F5F5F3", +"S c #BABDBA", +"T c #727472", +"U c #CBCECC", +"V c #F5F5F4", +"W c #E2E3E1", +"X c #CFD4CE", +"Y c #B5B7B4", +"Z c #777777", +"` c #303231", +" . c #8F918F", +".. c #A5A7A4", +"+. c #B9BCB8", +"@. c #CACDC9", +"#. c #F7F7F5", +"$. c #EFF0ED", +"%. c #D0D0CE", +"&. c #C1C2C1", +"*. c #909690", +"=. c #6D746D", +"-. c #727972", +";. c #98A398", +">. c #BFC9BE", +",. c #BDD0BC", +"'. c #BCD1BE", +"). c #C0D5C1", +"!. c #C4D9C5", +"~. c #C4D8C3", +"{. c #C3D8C4", +"]. c #C3D5C2", +"^. c #C0D0C0", +"/. c #B1BDB2", +"(. c #878F87", +"_. c #9CA59C", +":. c #E0E7DF", +"<. c #E6E9E5", +"[. c #F0F0EE", +"}. c #FBFBF9", +"|. c #3A403A", +"1. c #747673", +"2. c #363936", +"3. c #7F8B7F", +"4. c #CCE0CC", +"5. c #DAF2DB", +"6. c #D8EFD7", +"7. c #D7EED6", +"8. c #D6ECD4", +"9. c #D4EBD4", +"0. c #D2E9D4", +"a. c #D1E8D3", +"b. c #CEE5CF", +"c. c #CDE4CE", +"d. c #CFE6D0", +"e. c #CCE2CD", +"f. c #BCCEBC", +"g. c #BCC5BC", +"h. c #DBDEDB", +"i. c #F9F9F8", +"j. c #8B8D8A", +"k. c #606961", +"l. c #B3C4B4", +"m. c #D7EED8", +"n. c #D3E9D4", +"o. c #D4EAD4", +"p. c #859185", +"q. c #666F65", +"r. c #C2D6C0", +"s. c #1C1E1D", +"t. c #B8CCBA", +"u. c #535853", +"v. c #454C46", +"w. c #99A999", +"x. c #CCE3CD", +"y. c #5E675F", +"z. c #8A958B", +"A. c #C8DEC9", +"B. c #C9DFCA", +"C. c #CBE2CC", +"D. c #CDDECE", +"E. c #E5EEE5", +"F. c #F6FBF4", +"G. c #F9F9F7", +"H. c #B7BAB6", +"I. c #656E65", +"J. c #D3EAD5", +"K. c #D3E9D2", +"L. c #6D776D", +"M. c #525A52", +"N. c #1C1E1C", +"O. c #161717", +"P. c #A0B1A1", +"Q. c #4F5750", +"R. c #6E776E", +"S. c #C7DAC6", +"T. c #C8DDC8", +"U. c #D4E1D4", +"V. c #F5F7F3", +"W. c #CCCDCA", +"X. c #3B3D3B", +"Y. c #D5ECD5", +"Z. c #CEE5D0", +"`. c #CCDFCA", +" + c #565B57", +".+ c #191A1A", +"++ c #9CAE9D", +"@+ c #535854", +"#+ c #C2D6C3", +"$+ c #C7D9C5", +"%+ c #C3DAC4", +"&+ c #C2DAC4", +"*+ c #CCDFCC", +"=+ c #EFF3EE", +"-+ c #C9CAC8", +";+ c #9EAC9D", +">+ c #D0E7D1", +",+ c #D3EAD4", +"'+ c #C1D3C0", +")+ c #353735", +"!+ c #505850", +"~+ c #C0D4BF", +"{+ c #727A73", +"]+ c #676E68", +"^+ c #535B54", +"/+ c #303230", +"(+ c #B6C9B7", +"_+ c #C5D8C4", +":+ c #CED8CC", +"<+ c #D9DBD9", +"[+ c #C1D3C1", +"}+ c #D0E7D2", +"|+ c #B5C6B3", +"1+ c #202221", +"2+ c #494F49", +"3+ c #B8CAB7", +"4+ c #C3D6C3", +"5+ c #454B45", +"6+ c #CAE1CB", +"7+ c #C5DAC6", +"8+ c #585F59", +"9+ c #1F2020", +"0+ c #ACBEAD", +"a+ c #C4DAC4", +"b+ c #C1D5BF", +"c+ c #F2F2F0", +"d+ c #D3E1D2", +"e+ c #D0E6D1", +"f+ c #ADBEAB", +"g+ c #141515", +"h+ c #484C48", +"i+ c #A3B3A3", +"j+ c #616962", +"k+ c #858F85", +"l+ c #B4C6B5", +"m+ c #535754", +"n+ c #0E0E0F", +"o+ c #A1B3A2", +"p+ c #C6D9C5", +"q+ c #959995", +"r+ c #CEE5CE", +"s+ c #0A0B0B", +"t+ c #545954", +"u+ c #909D90", +"v+ c #A0AF9F", +"w+ c #454946", +"x+ c #9EAD9F", +"y+ c #565B56", +"z+ c #070808", +"A+ c #98A999", +"B+ c #BACAB9", +"C+ c #636763", +"D+ c #EEF0ED", +"E+ c #D8E8D8", +"F+ c #9EB0A0", +"G+ c #222423", +"H+ c #646864", +"I+ c #6E746E", +"J+ c #B4C8B5", +"K+ c #222424", +"L+ c #828B83", +"M+ c #676B67", +"N+ c #1F201F", +"O+ c #97A798", +"P+ c #C7DBC6", +"Q+ c #BFD3BD", +"R+ c #99A698", +"S+ c #8C8E8C", +"T+ c #F8F8F7", +"U+ c #F2F4F1", +"V+ c #9EAFA0", +"W+ c #0B0B0C", +"X+ c #171817", +"Y+ c #4B504B", +"Z+ c #B6CAB8", +"`+ c #AABAAA", +" @ c #3E413F", +".@ c #707670", +"+@ c #1B1C1B", +"@@ c #0D0D0E", +"#@ c #95A596", +"$@ c #C1D6C1", +"%@ c #9CA79C", +"&@ c #4D514E", +"*@ c #EDEEEC", +"=@ c #F6F7F5", +"-@ c #E4ECE3", +";@ c #CCDECB", +">@ c #CADFCA", +",@ c #CFE6D1", +"'@ c #3C3E3C", +")@ c #5E675E", +"!@ c #383A38", +"~@ c #6E786F", +"{@ c #B3C6B4", +"]@ c #555D55", +"^@ c #484D49", +"/@ c #869187", +"(@ c #616861", +"_@ c #4F534F", +":@ c #828C81", +"<@ c #C4D7C3", +"[@ c #BBCDBB", +"}@ c #919E91", +"|@ c #575C58", +"1@ c #A7AAA6", +"2@ c #A2A3A1", +"3@ c #E4E5E5", +"4@ c #C3C8C1", +"5@ c #CBE0CB", +"6@ c #B2C2B2", +"7@ c #AFC2AF", +"8@ c #B5C9B6", +"9@ c #9CA89C", +"0@ c #97A498", +"a@ c #93A093", +"b@ c #BCCFBD", +"c@ c #A8B8A9", +"d@ c #A5B3A5", +"e@ c #B2C4B2", +"f@ c #B1C2B0", +"g@ c #AAB7AA", +"h@ c #C5D8C3", +"i@ c #C5D1C3", +"j@ c #BBC2B9", +"k@ c #757B75", +"l@ c #7B7F7B", +"m@ c #EEEFEC", +"n@ c #E7EBE6", +"o@ c #BFC5BE", +"p@ c #A2ABA2", +"q@ c #B2BDB2", +"r@ c #B9C8B9", +"s@ c #BCCEBB", +"t@ c #B9CAB8", +"u@ c #B6C8B5", +"v@ c #AEC0AD", +"w@ c #AABCA9", +"x@ c #A4B1A4", +"y@ c #A2ADA2", +"z@ c #889087", +"A@ c #616260", +"B@ c #7A7F7A", +"C@ c #BEBEBD", +"D@ c #CECFCD", +"E@ c #E0E2DF", +"F@ c #C1C5C0", +"G@ c #979997", +"H@ c #7E817F", +"I@ c #6C736C", +"J@ c #515451", +"K@ c #333533", +"L@ c #595D59", +"M@ c #656B65", +"N@ c #6E716F", +"O@ c #959795", +"P@ c #BCBFBC", +"Q@ c #E3E7E3", +"R@ c #F7F8F6", +"S@ c #BCBDBA", +"T@ c #EBECEA", +"U@ c #A4ACA4", +"V@ c #535653", +"W@ c #B7B8B6", +"X@ c #616B60", +"Y@ c #F7F7F6", +"Z@ c #E2E6E1", +"`@ c #7D817E", +" # c #838582", +".# c #D1D2D0", +"+# c #CACECA", +"@# c #868A86", +"## c #F3F4F2", +"$# c #FAFBF9", +"%# c #B1B4AF", +"&# c #505450", +"*# c #626562", +"=# c #E0E0DF", +"-# c #F5F6F3", +";# c #B3B5B3", +"># c #606260", +",# c #818480", +"'# c #959894", +")# c #878B86", +"!# c #696B69", +"~# c #565756", +"{# c #919491", +"]# c #BDBDBC", +"^# c #EAEAE8", +"/# c #A7B7A6", +"(# c #BFC3BE", +"_# c #7F807F", +":# c #7D7E7E", +"<# c #808181", +"[# c #929391", +"}# c #B8BBB7", +"|# c #7A7A7A", +"1# c #93A292", +". . . . . . . . . . . . . . . . . . . . + @ # $ % % $ # @ + . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . & * = - ; > , ' ' , > ; - = * & . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . ) ! ~ { ] ^ / ( ( ( ( ( ( ( ( / ^ ] { ~ ! ) . . . . . . . . . . . . . . ", +". . . . . . . . . . . . _ : < [ } | ( ( ( ( ( ( ( ( ( ( ( ( ( ( | } [ < : _ . . . . . . . . . . . . ", +". . . . . . . . . . . 1 2 3 4 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 4 3 2 1 . . . . . . . . . . . ", +". . . . . . . . . . 5 6 7 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 7 6 5 . . . . . . . . . . ", +". . . . . . . . . 8 9 0 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 0 9 8 . . . . . . . . . ", +". . . . . . . a b c ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( c b a . . . . . . . ", +". . . . . . . b d e ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( e d b . . . . . . . ", +". . . . . . 8 c e ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( e c 8 . . . . . . ", +". . . . . 5 9 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 9 5 . . . . . ", +". . . . 1 6 0 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( f g h i j k ( ( ( ( ( ( ( 0 6 1 . . . . ", +". . . _ 2 7 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( l m n o p q r s t u ( ( ( ( ( ( ( 7 2 _ . . . ", +". . . : 3 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( v w x { y z A B C D E F G ( ( ( ( ( ( ( 3 : . . . ", +". . ) < 4 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( H I J K ( ( ( ( ( ( G L M ( ( ( ( ( ( ( 4 < ) . . ", +". . ! [ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( N O o P u ( ( ( ( ( ( ( ( ( k Q ( ( ( ( ( ( ( ( [ ! . . ", +". . ~ } ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( R S T U ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( } ~ . . ", +". & { | ( ( ( ( ( ( ( ( ( ( ( ( k V W X Y Z ` ...+.@.h #.( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( | { & . ", +". * ] ( ( ( ( ( ( ( ( ( $.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.( ( ( ( ( ( ( ( ( ( ( ( ] * . ", +". |.^ ( ( ( ( ( ( ( ( R 1.2.3.4.5.6.7.8.9.0.0.0.0.a.b.c.c.c.d.e.f.g.h.( ( ( ( ( ( ( ( ( ( ( ( ^ |.. ", +"+ - / ( ( ( ( ( ( i.j.k.l.m.9.n.o.8.8.p.q.r.s.t.0.u.v.w.x.y.z.x.A.B.C.D.E.F.( ( ( ( ( ( ( ( ( / - + ", +"@ ; ( ( ( ( ( ( G.H.I.d.J.0.0.o.8.8.K.L.M.r.N.t.0.O.P.c.c.Q.R.C.A.A.A.S.T.U.V.e ( ( ( ( ( ( ( ( ; @ ", +"# > ( ( ( ( ( ( W.X.Y.Z.0.0.0.o.8.8.`. +M.r.N.t.0..+++c.c.Q.@+#+A.A.A.$+%+&+*+=+( ( ( ( ( ( ( ( > # ", +"$ , ( ( ( ( ( ( -+;+>+b.0.0.0.,+8.8.'+)+!+~+N.t.0.{+]+c.c.^+/+(+A.A.A.$+%+&+_+:+G ( ( ( ( ( ( ( , $ ", +"% ' ( ( ( ( ( ( <+[+c.c.}+0.0.o.8.8.|+1+2+3+N.t.0.4+5+6+7+8+9+0+A.A.A.$+%+&+a+b+/ ( ( ( ( ( ( ( ' % ", +"% ' ( ( ( ( ( ( c+d+c.c.e+0.0.0.n.8.f+g+h+i+N.t.0.0.j+k+l+m+n+o+A.A.A.$+%+&+p+b+q+#.( ( ( ( ( ( ' % ", +"$ , ( ( ( ( ( ( G =+r+c.b.a.0.0.0.,+o+s+t+u+N.t.0.b.v+w+x+y+z+A+A.A.A.$+%+&+_+B+C+D+( ( ( ( ( ( , $ ", +"# > ( ( ( ( ( ( ( ( E+c.c.b.a.0.0.0.F+G+H+I+s.t.}+c.J+K+L+M+N+O+A.A.P+$+%+&+Q+R+S+T+( ( ( ( ( ( > # ", +"@ ; ( ( ( ( ( ( ( ( U+U.x.c.c.a.0.0.V+W+X+Y+N.Z+c.c.`+ @.@+@@@#@A.A.P+$+%+$@%@&@*@( ( ( ( ( ( ( ; @ ", +"+ - / ( ( ( ( ( ( ( ( =@-@;@>@b.,@0.F+'@)@!@s.~@{@]@^@/@(@@+_@:@A.T.S.<@[@}@|@1@( ( ( ( ( ( ( / - + ", +". = 2@( ( ( ( ( ( ( ( ( ( }.3@4@[+5@6@7@8@9@0@a@b@c@l.c.d@e@f@g@h@i@j@k@/+l@=@( ( ( ( ( ( ( ( 2@= . ", +". * ] ( ( ( ( ( ( ( ( ( ( ( G m@n@o@p@q@r@s@t@u@J+u@u@u@v@w@x@y@z@A@B@C@D@$.( ( ( ( ( ( ( ( ( ] * . ", +". & { | ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( Q E@F@G@H@I@J@K@L@M@N@O@P@Q@R@( ( ( ( ( ( ( ( ( ( ( ( | { & . ", +". . ~ S@( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( }.T@U@V@W@m@f G.G ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( S@~ . . ", +". . X@[ ( ( ( ( ( ( ( ( Y@e ( ( ( ( ( ( ( k Z@`@ #.#G.( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( [ X@. . ", +". . . < 4 ( ( ( ( ( ( ( +#@###( ( ( ( $#%#&#*#=#( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 4 < . . . ", +". . . : 3 ( ( ( ( ( ( ( -#;#>#,#'#)#!#~#{#]#^#G ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 3 : . . . ", +". . . /#2 7 ( ( ( ( ( ( ( f (#_#:#<#[#}#Y@( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 7 2 /#. . . ", +". . . . 1 6 0 ( ( ( ( ( ( ( ( G }.G ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 0 6 1 . . . . ", +". . . . . 5 9 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 9 5 . . . . . ", +". . . . . . 8 |#e ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( e |#8 . . . . . . ", +". . . . . . . b d e ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( e d b . . . . . . . ", +". . . . . . . 1#b |#( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( |#b 1#. . . . . . . ", +". . . . . . . . . 8 9 0 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 0 9 8 . . . . . . . . . ", +". . . . . . . . . . 5 6 7 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 7 6 5 . . . . . . . . . . ", +". . . . . . . . . . . 1 2 3 4 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 4 3 2 1 . . . . . . . . . . . ", +". . . . . . . . . . . . /#: < [ S@| ( ( ( ( ( ( ( ( ( ( ( ( ( ( | S@[ < : /#. . . . . . . . . . . . ", +". . . . . . . . . . . . . . . X@~ { ] 2@/ ( ( ( ( ( ( ( ( / 2@] { ~ X@. . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . & * |.- ; > , ' ' , > ; - |.* & . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . + @ # $ % % $ # @ + . . . . . . . . . . . . . . . . . . . . "}; diff --git a/hdspconf/pixmaps/lad_banner.xpm b/hdspconf/pixmaps/lad_banner.xpm new file mode 100644 index 0000000..bdd9f8a --- /dev/null +++ b/hdspconf/pixmaps/lad_banner.xpm @@ -0,0 +1,1875 @@ +/* XPM */ +static char * lad_banner_xpm[] = { +"113 39 1833 2", +" c None", +". c #C0C0C0", +"+ c #97968A", +"@ c #646356", +"# c #3B3A30", +"$ c #1D1D17", +"% c #0B0B09", +"& c #080706", +"* c #070706", +"= c #070707", +"- c #0A0A0B", +"; c #1A1A1B", +"> c #353638", +", c #5B5C60", +"' c #8E8F92", +") c #A4A499", +"! c #4A493D", +"~ c #060604", +"{ c #0A0A08", +"] c #413F31", +"^ c #6F6D55", +"/ c #918F70", +"( c #A4A27F", +"_ c #A9A783", +": c #A9A784", +"< c #A9A785", +"[ c #A8A785", +"} c #A8A686", +"| c #A7A687", +"1 c #A7A587", +"2 c #A7A588", +"3 c #A7A488", +"4 c #A6A489", +"5 c #A5A48A", +"6 c #A4A48A", +"7 c #A4A38B", +"8 c #A4A38C", +"9 c #A4A28C", +"0 c #A3A28C", +"a c #A3A28D", +"b c #A2A28D", +"c c #A2A28E", +"d c #A2A18F", +"e c #A1A190", +"f c #A1A090", +"g c #A1A091", +"h c #A0A091", +"i c #A0A092", +"j c #9F9F93", +"k c #9E9F94", +"l c #9E9E94", +"m c #9D9E94", +"n c #9D9D95", +"o c #9D9D96", +"p c #9C9D96", +"q c #9C9D97", +"r c #9C9C97", +"s c #9B9C98", +"t c #9B9B98", +"u c #9B9B99", +"v c #9A9B99", +"w c #9A9B9A", +"x c #999B9A", +"y c #999B9B", +"z c #999A9B", +"A c #989A9C", +"B c #98999C", +"C c #98999D", +"D c #97999D", +"E c #97989E", +"F c #96989E", +"G c #96989F", +"H c #9698A0", +"I c #91939A", +"J c #7F8189", +"K c #62636A", +"L c #393A3E", +"M c #09090A", +"N c #050505", +"O c #424346", +"P c #9C9DA0", +"Q c #ACACA1", +"R c #34342A", +"S c #030302", +"T c #4B4A39", +"U c #A9A67F", +"V c #EAE8B2", +"W c #F2EEB8", +"X c #F2EEB9", +"Y c #F1EEB9", +"Z c #F1EEBA", +"` c #F0EDBA", +" . c #F0EDBB", +".. c #F0EDBC", +"+. c #EFECBC", +"@. c #EEECBD", +"#. c #EEECBE", +"$. c #EEEBBE", +"%. c #EDEBBF", +"&. c #EDEABF", +"*. c #EDEAC0", +"=. c #ECEAC0", +"-. c #ECEAC1", +";. c #ECE9C1", +">. c #EBE9C2", +",. c #EAE8C3", +"'. c #EAE8C4", +"). c #E9E8C4", +"!. c #E9E7C5", +"~. c #E8E7C6", +"{. c #E8E6C6", +"]. c #E7E6C7", +"^. c #E7E6C8", +"/. c #E6E5C9", +"(. c #E6E4CA", +"_. c #E5E4CA", +":. c #E5E4CB", +"<. c #E4E4CB", +"[. c #E4E4CC", +"}. c #E4E3CD", +"|. c #E3E3CD", +"1. c #E3E2CE", +"2. c #E2E2CE", +"3. c #E2E2CF", +"4. c #E1E1D0", +"5. c #E1E1D1", +"6. c #E0E0D1", +"7. c #E0E0D2", +"8. c #DFE0D2", +"9. c #DFDFD3", +"0. c #DEDFD4", +"a. c #DEDFD5", +"b. c #DDDED5", +"c. c #DDDDD6", +"d. c #DCDDD7", +"e. c #DBDDD8", +"f. c #DBDCD8", +"g. c #DBDCD9", +"h. c #DADBDA", +"i. c #D9DBDB", +"j. c #D9DADC", +"k. c #D8DADC", +"l. c #D8DADD", +"m. c #D7D9DD", +"n. c #D7D9DE", +"o. c #D7D9DF", +"p. c #D6D9DF", +"q. c #D6D8DF", +"r. c #D5D8E0", +"s. c #D5D8E1", +"t. c #D5D7E1", +"u. c #D5D7E2", +"v. c #D4D7E2", +"w. c #D4D7E3", +"x. c #D3D6E4", +"y. c #CDCFDE", +"z. c #9396A1", +"A. c #434449", +"B. c #020303", +"C. c #2D2D30", +"D. c #A5A5A8", +"E. c #626152", +"F. c #020201", +"G. c #504F3C", +"H. c #CECA99", +"I. c #F3EFB7", +"J. c #F2EFB8", +"K. c #EFECBA", +"L. c #E8E6C7", +"M. c #E6E5C8", +"N. c #E6E5CA", +"O. c #E3E2CD", +"P. c #E2E1D0", +"Q. c #DDDED6", +"R. c #D6D8E0", +"S. c #D3D6E3", +"T. c #D2D5E5", +"U. c #D2D5E6", +"V. c #B4B6C5", +"W. c #47484E", +"X. c #020202", +"Y. c #57585C", +"Z. c #C3C3BD", +"`. c #2D2D23", +" + c #181812", +".+ c #AFAB81", +"++ c #F4F0B5", +"@+ c #F4F0B6", +"#+ c #F3EFB6", +"$+ c #EBE8B3", +"%+ c #ADAA84", +"&+ c #716F56", +"*+ c #454435", +"=+ c #2C2B22", +"-+ c #25241C", +";+ c #28271F", +">+ c #3A392D", +",+ c #5D5C49", +"'+ c #989678", +")+ c #DDDAAE", +"!+ c #EBE9BC", +"~+ c #060505", +"{+ c #000000", +"]+ c #888773", +"^+ c #494940", +"/+ c #3D3C35", +"(+ c #E4E3CC", +"_+ c #DADBD9", +":+ c #D9DBDC", +"<+ c #989AA6", +"[+ c #151617", +"}+ c #262729", +"|+ c #BFBFC0", +"1+ c #BCBBB4", +"2+ c #1B1A14", +"3+ c #373628", +"4+ c #DEDAA3", +"5+ c #F5F0B5", +"6+ c #D3D09E", +"7+ c #63614A", +"8+ c #0C0C09", +"9+ c #020203", +"0+ c #1B1C1D", +"a+ c #2F3034", +"b+ c #3C3E43", +"c+ c #414448", +"d+ c #3E4045", +"e+ c #303136", +"f+ c #191A1B", +"g+ c #3F3F32", +"h+ c #ADAB8A", +"i+ c #E7E5B9", +"j+ c #EAE9C2", +"k+ c #96947D", +"l+ c #2B2B25", +"m+ c #747363", +"n+ c #BEBDA2", +"o+ c #989783", +"p+ c #6A695C", +"q+ c #A1A08C", +"r+ c #E3E2C7", +"s+ c #E1E0C6", +"t+ c #DFDFC6", +"u+ c #DEDED5", +"v+ c #DADCD9", +"w+ c #D8D9DD", +"x+ c #C0C3D2", +"y+ c #313135", +"z+ c #161617", +"A+ c #B5B6B8", +"B+ c #444332", +"C+ c #ECE8AD", +"D+ c #F5F1B4", +"E+ c #EAE7AE", +"F+ c #6D6B51", +"G+ c #040403", +"H+ c #1A1B1B", +"I+ c #494C51", +"J+ c #787B85", +"K+ c #9397A0", +"L+ c #A1A5AE", +"M+ c #A9ADB6", +"N+ c #ACB0B9", +"O+ c #ADB1BA", +"P+ c #A9ACB7", +"Q+ c #9699A3", +"R+ c #595B62", +"S+ c #17171A", +"T+ c #3D3D31", +"U+ c #C2C09C", +"V+ c #EAE7BD", +"W+ c #DAD9B7", +"X+ c #434238", +"Y+ c #D9D8B9", +"Z+ c #828170", +"`+ c #131310", +" @ c #3D3D35", +".@ c #BABAA2", +"+@ c #121210", +"@@ c #5B5B50", +"#@ c #090908", +"$@ c #060605", +"%@ c #616157", +"&@ c #E0DFC9", +"*@ c #636359", +"=@ c #121211", +"-@ c #626159", +";@ c #DEDECA", +">@ c #68685F", +",@ c #5C5C55", +"'@ c #D2D2C1", +")@ c #383835", +"!@ c #96968D", +"~@ c #757671", +"{@ c #DBDBD2", +"]@ c #D9DBDA", +"^@ c #D3D5E5", +"/@ c #CBCEDF", +"(@ c #3B3C41", +"_@ c #2E2E24", +":@ c #EDE8AD", +"<@ c #F5F1B3", +"[@ c #D0CB99", +"}@ c #26261C", +"|@ c #0F0F10", +"1@ c #505257", +"2@ c #838790", +"3@ c #9FA2AB", +"4@ c #AEB2BA", +"5@ c #B1B5BD", +"6@ c #B2B6BE", +"7@ c #B1B5BE", +"8@ c #B1B5BF", +"9@ c #B0B4BE", +"0@ c #ACB0BA", +"a@ c #666870", +"b@ c #0C0C0D", +"c@ c #11110E", +"d@ c #8D8B72", +"e@ c #E3E1B8", +"f@ c #444439", +"g@ c #B5B399", +"h@ c #E7E6C5", +"i@ c #BBBAA1", +"j@ c #24241F", +"k@ c #272722", +"l@ c #AAAA94", +"m@ c #646457", +"n@ c #201F1C", +"o@ c #6B6B5F", +"p@ c #2E2E29", +"q@ c #858477", +"r@ c #A7A696", +"s@ c #141412", +"t@ c #3A3934", +"u@ c #B2B2A2", +"v@ c #AAAA9C", +"w@ c #161615", +"x@ c #363632", +"y@ c #ACAC9F", +"z@ c #707068", +"A@ c #2D2D2B", +"B@ c #7F7F78", +"C@ c #040404", +"D@ c #2A2A27", +"E@ c #73736D", +"F@ c #B8B9B0", +"G@ c #D3D5E4", +"H@ c #636252", +"I@ c #171711", +"J@ c #DFDBA1", +"K@ c #F6F1B3", +"L@ c #C4C190", +"M@ c #10100C", +"N@ c #282828", +"O@ c #70737B", +"P@ c #9599A1", +"Q@ c #AEB1B9", +"R@ c #6A6C64", +"S@ c #595B57", +"T@ c #94979A", +"U@ c #AFB3BB", +"V@ c #9C9FA4", +"W@ c #5D5E5C", +"X@ c #666761", +"Y@ c #A6ABB4", +"Z@ c #B0B4BF", +"`@ c #9EA1AC", +" # c #27282B", +".# c #080806", +"+# c #73725D", +"@# c #DFDDB5", +"## c #DAD9B6", +"$# c #424239", +"%# c #282822", +"&# c #A0A08B", +"*# c #ACAB96", +"=# c #646458", +"-# c #9C9C8A", +";# c #AAAA97", +"># c #58584F", +",# c #C8C7B4", +"'# c #252521", +")# c #383833", +"!# c #A8A899", +"~# c #E0E0CD", +"{# c #2A2A26", +"]# c #353531", +"^# c #A5A599", +"/# c #D9D9CA", +"(# c #75756D", +"_# c #010101", +":# c #2D2D2A", +"<# c #81817B", +"[# c #CACBC2", +"}# c #DBDDD7", +"|# c #58595D", +"1# c #AEADA2", +"2# c #AEAB7E", +"3# c #F6F2B2", +"4# c #F6F2B3", +"5# c #D0CC98", +"6# c #333434", +"7# c #797C84", +"8# c #9FA2AA", +"9# c #B1B5BC", +"0# c #AFB2B7", +"a# c #76701E", +"b# c #CBC02A", +"c# c #4C4E4F", +"d# c #9B9EA6", +"e# c #B1B6BE", +"f# c #6C6E6E", +"g# c #CEC32B", +"h# c #726D1C", +"i# c #7E8289", +"j# c #ACB1BB", +"k# c #B1B5C0", +"l# c #ACB0BB", +"m# c #333539", +"n# c #080807", +"o# c #797862", +"p# c #E2E0B9", +"q# c #CBCAAC", +"r# c #B1B097", +"s# c #E3E1C2", +"t# c #49483F", +"u# c #2B2B26", +"v# c #B0AF9A", +"w# c #6F6E61", +"x# c #C6C6AF", +"y# c #D7D6BE", +"z# c #5A5A50", +"A# c #C0BFAD", +"B# c #292925", +"C# c #3C3C36", +"D# c #E1E1CE", +"E# c #2D2D29", +"F# c #393934", +"G# c #DFDFCF", +"H# c #BBBBAF", +"I# c #0C0C0B", +"J# c #3B3B38", +"K# c #9B9B92", +"L# c #D4D5CA", +"M# c #A5A6A8", +"N# c #37362A", +"O# c #4F4E39", +"P# c #F7F2B1", +"Q# c #EDE9AD", +"R# c #29281E", +"S# c #29292A", +"T# c #787B83", +"U# c #A0A4AB", +"V# c #B2B6BC", +"W# c #B3B6BD", +"X# c #7A7D7B", +"Y# c #B9AF27", +"Z# c #948C1F", +"`# c #636669", +" $ c #9EA1A9", +".$ c #979A9D", +"+$ c #968E1F", +"@$ c #B6AD26", +"#$ c #535557", +"$$ c #A3A7B0", +"%$ c #ACB0BC", +"&$ c #282A2D", +"*$ c #11110F", +"=$ c #99987D", +"-$ c #E8E6BE", +";$ c #CDCBAB", +">$ c #3A3A31", +",$ c #9A9982", +"'$ c #636254", +")$ c #B7B69C", +"!$ c #43433A", +"~$ c #292923", +"{$ c #9A9A86", +"]$ c #A6A590", +"^$ c #69685C", +"/$ c #CDCCB5", +"($ c #CBCAB3", +"_$ c #55554C", +":$ c #BDBDA9", +"<$ c #363631", +"[$ c #1B1B19", +"}$ c #A1A193", +"|$ c #C8C8B7", +"1$ c #0D0D0C", +"2$ c #9F9F94", +"3$ c #BFBFB1", +"4$ c #292927", +"5$ c #53544E", +"6$ c #010100", +"7$ c #575752", +"8$ c #D2D3C9", +"9$ c #2E2E31", +"0$ c #A7A699", +"a$ c #D0CC95", +"b$ c #F7F2B2", +"c$ c #717052", +"d$ c #10100F", +"e$ c #707379", +"f$ c #999CA3", +"g$ c #B2B5BC", +"h$ c #B3B6BC", +"i$ c #ACAFB3", +"j$ c #5E5C28", +"k$ c #F3E633", +"l$ c #4E4C25", +"m$ c #7A7D86", +"n$ c #AAAEB5", +"o$ c #B2B5BE", +"p$ c #5A582F", +"q$ c #555120", +"r$ c #868A91", +"s$ c #AEB2BD", +"t$ c #B0B5C0", +"u$ c #A0A4AE", +"v$ c #0D0E0F", +"w$ c #2F2E26", +"x$ c #C1BF9D", +"y$ c #EAE8C1", +"z$ c #3C3C34", +"A$ c #C1C0AB", +"B$ c #1F1F1B", +"C$ c #989888", +"D$ c #919082", +"E$ c #080808", +"F$ c #474742", +"G$ c #232320", +"H$ c #696962", +"I$ c #464642", +"J$ c #D4D5CB", +"K$ c #B3B5C4", +"L$ c #4D4C3E", +"M$ c #4B4935", +"N$ c #D8D49C", +"O$ c #050504", +"P$ c #57595B", +"Q$ c #898D94", +"R$ c #B0B4B9", +"S$ c #ABAEB2", +"T$ c #545339", +"U$ c #DCD02E", +"V$ c #958D20", +"W$ c #5A5C5D", +"X$ c #58584C", +"Y$ c #65665E", +"Z$ c #A7ABB2", +"`$ c #6C6D66", +" % c #63645B", +".% c #7E8182", +"+% c #989020", +"@% c #DACE2E", +"#% c #43422A", +"$% c #92969E", +"%% c #AFB3BE", +"&% c #B0B4C0", +"*% c #6E7178", +"=% c #030303", +"-% c #6C6B58", +";% c #E1DEB8", +">% c #AEAD91", +",% c #71705F", +"'% c #666555", +")% c #666656", +"!% c #696858", +"~% c #666657", +"{% c #7A7968", +"]% c #7F7E6D", +"^% c #666658", +"/% c #757464", +"(% c #7F7F6E", +"_% c #636357", +":% c #989685", +"<% c #A5A592", +"[% c #757468", +"}% c #636358", +"|% c #89887A", +"1% c #D0CFBB", +"2% c #9A9A8B", +"3% c #52524B", +"4% c #76766B", +"5% c #77776E", +"6% c #67675E", +"7% c #73736B", +"8% c #7F7F75", +"9% c #696A63", +"0% c #676760", +"a% c #8F8F86", +"b% c #8D8D85", +"c% c #63635D", +"d% c #70706A", +"e% c #ACADA5", +"f% c #D4D6E3", +"g% c #424348", +"h% c #424246", +"i% c #070705", +"j% c #A9A678", +"k% c #6A684C", +"l% c #1D1D1D", +"m% c #797C85", +"n% c #A5A9AF", +"o% c #ADB0B3", +"p% c #767877", +"q% c #5F5D26", +"r% c #DDD12E", +"s% c #B7AD26", +"t% c #46473E", +"u% c #4A4B3F", +"v% c #BCB227", +"w% c #958D1F", +"x% c #5E6162", +"y% c #A6AAB2", +"z% c #858888", +"A% c #494A40", +"B% c #595A50", +"C% c #BAB027", +"D% c #DBD02E", +"E% c #585420", +"F% c #646667", +"G% c #A5A9B1", +"H% c #AFB3BF", +"I% c #1A1B1E", +"J% c #2C2B25", +"K% c #B7B596", +"L% c #CFCEAD", +"M% c #CCCBAB", +"N% c #CCCAAC", +"O% c #CBCAAD", +"P% c #CDCCAF", +"Q% c #D5D3B6", +"R% c #CAC9AE", +"S% c #CAC9AF", +"T% c #D4D3B8", +"U% c #CCCBB2", +"V% c #C9C8B0", +"W% c #CDCCB4", +"X% c #E0DFC5", +"Y% c #CECDB6", +"Z% c #C7C7B2", +"`% c #C9C9B4", +" & c #DEDDC7", +".& c #E0E0CB", +"+& c #CBCAB7", +"@& c #BBBBAA", +"#& c #CBCBBA", +"$& c #CDCDBC", +"%& c #C5C5B6", +"&& c #CFCFC0", +"*& c #C7C7B8", +"=& c #C4C4B7", +"-& c #CBCBBE", +";& c #D4D5C7", +">& c #C4C4B9", +",& c #C3C3B9", +"'& c #CDCEC4", +")& c #9294A0", +"!& c #9B9A8B", +"~& c #090906", +"{& c #EFEAAA", +"]& c #F7F3B1", +"^& c #F2EDAE", +"/& c #11110C", +"(& c #525455", +"_& c #8A8D95", +":& c #6B6C66", +"<& c #7A741D", +"[& c #BFB528", +"}& c #F2E533", +"|& c #938B1F", +"1& c #49493D", +"2& c #D6CB2D", +"3& c #434228", +"4& c #757880", +"5& c #A3A8AF", +"6& c #ADB1B8", +"7& c #525137", +"8& c #D5CA2D", +"9& c #49493F", +"0& c #57584F", +"a& c #F2E633", +"b& c #BEB428", +"c& c #78721C", +"d& c #575855", +"e& c #A4A8B3", +"f& c #65686F", +"g& c #7F7D68", +"h& c #E5E3BD", +"i& c #E8E7C5", +"j& c #8F9093", +"k& c #696857", +"l& c #3E3D2C", +"m& c #F8F3B0", +"n& c #B7B383", +"o& c #71737A", +"p& c #9FA2A8", +"q& c #636562", +"r& c #8E861E", +"s& c #4C4A27", +"t& c #5D5F60", +"u& c #4D4E41", +"v& c #434229", +"w& c #74777F", +"x& c #9DA0A8", +"y& c #B0B5BD", +"z& c #ABB0B7", +"A& c #504F35", +"B& c #B7AE26", +"C& c #77797B", +"D& c #514F2B", +"E& c #8F871E", +"F& c #414344", +"G& c #9295A0", +"H& c #A0A4AF", +"I& c #4B4B3E", +"J& c #D2D0AD", +"K& c #555547", +"L& c #A09F87", +"M& c #979789", +"N& c #1C1C1A", +"O& c #B4B4A5", +"P& c #B6B6A9", +"Q& c #37383C", +"R& c #5C5D61", +"S& c #403F32", +"T& c #6E6C4E", +"U& c #7E7B5A", +"V& c #1F201E", +"W& c #7B7E86", +"X& c #ABAFB4", +"Y& c #A4A7A9", +"Z& c #6C6E6C", +"`& c #747678", +" * c #8C8F96", +".* c #5F6055", +"+* c #D6CA2D", +"@* c #9DA0A7", +"#* c #4E4F47", +"$* c #9FA4AD", +"%* c #8C8F93", +"&* c #777981", +"** c #9FA3AE", +"=* c #1D1E20", +"-* c #34342C", +";* c #B6B496", +">* c #B8B69A", +",* c #0E0E0C", +"'* c #22221D", +")* c #C2C1A5", +"!* c #E1E0CB", +"~* c #CBCBB7", +"{* c #3D3D37", +"]* c #0F0F0E", +"^* c #8A8A7F", +"/* c #C6C6B5", +"(* c #66665F", +"_* c #74746C", +":* c #C7C7B9", +"<* c #DDDED0", +"[* c #CBCBC0", +"}* c #DCDCD0", +"|* c #60626A", +"1* c #36373A", +"2* c #22221A", +"3* c #908D66", +"4* c #F7F3B0", +"5* c #56543D", +"6* c #383938", +"7* c #82868D", +"8* c #B4B7BC", +"9* c #B2B6BB", +"0* c #B0B3B9", +"a* c #B2B5BB", +"b* c #747672", +"c* c #877F1C", +"d* c #44432A", +"e* c #74777E", +"f* c #9CA0A7", +"g* c #B0B4BC", +"h* c #6B6D72", +"i* c #3B3D3F", +"j* c #63656B", +"k* c #ABAEB7", +"l* c #4F4E35", +"m* c #87801D", +"n* c #4C4E4D", +"o* c #8E929B", +"p* c #AFB4BE", +"q* c #ADB1BC", +"r* c #3D3E43", +"s* c #292924", +"t* c #9C9A81", +"u* c #B5B397", +"v* c #44443A", +"w* c #858573", +"x* c #E3E2C2", +"y* c #191916", +"z* c #B2B29A", +"A* c #E2E1C5", +"B* c #B9B8A3", +"C* c #E3E2C9", +"D* c #A2A291", +"E* c #22221E", +"F* c #31312C", +"G* c #484741", +"H* c #131311", +"I* c #8B8B7F", +"J* c #8B8B80", +"K* c #D1D2C3", +"L* c #99998F", +"M* c #181817", +"N* c #0E0E0D", +"O* c #7B7B74", +"P* c #DDDED3", +"Q* c #7C7E88", +"R* c #1B1C1E", +"S* c #12120D", +"T* c #A4A173", +"U* c #3F3E2D", +"V* c #444445", +"W* c #B2B6BA", +"X* c #B3B7BC", +"Y* c #888B8A", +"Z* c #878A8F", +"`* c #6E7075", +" = c #4F5258", +".= c #A5A9B2", +"+= c #ACAFB8", +"@= c #7D8082", +"#= c #898D96", +"$= c #A8ACB6", +"%= c #B0B5BF", +"&= c #505258", +"*= c #8B8972", +"== c #E8E6C0", +"-= c #515044", +";= c #302F28", +">= c #81816D", +",= c #090807", +"'= c #3B3B33", +")= c #CFCFB1", +"!= c #6E6E5F", +"~= c #717162", +"{= c #CECDB4", +"]= c #66665A", +"^= c #767568", +"/= c #AAAA98", +"(= c #33332E", +"_= c #3F3F38", +":= c #64645B", +"<= c #A3A499", +"[= c #3D3D39", +"}= c #5F605A", +"|= c #363633", +"1= c #787973", +"2= c #DBDCD2", +"3= c #8D8F9A", +"4= c #A8A576", +"5= c #353426", +"6= c #444646", +"7= c #8E9198", +"8= c #B1B5BB", +"9= c #B2B6BD", +"0= c #444648", +"a= c #2D2D32", +"b= c #8E929C", +"c= c #AFB3BD", +"d= c #57595F", +"e= c #21211D", +"f= c #83826B", +"g= c #E7E5BF", +"h= c #D2D0AF", +"i= c #050404", +"j= c #3A3930", +"k= c #656555", +"l= c #A5A48D", +"m= c #E6E4C4", +"n= c #B9B89F", +"o= c #656457", +"p= c #CAC9B0", +"q= c #B0AF99", +"r= c #69695C", +"s= c #5A5950", +"t= c #0F0F0D", +"u= c #7E7E72", +"v= c #989789", +"w= c #BBBBA9", +"x= c #10100E", +"y= c #65655E", +"z= c #575751", +"A= c #1A1A19", +"B= c #9A9B91", +"C= c #B9B9AF", +"D= c #252524", +"E= c #B9BAB1", +"F= c #9496A2", +"G= c #A3A073", +"H= c #F8F3AF", +"I= c #403F2E", +"J= c #414242", +"K= c #8D9198", +"L= c #808280", +"M= c #A8ACAF", +"N= c #77797E", +"O= c #4C4E55", +"P= c #90939E", +"Q= c #A8ACB3", +"R= c #7D7F80", +"S= c #AEB2BB", +"T= c #4F5157", +"U= c #242420", +"V= c #747360", +"W= c #030202", +"X= c #141411", +"Y= c #151512", +"Z= c #56564A", +"`= c #DAD8BA", +" - c #BDBCA2", +".- c #656558", +"+- c #B3B29C", +"@- c #6A6A5E", +"#- c #4E4E45", +"$- c #878779", +"%- c #D5D4BE", +"&- c #65655C", +"*- c #AEAEA0", +"=- c #67675F", +"-- c #4E4E48", +";- c #8A8A81", +">- c #4D4D48", +",- c #242523", +"'- c #979891", +")- c #8B8D98", +"!- c #24241B", +"~- c #8E8B64", +"{- c #58573F", +"]- c #323334", +"^- c #8A8D94", +"/- c #6E6F66", +"(- c #9B9320", +"_- c #4C4A2A", +":- c #94979B", +"<- c #73767C", +"[- c #393A3F", +"}- c #52545C", +"|- c #81858F", +"1- c #A7ABB4", +"2- c #A8ACB2", +"3- c #555430", +"4- c #9E9521", +"5- c #55564F", +"6- c #A6AAB3", +"7- c #3B3D41", +"8- c #2F2F29", +"9- c #8D8B73", +"0- c #D9D7B3", +"a- c #161612", +"b- c #35352D", +"c- c #807E6B", +"d- c #908F79", +"e- c #8E8E78", +"f- c #0C0C0A", +"g- c #1A1A16", +"h- c #B1B198", +"i- c #CAC8AD", +"j- c #46463D", +"k- c #C9C8AF", +"l- c #79786A", +"m- c #878777", +"n- c #53534B", +"o- c #DAD9C3", +"p- c #B9B8A6", +"q- c #85857A", +"r- c #A4A497", +"s- c #606059", +"t- c #83837A", +"u- c #5B5B55", +"v- c #D7D8CA", +"w- c #A4A49C", +"x- c #50504C", +"y- c #93948D", +"z- c #7A7C85", +"A- c #1D1D1F", +"B- c #444335", +"C- c #6A684B", +"D- c #82805D", +"E- c #191A1A", +"F- c #82858C", +"G- c #9EA1A1", +"H- c #656764", +"I- c #8B8D8C", +"J- c #B0B4B8", +"K- c #6F7169", +"L- c #ABA224", +"M- c #DDD22E", +"N- c #484626", +"O- c #B2B5BD", +"P- c #ADB1B9", +"Q- c #A7ABB3", +"R- c #A8ACB1", +"S- c #E0D42F", +"T- c #ACA324", +"U- c #4A4B46", +"V- c #8C9099", +"W- c #8C8F91", +"X- c #636666", +"Y- c #989CA1", +"Z- c #3D3C34", +"`- c #9F9E82", +" ; c #DDDBB9", +".; c #676657", +"+; c #171714", +"@; c #D7D5B8", +"#; c #C0BFA9", +"$; c #4E4D45", +"%; c #2C2C28", +"&; c #BCBCAE", +"*; c #454641", +"=; c #333330", +"-; c #7D7D76", +";; c #5D5E66", +">; c #39393C", +",; c #6D6C5B", +"'; c #393828", +"); c #BFBB87", +"!; c #6E7278", +"~; c #ABAEB3", +"{; c #61635F", +"]; c #A49B22", +"^; c #5A5723", +"/; c #6F706F", +"(; c #61625A", +"_; c #A9ACB2", +":; c #5E5B27", +"<; c #A49C22", +"[; c #D3C82C", +"}; c #464848", +"|; c #9DA1AC", +"1; c #9DA0AB", +"2; c #4E4D41", +"3; c #B9B897", +"4; c #AEAD90", +"5; c #676655", +"6; c #5E5D4F", +"7; c #7C7B68", +"8; c #C9C7A8", +"9; c #C4C3A4", +"0; c #858471", +"a; c #606052", +"b; c #626254", +"c; c #9B9985", +"d; c #D6D5B9", +"e; c #6B6B5D", +"f; c #525247", +"g; c #807F70", +"h; c #68675A", +"i; c #5E5D53", +"j; c #908F7F", +"k; c #D5D4BD", +"l; c #8A8A7B", +"m; c #57564E", +"n; c #737368", +"o; c #747469", +"p; c #66665D", +"q; c #717168", +"r; c #66665E", +"s; c #5A5A54", +"t; c #8C8C82", +"u; c #CFD0C1", +"v; c #7F7F76", +"w; c #4B4B46", +"x; c #5F5F59", +"y; c #7E7E77", +"z; c #999991", +"A; c #333438", +"B; c #616165", +"C; c #A09F90", +"D; c #ECE8A6", +"E; c #F5F0AE", +"F; c #15140F", +"G; c #45474A", +"H; c #9DA1A6", +"I; c #74756F", +"J; c #6D6821", +"K; c #A89F23", +"L; c #4B4B3C", +"M; c #5B5C53", +"N; c #DED22E", +"O; c #94989C", +"P; c #B1B4BC", +"Q; c #A9ADB2", +"R; c #ACA224", +"S; c #464740", +"T; c #494839", +"U; c #A9A023", +"V; c #F1E532", +"W; c #A79E23", +"X; c #69641F", +"Y; c #4C4E4C", +"Z; c #606269", +"`; c #656453", +" > c #D5D3AE", +".> c #CCCAA8", +"+> c #C9C7A7", +"@> c #CAC8A8", +"#> c #DEDCBA", +"$> c #D6D4B5", +"%> c #C7C6AA", +"&> c #CFCDB0", +"*> c #E5E4C5", +"=> c #DEDDC0", +"-> c #C2C1A8", +";> c #BEBDA6", +">> c #D4D3B9", +",> c #C8C7B0", +"'> c #C9C8B1", +")> c #E1E0C8", +"!> c #E0E0C8", +"~> c #CCCCB6", +"{> c #BEBEAB", +"]> c #CDCDB9", +"^> c #D0CFBC", +"/> c #C3C3B2", +"(> c #CACAB9", +"_> c #C1C1B3", +":> c #C6C6B7", +"<> c #DDDDCE", +"[> c #DCDCCD", +"}> c #C4C4B8", +"|> c #B4B5AA", +"1> c #C0C0B5", +"2> c #D8D8CC", +"3> c #C9CCDC", +"4> c #959699", +"5> c #0B0A08", +"6> c #A19E71", +"7> c #717051", +"8> c #141414", +"9> c #868A90", +"0> c #B1B5B9", +"a> c #727473", +"b> c #4F4D26", +"c> c #D0C52C", +"d> c #C7BC2A", +"e> c #48483A", +"f> c #5A5C54", +"g> c #AAA124", +"h> c #8B841E", +"i> c #5E6062", +"j> c #A3A7AE", +"k> c #898C8D", +"l> c #8C851E", +"m> c #474842", +"n> c #49483A", +"o> c #C9BE2A", +"p> c #CFC42B", +"q> c #4B4823", +"r> c #595B5E", +"s> c #80838C", +"t> c #A4A8B2", +"u> c #171719", +"v> c #3B3B34", +"w> c #86856D", +"x> c #E7E5BD", +"y> c #070808", +"z> c #565445", +"A> c #41402E", +"B> c #DFDB9F", +"C> c #080705", +"D> c #484A4E", +"E> c #A4A7AD", +"F> c #B3B7BB", +"G> c #ABAFB2", +"H> c #4E4D3B", +"I> c #D2C62C", +"J> c #5D5E5E", +"K> c #656660", +"L> c #575856", +"M> c #7F838C", +"N> c #A9ACB3", +"O> c #717371", +"P> c #555651", +"Q> c #5B5D5E", +"R> c #D0C52B", +"S> c #414130", +"T> c #757982", +"U> c #979BA5", +"V> c #ACB1BA", +"W> c #66686F", +"X> c #5A594B", +"Y> c #BCBA99", +"Z> c #BBBA9E", +"`> c #C3C3B5", +" , c #CECEC2", +"., c #3A3B40", +"+, c #494A4E", +"@, c #B0AEA2", +"#, c #C6C28C", +"$, c #7B7958", +"%, c #080909", +"&, c #777A80", +"*, c #AFB3B8", +"=, c #AEB2B5", +"-, c #565329", +";, c #535023", +">, c #8E9298", +",, c #A9ADB5", +"', c #5E5B2A", +"), c #4D4B22", +"!, c #73767F", +"~, c #9CA0A9", +"{, c #9C9FA8", +"], c #0A0A0C", +"^, c #404038", +"/, c #807F67", +"(, c #8B8A73", +"_, c #21211B", +":, c #414137", +"<, c #3A3931", +"[, c #ABA991", +"}, c #E2E1C2", +"|, c #E1E1CD", +"1, c #DEDECB", +"2, c #D6D6C7", +"3, c #565650", +"4, c #707069", +"5, c #D9DACF", +"6, c #D5D7D7", +"7, c #D7D9DB", +"8, c #AAADBB", +"9, c #A6A7A9", +"0, c #424133", +"a, c #43422F", +"b, c #F1ECAD", +"c, c #2C2B20", +"d, c #1A1A1C", +"e, c #90949A", +"f, c #B2B5BA", +"g, c #818382", +"h, c #B0A725", +"i, c #9B9220", +"j, c #67696B", +"k, c #AAADB4", +"l, c #939598", +"m, c #9D9521", +"n, c #ADA424", +"o, c #555759", +"p, c #8E919A", +"q, c #A9ADB7", +"r, c #232427", +"s, c #636251", +"t, c #C7C4A0", +"u, c #D9D7B2", +"v, c #3F3F34", +"w, c #97967E", +"x, c #B8B79A", +"y, c #9D9C83", +"z, c #2E2E27", +"A, c #BAB99E", +"B, c #161613", +"C, c #848473", +"D, c #E4E3C7", +"E, c #35352F", +"F, c #23231F", +"G, c #2A2A25", +"H, c #DEDDC5", +"I, c #3A3A35", +"J, c #DDDDC7", +"K, c #7B7A6F", +"L, c #33332F", +"M, c #B8B8AA", +"N, c #919287", +"O, c #71726B", +"P, c #1E1E1C", +"Q, c #212120", +"R, c #9B9B96", +"S, c #D6D7CF", +"T, c #232321", +"U, c #212221", +"V, c #7E7F7B", +"W, c #292928", +"X, c #181818", +"Y, c #555554", +"Z, c #CACCC9", +"`, c #B6B8B7", +" ' c #111111", +".' c #717273", +"+' c #D6D8DB", +"@' c #535456", +"#' c #212122", +"$' c #707174", +"%' c #343536", +"&' c #A7A9AF", +"*' c #616366", +"=' c #0D0D0E", +"-' c #1C1D1E", +";' c #2D2E30", +">' c #A2A4AD", +",' c #D1D4E1", +"'' c #38383B", +")' c #B8B7AD", +"!' c #050503", +"~' c #A09D72", +"{' c #D9D59C", +"]' c #14130E", +"^' c #212224", +"/' c #979BA0", +"(' c #B1B4B8", +"_' c #726D1E", +":' c #484A4A", +"<' c #6B6C6C", +"[' c #6E681C", +"}' c #757780", +"|' c #2E2F32", +"1' c #595849", +"2' c #414136", +"3' c #B0AF93", +"4' c #E9E7C3", +"5' c #434339", +"6' c #91917C", +"7' c #3C3C33", +"8' c #676659", +"9' c #414138", +"0' c #777768", +"a' c #969585", +"b' c #46463F", +"c' c #5E5E54", +"d' c #5B5B53", +"e' c #21211E", +"f' c #BBBBAD", +"g' c #96968B", +"h' c #73736C", +"i' c #4D4D49", +"j' c #94958F", +"k' c #4A4A47", +"l' c #4C4D4B", +"m' c #424241", +"n' c #272827", +"o' c #C0C1C0", +"p' c #191919", +"q' c #313131", +"r' c #616262", +"s' c #424243", +"t' c #616263", +"u' c #808183", +"v' c #252526", +"w' c #5E5F62", +"x' c #4C4D50", +"y' c #525357", +"z' c #67686E", +"A' c #BCBFC9", +"B' c #8A8C98", +"C' c #030304", +"D' c #AFB0B3", +"E' c #727160", +"F' c #100F0B", +"G' c #D7D399", +"H' c #CBC793", +"I' c #12110D", +"J' c #18191B", +"K' c #878B90", +"L' c #B1B5BA", +"M' c #707270", +"N' c #515352", +"O' c #707378", +"P' c #9DA0A6", +"Q' c #A3A7AC", +"R' c #5F6160", +"S' c #515253", +"T' c #82868F", +"U' c #ADB2BB", +"V' c #999CA5", +"W' c #222325", +"X' c #555546", +"Y' c #989679", +"Z' c #E7E4B8", +"`' c #59594B", +" ) c #4E4E43", +".) c #676558", +"+) c #9B9A86", +"@) c #33332C", +"#) c #B5B59E", +"$) c #252420", +"%) c #282823", +"&) c #9C9C8B", +"*) c #46463E", +"=) c #7B7B6F", +"-) c #22221F", +";) c #3B3A35", +">) c #8C8C80", +",) c #8E8E83", +"') c #585851", +")) c #444540", +"!) c #242423", +"~) c #7A7A74", +"{) c #9B9C94", +"]) c #AEAFA7", +"^) c #101010", +"/) c #353533", +"() c #8B8B87", +"_) c #464744", +":) c #81817E", +"<) c #A7A9A5", +"[) c #6E6F6D", +"}) c #404040", +"|) c #5F6060", +"1) c #747474", +"2) c #919294", +"3) c #3B3C3C", +"4) c #A5A7AA", +"5) c #0C0C0C", +"6) c #232324", +"7) c #747579", +"8) c #797A7E", +"9) c #1E1E20", +"0) c #6D6E73", +"a) c #AAACB5", +"b) c #8A8C93", +"c) c #BEC0CB", +"d) c #B8BAC9", +"e) c #65666A", +"f) c #3B3B2E", +"g) c #2A291E", +"h) c #E8E4A6", +"i) c #D3D099", +"j) c #25241B", +"k) c #525458", +"l) c #ABAEB4", +"m) c #AAAEB4", +"n) c #B0B4BB", +"o) c #AFB4BC", +"p) c #626569", +"q) c #595748", +"r) c #9B9A7C", +"s) c #E5E2B7", +"t) c #D9D8B2", +"u) c #2A2923", +"v) c #1D1D19", +"w) c #403F36", +"x) c #12120F", +"y) c #969583", +"z) c #808071", +"A) c #848374", +"B) c #979687", +"C) c #131312", +"D) c #111110", +"E) c #4B4B45", +"F) c #7B7B72", +"G) c #30302D", +"H) c #373734", +"I) c #8F8F87", +"J) c #D7D8CD", +"K) c #393937", +"L) c #2C2D2B", +"M) c #777773", +"N) c #60615E", +"O) c #B3B3AF", +"P) c #DADCD7", +"Q) c #BABBB9", +"R) c #1C1C1C", +"S) c #0B0B0B", +"T) c #101111", +"U) c #86878A", +"V) c #414243", +"W) c #939498", +"X) c #D1D3DA", +"Y) c #75777B", +"Z) c #121213", +"`) c #9799A1", +" ! c #D2D4E0", +".! c #C5C8D8", +"+! c #252629", +"@! c #323235", +"#! c #C6C6C3", +"$! c #26251D", +"%! c #333325", +"&! c #E7E2A5", +"*! c #EBE7AB", +"=! c #636248", +"-! c #0E0F10", +";! c #4F5155", +">! c #94979C", +",! c #979BA2", +"'! c #5A5C61", +")! c #3D3D33", +"!! c #696853", +"~! c #B1AF8C", +"{! c #E7E6B8", +"]! c #B0AF92", +"^! c #E5E3BF", +"/! c #797865", +"(! c #504F43", +"_! c #626253", +":! c #6D6D5E", +"~ c #222220", +",~ c #AFB0A5", +"'~ c #31312F", +")~ c #1C1C1B", +"!~ c #747570", +"~~ c #858580", +"{~ c #060606", +"]~ c #1D1D1C", +"^~ c #444443", +"/~ c #7C7D7B", +"(~ c #323232", +"_~ c #464747", +":~ c #363636", +"<~ c #818385", +"[~ c #4C4C4D", +"}~ c #7B7B7F", +"|~ c #9DA0A4", +"1~ c #37383A", +"2~ c #66676C", +"3~ c #414245", +"4~ c #989AA2", +"5~ c #B6B8C6", +"6~ c #C1C1C3", +"7~ c #C3C3C2", +"8~ c #3E3D31", +"9~ c #0E0D0A", +"0~ c #99966E", +"a~ c #F5F1B1", +"b~ c #F0ECB0", +"c~ c #D4D09D", +"d~ c #888564", +"e~ c #484736", +"f~ c #2C2C21", +"g~ c #212019", +"h~ c #1F1F18", +"i~ c #22221B", +"j~ c #2B2B22", +"k~ c #3B3A2E", +"l~ c #555443", +"m~ c #7B795F", +"n~ c #A3A17E", +"o~ c #D2CFA4", +"p~ c #EBE7B8", +"q~ c #6C6B59", +"r~ c #403F34", +"s~ c #37362D", +"t~ c #3E3E34", +"u~ c #5B5A4C", +"v~ c #83826F", +"w~ c #B2B196", +"x~ c #E4E2C1", +"y~ c #DAD9B9", +"z~ c #57574B", +"A~ c #282722", +"B~ c #D5D4BA", +"C~ c #B5B39E", +"D~ c #494941", +"E~ c #626258", +"F~ c #A9A996", +"G~ c #E3E2CB", +"H~ c #ABAB9B", +"I~ c #383733", +"J~ c #282825", +"K~ c #4E4E47", +"L~ c #7D7D74", +"M~ c #96968A", +"N~ c #595952", +"O~ c #3A3A36", +"P~ c #929289", +"Q~ c #B7B8AD", +"R~ c #40403D", +"S~ c #242422", +"T~ c #3E3E3B", +"U~ c #71716D", +"V~ c #979791", +"W~ c #9FA09A", +"X~ c #555654", +"Y~ c #3D3E3C", +"Z~ c #30312F", +"`~ c #525351", +" { c #7B7B7A", +".{ c #AEAFAD", +"+{ c #D0D1D0", +"@{ c #5B5B5B", +"#{ c #262626", +"${ c #343535", +"%{ c #696A6B", +"&{ c #868789", +"*{ c #747677", +"={ c #434445", +"-{ c #333334", +";{ c #666669", +">{ c #A0A2A7", +",{ c #606164", +"'{ c #393A3C", +"){ c #29292B", +"!{ c #4D4E52", +"~{ c #74767C", +"{{ c #AFB2BB", +"]{ c #D2D5E3", +"^{ c #858790", +"/{ c #0C0D0D", +"({ c #353639", +"_{ c #C2C2C2", +":{ c #777666", +"<{ c #3A392A", +"[{ c #BCB889", +"}{ c #F5F0B4", +"|{ c #F3EFB4", +"1{ c #EBE8AF", +"2{ c #DBD8A4", +"3{ c #CAC798", +"4{ c #BFBB90", +"5{ c #BAB88D", +"6{ c #BEBB90", +"7{ c #CAC79B", +"8{ c #D9D7A7", +"9{ c #E8E6B3", +"0{ c #EFECB9", +"a{ c #C7C4A3", +"b{ c #C2C0A0", +"c{ c #C2C0A1", +"d{ c #C5C4A4", +"e{ c #D7D5B4", +"f{ c #E7E6C2", +"g{ c #E3E2C1", +"h{ c #B2B199", +"i{ c #BCBBA2", +"j{ c #DAD9BD", +"k{ c #D6D5BD", +"l{ c #BFBEAA", +"m{ c #D7D7BF", +"n{ c #D6D5C1", +"o{ c #B7B7A7", +"p{ c #AEAE9F", +"q{ c #C3C3B3", +"r{ c #DDDDCC", +"s{ c #D8D8C8", +"t{ c #BCBCAF", +"u{ c #B9B9AD", +"v{ c #C1C1B5", +"w{ c #DCDDD0", +"x{ c #D5D5CA", +"y{ c #ABABA3", +"z{ c #BBBCB4", +"A{ c #D3D4CB", +"B{ c #565653", +"C{ c #363635", +"D{ c #B9BAB5", +"E{ c #B8B9B4", +"F{ c #B0B2AE", +"G{ c #C5C6C3", +"H{ c #D9DAD7", +"I{ c #D6D7D6", +"J{ c #BCBEBE", +"K{ c #A8A9A9", +"L{ c #AEAFB1", +"M{ c #CACCCE", +"N{ c #BDBFC2", +"O{ c #B2B4B8", +"P{ c #B3B4B9", +"Q{ c #CBCED4", +"R{ c #CCCED5", +"S{ c #B6B9C0", +"T{ c #B3B5BD", +"U{ c #A5A6AE", +"V{ c #B8B9C3", +"W{ c #D1D4DE", +"X{ c #A3A5AE", +"Y{ c #343538", +"Z{ c #6C6D71", +"`{ c #49483B", +" ] c #353427", +".] c #93916C", +"+] c #DFDAA4", +"@] c #D7D8CF", +"#] c #171716", +"$] c #949490", +"%] c #D4D5CF", +"&] c #C3C4CE", +"*] c #818288", +"=] c #2F3033", +"-] c #404144", +";] c #B6B6B8", +">] c #B7B7AE", +",] c #5F5E50", +"'] c #11110D", +")] c #2A291F", +"!] c #595842", +"~] c #7B795C", +"{] c #8F8D6B", +"]] c #989572", +"^] c #9B9976", +"/] c #9B9876", +"(] c #9A9876", +"_] c #9A9877", +":] c #999777", +"<] c #999778", +"[] c #999779", +"}] c #989779", +"|] c #97967A", +"1] c #97967B", +"2] c #96957C", +"3] c #95947E", +"4] c #94947F", +"5] c #949380", +"6] c #939280", +"7] c #939281", +"8] c #929281", +"9] c #929282", +"0] c #929182", +"a] c #929183", +"b] c #919183", +"c] c #919084", +"d] c #909084", +"e] c #909085", +"f] c #909086", +"g] c #8E8F88", +"h] c #8D8E88", +"i] c #888883", +"j] c #686864", +"k] c #636360", +"l] c #696966", +"m] c #888985", +"n] c #8C8D8A", +"o] c #8C8D8B", +"p] c #8B8D8B", +"q] c #8B8C8B", +"r] c #8B8C8C", +"s] c #8A8B8D", +"t] c #898B8D", +"u] c #898B8E", +"v] c #7E8083", +"w] c #4F5053", +"x] c #262628", +"y] c #57575A", +"z] c #B1B1B3", +"A] c #AAAA9F", +"B] c #797869", +"C] c #515043", +"D] c #333329", +"E] c #23221B", +"F] c #1B1B15", +"G] c #181712", +"H] c #171712", +"I] c #171713", +"J] c #171614", +"K] c #161614", +"L] c #151615", +"M] c #151515", +"N] c #151516", +"O] c #181919", +"P] c #1E1F1F", +"Q] c #2E2F30", +"R] c #494A4B", +"S] c #717173", +"T] c #A4A5A7", +". . . . . . . . . . . . . . + @ # $ % & & & * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = - ; > , ' . . . . . . . . . . . . . . ", +". . . . . . . . . . . ) ! ~ { ] ^ / ( _ : < < < [ } } | 1 2 2 2 3 4 4 5 5 5 6 7 8 8 9 0 a b c c d d d e f g h h h i i j j k l m n n n o o p q r s s s t u v w x y y z A A B C C D E F G H H I J K L M N O P . . . . . . . . . . . ", +". . . . . . . . . Q R S T U V W X Y Z ` ...+.+.@.#.$.%.&.*.=.-.;.>.>.,.'.'.).!.~.~.{.].^.^././.(._.:.<.[.}.|.1.2.3.3.4.4.5.6.7.8.9.9.0.a.b.b.c.d.d.e.f.g.g.h.h.i.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.x.y.z.A.B.C.D.. . . . . . . . . ", +". . . . . . . . E.F.G.H.I.I.J.W X Y Z ` K...+.+.@.#.$.$.&.*.=.-.;.>.>.,.,.'.).!.~.~.{.L.^.^.M./.N._.:.<.[.}.|.O.2.3.3.P.4.5.6.7.8.9.9.0.0.b.b.Q.d.d.d.e.g.g.h.h.i.i.j.k.l.m.n.n.p.q.R.s.t.u.v.w.S.x.x.T.U.V.W.X.Y.. . . . . . . . ", +". . . . . . Z.`. +.+++@+#+I.$+%+&+*+=+-+;+>+,+'+)+!+$.$.%.*.=.=.-.>.>.,.,.~+{+{+]+~.{.L.^+/+M./.N._._.<.[.(+|.|.1.3.3.3.4.5.6.7.8.9.9.0.0.b.b.Q.c.d.d.e.g.g._+h.i.i.:+k.l.m.n.n.o.q.R.r.t.u.v.w.S.x.x.T.T.U.U.<+[+}+|+. . . . . . ", +". . . . . 1+2+3+4+5+++@+6+7+8+9+0+a+b+c+d+e+f+X.* g+h+i+%.*.=.=.-.>.>.j+,.k+{+l+m+n+{.L.o+p+q+r+N._.s+t+[.(+}.|.1.2.3.3.4.5.6.6.8.9.9.0.0.u+b.Q.c.d.d.e.f.g.v+h.i.i.i.k.l.w+n.n.o.q.R.r.t.u.v.v.S.x.x.T.T.U.U.U.x+y+z+A+. . . . . ", +". . . . Z.2+B+C+D+5+E+F+G+H+I+J+K+L+M+N+O+N+P+Q+R+S+X.T+U+V+=.=.-.>.>.>.,.W+{+X+7 Y+{.Z+`+ @.@`++@@@#@$@%@&@*@=@-@;@>@=@,@'@=@=@)@!@=@=@~@{@b.Q.c.d.d.e.f.g.v+h.]@i.i.j.l.l.m.n.o.p.R.r.t.u.v.v.S.x.x.^@T.U.U.U.U./@(@z+|+. . . . ", +". . . . _@3+:@<@D+[@}@|@1@2@3@4@5@6@6@6@7@8@8@8@9@0@a@b@c@d@e@=.-.;.>.>.,.W+{+f@g@h@~.i@j@k@l@m@{+n@o@p@{+q@r@s@t@u@v@w@x@y@z@G+A@B@C@D@E@F@b.b.c.d.d.e.f.g.v+h.h.i.i.j.l.l.m.n.o.p.q.r.s.t.v.v.w.x.x.G@T.U.U.U.U.U./@y+}+. . . . ", +". . . H@I@J@K@<@L@M@N@O@P@Q@R@S@T@U@6@6@7@8@V@W@X@Y@Z@`@ #.#+#@#-.;.>.>.,.##{+f@g@h@~.{.$#%#&#*#{+=#-#;#{+>#,#'#)#!#~#{#]#^#/#(#_##@:#<#o [#b.b.c.d.d.}#e.g.g.h.h.i.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.S.x.G@T.U.U.U.U.U.U.x+[+|#. . . ", +". . 1#F.2#3#4#5#M@6#7#8#9#0#a#b#c#d#e#6@7@8@f#g#h#i#j#k#l#m#n#o#p#-.>.>.,.##{+f@g@q#r#s#t#u#&#v#{+w#x#y#{+z#A#B#C#!#D#E#F#^#G#H#I#{+J#K#L#0.b.b.Q.d.d.d.e.g.g._+h.i.i.j.k.l.m.n.n.o.q.R.s.t.u.v.w.S.x.x.T.T.U.U.U.U.U.U.<+X.M#. . ", +". . N#O#P#3#Q#R#S#T#U#V#W#X#Y#Z#`# $e#6@7@8@.$+$@$#$$$8@k#%$&$*$=$-$>.>.,.;${+>$,$'${+)$!$~${$]${+^$/$(${+_$:$<$[$}$|$1$]#2$3$[$4$5$6$7$8$0.b.b.Q.c.d.d.e.g.g.v+h.i.i.i.k.l.m.n.n.o.q.R.r.t.u.v.w.S.x.x.T.T.U.U.U.U.U.U.U.W.9$. . ", +". 0$F.a$P#b$c$d$e$f$g$h$i$j$k$l$m$n$e#6@o$8@7@p$k$q$r$s$k#t$u$v$w$x$y$>.>.~+{+{+{+{+{+z${+{+!${+{+{+A$B${+{+C$D$_#E$#@s@{+F${+{+G$H$X.{+I$J$u+b.Q.c.d.d.e.f.g.v+h.i.i.i.j.l.l.m.n.o.p.R.r.t.u.v.v.S.x.x.^@T.U.U.U.U.U.U.U.K$B.P . ", +". L$M$P#P#N$O$P$Q$R$h$S$T$U$V$W$X$Y$Z$7@6@`$ %.%+%@%#%$%%%t$&%*%=%-%;%>.>.>%,%'%)%!%~%{%]%^%/%(%w#_%:%<%[%}%|%1%2%3%4%5%6%7%8%9%0%a%b%c%d%e%a.b.b.c.d.d.e.f.g.v+h.h.i.i.j.l.l.m.n.o.p.R.r.t.t.v.v.f%x.x.G@T.U.U.U.U.U.U.U.U.g%h%. ", +". i%j%P#P#k%l%m%n%o%p%q%r%s%t%u%v%w%x%y%z%Z#s%A%B%C%D%E%F%G%H%H%I%J%K%y$>.,.L%;$M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z%`% &.&+&@&#&$&%&&&*&=&-&;&>&,&'&a.b.b.c.d.d.e.f.g.g.h.h.i.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.x.G@T.U.U.U.U.U.U.U.U.)&N . ", +"!&~&{&]&^&/&(&_&:&<&[&}&|&t%1&v%2&3&4&5&6&7&8&s%9&0&V$a&b&c&d&e&f&#@g&h&>.,.,.'.).!.i&~.{.L.^.^.M./.N._.:.<.[.}.|.O.2.3.3.P.4.5.6.7.8.9.9.0.0.b.b.Q.d.d.d.e.g.g.h.h.i.i.j.k.l.m.n.n.p.q.R.s.t.u.v.w.S.x.x.T.U.U.U.U.U.U.U.U./@M j&", +"k&l&m&]&n&X.o&p&q&b&r&s&t&u&v%2&v&w&x&y&6@z&A&8&B&A%C&D&E&v%F&G&H&X.I&J&>.,.,.K&{+{+L&~.{.L.^.^.M./.N._._.<.[.(+|.M&{+N&3.O&{+P&6.7.8.9.9.0.0.b.b.Q.c.d.d.e.g.g.v+h.i.i.:+k.l.m.n.n.o.q.R.r.t.u.v.w.S.x.x.T.T.U.U.U.U.U.U.U.U.Q&R&", +"S&T&m&]&U&V&W&X&Y&Z&`& *.*v%+*v&w&@*9#6@e#7@z&A&8&B&#*$*%*t&&***&%=*-*;*>.j+,.>*,*X.'*)*{.L.].^.M./.N._._.<.[.(+!*~*{*]*^*/*(*_*:*6.<*[*}*0.0.u+b.Q.c.d.d.e.f.g.v+h.i.i.i.k.l.w+n.n.o.q.R.r.t.u.v.v.S.x.x.T.T.U.U.U.U.U.U.U.U.|*1*", +"2*3*m&4*5*6*7*R$8*9*0*a*b*c*d*e*f*g*h*i*j*k*7@z&l*m*n*o*p*%%q*H%&%r*s*t*y$>.,.u*_#v*_#w*x*L.y*+@z*A*`++@B*C*D*E*X.F*G*H*I*s@*$J*K*L*M*{+N*O*P*u+b.Q.c.d.d.e.f.g.v+h.]@i.i.j.l.l.m.n.o.p.R.r.t.u.v.v.S.x.x.G@T.U.U.U.U.U.U.U.U.Q*R*", +"S*T*m&m&U*V*_&W*8*X*X*h$V#Y*Z*@*9#`*{+{+{+ =.=7@+=@=#=$=%=k#t$&%&%&=E**===>.,.-=;=>=,='=)={.!={+~={=]={+^=/=N (=%@_=_#H*I*:={+z@<==%[=}=|={+1=2=b.b.c.d.d.e.f.g.v+h.h.i.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.x.G@T.U.U.U.U.U.U.U.U.3=- ", +"~&4=m&m&5=6=7=9*8*X*X*h$h$V#8=g$9=0={+{+{+a=b=7@8@9@c=%=k#k#k#&%&%d=e=f=g=>.h=i=j=k=l+{ l=m=n={+o=p=q={+r=s=t=u=v=w={*x=^*v@{+y=z=A=B@B=C=D@D=E=b.b.Q.d.d.}#e.g.g.h.h.i.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.S.x.G@T.U.U.U.U.U.U.U.U.F== ", +"S*G=H=m&I=J=K=9*8*X*X*h$h$L=M=9#9=N={+{+{+O=P=7@Q=R=S=8@k#k#k#t$&%T=U=f=g=>.V=W=c@X=Y={+Z=`= -{+.-p=+-{+@-#-y*$-%-|.&-s@I**-{+=---G$;-;&9.>-,-'-b.b.Q.c.d.d.e.g.g._+h.i.i.j.k.l.m.n.n.o.q.R.s.t.u.v.w.S.x.x.T.T.U.U.U.U.U.U.U.)-b@", +"!-~-H=m&{-]-^-W*8*8*X*X*/-(-_-:-9#9=<-[-}-|-1-2-3-4-5-6-%=k#k#t$&%7-8-9-==0-a-b-c-d-e-f-g-h-i-{+j-k-l-{+=#m-{+n-o-p-H*s@q-r-{+s-t-_#u-v-w-#@x-y-u+b.Q.c.d.d.e.g.g.v+h.i.i.i.k.l.w+n.n.o.q.R.r.t.u.v.w.S.x.x.T.T.U.U.U.U.U.U.U.z-A-", +"B-C-H=m&D-E-F-R$G-H-I-J-K-L-M-N-:-9#O-P-Q-O+R-3-S-T-U-V-W-X-Y-%%&%R*Z-`-y$S {+.#!% ;.;$@{++;@;z${+N*+;{+=%#;$;{+$@=%G${+%;F.{+_#&;*;{+=%{+=;-;e%u+b.Q.c.d.d.e.f.g.v+h.i.i.i.j.l.l.m.n.o.p.R.r.t.u.v.v.S.x.x.^@T.U.U.U.U.U.U.U.;;>;", +",;';H=m&);_#!;~;{;8&];^;/;(;L-M-N-:-9#6@6@_;3-S-T-F$W$:;<;[;};|;1;{+2;3;;.4;5;6;7;8;9;0;a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;&-q;r;s;t;u;v;w;x;y;z;L#a.b.b.c.d.d.e.f.g.v+h.h.i.i.j.l.l.m.n.o.p.q.r.t.t.v.v.w.x.x.G@T.U.U.U.U.U.U.U.A;B;", +"C;~ D;m&E;F;G;H;I;J;K;}&K;L;M;L-N;N-O;P;Q;3-S-R;S;T;U;V;W;X;Y;G&Z;*$`; >;.>..>+>@>#>).$>%>%>&>*>=>->;>>>,>'>)>!>~>{>]>^>/>(>/*_>:><>[>}>|>1>2>0.a.b.b.c.d.d.}#f.g.g.h.h.i.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.S.x.G@T.U.U.U.U.U.U.3>= 4>", +". 5>6>H=m&7>8>9>0>M=a>b>c>d>e>f>g>h>i>j>k>l>L-m>n>o>p>q>r>s>z.t>u>v>w>x>-.>.>.,.,.'.).!.i&~.{.L.^.^.M./.N._.:.<.[.}.|.O.2.3.3.3.4.5.6.7.8.9.9.0.0.b.b.Q.d.d.d.e.g.g.h.h.i.i.j.k.l.m.n.n.p.q.R.s.t.u.v.w.S.x.x.T.T.U.U.U.U.U.)-y>. ", +". z>A>H=m&B>C>D>E>F>9*G>H>I>];J>K>L>M>N>6@O>P>Q>W;R>S>T>U>V>Z@W>E$X>Y>=.-.~+{+{+{+* >$Z>!.~.{.L.].^.M./.N._._.<.[.(+|.|.1.3.3.3.4.`>{+{+ ,9.9.0.0.b.b.Q.c.d.d.e.g.g.v+h.i.i.:+k.l.m.n.n.o.q.R.r.t.u.v.w.S.x.x.T.T.U.U.U.U.U..,+,. ", +". @,_##,m&]&$,%,&,*,8*X*=,-,k$;,>,2-n$O-6@5@,,',k$),!,~,9@8@{,],^,/,e@=.-.(,{+_,:,<,,*n#[,h@{.L.},^.M././._._.<.[.(+}.|.1.|,1,3.4.2,3,{+4, ,9.0.5,u+b.Q.c.d.d.e.f.g.v+h.i.i.6,7,l.w+n.n.o.p.R.r.t.u.v.v.S.x.x.^@T.U.U.U.U.8,_#9,. ", +". . 0,a,m&m&b,c,d,e,f,X*X*g,h,i,j,k,9=6@6@6@l,m,n,o,p,c=8@q,r,E*s,t,=.=.-.u,{+v,w,x,y,$@z,P%A,8-_#B,C,D,E,F,G,H,G,F,I,J,K,+@X.L,M,4.N,{+O, ,!@P,{+Q,R,S,T,U,V,W,X,Y,Z,h.`,6#X. '.'+'@'#'$'%'&'*'='-';'>','x.x.G@T.U.U.U.U.(@''. . ", +". . )'!'~'m&P#{']'^'/'a*X*('_'v%:'@*9=6@6@6@<'[&['}'.=8@M+|'H*1'| V+*.=.-.u,{+2'3'4'4'5'f-6'c@7'8'9'F.0'p+{+s*a'_=_#b'c'$@d',@e']*f'g'{+h'K#X.=;i'P,C@j'k'{+= l'm'= n'o'p'q'r's'C@t'u'N X.v'w'{+x'y'='z'A'x.x.G@T.U.U.U.B'C'D'. . ", +". . . E'F'G'P#P#H'I'J'K'L'h$M'N'O'P'9=6@6@6@Q'R'S'T'U'V'W's@X'Y'Z'&.*.=.-.u,{+2'3',.'.`'$@ )f-.)]%+)@)F,#)$)%)&)*)'#=)-);)&->),)O$')t;{+h'))!)~){)])^)/)(){+_):)<)[){+})N |)1)2)3)X,4)5)6)7)8){+9)0)a)b)c)S.x.x.T.U.U.d)|@e). . . ", +". . . . f)g)h)P#b$i)j)= k)_;V#l)m)n)9=6@6@6@6@o),,G%p)M E*q)r)s)$.%.*.=.=.t){+2'3',.'.u)v)w)S f-*$x)x)U=y)z)O$A)N c'B)C)= ,*D)D)d$E)F){+h'G)H)I)J)0.K)L)M){+N)O)P)Q){+R)_#S)^) 'T); U)='V)W)X)Y)Z){+='`) !S.x.x.T.T..!+!@!. . . . ", +". . . . #!$!%!&!P#3#*!=!~ -!;!>!g$9=9=6@6@6@e#,!'!Z){ )!!!~!{!$.$.%.*.=.=.t){+2']!^!/!{+(!_!* :!~,~^)#@'~c!)~!~~~{+{~]~W,{+^~/~(~c!_~:~= <~[~X.5)}~|~{+1~2~{+3~4~S.x.x.5~r,y!6~. . . . . ", +". . . . . . 7~8~9~0~a~K@<@b~c~d~e~f~g~h~i~j~k~l~m~n~o~p~+.+.@.$.$.%.&.=.=.q~r~s~O!t~u~v~w~x~y~z~A~'=/%+~B~/.C~D~E~F~G~}.H~I~J~K~L~M~N~O~[=P~Q~R~S~T~U~V~W~{+X~Y~Z~`~ {.{+{@{#{${%{&{*{={-{;{>{,{'{){!{~{{{w.]{^{/{({_{. . . . . . ", +". . . . . . . . :{i%<{[{<@D+}{|{1{2{3{4{5{6{7{8{9{0{ ...+.+.@.#.$.%.&.*.=.-.a{b{b{c{d{e{f{!.~.g{%>h{i{j{/./.N.k{l{m{[.}.|.n{o{p{q{r{s{t{u{v{w{x{C=y{z{A{B{{+C{D{E{F{G{H{h.I{J{K{L{M{+'N{O{P{Q{R{S{T{U{V{W{X{Y{N Z{. . . . . . . . ", +". . . . . . . . . 1+`{_# ].]+]5+++@+I.I.J.W X Y Z ` . .+.+.@.#.$.$.%.*.=.-.-.>.>.,.,.'.).!.i&~.{.L.^.^.M./.N._.:.<.[.}.|.O.2.3.3.3.4.5.6.7.8.9.9.0.0.@]#]d$d$$]%]e.g.g._+h.i.i.j.k.l.m.n.n.p.q.R.s.&]*]=]_#-];]. . . . . . . . . ", +". . . . . . . . . . . >],]']F.)]!]~]{]]]^]/]/](]_]:]<]<]<]<][]}]Y'Y'|]1]1]1]1]2]2]k+k+k+k+3]3]4] c #0D0B0D", +", c #0A0B0A", +"' c #0A0A0B", +") c #0B0A0B", +"! c #0B0A0A", +"~ c #0B0B0A", +"{ c #0A0A0C", +"] c #0A0A0A", +"^ c #090A0A", +"/ c #0A090C", +"( c #0B0A0C", +"_ c #09090B", +": c #090A0C", +"< c #0B0A0D", +"[ c #0A0A0D", +"} c #0B090C", +"| c #0A0B0D", +"1 c #0B0C0E", +"2 c #050505", +"3 c #020202", +"4 c #040604", +"5 c #1E201F", +"6 c #646768", +"7 c #6E7374", +"8 c #717676", +"9 c #737979", +"0 c #767B7B", +"a c #797D7E", +"b c #7D7E80", +"c c #7D7E81", +"d c #7D7F81", +"e c #7D8083", +"f c #7D8284", +"g c #7F8183", +"h c #808182", +"i c #808183", +"j c #7E8183", +"k c #7D8183", +"l c #7C8082", +"m c #7B7F82", +"n c #7A7E82", +"o c #797D81", +"p c #777D7F", +"q c #767B7E", +"r c #767B7D", +"s c #757A7D", +"t c #747A7C", +"u c #74797C", +"v c #73797B", +"w c #727879", +"x c #717677", +"y c #707676", +"z c #707575", +"A c #6F7575", +"B c #6E7474", +"C c #6D7373", +"D c #6E7174", +"E c #6E7175", +"F c #6D7073", +"G c #6C6F72", +"H c #6B6E6F", +"I c #6A6E6E", +"J c #6A6D6F", +"K c #6A6D6E", +"L c #696D6D", +"M c #686C6E", +"N c #686B6D", +"O c #686B6C", +"P c #666A6B", +"Q c #65696A", +"R c #646869", +"S c #636769", +"T c #636668", +"U c #626668", +"V c #626667", +"W c #626567", +"X c #626566", +"Y c #616466", +"Z c #5F6264", +"` c #5D6062", +" . c #5C5F62", +".. c #5B5E60", +"+. c #5B5F61", +"@. c #5C6062", +"#. c #5D6163", +"$. c #5B6062", +"%. c #5C6063", +"&. c #5B6064", +"*. c #5A5F62", +"=. c #595D62", +"-. c #595D60", +";. c #595D5F", +">. c #5A5E60", +",. c #5A5D60", +"'. c #595C5F", +"). c #595B5F", +"!. c #595C5E", +"~. c #5A5C5F", +"{. c #595B5E", +"]. c #585C5E", +"^. c #585D5F", +"/. c #575D5E", +"(. c #575D5F", +"_. c #585E5F", +":. c #575B5D", +"<. c #545759", +"[. c #232424", +"}. c #040404", +"|. c #050604", +"1. c #36393A", +"2. c #9EA5A9", +"3. c #A3AEB2", +"4. c #ADB9BC", +"5. c #B6C2C6", +"6. c #C0CDCF", +"7. c #C8D6D9", +"8. c #CDDDE2", +"9. c #D0E1E5", +"0. c #D3E3E7", +"a. c #DAE8ED", +"b. c #E1ECF2", +"c. c #E1EDF2", +"d. c #E0ECF1", +"e. c #DDEDEF", +"f. c #DEEEF0", +"g. c #DFEFF1", +"h. c #DBEDEE", +"i. c #D8EBEE", +"j. c #D7EAEE", +"k. c #D7E9ED", +"l. c #D5E7EB", +"m. c #D6E5E9", +"n. c #D4E2E6", +"o. c #D2DFE4", +"p. c #CDDAE0", +"q. c #CCD8DD", +"r. c #CAD6DB", +"s. c #C7D3D8", +"t. c #C5D0D6", +"u. c #C1CCD2", +"v. c #BECACF", +"w. c #BCC7CD", +"x. c #B6C3C6", +"y. c #B3C0C3", +"z. c #B2BEC1", +"A. c #AFBBBE", +"B. c #AEB9BD", +"C. c #ABB7BA", +"D. c #A8B5B8", +"E. c #A6B1B5", +"F. c #A4AEB4", +"G. c #A4AEB5", +"H. c #A2ABB1", +"I. c #9DA7AC", +"J. c #9AA3A7", +"K. c #98A2A6", +"L. c #99A2A7", +"M. c #969FA3", +"N. c #949EA2", +"O. c #939CA0", +"P. c #929C9F", +"Q. c #8F9A9C", +"R. c #8E989B", +"S. c #8C9699", +"T. c #899296", +"U. c #879094", +"V. c #838C90", +"W. c #80888C", +"X. c #7D858A", +"Y. c #7C8589", +"Z. c #7B8388", +"`. c #788185", +" + c #768084", +".+ c #757F82", +"++ c #747D81", +"@+ c #727C7E", +"#+ c #717B7D", +"$+ c #707A7C", +"%+ c #6D777A", +"&+ c #6A7477", +"*+ c #697376", +"=+ c #687375", +"-+ c #687274", +";+ c #697275", +">+ c #6B7476", +",+ c #6B7477", +"'+ c #6B7478", +")+ c #697177", +"!+ c #677075", +"~+ c #676F74", +"{+ c #656E72", +"]+ c #646D70", +"^+ c #636C6F", +"/+ c #626C6E", +"(+ c #616A6D", +"_+ c #60696C", +":+ c #5F676B", +"<+ c #5F6569", +"[+ c #5E6267", +"}+ c #5C6166", +"|+ c #5D6267", +"1+ c #5C6266", +"2+ c #5B6366", +"3+ c #5A6266", +"4+ c #5A6165", +"5+ c #586164", +"6+ c #586265", +"7+ c #576264", +"8+ c #5A6265", +"9+ c #3A3B3C", +"0+ c #070707", +"a+ c #040403", +"b+ c #2D3133", +"c+ c #919BA0", +"d+ c #9CA9AF", +"e+ c #A8B7BB", +"f+ c #B2C3C7", +"g+ c #BDCDD1", +"h+ c #C5D5DA", +"i+ c #CADAE2", +"j+ c #CEDEE6", +"k+ c #D1E2E9", +"l+ c #D6E5EC", +"m+ c #D9E8EF", +"n+ c #DCEAF2", +"o+ c #DCEBF2", +"p+ c #DBEBF0", +"q+ c #D9EAEF", +"r+ c #DAEBEF", +"s+ c #D7E8ED", +"t+ c #D4E6EC", +"u+ c #D1E4EB", +"v+ c #CFE2E9", +"w+ c #CDE0E7", +"x+ c #CEE0E6", +"y+ c #CCDDE3", +"z+ c #C9DAE0", +"A+ c #C6D7DD", +"B+ c #C5D3DB", +"C+ c #C3D2D9", +"D+ c #C0CFD6", +"E+ c #BBCAD1", +"F+ c #B8C7CE", +"G+ c #B7C5CD", +"H+ c #B6C4CB", +"I+ c #B2C2C7", +"J+ c #B0C1C5", +"K+ c #AFC0C3", +"L+ c #ACBCBF", +"M+ c #AAB9BD", +"N+ c #A5B4B8", +"O+ c #A1AFB4", +"P+ c #9FACB2", +"Q+ c #9DAAB1", +"R+ c #9AA7AE", +"S+ c #96A3AA", +"T+ c #94A2A7", +"U+ c #93A0A5", +"V+ c #919FA4", +"W+ c #919EA3", +"X+ c #8E9CA0", +"Y+ c #8E9BA0", +"Z+ c #8D9A9F", +"`+ c #89979B", +" @ c #869396", +".@ c #849295", +"+@ c #849195", +"@@ c #828E92", +"#@ c #7F8A90", +"$@ c #7C878D", +"%@ c #7A858A", +"&@ c #768288", +"*@ c #768186", +"=@ c #747F85", +"-@ c #737E84", +";@ c #717E83", +">@ c #707D82", +",@ c #6E7B80", +"'@ c #6C7A7E", +")@ c #69767A", +"!@ c #677477", +"~@ c #667376", +"{@ c #647276", +"]@ c #637074", +"^@ c #616E72", +"/@ c #606C70", +"(@ c #5E6A6E", +"_@ c #606A6F", +":@ c #606B70", +"<@ c #606A6E", +"[@ c #5E696D", +"}@ c #5F6A6C", +"|@ c #606B6E", +"1@ c #616B6E", +"2@ c #5F6A6D", +"3@ c #5C676B", +"4@ c #5B6669", +"5@ c #5C676A", +"6@ c #5A6669", +"7@ c #596569", +"8@ c #586468", +"9@ c #586267", +"0@ c #576065", +"a@ c #575E64", +"b@ c #555D63", +"c@ c #565D62", +"d@ c #555C61", +"e@ c #555D61", +"f@ c #565B62", +"g@ c #565A61", +"h@ c #535A5F", +"i@ c #525A5E", +"j@ c #51595D", +"k@ c #50585C", +"l@ c #4D565B", +"m@ c #4D565A", +"n@ c #4D575A", +"o@ c #4E575A", +"p@ c #2C2E2F", +"q@ c #060607", +"r@ c #040303", +"s@ c #2D3032", +"t@ c #919B9F", +"u@ c #9DAAAE", +"v@ c #ABB9BC", +"w@ c #B4C5CA", +"x@ c #BDCDD2", +"y@ c #ACB8BB", +"z@ c #878F95", +"A@ c #848D92", +"B@ c #848D93", +"C@ c #879095", +"D@ c #889196", +"E@ c #889197", +"F@ c #889297", +"G@ c #899297", +"H@ c #868F94", +"I@ c #858F94", +"J@ c #848F94", +"K@ c #838E93", +"L@ c #828D92", +"M@ c #828C91", +"N@ c #818B90", +"O@ c #808B90", +"P@ c #80898E", +"Q@ c #7E878D", +"R@ c #7C868B", +"S@ c #7A8489", +"T@ c #788186", +"U@ c #778085", +"V@ c #777F85", +"W@ c #768085", +"X@ c #7D8A8D", +"Y@ c #A6B5B7", +"Z@ c #B2C3C4", +"`@ c #B0BFC1", +" # c #AEBBBF", +".# c #AAB4BA", +"+# c #868F95", +"@# c #6E777A", +"## c #6A7377", +"$# c #677073", +"%# c #626B6E", +"&# c #616A6C", +"*# c #606A6C", +"=# c #60696B", +"-# c #5F696B", +";# c #5E686B", +"># c #5E6769", +",# c #5C6568", +"'# c #596265", +")# c #565F62", +"!# c #555E60", +"~# c #535C5F", +"{# c #525B5D", +"]# c #525A5D", +"^# c #525B5E", +"/# c #515B5D", +"(# c #535C5E", +"_# c #5F696D", +":# c #6B757A", +"<# c #646F74", +"[# c #636E73", +"}# c #677175", +"|# c #565E62", +"1# c #4E5659", +"2# c #4E5558", +"3# c #4D5457", +"4# c #4D5557", +"5# c #4E5557", +"6# c #4C5456", +"7# c #4A5254", +"8# c #495153", +"9# c #4A5354", +"0# c #4A5355", +"a# c #4A5356", +"b# c #495154", +"c# c #484F52", +"d# c #474E51", +"e# c #474E50", +"f# c #484D50", +"g# c #494E51", +"h# c #4A4E52", +"i# c #494D52", +"j# c #4A4D52", +"k# c #4B4F53", +"l# c #4D5155", +"m# c #555A5D", +"n# c #5D6266", +"o# c #51575B", +"p# c #50565A", +"q# c #505559", +"r# c #2B2D2F", +"s# c #040406", +"t# c #2C2F31", +"u# c #8F989C", +"v# c #99A6AB", +"w# c #A5B3B8", +"x# c #ADBDC4", +"y# c #ADBABF", +"z# c #4D5454", +"A# c #1C1F1F", +"B# c #171A1B", +"C# c #181B1C", +"D# c #17191B", +"E# c #181A1B", +"F# c #18191B", +"G# c #171A1A", +"H# c #181A1C", +"I# c #181B1B", +"J# c #17191A", +"K# c #1D2123", +"L# c #5D6467", +"M# c #B5C0C2", +"N# c #ADBBBE", +"O# c #A9B4B8", +"P# c #787F83", +"Q# c #313538", +"R# c #161919", +"S# c #171A19", +"T# c #161918", +"U# c #151817", +"V# c #151818", +"W# c #161818", +"X# c #141717", +"Y# c #141716", +"Z# c #141817", +"`# c #2D3132", +" $ c #61686D", +".$ c #6D787C", +"+$ c #677074", +"@$ c #424649", +"#$ c #202222", +"$$ c #171819", +"%$ c #171818", +"&$ c #161819", +"*$ c #16181A", +"=$ c #151819", +"-$ c #171919", +";$ c #18181B", +">$ c #18191A", +",$ c #191A1C", +"'$ c #191B1D", +")$ c #1B1C1E", +"!$ c #313335", +"~$ c #606467", +"{$ c #565B5F", +"]$ c #53585C", +"^$ c #54595C", +"/$ c #2C2F32", +"($ c #040506", +"_$ c #95A2A8", +":$ c #A1AEB6", +"<$ c #A6B4BC", +"[$ c #798286", +"}$ c #141616", +"|$ c #000100", +"1$ c #000000", +"2$ c #010000", +"3$ c #020001", +"4$ c #2D3234", +"5$ c #B2BDC0", +"6$ c #ACBABE", +"7$ c #9AA5A9", +"8$ c #3E4345", +"9$ c #070808", +"0$ c #010101", +"a$ c #000001", +"b$ c #525659", +"c$ c #798586", +"d$ c #596163", +"e$ c #17181B", +"f$ c #020102", +"g$ c #010001", +"h$ c #010102", +"i$ c #1A1B1C", +"j$ c #595E62", +"k$ c #555A5E", +"l$ c #565B5E", +"m$ c #2F3134", +"n$ c #040405", +"o$ c #040203", +"p$ c #2A2F30", +"q$ c #869195", +"r$ c #8F9DA2", +"s$ c #9BA9B0", +"t$ c #A0ADB5", +"u$ c #61686B", +"v$ c #0E0F0E", +"w$ c #010100", +"x$ c #010202", +"y$ c #000101", +"z$ c #000202", +"A$ c #000201", +"B$ c #000002", +"C$ c #010203", +"D$ c #020101", +"E$ c #292D2E", +"F$ c #AFBABE", +"G$ c #A9B7BD", +"H$ c #929CA1", +"I$ c #333738", +"J$ c #050403", +"K$ c #020204", +"L$ c #010104", +"M$ c #000102", +"N$ c #010103", +"O$ c #000103", +"P$ c #000104", +"Q$ c #010105", +"R$ c #000003", +"S$ c #000204", +"T$ c #060608", +"U$ c #515658", +"V$ c #808C8D", +"W$ c #555C5F", +"X$ c #121215", +"Y$ c #010205", +"Z$ c #010201", +"`$ c #000203", +" % c #040304", +".% c #313132", +"+% c #838588", +"@% c #5B5F64", +"#% c #575B60", +"$% c #585C60", +"%% c #2E3034", +"&% c #040302", +"*% c #28302F", +"=% c #808E91", +"-% c #8A989E", +";% c #97A5AB", +">% c #9CAAB0", +",% c #676F71", +"'% c #0E1110", +")% c #161615", +"!% c #979A9A", +"~% c #B9C0C2", +"{% c #BAC2C3", +"]% c #BBC3C4", +"^% c #BCC3C4", +"/% c #BCC2C4", +"(% c #BDC2C4", +"_% c #BBC2C3", +":% c #B9C1C2", +"<% c #B8C0C1", +"[% c #B9C0C1", +"}% c #B8BFC1", +"|% c #B7BEC1", +"1% c #B7BEC0", +"2% c #B5BDBF", +"3% c #B2B9BC", +"4% c #B3B7BB", +"5% c #B2B6BA", +"6% c #AEB3B6", +"7% c #4D4E50", +"8% c #050507", +"9% c #292B2C", +"0% c #AEB6BD", +"a% c #AAB7BE", +"b% c #383C3D", +"c% c #040603", +"d% c #2F3130", +"e% c #A9ADB0", +"f% c #A5A9AE", +"g% c #A2A8AA", +"h% c #A1A7A8", +"i% c #A0A5A7", +"j% c #9FA5A7", +"k% c #9EA6A8", +"l% c #9EA6A9", +"m% c #9DA4A7", +"n% c #9CA4A7", +"o% c #83878A", +"p% c #2A2A2C", +"q% c #030302", +"r% c #454747", +"s% c #899090", +"t% c #959A9C", +"u% c #93999B", +"v% c #92999A", +"w% c #92989A", +"x% c #929799", +"y% c #889092", +"z% c #121416", +"A% c #060606", +"B% c #525658", +"C% c #828D90", +"D% c #545B5E", +"E% c #121213", +"F% c #080709", +"G% c #525558", +"H% c #8F9798", +"I% c #8A9292", +"J% c #889090", +"K% c #868C8E", +"L% c #84898B", +"M% c #84898A", +"N% c #85898B", +"O% c #858A8C", +"P% c #858B8C", +"Q% c #838A8C", +"R% c #83898B", +"S% c #828889", +"T% c #83888A", +"U% c #828789", +"V% c #818688", +"W% c #808586", +"X% c #7E8484", +"Y% c #7F8484", +"Z% c #7F8585", +"`% c #7F8384", +" & c #818586", +".& c #86898B", +"+& c #737679", +"@& c #56595E", +"#& c #55595D", +"$& c #2C2E31", +"%& c #030406", +"&& c #262E2D", +"*& c #7A888A", +"=& c #859298", +"-& c #909EA4", +";& c #94A2A8", +">& c #666F70", +",& c #101211", +"'& c #1D1E1D", +")& c #B6BEC0", +"!& c #C5D2D9", +"~& c #CAD9E0", +"{& c #CEDDE4", +"]& c #CFDFE6", +"^& c #D0DFE6", +"/& c #D2E2E8", +"(& c #D1E0E7", +"_& c #CFDEE5", +":& c #CCDBE2", +"<& c #C8D7DE", +"[& c #C4D3DA", +"}& c #C0D0D6", +"|& c #C1D0D7", +"1& c #C0CFD5", +"2& c #BFCED4", +"3& c #BDCCD3", +"4& c #BCCBD2", +"5& c #BCCAD0", +"6& c #BAC9CD", +"7& c #B3C2C4", +"8& c #5B6264", +"9& c #07080A", +"0& c #AFB8BE", +"a& c #AAB7BD", +"b& c #96A1A5", +"c& c #363A3C", +"d& c #030503", +"e& c #505656", +"f& c #A6B1B4", +"g& c #9AA8AD", +"h& c #98A5AA", +"i& c #96A3A8", +"j& c #95A2A7", +"k& c #94A1A7", +"l& c #94A1A9", +"m& c #929FA7", +"n& c #7D8687", +"o& c #020203", +"p& c #636969", +"q& c #849191", +"r& c #808C8E", +"s& c #7A878B", +"t& c #78858B", +"u& c #768489", +"v& c #758288", +"w& c #737F85", +"x& c #758086", +"y& c #6C7578", +"z& c #141617", +"A& c #060506", +"B& c #515556", +"C& c #818C8E", +"D& c #545C5E", +"E& c #111313", +"F& c #707577", +"G& c #647272", +"H& c #637271", +"I& c #647072", +"J& c #636E71", +"K& c #606C6F", +"L& c #5F6B6E", +"M& c #5F6A6F", +"N& c #5D686E", +"O& c #5C676D", +"P& c #5C666D", +"Q& c #5D666D", +"R& c #5E656D", +"S& c #5D656D", +"T& c #5B646B", +"U& c #5B666C", +"V& c #5B666A", +"W& c #5C6869", +"X& c #5C6868", +"Y& c #5B6767", +"Z& c #596565", +"`& c #576464", +" * c #566162", +".* c #575F61", +"+* c #575C60", +"@* c #565C60", +"#* c #242C2B", +"$* c #778587", +"%* c #849196", +"&* c #8F9CA2", +"** c #6B7475", +"=* c #111312", +"-* c #1B1D1E", +";* c #B1BDC3", +">* c #C2D3DB", +",* c #C6D7DE", +"'* c #C8D8E0", +")* c #CBDBE2", +"!* c #CCDEE5", +"~* c #CADCE3", +"{* c #C7D9DF", +"]* c #C7D8DF", +"^* c #C4D5DC", +"/* c #C3D3DA", +"(* c #C2D2D9", +"_* c #C1D2D8", +":* c #BFD1D6", +"<* c #BCCDD3", +"[* c #B8C9D0", +"}* c #B7C8CE", +"|* c #B5C6CC", +"1* c #B4C6CB", +"2* c #B2C4C8", +"3* c #ACBBBF", +"4* c #585E62", +"5* c #07070B", +"6* c #292B2D", +"7* c #AFB7BE", +"8* c #95A0A4", +"9* c #35393B", +"0* c #505457", +"a* c #AAB6BB", +"b* c #9FAFB5", +"c* c #9EACB2", +"d* c #9DAAAF", +"e* c #98A6AA", +"f* c #95A3A8", +"g* c #94A1A8", +"h* c #929EA6", +"i* c #909DA3", +"j* c #758282", +"k* c #272A2B", +"l* c #010002", +"m* c #636669", +"n* c #869394", +"o* c #829295", +"p* c #818D93", +"q* c #7E8A8F", +"r* c #7C888D", +"s* c #79858A", +"t* c #717C81", +"u* c #707A7F", +"v* c #687174", +"w* c #111214", +"x* c #828E90", +"y* c #565D5F", +"z* c #121313", +"A* c #707477", +"B* c #647173", +"C* c #657274", +"D* c #667375", +"E* c #677374", +"F* c #657071", +"G* c #636E6F", +"H* c #606C6D", +"I* c #5D676D", +"J* c #5D676C", +"K* c #5E676D", +"L* c #5E686E", +"M* c #5E686D", +"N* c #5B666B", +"O* c #5A646A", +"P* c #596367", +"Q* c #596467", +"R* c #5A6568", +"S* c #5A6567", +"T* c #596567", +"U* c #586466", +"V* c #576365", +"W* c #576163", +"X* c #576062", +"Y* c #565F61", +"Z* c #575F62", +"`* c #303335", +" = c #050506", +".= c #020302", +"+= c #1A1E1E", +"@= c #676F72", +"#= c #6F787B", +"$= c #778082", +"%= c #585E5E", +"&= c #0E100F", +"*= c #1A1D1F", +"== c #AEBAC0", +"-= c #BDCED5", +";= c #AFBCC2", +">= c #98A2A7", +",= c #95A1A6", +"'= c #94A0A4", +")= c #93A0A3", +"!= c #95A1A5", +"~= c #A7B6B9", +"{= c #BBCBCE", +"]= c #BACCD0", +"^= c #B6C8CD", +"/= c #B3C3C7", +"(= c #B2C2C5", +"_= c #AFBEC1", +":= c #96A2A6", +"<= c #848C90", +"[= c #45474A", +"}= c #060609", +"|= c #A8B5BC", +"1= c #959FA4", +"2= c #030002", +"3= c #4F5356", +"4= c #A3AFB4", +"5= c #99A8AE", +"6= c #96A4A7", +"7= c #95A2A6", +"8= c #94A1A6", +"9= c #94A0A5", +"0= c #929DA2", +"a= c #8E9B9E", +"b= c #748081", +"c= c #25292A", +"d= c #859094", +"e= c #849094", +"f= c #838F92", +"g= c #7C888A", +"h= c #798486", +"i= c #747D82", +"j= c #727B80", +"k= c #707A7E", +"l= c #838E91", +"m= c #575E60", +"n= c #121314", +"o= c #727679", +"p= c #6B7678", +"q= c #687377", +"r= c #565E5F", +"s= c #555E5E", +"t= c #565E5E", +"u= c #575F5F", +"v= c #555D5E", +"w= c #565D5E", +"x= c #535C5D", +"y= c #535C5C", +"z= c #525C5C", +"A= c #525B5B", +"B= c #535A5C", +"C= c #535A5B", +"D= c #52595A", +"E= c #51585A", +"F= c #515859", +"G= c #505859", +"H= c #4E5758", +"I= c #4E5658", +"J= c #4F5758", +"K= c #505858", +"L= c #525859", +"M= c #2B2D2E", +"N= c #181818", +"O= c #1F1F1F", +"P= c #1F2020", +"Q= c #202221", +"R= c #1A1C1F", +"S= c #ABB6BB", +"T= c #AEBEC3", +"U= c #282B2B", +"V= c #212325", +"W= c #212426", +"X= c #212425", +"Y= c #202324", +"Z= c #202323", +"`= c #1F2324", +" - c #222527", +".- c #42474A", +"+- c #A3B2B7", +"@- c #B4C6CD", +"#- c #B4C5CB", +"$- c #B2C4C7", +"%- c #9BA9AB", +"&- c #4B5053", +"*- c #201F22", +"=- c #282A2C", +"-- c #AAB3B9", +";- c #A6B3BA", +">- c #35393A", +",- c #4D5355", +"'- c #A1AFB3", +")- c #99A8AF", +"!- c #9AA7AD", +"~- c #98A5AB", +"{- c #93A0A6", +"]- c #929FA5", +"^- c #919EA4", +"/- c #8E9BA1", +"(- c #8C989D", +"_- c #757D81", +":- c #626768", +"<- c #849095", +"[- c #849092", +"}- c #818E8F", +"|- c #7E8C8D", +"1- c #7C8A8B", +"2- c #7A8789", +"3- c #7A868A", +"4- c #788389", +"5- c #747F84", +"6- c #6B7577", +"7- c #111315", +"8- c #535758", +"9- c #848F92", +"0- c #585F62", +"a- c #121414", +"b- c #72777A", +"c- c #6B787A", +"d- c #687476", +"e- c #2B2E2F", +"f- c #1F2124", +"g- c #202225", +"h- c #212326", +"i- c #212423", +"j- c #212422", +"k- c #212322", +"l- c #202322", +"m- c #202121", +"n- c #212221", +"o- c #202120", +"p- c #030303", +"q- c #191A1F", +"r- c #A5B0B5", +"s- c #98A7AB", +"t- c #3B4243", +"u- c #040204", +"v- c #151619", +"w- c #43484B", +"x- c #798488", +"y- c #A8B7BD", +"z- c #B3C4CA", +"A- c #AEC1C6", +"B- c #849397", +"C- c #272B2F", +"D- c #040305", +"E- c #333537", +"F- c #B0B8BF", +"G- c #939EA2", +"H- c #35383A", +"I- c #99A7AE", +"J- c #99A6AC", +"K- c #96A3A9", +"L- c #8D999E", +"M- c #777F83", +"N- c #020201", +"O- c #030301", +"P- c #828F91", +"Q- c #808D8E", +"R- c #7D8B8C", +"S- c #7B898A", +"T- c #7B898B", +"U- c #7D898D", +"V- c #585F61", +"W- c #717779", +"X- c #6A7779", +"Y- c #637072", +"Z- c #343B3C", +"`- c #050809", +" ; c #020003", +".; c #020103", +"+; c #020000", +"@; c #040101", +"#; c #030101", +"$; c #030000", +"%; c #030001", +"&; c #040001", +"*; c #040102", +"=; c #191A1E", +"-; c #A5B0B4", +";; c #5E6364", +">; c #090908", +",; c #010200", +"'; c #1D1E21", +"); c #454C4D", +"!; c #7F8A8C", +"~; c #A5B5B8", +"{; c #A5B2B5", +"]; c #5A5E61", +"^; c #28272A", +"/; c #242425", +"(; c #242526", +"_; c #393A3A", +":; c #818385", +"<; c #ABB4BB", +"[; c #A1AEB5", +"}; c #34383A", +"|; c #4D5456", +"1; c #A4B1B6", +"2; c #8C999F", +"3; c #8A979D", +"4; c #89959A", +"5; c #838B8F", +"6; c #45494B", +"7; c #060705", +"8; c #0B0B09", +"9; c #717778", +"0; c #889498", +"a; c #7A8889", +"b; c #798789", +"c; c #7A868B", +"d; c #79848A", +"e; c #121315", +"f; c #586062", +"g; c #717679", +"h; c #697678", +"i; c #677476", +"j; c #454C4E", +"k; c #0F1213", +"l; c #030405", +"m; c #020304", +"n; c #030304", +"o; c #020303", +"p; c #050404", +"q; c #050304", +"r; c #050303", +"s; c #030305", +"t; c #212324", +"u; c #707677", +"v; c #777E80", +"w; c #7B8384", +"x; c #55595A", +"y; c #0E0E0E", +"z; c #18191D", +"A; c #9BA6AB", +"B; c #B1BEC2", +"C; c #B0B6B8", +"D; c #9A9FA0", +"E; c #979B9C", +"F; c #969C9C", +"G; c #979D9C", +"H; c #989E9D", +"I; c #979D9D", +"J; c #969D9C", +"K; c #959C9B", +"L; c #949A9A", +"M; c #797E7E", +"N; c #303232", +"O; c #070807", +"P; c #020301", +"Q; c #030202", +"R; c #1C201F", +"S; c #485250", +"T; c #8B9797", +"U; c #A5AFB2", +"V; c #9FA6AB", +"W; c #9BA2A8", +"X; c #98A2A4", +"Y; c #98A3A5", +"Z; c #A6AFB3", +"`; c #A2ABB3", +" > c #9DA9B0", +".> c #8C969A", +"+> c #333638", +"@> c #4D5153", +"#> c #A4B0B3", +"$> c #9AA9AE", +"%> c #8E9B9F", +"&> c #909C9E", +"*> c #8E9899", +"=> c #80898A", +"-> c #818A8A", +";> c #8E999A", +">> c #879496", +",> c #808D90", +"'> c #7C8A8E", +")> c #7B898D", +"!> c #7B888D", +"~> c #7A868C", +"{> c #6C7779", +"]> c #050606", +"^> c #525959", +"/> c #869294", +"(> c #586163", +"_> c #687677", +":> c #707C7D", +"<> c #747E7F", +"[> c #75797B", +"}> c #75787A", +"|> c #757879", +"1> c #73787A", +"2> c #73797A", +"3> c #747A7B", +"4> c #74797B", +"5> c #74797A", +"6> c #75777A", +"7> c #737678", +"8> c #737778", +"9> c #737677", +"0> c #747679", +"a> c #6E7476", +"b> c #6D7575", +"c> c #6C7474", +"d> c #6A7071", +"e> c #2E3030", +"f> c #040507", +"g> c #232729", +"h> c #6D7679", +"i> c #747E81", +"j> c #7A8688", +"k> c #686F70", +"l> c #131313", +"m> c #17191D", +"n> c #97A3A7", +"o> c #ABBBBD", +"p> c #B4C0C2", +"q> c #B6C2C5", +"r> c #B6C4C7", +"s> c #B9C7CA", +"t> c #BAC9CB", +"u> c #BBCACC", +"v> c #BBC9CD", +"w> c #BAC9CC", +"x> c #B9C6C9", +"y> c #B5BEBF", +"z> c #777C7C", +"A> c #1A1B1B", +"B> c #090B0B", +"C> c #1D2021", +"D> c #545A5E", +"E> c #97A1A5", +"F> c #AAB6BC", +"G> c #A7B8BA", +"H> c #A3B5B6", +"I> c #9FAEB3", +"J> c #9FACB3", +"K> c #8F999E", +"L> c #343739", +"M> c #4C5050", +"N> c #A0ABAF", +"O> c #94A3A8", +"P> c #919FA5", +"Q> c #8C999E", +"R> c #8B9899", +"S> c #8C999A", +"T> c #8A9798", +"U> c #869495", +"V> c #839192", +"W> c #818F90", +"X> c #7E8B90", +"Y> c #7A878D", +"Z> c #79858B", +"`> c #768187", +" , c #6E797A", +"., c #111415", +"+, c #535A5A", +"@, c #869395", +"#, c #596364", +"$, c #121415", +"%, c #727779", +"&, c #6C787A", +"*, c #677576", +"=, c #6A7879", +"-, c #6E7B7C", +";, c #6E7A7B", +">, c #6C7678", +",, c #6A7476", +"', c #6D7678", +"), c #6E7879", +"!, c #6E7678", +"~, c #6C7477", +"{, c #6B7375", +"], c #6A7174", +"^, c #6B7275", +"/, c #6B7376", +"(, c #697073", +"_, c #666F72", +":, c #657072", +"<, c #636E70", +"[, c #626D6E", +"}, c #333637", +"|, c #020406", +"1, c #212527", +"2, c #6D787B", +"3, c #727E81", +"4, c #788488", +"5, c #656B6D", +"6, c #111211", +"7, c #17181C", +"8, c #939FA4", +"9, c #A6B7BB", +"0, c #ACBCC0", +"a, c #AFBFC3", +"b, c #B2C4CA", +"c, c #B3C6CC", +"d, c #B4C6CC", +"e, c #B2C5CB", +"f, c #B3C5CB", +"g, c #B3C4C7", +"h, c #BBC8CA", +"i, c #C3CACB", +"j, c #67696A", +"k, c #141414", +"l, c #080707", +"m, c #16191B", +"n, c #596264", +"o, c #9AA7A8", +"p, c #A1AFB1", +"q, c #A1B1B5", +"r, c #A0B1B6", +"s, c #A1B0B6", +"t, c #939DA1", +"u, c #36393B", +"v, c #4C5151", +"w, c #A2ACB0", +"x, c #95A4A9", +"y, c #8D9AA0", +"z, c #8B989E", +"A, c #8A989C", +"B, c #889698", +"C, c #879596", +"D, c #859394", +"E, c #808E8F", +"F, c #79868C", +"G, c #778389", +"H, c #78848A", +"I, c #778288", +"J, c #6A7677", +"K, c #515858", +"L, c #849193", +"M, c #131515", +"N, c #6D797B", +"O, c #667475", +"P, c #657374", +"Q, c #647373", +"R, c #657474", +"S, c #647374", +"T, c #637272", +"U, c #657172", +"V, c #657171", +"W, c #636F6F", +"X, c #626D6F", +"Y, c #616C6E", +"Z, c #5C6769", +"`, c #5E676A", +" ' c #5F676C", +".' c #5F686C", +"+' c #616A6E", +"@' c #626C6F", +"#' c #626B6D", +"$' c #616B6D", +"%' c #5E696C", +"&' c #586366", +"*' c #576164", +"=' c #2D3232", +"-' c #040606", +";' c #010304", +">' c #1F2325", +",' c #677274", +"'' c #6C797B", +")' c #717D81", +"!' c #62686A", +"~' c #111111", +"{' c #16171B", +"]' c #8E999E", +"^' c #9FAEB4", +"/' c #A5B2B9", +"(' c #A7B4BB", +"_' c #ABBAC0", +":' c #ACBCC1", +"<' c #ADBDC1", +"[' c #AFBFC4", +"}' c #B1C1C5", +"|' c #B3C3C8", +"1' c #B5C5CB", +"2' c #B5C6CB", +"3' c #B6C6CB", +"4' c #B7C6C9", +"5' c #C3D0D1", +"6' c #B4BDBB", +"7' c #595E5C", +"8' c #1D1F1F", +"9' c #090909", +"0' c #020404", +"a' c #191C1F", +"b' c #656A6F", +"c' c #8E979D", +"d' c #9AA6AD", +"e' c #A1ACAF", +"f' c #93A2A7", +"g' c #8F9DA3", +"h' c #89969C", +"i' c #889699", +"j' c #889597", +"k' c #869496", +"l' c #849294", +"m' c #849293", +"n' c #829091", +"o' c #7D8B90", +"p' c #7C898F", +"q' c #7B888E", +"r' c #7B868C", +"s' c #778388", +"t' c #6C7879", +"u' c #576162", +"v' c #676C6E", +"w' c #6B7778", +"x' c #657273", +"y' c #647172", +"z' c #667172", +"A' c #667072", +"B' c #646F71", +"C' c #647070", +"D' c #667171", +"E' c #657173", +"F' c #636F70", +"G' c #606B6D", +"H' c #5F686A", +"I' c #5D6769", +"J' c #5D676A", +"K' c #5E676C", +"L' c #5D666C", +"M' c #5C6669", +"N' c #5C6668", +"O' c #5E686A", +"P' c #5C676C", +"Q' c #5C666B", +"R' c #303434", +"S' c #040505", +"T' c #010303", +"U' c #1E2224", +"V' c #5E676B", +"W' c #626D71", +"X' c #687577", +"Y' c #6E797D", +"Z' c #5F6668", +"`' c #101111", +" ) c #8C979C", +".) c #9DACB3", +"+) c #A4B1B7", +"@) c #A9B5BC", +"#) c #AAB6BD", +"$) c #ABB8BE", +"%) c #ABBABE", +"&) c #AEBEC2", +"*) c #B2C3C8", +"=) c #B1C2C7", +"-) c #AFC2C5", +";) c #AEC0C2", +">) c #B2C2C2", +",) c #BCC6C7", +"') c #9BA0A3", +")) c #515456", +"!) c #1F2121", +"~) c #2D2E32", +"{) c #6E7579", +"]) c #97A2A7", +"^) c #8D979C", +"/) c #333739", +"() c #020403", +"_) c #A1ABAE", +":) c #92A0A6", +"<) c #8B999E", +"[) c #8A979C", +"}) c #88959A", +"|) c #869498", +"1) c #839195", +"2) c #829094", +"3) c #828F94", +"4) c #818E92", +"5) c #7B878D", +"6) c #6C777A", +"7) c #586263", +"8) c #252727", +"9) c #474B4B", +"0) c #444849", +"a) c #424647", +"b) c #414445", +"c) c #404344", +"d) c #404243", +"e) c #3E4141", +"f) c #3E4142", +"g) c #3E4242", +"h) c #3D4242", +"i) c #3D4241", +"j) c #3B4040", +"k) c #3C4040", +"l) c #3D4040", +"m) c #3D4041", +"n) c #3C3F41", +"o) c #3D4042", +"p) c #3D4243", +"q) c #3C4243", +"r) c #4E5556", +"s) c #6C7577", +"t) c #5F696C", +"u) c #323537", +"v) c #1D2122", +"w) c #5B6469", +"x) c #5F6A6E", +"y) c #6A7679", +"z) c #5E6566", +"A) c #879297", +"B) c #9AAAB1", +"C) c #A1AEB4", +"D) c #A6B3B9", +"E) c #ACBAC0", +"F) c #ADBCC1", +"G) c #ACBBC0", +"H) c #AEBFC3", +"I) c #AEBFC4", +"J) c #ADBEC2", +"K) c #ABBCC1", +"L) c #A8B8BC", +"M) c #A9B5B9", +"N) c #AAB5B9", +"O) c #B0BBBF", +"P) c #B5BFC1", +"Q) c #8B9193", +"R) c #4E5253", +"S) c #1D1F1E", +"T) c #030102", +"U) c #060306", +"V) c #2D2F33", +"W) c #8B9499", +"X) c #030504", +"Y) c #000200", +"Z) c #4A4E4E", +"`) c #9DA7AA", +" ! c #88959B", +".! c #87949A", +"+! c #839096", +"@! c #849197", +"#! c #828F95", +"$! c #7E8B91", +"%! c #111414", +"&! c #060507", +"*! c #535658", +"=! c #859093", +"-! c #010302", +";! c #030204", +">! c #232427", +",! c #707779", +"'! c #5A6368", +")! c #687477", +"!! c #656C6D", +"~! c #131414", +"{! c #92A2A8", +"]! c #9BA8AE", +"^! c #A0ADB3", +"/! c #A2AFB5", +"(! c #A5B3B9", +"_! c #A8B7BC", +":! c #AAB9BE", +"~ c #535555", +",~ c #4D5050", +"'~ c #4C4E4F", +")~ c #505252", +"!~ c #515253", +"~~ c #515252", +"{~ c #505152", +"]~ c #505151", +"^~ c #4E5151", +"/~ c #4E5252", +"(~ c #4F5252", +"_~ c #4F5151", +":~ c #4F5355", +"<~ c #6A6F71", +"[~ c #8C9597", +"}~ c #303336", +"|~ c #1B2021", +"1~ c #576165", +"2~ c #7B8587", +"3~ c #7F8889", +"4~ c #7B8687", +"5~ c #859091", +"6~ c #8B999D", +"7~ c #9DAAB0", +"8~ c #A5B2B8", +"9~ c #A7B4BA", +"0~ c #A6B2B8", +"a~ c #A4B1B8", +"b~ c #A3B1B7", +"c~ c #A2AFB6", +"d~ c #A2AEB4", +"e~ c #9FAAB0", +"f~ c #9DA8AE", +"g~ c #A0ACB1", +"h~ c #A5B1B7", +"i~ c #98A3A9", +"j~ c #97A3AA", +"k~ c #98A4AA", +"l~ c #99A4A9", +"m~ c #929DA1", +"n~ c #8E999D", +"o~ c #919DA2", +"p~ c #909DA2", +"q~ c #8C9A9C", +"r~ c #8A9799", +"s~ c #879597", +"t~ c #818F91", +"u~ c #828F92", +"v~ c #818E91", +"w~ c #768389", +"x~ c #727D83", +"y~ c #737F84", +"z~ c #7E878C", +"A~ c #7D868B", +"B~ c #7F888D", +"C~ c #727D82", +"D~ c #7D8689", +"E~ c #798283", +"F~ c #768080", +"G~ c #778080", +"H~ c #7A8283", +"I~ c #798083", +"J~ c #798082", +"K~ c #787F81", +"L~ c #767D7F", +"M~ c #757C7E", +"N~ c #757B7D", +"O~ c #747B7C", +"P~ c #73797C", +"Q~ c #72797B", +"R~ c #737A7C", +"S~ c #727B7C", +"T~ c #737C7D", +"U~ c #747B7D", +"V~ c #71787A", +"W~ c #6F7778", +"X~ c #6F7779", +"Y~ c #6F7678", +"Z~ c #6C7677", +"`~ c #717A7F", +" { c #5F676E", +".{ c #60686E", +"+{ c #1B1F21", +"@{ c #5B6668", +"#{ c #667173", +"${ c #6D797A", +"%{ c #728081", +"&{ c #778586", +"*{ c #7F8D8E", +"={ c #A3B0B6", +"-{ c #9FABB1", +";{ c #9EA9AF", +">{ c #9BA7AE", +",{ c #99A6AE", +"'{ c #98A5AD", +"){ c #97A4AB", +"!{ c #8C999D", +"~{ c #899798", +"{{ c #6E797E", +"]{ c #6D7879", +"^{ c #6D787A", +"/{ c #6C7B7C", +"({ c #6E7C7D", +"_{ c #6D7C7C", +":{ c #6E797B", +"<{ c #6D7779", +"[{ c #697274", +"}{ c #697375", +"|{ c #677173", +"1{ c #646E70", +"2{ c #616D6E", +"3{ c #5F6D6E", +"4{ c #5F6D6D", +"5{ c #5E6C6D", +"6{ c #5E6A6C", +"7{ c #5F666E", +"8{ c #60676F", +"9{ c #303538", +"0{ c #1C2123", +"a{ c #576063", +"b{ c #586367", +"c{ c #677375", +"d{ c #6D7A7B", +"e{ c #707E7F", +"f{ c #758384", +"g{ c #7E8B8F", +"h{ c #9CA8AE", +"i{ c #9CA7AD", +"j{ c #9BA6AC", +"k{ c #99A5AC", +"l{ c #9AA7AF", +"m{ c #9BA8B0", +"n{ c #808D93", +"o{ c #717C82", +"p{ c #6F7A80", +"q{ c #6D787D", +"r{ c #6D797C", +"s{ c #6B797B", +"t{ c #6A7B7B", +"u{ c #6B7B7B", +"v{ c #6A7A7A", +"w{ c #687576", +"x{ c #616D6F", +"y{ c #606C6E", +"z{ c #5F6C6D", +"A{ c #5F686E", +"B{ c #616870", +"C{ c #33373A", +"D{ c #010305", +"E{ c #596165", +"F{ c #697679", +"G{ c #6F7C80", +"H{ c #738083", +"I{ c #7B868A", +"J{ c #838F94", +"K{ c #8B979B", +"L{ c #909BA0", +"M{ c #929EA3", +"N{ c #96A2A7", +"O{ c #9BA7AD", +"P{ c #97A3A9", +"Q{ c #9AA6AC", +"R{ c #99A6AA", +"S{ c #98A4A9", +"T{ c #99A5AA", +"U{ c #96A1A6", +"V{ c #97A1A6", +"W{ c #9AA3A8", +"X{ c #9CA6AA", +"Y{ c #94A0A6", +"Z{ c #939EA5", +"`{ c #919DA4", +" ] c #8E9AA0", +".] c #8D989D", +"+] c #8E989E", +"@] c #8C979D", +"#] c #8B979D", +"$] c #8A989B", +"%] c #879395", +"&] c #839090", +"*] c #818E8E", +"=] c #828F90", +"-] c #7F8B8C", +";] c #7B8788", +">] c #798687", +",] c #798489", +"'] c #788388", +")] c #757F85", +"!] c #727C82", +"~] c #6F797E", +"{] c #737D83", +"]] c #717A80", +"^] c #6E787D", +"/] c #6F787E", +"(] c #6F787D", +"_] c #6C757B", +":] c #6C767A", +"<] c #6D767C", +"[] c #6E787B", +"}] c #6C797A", +"|] c #667476", +"1] c #677577", +"2] c #677273", +"3] c #667374", +"4] c #697476", +"5] c #6A7376", +"6] c #6A7577", +"7] c #616C6D", +"8] c #5C6768", +"9] c #596465", +"0] c #586465", +"a] c #586264", +"b] c #5A6267", +"c] c #5D646B", +"d] c #60676D", +"e] c #020305", +"f] c #1C2023", +"g] c #586063", +"h] c #596468", +"i] c #5C666A", +"j] c #5E6669", +"k] c #45484A", +"l] c #494A4D", +"m] c #51575D", +"n] c #6C767E", +"o] c #6B7379", +"p] c #484B4F", +"q] c #4D5353", +"r] c #414446", +"s] c #464E4D", +"t] c #525657", +"u] c #424346", +"v] c #424546", +"w] c #46494C", +"x] c #92A1A5", +"y] c #97A4A9", +"z] c #5E666C", +"A] c #959EA5", +"B] c #98A5A9", +"C] c #7A8384", +"D] c #676E70", +"E] c #676C6F", +"F] c #484C4E", +"G] c #434949", +"H] c #464D4C", +"I] c #6A7171", +"J] c #444A4A", +"K] c #444648", +"L] c #44464A", +"M] c #4F5559", +"N] c #5A6164", +"O] c #656D71", +"P] c #4A4E4F", +"Q] c #444749", +"R] c #52565A", +"S] c #727F81", +"T] c #869897", +"U] c #7F8D8D", +"V] c #565D5D", +"W] c #484D4D", +"X] c #5B6363", +"Y] c #636C6E", +"Z] c #848F93", +"`] c #56595B", +" ^ c #3F4042", +".^ c #414647", +"+^ c #424747", +"@^ c #4C5051", +"#^ c #5D6162", +"$^ c #55595B", +"%^ c #404747", +"&^ c #414847", +"*^ c #737F86", +"=^ c #6F777B", +"-^ c #3D3E40", +";^ c #3B3D3F", +">^ c #4A4B4D", +",^ c #545557", +"'^ c #3E4444", +")^ c #444748", +"!^ c #4E5054", +"~^ c #4C5358", +"{^ c #6C787C", +"]^ c #6A7378", +"^^ c #4B5255", +"/^ c #626F73", +"(^ c #6A777D", +"_^ c #44484A", +":^ c #3D4142", +"<^ c #393D3E", +"[^ c #3A3D3F", +"}^ c #484B4E", +"|^ c #424548", +"1^ c #565A5D", +"2^ c #3F4446", +"3^ c #484C4D", +"4^ c #4C5252", +"5^ c #515C5A", +"6^ c #606E6C", +"7^ c #495352", +"8^ c #4E5454", +"9^ c #363B3C", +"0^ c #44494B", +"a^ c #62696C", +"b^ c #646D72", +"c^ c #626B70", +"d^ c #5A6467", +"e^ c #535B5E", +"f^ c #25282A", +"g^ c #232324", +"h^ c #42484C", +"i^ c #54585A", +"j^ c #27292A", +"k^ c #535B5C", +"l^ c #363B3D", +"m^ c #586161", +"n^ c #343839", +"o^ c #202123", +"p^ c #2A2C2E", +"q^ c #44484B", +"r^ c #4B5356", +"s^ c #899396", +"t^ c #8F999D", +"u^ c #34383D", +"v^ c #8D9398", +"w^ c #97A2A5", +"x^ c #61676A", +"y^ c #373A3D", +"z^ c #36393C", +"A^ c #343638", +"B^ c #2C2F30", +"C^ c #252829", +"D^ c #464B4B", +"E^ c #191C1D", +"F^ c #2E2D30", +"G^ c #312F35", +"H^ c #4A4C51", +"I^ c #3B3E40", +"J^ c #232829", +"K^ c #5A5F61", +"L^ c #595B5A", +"M^ c #646A6C", +"N^ c #434749", +"O^ c #2D3235", +"P^ c #656D6F", +"Q^ c #778686", +"R^ c #839494", +"S^ c #3E4041", +"T^ c #3B3F41", +"U^ c #2D3031", +"V^ c #1D1E20", +"W^ c #545959", +"X^ c #202223", +"Y^ c #2F3435", +"Z^ c #414A49", +"`^ c #4F5857", +" / c #242929", +"./ c #535B5F", +"+/ c #748087", +"@/ c #646B6F", +"#/ c #232425", +"$/ c #242527", +"%/ c #353537", +"&/ c #1A1A1C", +"*/ c #424547", +"=/ c #16171A", +"-/ c #313639", +";/ c #707A7B", +">/ c #636C6D", +",/ c #2F3335", +"'/ c #5D6669", +")/ c #6D777B", +"!/ c #2E3234", +"~/ c #454A4C", +"{/ c #292D30", +"]/ c #323739", +"^/ c #4A4F52", +"// c #26292C", +"(/ c #24262A", +"_/ c #2E3134", +":/ c #414B4A", +"( c #393B3C", +",( c #3D4446", +"'( c #636B6F", +")( c #3C4246", +"!( c #2A2F31", +"~( c #26272B", +"{( c #3B3C3F", +"]( c #525A59", +"^( c #454949", +"/( c #1E1F20", +"(( c #303032", +"_( c #2B3131", +":( c #1A1D1E", +"<( c #343939", +"[( c #313838", +"}( c #2B3232", +"|( c #232929", +"1( c #24292B", +"2( c #60696D", +"3( c #1E2124", +"4( c #556064", +"5( c #333839", +"6( c #4F595A", +"7( c #3E4849", +"8( c #3E4548", +"9( c #565F64", +"0( c #7D888A", +"a( c #414649", +"b( c #4B5153", +"c( c #4B5352", +"d( c #4A5151", +"e( c #4A5053", +"f( c #4F5658", +"g( c #3A4043", +"h( c #494F52", +"i( c #575B5F", +"j( c #4C5053", +"k( c #505557", +"l( c #3A3F42", +"m( c #53595B", +"n( c #4A4F51", +"o( c #494E52", +"p( c #4E5559", +"q( c #7B858B", +"r( c #4C5458", +"s( c #8B959A", +"t( c #6C757A", +"u( c #5B6368", +"v( c #8C989B", +"w( c #89989A", +"x( c #899799", +"y( c #717E7E", +"z( c #717B7C", +"A( c #51595A", +"B( c #41484A", +"C( c #464D51", +"D( c #464C4F", +"E( c #373B3E", +"F( c #414749", +"G( c #414849", +"H( c #3E4446", +"I( c #4B5254", +"J( c #3F4546", +"K( c #45494C", +"L( c #3D4144", +"M( c #404547", +"N( c #363A3D", +"O( c #494F50", +"P( c #3D4244", +"Q( c #383D3F", +"R( c #3D4646", +"S( c #3A4041", +"T( c #303536", +"U( c #3D4444", +"V( c #434A4A", +"W( c #393E3E", +"X( c #3B4143", +"Y( c #3B4144", +"Z( c #626C70", +"`( c #485055", +" _ c #525C60", +"._ c #636D6F", +"+_ c #3C4346", +"@_ c #404549", +"#_ c #35393D", +"$_ c #383E40", +"%_ c #353B3D", +"&_ c #33393B", +"*_ c #42484A", +"=_ c #555D5F", +"-_ c #505A5B", +";_ c #2E3537", +">_ c #373C3E", +",_ c #33383A", +"'_ c #393F42", +")_ c #323636", +"!_ c #040605", +"~_ c #1D2023", +"{_ c #566163", +"]_ c #546264", +"^_ c #556264", +"/_ c #556063", +"(_ c #505C5F", +"__ c #525E60", +":_ c #5C686A", +"<_ c #647074", +"[_ c #707C81", +"}_ c #6C787D", +"|_ c #6F7B7F", +"1_ c #7B878A", +"2_ c #768184", +"3_ c #6F7B7D", +"4_ c #747F82", +"5_ c #768285", +"6_ c #7B878B", +"7_ c #7E898D", +"8_ c #7C888C", +"9_ c #7B868B", +"0_ c #8A959A", +"a_ c #899599", +"b_ c #7E898E", +"c_ c #7F8A8F", +"d_ c #778186", +"e_ c #768185", +"f_ c #798389", +"g_ c #869298", +"h_ c #8C989F", +"i_ c #849097", +"j_ c #828F93", +"k_ c #8A969B", +"l_ c #869497", +"m_ c #7B888A", +"n_ c #778385", +"o_ c #7D888C", +"p_ c #737E82", +"q_ c #6D797D", +"r_ c #6E7A7D", +"s_ c #758183", +"t_ c #667174", +"u_ c #667175", +"v_ c #707B7F", +"w_ c #6A7579", +"x_ c #6F7B80", +"y_ c #6E7A7E", +"z_ c #616C71", +"A_ c #657074", +"B_ c #677275", +"C_ c #5D696B", +"D_ c #636F71", +"E_ c #5A6668", +"F_ c #626D70", +"G_ c #566264", +"H_ c #647073", +"I_ c #626E71", +"J_ c #626E70", +"K_ c #5D696C", +"L_ c #5B6568", +"M_ c #545D60", +"N_ c #343838", +"O_ c #1C2122", +"P_ c #596464", +"Q_ c #586567", +"R_ c #5E6A6D", +"S_ c #616E71", +"T_ c #768284", +"U_ c #778386", +"V_ c #808D8D", +"W_ c #849192", +"X_ c #879394", +"Y_ c #879498", +"Z_ c #8F9BA1", +"`_ c #909CA2", +" : c #919CA2", +".: c #929DA3", +"+: c #929DA4", +"@: c #929EA4", +"#: c #8E99A0", +"$: c #8D989E", +"%: c #8C989E", +"&: c #8A959C", +"*: c #8A969C", +"=: c #89959B", +"-: c #88949A", +";: c #889598", +">: c #889497", +",: c #869295", +"': c #879396", +"): c #869595", +"!: c #869494", +"~: c #849292", +"{: c #838F90", +"]: c #828E8F", +"^: c #808D8F", +"/: c #7F8B8E", +"(: c #7D898C", +"_: c #7C8989", +":: c #7A8788", +"<: c #7A858B", +"[: c #748086", +"}: c #727D84", +"|: c #707C82", +"1: c #707C80", +"2: c #707B80", +"3: c #6B777B", +"4: c #6A767A", +"5: c #6B767A", +"6: c #6A7678", +"7: c #6D7A7A", +"8: c #6C7979", +"9: c #6A7778", +"0: c #697677", +"a: c #687575", +"b: c #657073", +"c: c #646F73", +"d: c #626E6F", +"e: c #646F70", +"f: c #383C3C", +"g: c #0D0F0E", +"h: c #34393B", +"i: c #353A3B", +"j: c #393E41", +"k: c #3A3F43", +"l: c #3B4043", +"m: c #3B4042", +"n: c #3F4545", +"o: c #404548", +"p: c #42474B", +"q: c #44484C", +"r: c #43484C", +"s: c #424648", +"t: c #42464A", +"u: c #424749", +"v: c #404748", +"w: c #404848", +"x: c #424848", +"y: c #414747", +"z: c #424748", +"A: c #404448", +"B: c #3E4246", +"C: c #3F4445", +"D: c #3E4346", +"E: c #3C4144", +"F: c #3B3F43", +"G: c #3D4245", +"H: c #3E4347", +"I: c #3D4246", +"J: c #3C4043", +"K: c #3B4041", +"L: c #3A3F40", +"M: c #393E3F", +"N: c #3A4040", +"O: c #3B4142", +"P: c #3C4142", +"Q: c #3C4242", +"R: c #3C4344", +"S: c #3D4344", +"T: c #3B4141", +"U: c #1B1E1D", +"V: c #020100", +"W: c #050605", +"X: c #050508", +"Y: c #060505", +"Z: c #060605", +"`: c #060508", +". + @ # # $ % $ @ @ @ # & & & * @ $ $ # # # # = - ; > & & & & & & & $ % $ # $ , , , ' ) ) ) ! ! ! ! ~ ~ ~ $ { { { ] ^ ^ ^ ^ ^ ^ ^ ] ] ] ] { / ( ( ( ( ( / _ { { { , , , ' { { { _ _ _ _ _ _ _ _ : : : { < [ / ( ( } ( { | 1 | 2 3 ", +"4 5 6 7 8 9 0 a b c d e f f f g h i g j j j k l m n o p q r s t u v w x y z A B 7 C D E F G H I I J K K L L M N O P Q R S T U V W X X X X Y Z ` .......+.@.#.$.%.&.*.=.-.;.-.>.>.>.>.,.'.).!.!.~.'.{.].^.;.^././.(._.].].:.<.[.}.", +"|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.K.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. + +.+++@+#+$+%+&+*+=+-+;+>+,+'+)+!+~+{+]+^+^+/+(+_+:+<+[+}+}+|+|+1+1+2+3+4+5+6+7+7+5+5+5+8+9+0+", +"a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+A+B+C+D+E+F+G+H+I+J+K+L+M+e+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@;@>@,@'@)@!@~@{@]@^@/@(@_@:@<@[@}@|@1@2@3@4@5@6@7@8@9@0@a@b@c@d@d@e@c@f@g@g@h@i@j@k@l@m@n@o@p@q@", +"r@s@t@u@v@w@x@y@z@A@B@C@D@E@F@G@D@D@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@T@W@X@Y@Z@`@ #.#+#@###&+$#]+%#(+&#*#*#(+(+=#-#;#>#,#'#)#!#~#{#]#{#^#/#/#!#^#(#_#:#<#[#}#|#1#2#3#3#4#5#6#7#8#9#0#a#a#0#b#c#d#e#f#f#g#h#i#j#h#k#k#l#m#n#o#p#q#r#s#", +"r@t#u#v#w#x#y#z#A#B#B#C#C#B#D#E#F#D#G#E#C#E#E#H#C#I#E#B#B#B#B#B#J#B#F#K#L#M#N#O#P#Q#I#R#S#T#U#U#V#W#T#T#R#R#R#R#T#T#R#U#X#X#X#Y#Y#X#X#Z#U#G#R#I#`# $.$+$@$#$$$$$%$%$%$$$&$*$&$=$V#T#T#R#-$-$-$-$;$;$;$>$-$-$>$,$'$)$!$~${$]$^$/$($", +"r@t#S._$:$<$[$}$|$1$1$1$1$1$1$1$1$1$1$2$2$2$2$1$1$1$1$1$1$1$1$1$1$1$3$3 4$5$6$7$8$9$0$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a${ b$c$d$e$f$g$g$g$g$g$g$a$a$a$a$a$a$a$g$3$3$3$3$a$a$a$a$a$a$a$a$a$h$i$,.j$k$l$m$n$", +"o$p$q$r$s$t$u$v$|$w$x$0$|$|$|$|$|$w$|$|$|$|$|$y$y$y$z$A$y$y$B$B$C$3 D$w$E$F$G$H$I$J$3 K$L$L$B$M$N$O$O$O$O$P$Q$L$B$B$N$O$R$O$M$M$M$O$O$M$O$S$L$B$T$U$V$W$X$B$L$Y$Y$O$O$O$y$|$Z$y$M$O$N$N$C$C$`$`$Z$A$A$M$O$O$O$h$g$ %.%+%@%#%$%%%n$", +"&%*%=%-%;%>%,%'%A$)%!%~%{%]%^%/%(%(%(%_%:%<%[%~%~%}%|%1%2%3%4%5%6%7%8%1$9%0%a%7$b%}.c%d%e%f%g%h%i%j%k%l%m%n%o%p%a$q%r%s%t%u%v%v%w%x%x%x%x%y%z%g$A%B%C%D%E%2$F%G%H%I%I%J%K%L%M%N%O%O%P%P%Q%R%S%T%U%V%V%W%X%Y%Z%`%`% &.&+&@&@&#&$&%&", +"r@&&*&=&-&;&>&,&|$'&)&!&~&{&]&^&/&(&_&{&:&~&<&[&}&|&1&2&3&4&5&6&7&8&9&1$9%0&a&b&c&}.d&e&f&g&h&i&j&k&l&l&m&W+n&p@1$o&p&q&r&s&t&u&v&w&=@x&x&y&z&g$A&B&C&D&E&2$( F&=+G&H&H&I&J&K&L&M&N&O&P&Q&R&S&T&U&U&U&V&W&W&X&Y&Z&`& *.*+*@*{$s@($", +"q%#*$*%*&*_$**=*1$-*;*>*,*'*)*!*~*{*{*]*^*/*(*_*:*<*[*}*|*1*1*2*3*4*5*1$6*7*a%8*9* %D$0*a*b*c*d*e*f*g*h*i*X+j*k*1$l*m*n*o*p*q*r*s**@-@t*u*v*w*g$A%B%x*y*z*2$( A*-+B*C*D*E*F*G*H*[@I*I*J*J*I*K*L*M*N*O*P*Q*R*S*T*U*U*V*W*X*Y*Z*`* =", +".=+=8&@=#=$=%=&=y$*===-=;=>=8*,='=)=)='=8*'=!=~={=]=^=w@/=(=_=:=<=[=}=1$6*0%|=1=9*r@2=3=4=5=e*6=7=8=,=9=0=a=b=c=1$3$m*d=e=f=V$g=h= +i=j=k=-+w*g$A%B%l=m=n=2$( o=p=q=$#L#r=s=t=u=t=v=w=v=x=y=z=A=B=C=D=E=E=E=F=G=H=I=J=J=K=K=L=M=2 ", +"0$0+N=O=P=Q=z*}.0$R=S=T=,+U=V=W=X=Y=Z=Z=Y=`= -.- ++-|*@-#-$-%-&-*-$ C$1$=---;-N.>-r@f$,-'-)-!-~-_${-]-^-/-(-_-c=|$w$:-<-[-}-|-1-2-3-4-x&5-6-7-g$A%8-9-0-a-2${ b-c-d-G=e-f-f-g-h-i-j-k-l-l-l-Q=Q=m-m-m-Q=n-n-n-m-o-Q=n-n-n-m-P=* p-", +"0$0$0$0$0$0$3 3 0$q-r-s-t-3 a$f$D$D$D$D$D$D$D$u-v-w-x-y-z-A-B-C-D-3 x$}.E-F-;-G-H-r@f$,-'-I-J-K-{-{-]-^-&*L-M-k*N-O-:-J@P-Q-R-S-T-U-$@4-=@6-7-g$A&B%f=V-z*2${ W-X-Y-Z-`-o&l* ;.;D$D$D$D$D$g$g$+;@;@;@;#;$;$;%;%;$;%;&;@;@;@;*;f$0$", +"1$1$1$1$2$2$2$2$0$=;-;v@;;>;2$w$,;,;,;,;,;,;w$w$y$n$';);!;~;{;];^;/;(;_;:;<;[;t@}; %f$|;1;s$J-_$^-i*&*2;3;4;5;6;7;8;9;0;[-}-1-a;b;c;d;x&-@>+e;g$A&B%[-f;n=2${ g;h;i;j;k;l;m;n;p-p-p-p-p-p-o;o;p-p;p;p;q;r@r@r;r@r@q;q;q;p;q;o$2$1$", +"s;t;u;v;w;Q%x;y;0$z;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;+ R;S;T;U;V;W;X;Y;Z;`; >.>+> %0$@>#>$>!-~-K-_$k&{-^-%>&>*>=>->;>>>[-,>'>)>!>~>4-x&*@{>7-a$]>^>/>(>a-2${ g;X-_>:><>r [>}>|>1>2>2>2>3>3>4>5>6>7>7>7>7>8>9>0>7>7>A*a>b>c>d>e>2 ", +"f>g>h>i>j>f=k>l>1$m>n>o>p>q>q>x.r>s>t>u>v>w>x>y>z>A>r@2$x$B>C>D>E>F>G>H>I>J>P+K>L>p;0$M>N>O>P>^-]-^-&*i*&*Q>R>S>S>T>U>V>W>X>Y>Y>Y>Z>d;`>*@ ,.,a$]>+,@,#,$,2${ %,&,*,=,-,;,>,,,,,>+',),),),!,~,{,],],^,/,],],],(,(,(,@=_,:,<,[,},O;", +"|,1,$#2,3,4,5,6,1$7,8,9,0,a,J+b,c,c,d,e,f,c,e,g,h,i,j,k,l,p;r@n$m,n,o,p,q,r,s,t,u,}.w$v,w,x,P>^-^-y,z,z,z,A,B,C,C,D,V>W>E,X>F,t&G,H,I,x&=@J,z%a$]>K,L,#,M,2$& v N,O,P,Q,R,S,T,Q,U,F*V,W,X,Y,}@Z,>#`,`,:+ '.'+'@'#'/+$'%'V&&'*'='-'", +";'>'%#,''')'!'~'1${']'^'/'('a%_':'<'T=['}'|'1'2'3'4'5'6'7'8'9'Z$3 0'a'b'c'd'P+c+9*p-Z$v,e'f'g'y,y,2;3;3;h'i'j'k'l'm'm'V>n'o'p'q'Y>r'd;4-s't'.,a$]>L=L,u'a-2$_ v'w'x'y'y'z'A'G*B'C'C'D'V,U,E'F'G'*#H'I'J'K'K'L'M'N'I'O'2@P'P'Q'R'S'", +"T'U'V'W'X'Y'Z'`'1$=$ ).)+)@)#)$)%)%)3*0,&)J+I+*)=)-);)>),)')))!)O;q%3 T$~){)])^)/)()A$M>_)T+:)]-i*/-y,y,y,<)[)})|)1)2)3)4)p'q'Y>5)~>4-I,`>6)a-1$8%B%9-7)M,1$}.8)9)0)a)b)c)d)e)f)f)e)g)g)g)h)i)j)k)l)l)m)n)o)o)p)q)q)r)s)%'%'t)u)2 ", +"T'v)w)x)E'y)z)`'a$X#A)B)C)D)a&E)F)G)F)<'H)I)H)T=J)K)L)M)N)O)P)Q)R)S)a+T)U)V)G@W)I$X)Y)Z)`)8=k&{-]-&*&*y,z, !.!=&+!+!@!=&#!$!p'p'Y>H,x&=@-@q=%!a$&!*!=!#,M,|$0$p-p-3 3 3 0$0$3 3 3 0$0$0$Z$Z$-!x$3 3 0$0$0$0$0$x$L$;!>!,!X,}@$'/)8%", +"-!v)'![@J&)!!!~!0$J#J@{!]!^!/!(!_!_!:!:!E)Z>G,x&=@-@j!T#a$k!l!m!n!o!}.3 0$0$0$0$0$0$1$0$0$0$0$0$0$A$A$A$y$0$1$1$1$0$0$0$h$.;s;p!q!B'}@G'+>r!", +"-!v)s!V&t!u!v!w!x!y!z!A!B!d+P+C!D!D!E!F!G!F>a&F>F>$)$)H!I!J!K!L!M!N!O!X%P!Q!R!S!p T!U!V!W!]-i*/-y,z,X![)[)Y!Z!`!3)3) ~.~+~Y>t&@~H,G,`>x&x&#~$~%~&~*~=~-~;~>~,~'~)~!~~~~~~~~~{~{~{~]~]~{~^~/~(~)~{~{~]~_~]~_~_~/~R):~<~[~|@5@`,}~ =", +"C$|~)#1~T*t!2~3~4~5~k'6~^-B!!-7~^!/!+)8~8~8~9~8~8~D)0~(!a~b~c~d~e~f~g~h~i~d+j~k~l~m~n~n>o~i*&*i*^-p~a=q~r~s~@,L,t~P-u~v~T-s&t&@~w~&@x&-@x~y~z~T@A~B~5-C~D~E~F~G~H~I~J~K~L~M~N~O~t P~Q~R~S~S~S~T~U~P~V~,!W~X~Y~s)>,Z~@+`~ { {.{Q#S'", +"C$+{Z*&'@{}@#{${%{&{*{`!h'y,^-_$!-7~P+/!={+)+)={={/!C)^!P+P+-{;{f~f~>{,{'{'{){K-]-^-/-2;y,/-y,y,/-!{~{C,U>V>n'n'n'V>V>n'R-!>F,F,t&&@=@x~x~-@-@=@=@x&=@x~{{N,]{^{N,/{({_{:{<{,,[{}{-+|{A':,<,X,X,1{/+X,2{3{4{5{6{}@}@t).{7{8{8{9{-'", +";'0{a{b{4@}@B'c{d{e{f{g{=&3;&*k&J-]!]!d+7~7~P+^!C)/!/!C)^!7~h{i{j{j{k{,{l{m{R+~-K-k&]-i*&*/-2;z,z,Y!C,m'm'V>E,W>V>D,D,V>E, ~n{i!q'Z>4-`>x&x&=@-@x~-@o{p{q{.$.$r{s{t{u{v{w{=+,'=+c{E*,'#{#{:,B'B'<,x{X,x{y{z{z{t!G'G'}@A{8{B{B{C{-'", +"D{K#E{&'R*-#*#1{F{G{H{I{J{K{L{M{N{])]),=,=k~!-O{P{Q{]!R{S{T{U{V{W{X{U{Y{Z{`{/- ]&*Y+L-.]+]]'@]#]<)$]%]&]*]=]n'W>n'}--];]>]4,,]'])]!]u*~]~]{]x~{]]]~]^]/](]_]:]<][]t'''}]E*|]1]O,E'2]3]E*4]5]6]-+U,F'F'X,/+7]O'8]9]0]a]b]c]R&d]/)-'", +"e]f]g]h]i]j]k]l]m]n]o]p]q]b)r]s]t]u]v]w]q#:]x]y]z]A]B]C]D]E]F]G]H]I]J]K]L]M]N]O]B@N~@.P]Q]r]R]S]T]U]V]W]W]X]Y]*+Z]s)`] ^.^+^@^#^))$^%^&^0)'+*^=^B&-^;^>^,^v]'^)^!^~^{^]^^^/^(^(>_^:^<^[^}^|^1^2^j):^3^4^5^6^7^8^9^>-};0^a^b^c^I$S'", +"s;K#5+&'d^e^f^g^'$h^i^j^k^l^9*m^n^o^p^>-q^r^s^t^u^v^w^x^y^z^A^B^C^D^E^F^G^H^I^J^K^L^p)M^N^O^P^Q^R^u'p^b)S^)$T^D&,>u'U^V^t]W^>-U^X^Y^Z^`^ /./+/@/M=#/$/%/&/v]K=*/=/-/;/>/,/'/)/0^!/~/{/]/^///(/_/:/(,('()(7##'!(~({(](^(/(((I$_(:(<([(}(|(1(D%2(M*},2 ", +"D-3(a{4(7+(#Z-5(6(2@7(8({{9(0@0(B=a(b(c(d(A/e(f(g(h(I=8&j$i(j(k(l(m(q)n(o(p(e^)/q(r(9(s(t(u(v(w(x(_,V-y(z(~/A(B(C(D/D(E(F(G(H(I(J(K(L(M(N(2(t*&+O(2^P(l(Q(q)R(S(Q(T(U(V(W(X(Y(>-j@Z(`( _._+_@_#_$_%_&_*_=_-_;_2^Q(>_,_'_g]K'K')_!_", +"u-~_{_]_^_/_(___:_C*C*<_[_}_|_1_2_3_4_5_6_7_6_8_6_9_U-q$0_a_b_9_x-c_d_e_W@f_#@g_h_i_j_k_@@U-l_J/l'm_j>x*x*n_o_p_q_r_s_j!t_u_.$v_w_w_/@[@<#x_[_y_z_[@x)A_B_%'6@C_D_E_T*|@F_R*G_E_H_H_L&I_C*C_J_Q*/_U*6{y{E'D*K_L_M_~#M_4@K&K&X,N_]>", +"()O_P_Q_8@8@N*R_S_u!q=.$3,T_U_j>V_W_X_Y_@] ]Z_`_ :.:+:.:.:@:@:`_#:$:%:#]&:*:&:&:=:-:;:>:,:':U>):!:~:q&{:]:x*^:/:(:g=_:;]::c;~><:&@[:-@}:}:-@o{x~x~|:o{o{[_1:2:1:1:|_r_y_{{3:4:5:6:w'}]7:;,${t'8:8:t'9:J,0:a:E*b:c:A_A_E'C'd:e:f:O;", +"O-g:`#5(5(};h:i:l^a!>_Q(j:k:l:m:p)n:.^o:a(k/x/k/k/p:.-.-.-k/q:q:r:w-w-p:p:x/N^s:s:s:.-.-t:u:v:w:x:x:y:x:z:u:@$A:B:8$'^f/C:o:a(@$o:D:E:l:F:E:G:H:H:D:H:I:J:S(S(K:K:K:K:K:K:L:L:L:M:M:L:N:O:P:P:Q:Q::^P:K:O:p)p)p)q)R:S:q)O:K:T:U:]>", +"V:N-n$ =2 2 2 W:2 2 2 2 8%X:X: =8%A&A&A&A%A%A&A&A%Y:Y:Y:A&A&Y:A&A&A&A%A&A& =Z:Z:Z:Z:T$T$T$&! = = = =A&A&A&&!`:8%&!q@q@A& =A& =A%A&A&A&2 2 A&A&&!A&A&A&A&Y:W:W:2 W:Z:Y:Z:Z:A%Y:Y: = = = =&!&!q@q@A&A&A& = =A&A&]>]>]>]> =&!8%q@S'o;"}; diff --git a/hdspconf/src/HC_AboutText.cxx b/hdspconf/src/HC_AboutText.cxx new file mode 100644 index 0000000..1d0140a --- /dev/null +++ b/hdspconf/src/HC_AboutText.cxx @@ -0,0 +1,46 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma implementation +#include "HC_AboutText.h" + +HC_AboutText::HC_AboutText(int x, int y, int w, int h):Fl_Widget(x, y, w, h, "About Text") +{ + text = "HDSPConf (C) 2003 Thomas Charbonnel \n\n" + "This Program is free software; you can redistribute it and/or modify\n" + "it under the terms of the GNU General Public License as published by\n" + "the Free Software Foundation; either version 2 of the License, or\n" + "(at your option) any later version.\n\n" + "This program is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" + "See the GNU General Public License for more details.\n\n" + "You should have received a copy of the GNU General Public License\n" + "along with this program; if not, write to the Free Software\n" + "Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n"; +} + +void HC_AboutText::draw() +{ + fl_color(FL_BLACK); + fl_font(FL_HELVETICA, 10); + fl_draw(text, x(), y(), w(), h(), FL_ALIGN_LEFT); +} + diff --git a/hdspconf/src/HC_AboutText.h b/hdspconf/src/HC_AboutText.h new file mode 100644 index 0000000..2a76c40 --- /dev/null +++ b/hdspconf/src/HC_AboutText.h @@ -0,0 +1,39 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma interface +#ifndef HC_ABOUTTEXT_H +#define HC_ABOUTTEXT_H + +#include +#include +#include + +class HC_AboutText:public Fl_Widget +{ +public: + HC_AboutText(int x, int y, int w, int h); + void draw(); +private: + char *text; +}; + +#endif + diff --git a/hdspconf/src/HC_AutoSyncRef.cxx b/hdspconf/src/HC_AutoSyncRef.cxx new file mode 100644 index 0000000..8cc5484 --- /dev/null +++ b/hdspconf/src/HC_AutoSyncRef.cxx @@ -0,0 +1,88 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma implementation +#include "HC_AutoSyncRef.h" + +extern char *freqs[7]; +extern char *ref[6]; + +HC_AutoSyncRef::HC_AutoSyncRef(int x, int y, int w, int h):Fl_Widget(x, y, w, h, "AutoSync Ref.") +{ + external_freq = 2; + external_ref = 3; + draw_box = Fl::get_boxtype(FL_ENGRAVED_FRAME); + label("AutoSync Ref."); + labelsize(10); + align(FL_ALIGN_TOP|FL_ALIGN_LEFT); +} + +void HC_AutoSyncRef::draw() +{ + fl_color(FL_BACKGROUND_COLOR); + fl_rectf(x(), y(), w(), h()); + draw_box(x(), y(), w(), h(), FL_WHITE); + fl_color(FL_BLACK); + fl_font(FL_HELVETICA, 10); + fl_draw("Input", x()+4, y(), w()/2, h()/2, FL_ALIGN_LEFT); + fl_draw(ref[external_ref], x()+w()/2-4, y(), w()/2, h()/2, FL_ALIGN_CENTER); + fl_draw("Freq.", x()+4, y()+h()/2, w()/2, h()/2, FL_ALIGN_LEFT); + fl_draw(freqs[external_freq], x()+w()/2-4, y()+h()/2, w()/2, h()/2, FL_ALIGN_CENTER); +} + +void HC_AutoSyncRef::setFreq(int f) +{ + int freq; + switch (f) { + case 32000: + freq = 0; + break; + case 44100: + freq = 1; + break; + case 48000: + freq = 2; + break; + case 64000: + freq = 3; + break; + case 88200: + freq = 4; + break; + case 96000: + freq = 5; + break; + default: + freq = 6; + } + if (freq != external_freq) { + external_freq = freq; + redraw(); + } +} + +void HC_AutoSyncRef::setRef(unsigned char r) +{ + if (r == external_ref) return; + if (r > 6) external_ref = 6; + else external_ref = r; + redraw(); +} + diff --git a/hdspconf/src/HC_AutoSyncRef.h b/hdspconf/src/HC_AutoSyncRef.h new file mode 100644 index 0000000..2ce0921 --- /dev/null +++ b/hdspconf/src/HC_AutoSyncRef.h @@ -0,0 +1,45 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma interface +#ifndef HC_AUTOSYNCREF_H +#define HC_AUTOSYNCREF_H + +#include +#include +#include +#include "HC_CardPane.h" + +class HC_CardPane; + +class HC_AutoSyncRef:public Fl_Widget +{ +public: + HC_AutoSyncRef(int x, int y, int w, int h); + void draw(); + int external_freq, external_ref; + void setFreq(int f); + void setRef(unsigned char r); +private: + Fl_Box_Draw_F *draw_box; +}; + +#endif + diff --git a/hdspconf/src/HC_CardPane.cxx b/hdspconf/src/HC_CardPane.cxx new file mode 100644 index 0000000..ddd5796 --- /dev/null +++ b/hdspconf/src/HC_CardPane.cxx @@ -0,0 +1,46 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma implementation +#include "HC_CardPane.h" + +HC_CardPane::HC_CardPane(int alsa_idx, int idx, int t):Fl_Group(PANE_X, PANE_Y, PANE_W, PANE_H) +{ + alsa_index = alsa_idx; + index = idx; + type = t; + snprintf(name, 7, "Card %d", index+1); + label(name); + labelsize(10); + + sync_ref = new HC_PrefSyncRef(x()+6, y()+20, 112, 120); + sync_check = new HC_SyncCheck(x()+6, y()+156, 112, 100); + + spdif_in = new HC_SpdifIn(x()+124, y()+20, 112, 60); + spdif_out = new HC_SpdifOut(x()+124, y()+96, 112, 80); + spdif_freq = new HC_SpdifFreq(x()+124, y()+192, 112, 20); + + clock_source = new HC_ClockSource(x()+242, y()+20, 112, 140); + autosync_ref = new HC_AutoSyncRef(x()+242, y()+176, 112, 40); + system_clock = new HC_SystemClock(x()+242, y()+232, 112, 40); + + end(); +} + diff --git a/hdspconf/src/HC_CardPane.h b/hdspconf/src/HC_CardPane.h new file mode 100644 index 0000000..3b5eb92 --- /dev/null +++ b/hdspconf/src/HC_CardPane.h @@ -0,0 +1,66 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma interface +#ifndef HC_CardPane_H +#define HC_CardPane_H + +#include +#include +#include "HC_SyncCheck.h" +#include "HC_SpdifFreq.h" +#include "HC_AutoSyncRef.h" +#include "HC_SystemClock.h" +#include "HC_ClockSource.h" +#include "HC_SpdifIn.h" +#include "HC_SpdifOut.h" +#include "HC_PrefSyncRef.h" +#include "defines.h" + +class HC_SyncCheck; +class HC_SpdifFreq; +class HC_AutoSyncRef; +class HC_SystemClock; +class HC_ClockSource; +class HC_SpdifIn; +class HC_SpdifOut; +class HC_PrefSyncRef; + +class HC_CardPane:public Fl_Group +{ +public: + HC_CardPane(int alsa_idx, int idx, int t); + HC_SyncCheck *sync_check; + HC_SpdifFreq *spdif_freq; + HC_AutoSyncRef *autosync_ref; + HC_SystemClock *system_clock; + HC_ClockSource *clock_source; + HC_SpdifIn *spdif_in; + HC_SpdifOut *spdif_out; + HC_PrefSyncRef *sync_ref; + int index; + int alsa_index; + int type; +private: + char name[7]; +}; + +#endif + diff --git a/hdspconf/src/HC_ClockSource.cxx b/hdspconf/src/HC_ClockSource.cxx new file mode 100644 index 0000000..564160a --- /dev/null +++ b/hdspconf/src/HC_ClockSource.cxx @@ -0,0 +1,119 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma implementation +#include "HC_ClockSource.h" + +extern char *freqs[7]; + +void clock_source_cb(Fl_Widget *w, void *arg) +{ + int src, err; + char card_name[6]; + snd_ctl_elem_value_t *ctl; + snd_ctl_elem_id_t *id; + snd_ctl_t *handle; + HC_ClockSource *cs = (HC_ClockSource *)arg; + HC_CardPane *pane = (HC_CardPane *)(cs->parent()); + Fl_Round_Button *source = (Fl_Round_Button *)w; + if (source == cs->autosync) { + src = 0; + } else if (source == cs->khz32) { + src = 1; + } else if (source == cs->khz44_1) { + src = 2; + } else if (source == cs->khz48) { + src = 3; + } else if (source == cs->khz64) { + src = 4; + } else if (source == cs->khz88_2) { + src = 5; + } else if (source == cs->khz96) { + src = 6; + } + snprintf(card_name, 6, "hw:%i", pane->alsa_index); + snd_ctl_elem_value_alloca(&ctl); + snd_ctl_elem_id_alloca(&id); + snd_ctl_elem_id_set_name(id, "Sample Clock Source"); + snd_ctl_elem_id_set_numid(id, 0); + snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_PCM); + snd_ctl_elem_id_set_device(id, 0); + snd_ctl_elem_id_set_subdevice(id, 0); + snd_ctl_elem_id_set_index(id, 0); + snd_ctl_elem_value_set_id(ctl, id); + snd_ctl_elem_value_set_enumerated(ctl, 0, src); + if ((err = snd_ctl_open(&handle, card_name, SND_CTL_NONBLOCK)) < 0) { + fprintf(stderr, "Error opening ctl interface on card %s\n", card_name); + return; + } + if ((err = snd_ctl_elem_write(handle, ctl)) < 0) { + fprintf(stderr, "Error accessing ctl interface on card %s\n", card_name); + return; + } + snd_ctl_close(handle); +} + +HC_ClockSource::HC_ClockSource(int x, int y, int w, int h):Fl_Group(x, y, w, h, "Sample Clock Source") +{ + int i = 0; + int v_step = (int)(h/7.0f); + box(FL_ENGRAVED_FRAME); + label("Sample Clock Source"); + labelsize(10); + align(FL_ALIGN_TOP|FL_ALIGN_LEFT); + autosync = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "AutoSync"); + autosync->callback(clock_source_cb, (void *)this); + khz32 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, freqs[0]); + khz32->callback(clock_source_cb, (void *)this); + khz44_1 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, freqs[1]); + khz44_1->callback(clock_source_cb, (void *)this); + khz48 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, freqs[2]); + khz48->callback(clock_source_cb, (void *)this); + khz64 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, freqs[3]); + khz64->callback(clock_source_cb, (void *)this); + khz88_2 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, freqs[4]); + khz88_2->callback(clock_source_cb, (void *)this); + khz96 = new Fl_Round_Button(x+15, y+v_step*i, w-30, v_step, freqs[5]); + khz96->callback(clock_source_cb, (void *)this); + autosync->labelsize(10); + autosync->type(FL_RADIO_BUTTON); + khz32->labelsize(10); + khz32->type(FL_RADIO_BUTTON); + khz44_1->labelsize(10); + khz44_1->type(FL_RADIO_BUTTON); + khz48->labelsize(10); + khz48->type(FL_RADIO_BUTTON); + khz64->labelsize(10); + khz64->type(FL_RADIO_BUTTON); + khz88_2->labelsize(10); + khz88_2->type(FL_RADIO_BUTTON); + khz96->labelsize(10); + khz96->type(FL_RADIO_BUTTON); + end(); +} + +void HC_ClockSource::setSource(unsigned char s) +{ + if (s < children()) { + if (((Fl_Round_Button *)child(s))->value() != 1) + ((Fl_Round_Button *)child(s))->setonly(); + } +} + diff --git a/hdspconf/src/HC_ClockSource.h b/hdspconf/src/HC_ClockSource.h new file mode 100644 index 0000000..ae44dc6 --- /dev/null +++ b/hdspconf/src/HC_ClockSource.h @@ -0,0 +1,48 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma interface +#ifndef HC_CLOCKSOURCE_H +#define HC_CLOCKSOURCE_H + +#include +#include +#include +#include "HC_CardPane.h" + +class HC_CardPane; + +class HC_ClockSource:public Fl_Group +{ +public: + HC_ClockSource(int x, int y, int w, int h); + int source; + Fl_Round_Button *autosync; + Fl_Round_Button *khz32; + Fl_Round_Button *khz44_1; + Fl_Round_Button *khz48; + Fl_Round_Button *khz64; + Fl_Round_Button *khz88_2; + Fl_Round_Button *khz96; + void setSource(unsigned char s); +}; + +#endif + diff --git a/hdspconf/src/HC_PrefSyncRef.cxx b/hdspconf/src/HC_PrefSyncRef.cxx new file mode 100644 index 0000000..c1bdd01 --- /dev/null +++ b/hdspconf/src/HC_PrefSyncRef.cxx @@ -0,0 +1,120 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma implementation +#include "HC_PrefSyncRef.h" + +void pref_sync_ref_cb(Fl_Widget *w, void *arg) +{ + int ref, err; + char card_name[6]; + snd_ctl_elem_value_t *ctl; + snd_ctl_elem_id_t *id; + snd_ctl_t *handle; + HC_PrefSyncRef *psr = (HC_PrefSyncRef *)arg; + HC_CardPane *pane = (HC_CardPane *)(psr->parent()); + Fl_Round_Button *source = (Fl_Round_Button *)w; + if (source == psr->word_clock) { + ref = 0; + } else if (source == psr->adat_sync) { + ref = 1; + } else if (source == psr->spdif) { + ref = 2; + } else if (source == psr->adat1) { + ref = 3; + } else if (source == psr->adat2) { + ref = 4; + } else if (source == psr->adat3) { + ref = 5; + } + snprintf(card_name, 6, "hw:%i", pane->alsa_index); + snd_ctl_elem_value_alloca(&ctl); + snd_ctl_elem_id_alloca(&id); + snd_ctl_elem_id_set_name(id, "Preferred Sync Reference"); + snd_ctl_elem_id_set_numid(id, 0); + snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_HWDEP); + snd_ctl_elem_id_set_device(id, 0); + snd_ctl_elem_id_set_subdevice(id, 0); + snd_ctl_elem_id_set_index(id, 0); + snd_ctl_elem_value_set_id(ctl, id); + snd_ctl_elem_value_set_enumerated(ctl, 0, ref); + if ((err = snd_ctl_open(&handle, card_name, SND_CTL_NONBLOCK)) < 0) { + fprintf(stderr, "Error opening ctl interface on card %s\n", card_name); + return; + } + if ((err = snd_ctl_elem_write(handle, ctl)) < 0) { + fprintf(stderr, "Error accessing ctl interface on card %s\n", card_name); + return; + } + snd_ctl_close(handle); +} + + +HC_PrefSyncRef::HC_PrefSyncRef(int x, int y, int w, int h):Fl_Group(x, y, w, h, "Pref. Sync Ref") +{ + int i = 0; + int v_step; + if (((HC_CardPane *)parent())->type == MULTIFACE) { + v_step = (int)(h/4.0f); + } else { + v_step = (int)(h/6.0f); + } + source = 0; + box(FL_ENGRAVED_FRAME);; + label("Pref. Sync Ref"); + labelsize(10); + align(FL_ALIGN_TOP|FL_ALIGN_LEFT); + word_clock = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "Word Clock"); + word_clock->callback(pref_sync_ref_cb, (void *)this); + adat_sync = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "ADAT Sync"); + adat_sync->callback(pref_sync_ref_cb, (void *)this); + spdif = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "SPDIF In"); + spdif->callback(pref_sync_ref_cb, (void *)this); + adat1 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "ADAT1 In"); + adat1->callback(pref_sync_ref_cb, (void *)this); + if (((HC_CardPane *)parent())->type != MULTIFACE) { + adat2 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "ADAT2 In"); + adat2->labelsize(10); + adat2->type(FL_RADIO_BUTTON); + adat2->callback(pref_sync_ref_cb, (void *)this); + adat3 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "ADAT3 In"); + adat3->labelsize(10); + adat3->type(FL_RADIO_BUTTON); + adat3->callback(pref_sync_ref_cb, (void *)this); + } + adat1->labelsize(10); + adat1->type(FL_RADIO_BUTTON); + spdif->labelsize(10); + spdif->type(FL_RADIO_BUTTON); + word_clock->labelsize(10); + word_clock->type(FL_RADIO_BUTTON); + adat_sync->labelsize(10); + adat_sync->type(FL_RADIO_BUTTON); + end(); +} + +void HC_PrefSyncRef::setRef(int r) +{ + if (r >= 0 && r < children()) { + if (((Fl_Round_Button *)child(r))->value() != 1) + ((Fl_Round_Button *)child(r))->setonly(); + } +} + diff --git a/hdspconf/src/HC_PrefSyncRef.h b/hdspconf/src/HC_PrefSyncRef.h new file mode 100644 index 0000000..e9cfc88 --- /dev/null +++ b/hdspconf/src/HC_PrefSyncRef.h @@ -0,0 +1,47 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma interface +#ifndef HC_PREFSYNCREF_H +#define HC_PREFSYNCREF_H + +#include +#include +#include +#include "HC_CardPane.h" + +class HC_CardPane; + +class HC_PrefSyncRef:public Fl_Group +{ +public: + HC_PrefSyncRef(int x, int y, int w, int h); + int source; + Fl_Round_Button *adat1; + Fl_Round_Button *adat2; + Fl_Round_Button *adat3; + Fl_Round_Button *spdif; + Fl_Round_Button *word_clock; + Fl_Round_Button *adat_sync; + void setRef(int r); +}; + +#endif + diff --git a/hdspconf/src/HC_SpdifFreq.cxx b/hdspconf/src/HC_SpdifFreq.cxx new file mode 100644 index 0000000..c38630d --- /dev/null +++ b/hdspconf/src/HC_SpdifFreq.cxx @@ -0,0 +1,74 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma implementation +#include "HC_SpdifFreq.h" + +extern char *freqs[7]; + +HC_SpdifFreq::HC_SpdifFreq(int x, int y, int w, int h):Fl_Widget(x, y, w, h, "SPDIF Freq.") +{ + spdif_freq = 0; + draw_box = Fl::get_boxtype(FL_ENGRAVED_FRAME); + label("SPDIF Freq."); + labelsize(10); + align(FL_ALIGN_TOP|FL_ALIGN_LEFT); +} + +void HC_SpdifFreq::draw() +{ + fl_color(FL_BACKGROUND_COLOR); + fl_rectf(x(), y(), w(), h()); + draw_box(x(), y(), w(), h(), FL_WHITE); + fl_color(FL_BLACK); + fl_font(FL_HELVETICA, 10); + fl_draw(freqs[spdif_freq], x(), y(), w(), h(), FL_ALIGN_CENTER); +} + +void HC_SpdifFreq::setFreq(int f) +{ + int freq; + switch (f) { + case 32000: + freq = 0; + break; + case 44100: + freq = 1; + break; + case 48000: + freq = 2; + break; + case 64000: + freq = 3; + break; + case 88200: + freq = 4; + break; + case 96000: + freq = 5; + break; + default: + freq = 6; + } + if (freq != spdif_freq) { + spdif_freq = freq; + redraw(); + } +} diff --git a/hdspconf/src/HC_SpdifFreq.h b/hdspconf/src/HC_SpdifFreq.h new file mode 100644 index 0000000..ca9c81e --- /dev/null +++ b/hdspconf/src/HC_SpdifFreq.h @@ -0,0 +1,44 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma interface +#ifndef HC_SPDIFFREQ_H +#define HC_SPDIFFREQ_H + +#include +#include +#include +#include "HC_CardPane.h" + +class HC_CardPane; + +class HC_SpdifFreq:public Fl_Widget +{ +public: + HC_SpdifFreq(int x, int y, int w, int h); + void draw(); + int spdif_freq; + void setFreq(int f); +private: + Fl_Box_Draw_F *draw_box; +}; + +#endif + diff --git a/hdspconf/src/HC_SpdifIn.cxx b/hdspconf/src/HC_SpdifIn.cxx new file mode 100644 index 0000000..6a8c148 --- /dev/null +++ b/hdspconf/src/HC_SpdifIn.cxx @@ -0,0 +1,94 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma implementation +#include "HC_SpdifIn.h" + +void spdif_in_cb(Fl_Widget *w, void *arg) +{ + int in, err; + char card_name[6]; + snd_ctl_elem_value_t *ctl; + snd_ctl_elem_id_t *id; + snd_ctl_t *handle; + Fl_Round_Button *source = (Fl_Round_Button *)w; + HC_SpdifIn *si = (HC_SpdifIn *)arg; + HC_CardPane *pane = (HC_CardPane *)si->parent(); + if (source == si->adat1) { + in = 0; + } else if (source == si->coaxial) { + in = 1; + } else if (source == si->internal) { + in = 2; + } + snprintf(card_name, 6, "hw:%i", pane->alsa_index); + snd_ctl_elem_value_alloca(&ctl); + snd_ctl_elem_id_alloca(&id); + snd_ctl_elem_id_set_name(id, "IEC958 Input Connector"); + snd_ctl_elem_id_set_numid(id, 0); + snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_PCM); + snd_ctl_elem_id_set_device(id, 0); + snd_ctl_elem_id_set_subdevice(id, 0); + snd_ctl_elem_id_set_index(id, 0); + snd_ctl_elem_value_set_id(ctl, id); + snd_ctl_elem_value_set_enumerated(ctl, 0, in); + if ((err = snd_ctl_open(&handle, card_name, SND_CTL_NONBLOCK)) < 0) { + fprintf(stderr, "Error opening ctl interface on card %s\n", card_name); + return; + } + if ((err = snd_ctl_elem_write(handle, ctl)) < 0) { + fprintf(stderr, "Error accessing ctl interface on card %s\n", card_name); + return; + } + snd_ctl_close(handle); +} + +HC_SpdifIn::HC_SpdifIn(int x, int y, int w, int h):Fl_Group(x, y, w, h, "SPDIF In") +{ + int i = 0; + int v_step = (int)(h/3.0f); + source = 0; + box(FL_ENGRAVED_FRAME);; + label("SPDIF In"); + labelsize(10); + align(FL_ALIGN_TOP|FL_ALIGN_LEFT); + adat1 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "ADAT1"); + coaxial = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "Coaxial"); + internal = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "Internal"); + adat1->labelsize(10); + adat1->type(FL_RADIO_BUTTON); + adat1->callback(spdif_in_cb, (void *)this); + coaxial->labelsize(10); + coaxial->type(FL_RADIO_BUTTON); + coaxial->callback(spdif_in_cb, (void *)this); + internal->labelsize(10); + internal->type(FL_RADIO_BUTTON); + internal->callback(spdif_in_cb, (void *)this); + end(); +} + +void HC_SpdifIn::setInput(unsigned char i) +{ + if (i < children()) { + if (((Fl_Round_Button *)child(i))->value() != 1) + ((Fl_Round_Button *)child(i))->setonly(); + } +} + diff --git a/hdspconf/src/HC_SpdifIn.h b/hdspconf/src/HC_SpdifIn.h new file mode 100644 index 0000000..e84088c --- /dev/null +++ b/hdspconf/src/HC_SpdifIn.h @@ -0,0 +1,44 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma interface +#ifndef HC_SPDIFIN_H +#define HC_SPDIFIN_H + +#include +#include +#include +#include "HC_CardPane.h" + +class HC_CardPane; + +class HC_SpdifIn:public Fl_Group +{ +public: + HC_SpdifIn(int x, int y, int w, int h); + int source; + Fl_Round_Button *adat1; + Fl_Round_Button *coaxial; + Fl_Round_Button *internal; + void setInput(unsigned char i); +}; + +#endif + diff --git a/hdspconf/src/HC_SpdifOut.cxx b/hdspconf/src/HC_SpdifOut.cxx new file mode 100644 index 0000000..8ba484a --- /dev/null +++ b/hdspconf/src/HC_SpdifOut.cxx @@ -0,0 +1,140 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma implementation +#include "HC_SpdifOut.h" + +static void setSpdifBit(char *ctl_name, int val, int card_index) +{ + int err; + char card_name[6]; + snd_ctl_elem_value_t *ctl; + snd_ctl_elem_id_t *id; + snd_ctl_t *handle; + snprintf(card_name, 6, "hw:%i", card_index); + snd_ctl_elem_value_alloca(&ctl); + snd_ctl_elem_id_alloca(&id); + snd_ctl_elem_id_set_name(id, ctl_name); + snd_ctl_elem_id_set_numid(id, 0); + snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_HWDEP); + snd_ctl_elem_id_set_device(id, 0); + snd_ctl_elem_id_set_subdevice(id, 0); + snd_ctl_elem_id_set_index(id, 0); + snd_ctl_elem_value_set_id(ctl, id); + snd_ctl_elem_value_set_integer(ctl, 0, val); + if ((err = snd_ctl_open(&handle, card_name, SND_CTL_NONBLOCK)) < 0) { + fprintf(stderr, "Error opening ctl interface on card %s\n", card_name); + return; + } + if ((err = snd_ctl_elem_write(handle, ctl)) < 0) { + fprintf(stderr, "Error accessing ctl interface on card %s\n", card_name); + return; + } + snd_ctl_close(handle); +} + +void spdif_on_adat_cb(Fl_Widget *w, void *arg) +{ + setSpdifBit("IEC958 Output also on ADAT1", ((Fl_Check_Button *)w)->value(), ((HC_CardPane *)arg)->alsa_index); +} + +void spdif_professional_cb(Fl_Widget *w, void *arg) +{ + setSpdifBit("IEC958 Professional Bit", ((Fl_Check_Button *)w)->value(), ((HC_CardPane *)arg)->alsa_index); +} + +void spdif_emphasis_cb(Fl_Widget *w, void *arg) +{ + setSpdifBit("IEC958 Emphasis Bit", ((Fl_Check_Button *)w)->value(), ((HC_CardPane *)arg)->alsa_index); +} + +void spdif_nonaudio_cb(Fl_Widget *w, void *arg) +{ + setSpdifBit("IEC958 Non-audio Bit", ((Fl_Check_Button *)w)->value(), ((HC_CardPane *)arg)->alsa_index); +} + +HC_SpdifOut::HC_SpdifOut(int x, int y, int w, int h):Fl_Group(x, y, w, h, "SPDIF Out") +{ + int i = 0; + lock = 0; + int v_step = (int)(h/4.0f); + box(FL_ENGRAVED_FRAME); + label("SPDIF Out"); + labelsize(10); + align(FL_ALIGN_TOP|FL_ALIGN_LEFT); + adat1 = new Fl_Check_Button(x+15, y+v_step*i++, w-30, v_step, "ADAT1"); + professional = new Fl_Check_Button(x+15, y+v_step*i++, w-30, v_step, "Professional"); + emphasis = new Fl_Check_Button(x+15, y+v_step*i++, w-30, v_step, "Emphasis"); + non_audio = new Fl_Check_Button(x+15, y+v_step*i++, w-30, v_step, "Non-Audio"); + adat1->labelsize(10); + adat1->callback(spdif_on_adat_cb, (void *)parent()); + professional->labelsize(10); + professional->callback(spdif_professional_cb, (void *)parent()); + emphasis->labelsize(10); + emphasis->callback(spdif_emphasis_cb, (void *)parent()); + non_audio->labelsize(10); + non_audio->callback(spdif_nonaudio_cb, (void *)parent()); + end(); +} + +void HC_SpdifOut::setOut(unsigned char val) +{ + if (val != adat1->value()) { + adat1->value(val); + } +} + +void HC_SpdifOut::setProfessional(unsigned char val) +{ + + if (val != professional->value()) { + professional->value(val); + } +} + +void HC_SpdifOut::setEmphasis(unsigned char val) +{ + if (val != emphasis->value()) { + emphasis->value(val); + } +} + +void HC_SpdifOut::setNonaudio(unsigned char val) +{ + if (val != non_audio->value()) { + non_audio->value(val); + } +} + +int HC_SpdifOut::handle(int e) +{ + switch (e) { + case FL_PUSH: + lock = 1; + break; + case FL_RELEASE: + lock = 0; + break; + default: + return Fl_Group::handle(e); + } + return Fl_Group::handle(e); +} + diff --git a/hdspconf/src/HC_SpdifOut.h b/hdspconf/src/HC_SpdifOut.h new file mode 100644 index 0000000..ef5c303 --- /dev/null +++ b/hdspconf/src/HC_SpdifOut.h @@ -0,0 +1,50 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma interface +#ifndef HC_SPDIFOUT_H +#define HC_SPDIFOUT_H + +#include +#include +#include +#include "HC_CardPane.h" + +class HC_CardPane; + +class HC_SpdifOut:public Fl_Group +{ +public: + HC_SpdifOut(int x, int y, int w, int h); + int source; + Fl_Check_Button *adat1; + Fl_Check_Button *professional; + Fl_Check_Button *emphasis; + Fl_Check_Button *non_audio; + void setOut(unsigned char val); + void setProfessional(unsigned char val); + void setEmphasis(unsigned char val); + void setNonaudio(unsigned char val); + int handle(int e); + int lock; +}; + +#endif + diff --git a/hdspconf/src/HC_SyncCheck.cxx b/hdspconf/src/HC_SyncCheck.cxx new file mode 100644 index 0000000..0ac426d --- /dev/null +++ b/hdspconf/src/HC_SyncCheck.cxx @@ -0,0 +1,125 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma implementation +#include "HC_SyncCheck.h" + +extern char *lock_status[3]; + +HC_SyncCheck::HC_SyncCheck(int x, int y, int w, int h):Fl_Widget(x, y, w, h, "SyncCheck") +{ + adat1_lock_status = -1; + adat2_lock_status = -1; + adat3_lock_status = -1; + wordclock_lock_status = -1; + adatsync_lock_status = -1; + spdif_lock_status = -1; + if (((HC_CardPane *)parent())->type == MULTIFACE) { + v_step = (int)(h/4.0f); + } else { + v_step = (int)(h/6.0f); + } + h_step = (int)(w/2.0f); + draw_box = Fl::get_boxtype(FL_ENGRAVED_FRAME); + label("SyncCheck"); + labelsize(10); + align(FL_ALIGN_TOP|FL_ALIGN_LEFT); +} + +void HC_SyncCheck::draw() +{ + int v_pos = v_step; + int h_pos = 4; + int i = 0; + fl_color(FL_BACKGROUND_COLOR); + fl_rectf(x(), y(), w(), h()); + draw_box(x(), y(), w(), h(), FL_WHITE); + fl_color(FL_BLACK); + fl_font(FL_HELVETICA, 10); + fl_draw("ADAT1 In", x()+h_pos, y()+v_pos*i, h_step, v_step, FL_ALIGN_LEFT); + fl_draw(lock_status[adat1_lock_status], x()+h_pos+h_step, y()+v_pos*i++, h_step-h_pos, v_step, FL_ALIGN_CENTER); + if (((HC_CardPane *)parent())->type != MULTIFACE) { + fl_draw("ADAT2 In", x()+h_pos, y()+v_pos*i, h_step, v_step, FL_ALIGN_LEFT); + fl_draw(lock_status[adat2_lock_status], x()+h_pos+h_step, y()+v_pos*i++, h_step-h_pos, v_step, FL_ALIGN_CENTER); + fl_draw("ADAT3 In", x()+h_pos, y()+v_pos*i, h_step, v_step, FL_ALIGN_LEFT); + fl_draw(lock_status[adat3_lock_status], x()+h_pos+h_step, y()+v_pos*i++, h_step-h_pos, v_step, FL_ALIGN_CENTER); + } + fl_draw("SPDIF In", x()+h_pos, y()+v_pos*i, h_step, v_step, FL_ALIGN_LEFT); + fl_draw(lock_status[spdif_lock_status], x()+h_pos+h_step, y()+v_pos*i++, h_step-h_pos, v_step, FL_ALIGN_CENTER); + fl_draw("WordClock", x()+h_pos, y()+v_pos*i, h_step, v_step, FL_ALIGN_LEFT); + fl_draw(lock_status[wordclock_lock_status], x()+h_pos+h_step, y()+v_pos*i++, h_step-h_pos, v_step, FL_ALIGN_CENTER); + fl_draw("ADAT Sync", x()+h_pos, y()+v_pos*i, h_step, v_step, FL_ALIGN_LEFT); + fl_draw(lock_status[adatsync_lock_status], x()+h_pos+h_step, y()+v_pos*i, h_step-h_pos, v_step, FL_ALIGN_CENTER); +} + +void HC_SyncCheck::setSpdifStatus(unsigned char s) +{ + if (s == spdif_lock_status) return; + if (s > 2) spdif_lock_status = 2; + else spdif_lock_status = s; + redraw(); + return; +} + +void HC_SyncCheck::setWCStatus(unsigned char s) +{ + if (s == wordclock_lock_status) return; + if (s > 2) wordclock_lock_status = 2; + else wordclock_lock_status = s; + redraw(); + return; +} + +void HC_SyncCheck::setAdat1Status(unsigned char s) +{ + if (s == adat1_lock_status) return; + if (s > 2) adat1_lock_status = 2; + else adat1_lock_status = s; + redraw(); + return; +} + +void HC_SyncCheck::setAdat2Status(unsigned char s) +{ + if (s == adat2_lock_status) return; + if (s > 2) adat2_lock_status = 2; + else adat2_lock_status = s; + redraw(); + return; +} + +void HC_SyncCheck::setAdat3Status(unsigned char s) +{ + if (s == adat3_lock_status) return; + if (s > 2) adat3_lock_status = 2; + else adat3_lock_status = s; + redraw(); + return; +} + +void HC_SyncCheck::setAdatSyncStatus(unsigned char s) +{ + if (s == adatsync_lock_status) return; + if (s > 2) adatsync_lock_status = 2; + else adatsync_lock_status = s; + redraw(); + return; +} + diff --git a/hdspconf/src/HC_SyncCheck.h b/hdspconf/src/HC_SyncCheck.h new file mode 100644 index 0000000..64e8b00 --- /dev/null +++ b/hdspconf/src/HC_SyncCheck.h @@ -0,0 +1,59 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma interface +#ifndef HC_SYNCCHECK_H +#define HC_SYNCCHECK_H + +#include +#include +#include +#include "HC_CardPane.h" + +#define NO_LOCK 0 +#define LOCK 1 +#define SYNC 2 + +class HC_CardPane; + +class HC_SyncCheck:public Fl_Widget +{ +public: + HC_SyncCheck(int x, int y, int w, int h); + void draw(); + int adat1_lock_status; + int adat2_lock_status; + int adat3_lock_status; + int wordclock_lock_status; + int adatsync_lock_status; + int spdif_lock_status; + void setSpdifStatus(unsigned char s); + void setAdat1Status(unsigned char s); + void setAdat2Status(unsigned char s); + void setAdat3Status(unsigned char s); + void setAdatSyncStatus(unsigned char s); + void setWCStatus(unsigned char s); +private: + int v_step, h_step; + Fl_Box_Draw_F *draw_box; +}; + +#endif + diff --git a/hdspconf/src/HC_SystemClock.cxx b/hdspconf/src/HC_SystemClock.cxx new file mode 100644 index 0000000..947dc50 --- /dev/null +++ b/hdspconf/src/HC_SystemClock.cxx @@ -0,0 +1,87 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma implementation +#include "HC_SystemClock.h" + +extern char *freqs[7]; + +HC_SystemClock::HC_SystemClock(int x, int y, int w, int h):Fl_Widget(x, y, w, h, "System Clock") +{ + system_freq = 6; + system_mode = 0; + draw_box = Fl::get_boxtype(FL_ENGRAVED_FRAME); + label("System Clock"); + labelsize(10); + align(FL_ALIGN_TOP|FL_ALIGN_LEFT); +} + +void HC_SystemClock::draw() +{ + fl_color(FL_BACKGROUND_COLOR); + fl_rectf(x(), y(), w(), h()); + draw_box(x(), y(), w(), h(), FL_WHITE); + fl_color(FL_BLACK); + fl_font(FL_HELVETICA, 10); + fl_draw("Mode", x()+4, y(), w()/2, h()/2, FL_ALIGN_LEFT); + fl_draw(system_mode ? "Slave" : "Master", x()+w()/2-4, y(), w()/2, h()/2, FL_ALIGN_CENTER); + fl_draw("Freq.", x()+4, y()+h()/2, w()/2, h()/2, FL_ALIGN_LEFT); + fl_draw(freqs[system_freq], x()+w()/2-4, y()+h()/2, w()/2, h()/2, FL_ALIGN_CENTER); +} + +void HC_SystemClock::setMode(unsigned char m) +{ + if (m != system_mode) { + if (m) system_mode = 1; + else system_mode = 0; + redraw(); + } +} + +void HC_SystemClock::setFreq(int f) +{ + int freq; + switch(f) { + case 32000: + freq = 0; + break; + case 44100: + freq = 1; + break; + case 48000: + freq = 2; + break; + case 64000: + freq = 3; + break; + case 88200: + freq = 4; + break; + case 96000: + freq = 5; + break; + default: + freq = 6; + } + if (freq != system_freq) { + system_freq = freq; + redraw(); + } +} diff --git a/hdspconf/src/HC_SystemClock.h b/hdspconf/src/HC_SystemClock.h new file mode 100644 index 0000000..8102e86 --- /dev/null +++ b/hdspconf/src/HC_SystemClock.h @@ -0,0 +1,46 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma interface +#ifndef HC_SYSTEMCLOCK_H +#define HC_SYSTEMCLOCK_H + +#include +#include +#include +#include "HC_CardPane.h" + +class HC_CardPane; + +class HC_SystemClock:public Fl_Widget +{ +public: + HC_SystemClock(int x, int y, int w, int h); + void draw(); + int system_freq; + int system_mode; + void setMode(unsigned char m); + void setFreq(int f); +private: + Fl_Box_Draw_F *draw_box; +}; + +#endif + diff --git a/hdspconf/src/HC_XpmRenderer.cxx b/hdspconf/src/HC_XpmRenderer.cxx new file mode 100644 index 0000000..72742f8 --- /dev/null +++ b/hdspconf/src/HC_XpmRenderer.cxx @@ -0,0 +1,33 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma implementation +#include "HC_XpmRenderer.h" + +HC_XpmRenderer::HC_XpmRenderer(int x, int y, int w, int h, char * const *xpm):Fl_Widget(x, y, w, h) +{ + pixmap = xpm; +} + +void HC_XpmRenderer::draw() +{ + fl_draw_pixmap(pixmap, x(), y()); +} + diff --git a/hdspconf/src/HC_XpmRenderer.h b/hdspconf/src/HC_XpmRenderer.h new file mode 100644 index 0000000..c3d1268 --- /dev/null +++ b/hdspconf/src/HC_XpmRenderer.h @@ -0,0 +1,39 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#pragma interface +#ifndef HC_XPMRENDERER_H +#define HC_XPMRENDERER_H + +#include +#include +#include + +class HC_XpmRenderer:public Fl_Widget +{ +public: + HC_XpmRenderer(int x, int y, int w, int h, char * const *xpm); + void draw(); +private: + char * const *pixmap; +}; + +#endif + diff --git a/hdspconf/src/Makefile.am b/hdspconf/src/Makefile.am new file mode 100644 index 0000000..2d82236 --- /dev/null +++ b/hdspconf/src/Makefile.am @@ -0,0 +1,26 @@ +bin_PROGRAMS = hdspconf +hdspconf_SOURCES = \ + hdspconf.cxx \ + defines.h \ + HC_CardPane.cxx \ + HC_CardPane.h \ + HC_SyncCheck.cxx \ + HC_SyncCheck.h \ + HC_SpdifFreq.cxx \ + HC_SpdifFreq.h \ + HC_AutoSyncRef.cxx \ + HC_AutoSyncRef.h \ + HC_SystemClock.cxx \ + HC_SystemClock.h \ + HC_ClockSource.cxx \ + HC_ClockSource.h \ + HC_SpdifIn.cxx \ + HC_SpdifIn.h \ + HC_SpdifOut.cxx \ + HC_SpdifOut.h \ + HC_PrefSyncRef.cxx \ + HC_PrefSyncRef.h \ + HC_XpmRenderer.cxx \ + HC_XpmRenderer.h \ + HC_AboutText.cxx \ + HC_AboutText.h diff --git a/hdspconf/src/defines.h b/hdspconf/src/defines.h new file mode 100644 index 0000000..6433928 --- /dev/null +++ b/hdspconf/src/defines.h @@ -0,0 +1,42 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef DEFINES_H +#define DEFINES_H + +#define MULTIFACE 0 +#define DIGIFACE 1 +#define HDSP9652 2 + +#define WINDOW_WIDTH 380 +#define WINDOW_HEIGHT 330 + +#define TABS_X 10 +#define TABS_Y 10 +#define TABS_W 360 +#define TABS_H 310 + +#define PANE_X 10 +#define PANE_Y 30 +#define PANE_H 290 +#define PANE_W 360 + +#endif + diff --git a/hdspconf/src/hdspconf.cxx b/hdspconf/src/hdspconf.cxx new file mode 100644 index 0000000..fb43d0d --- /dev/null +++ b/hdspconf/src/hdspconf.cxx @@ -0,0 +1,200 @@ +/* + * HDSPConf + * + * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org) + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "HC_CardPane.h" +#include "HC_XpmRenderer.h" +#include "HC_AboutText.h" +#include "defines.h" + +#include "../pixmaps/rme.xpm" +#include "../pixmaps/alsalogo.xpm" +#include "../pixmaps/lad_banner.xpm" + +class HC_CardPane; +class HC_XpmRenderer; +class HC_AboutText; + +char *freqs[7] = { + "32.0 kHz", + "44.1 kHz", + "48.0 kHz", + "64.0 kHz", + "88.2 kHz", + "96.0 kHz", + "-----" +}; + +char *ref[7] = { + "Word Clock", + "ADAT Sync", + "SPDIF", + "-----", + "ADAT1", + "ADAT2", + "ADAT3" +}; + +char *lock_status[3] = { + "No Lock", + "Lock", + "Sync" +}; + +static void refresh_cb(void *arg) +{ + Fl_Tabs *tabs = (Fl_Tabs *)arg; + int err; + snd_hwdep_t *hw; + char card_name[6]; + hdsp_config_info_t config_info; + + for (int i = 0; i < tabs->children()-1 ; ++i) { + HC_CardPane *pane = (HC_CardPane *)tabs->child(i); + if (!pane->visible()) { + break; + } + snprintf(card_name, 6, "hw:%i", pane->alsa_index); + + if ((err = snd_hwdep_open(&hw, card_name, SND_HWDEP_OPEN_READ)) != 0) { + fprintf(stderr, "Error opening hwdep device on card %s.\n", card_name); + break; + } + + if ((err = snd_hwdep_ioctl(hw, SNDRV_HDSP_IOCTL_GET_CONFIG_INFO, (void *)&config_info)) < 0) { + fprintf(stderr, "Hwdep ioctl error on card %s.\n", card_name); + snd_hwdep_close(hw); + break; + } + + snd_hwdep_close(hw); + + pane->sync_ref->setRef(config_info.pref_sync_ref); + pane->spdif_freq->setFreq(config_info.spdif_sample_rate); + pane->sync_check->setAdat1Status(config_info.adat_sync_check[0]); + pane->sync_check->setSpdifStatus(config_info.spdif_sync_check); + pane->sync_check->setWCStatus(config_info.wordclock_sync_check); + pane->sync_check->setAdatSyncStatus(config_info.adatsync_sync_check); + if (pane->type != MULTIFACE) { + pane->sync_check->setAdat2Status(config_info.adat_sync_check[1]); + pane->sync_check->setAdat3Status(config_info.adat_sync_check[2]); + } + pane->spdif_in->setInput(config_info.spdif_in); + if (pane->spdif_out->lock == 0) { + pane->spdif_out->setOut(config_info.spdif_out); + pane->spdif_out->setProfessional(config_info.spdif_professional); + pane->spdif_out->setEmphasis(config_info.spdif_emphasis); + pane->spdif_out->setNonaudio(config_info.spdif_nonaudio); + } + pane->clock_source->setSource(config_info.clock_source); + pane->autosync_ref->setRef(config_info.autosync_ref); + pane->autosync_ref->setFreq(config_info.autosync_sample_rate); + pane->system_clock->setMode(config_info.system_clock_mode); + pane->system_clock->setFreq(config_info.system_sample_rate); + } + + Fl::add_timeout(0.3, refresh_cb, arg); + return; +} + +int main(int argc, char **argv) +{ + Fl_Window *window; + Fl_Tabs *tabs; + HC_CardPane *card_panes[4]; + HC_XpmRenderer *lad_banner; + HC_XpmRenderer *alsa_logo; + HC_XpmRenderer *rme_logo; + HC_AboutText *about_text; + Fl_Group *about_pane; + char **name; + int card; + int hdsp_cards[4]; + int alsa_index[4]; + snd_ctl_t *handle; + snd_ctl_card_info_t *info; + snd_pcm_info_t *pcminfo; + int cards = 0; + + snd_ctl_card_info_alloca(&info); + snd_pcm_info_alloca(&pcminfo); + card = -1; + printf("HDSPConf %s\n", VERSION); + printf("Looking for HDSP cards :\n"); + while (snd_card_next(&card) >= 0 && cards < 4) { + if (card < 0) { + break; + } else { + snd_card_get_longname(card, name); + printf("Card %d : %s\n", card, *name); + if (!strncmp(*name, "RME Hammerfall DSP + Multiface", 30)) { + printf("Multiface found !\n"); + hdsp_cards[cards] = MULTIFACE; + alsa_index[cards] = card; + cards++; + } else if (!strncmp(*name, "RME Hammerfall DSP + Digiface", 29)) { + printf("Digiface found !\n"); + hdsp_cards[cards] = DIGIFACE; + alsa_index[cards] = card; + cards++; + } else if (!strncmp(*name, "RME HDSP 9652", 13)) { + printf("HDSP 9652 found !\n"); + hdsp_cards[cards] = HDSP9652; + alsa_index[cards] = card; + cards++; + } + } + } + if (!cards) { + printf("No Hammerfall DSP card found.\n"); + exit(1); + } + printf("%d Hammerfall DSP %s found.\n", cards, (cards > 1) ? "cards" : "card"); + + window = new Fl_Window(WINDOW_WIDTH, WINDOW_HEIGHT, "Hammerfall DSP Alsa Settings"); + tabs = new Fl_Tabs(TABS_X, TABS_Y, TABS_W, TABS_H); + window->end(); + for (int i = 0; i < cards; ++i) { + card_panes[i] = new HC_CardPane(alsa_index[i], i, hdsp_cards[i]); + tabs->add((Fl_Group *)card_panes[i]); + } + about_pane = new Fl_Group(10, 30, 360, 360, "About"); + about_pane->labelsize(10); + about_text = new HC_AboutText(20, 40, 340, 210); + rme_logo = new HC_XpmRenderer(20, 263, 113, 35, rme_xpm); + alsa_logo = new HC_XpmRenderer(170, 255, 50, 50, alsalogo_xpm); + lad_banner = new HC_XpmRenderer(245, 260, 113, 39, lad_banner_xpm); + about_pane->end(); + tabs->add(about_pane); + refresh_cb((void *)tabs); + window->show(argc, argv); + return Fl::run(); +} + -- 2.47.1