[PATCH 3/5] cnslock: Add version 1.02 to repository.
Doug Torrance <[email protected]>
| Newsgroups | gmane.compw.window-managers.windowmaker.devel |
|---|---|
| Message-ID | <[email protected]> |
From:
http://www.gnu-darwin.org/distfiles/cnslock-1.02.tar.gz
(Note that this file is not really gzipped, just use "tar -xf".)
---
cnslock/CHANGES | 8 +
cnslock/COPYING | 340 +++++++++++++++
cnslock/INSTALL | 15 +
cnslock/Makefile | 29 ++
cnslock/README | 37 ++
cnslock/TODO | 9 +
cnslock/applet.c | 83 ++++
cnslock/cnslock.c | 265 ++++++++++++
cnslock/graphics/.xvpics/caps_num_scroll.h | Bin 0 -> 3207 bytes
cnslock/graphics/.xvpics/caps_num_scroll.png | Bin 0 -> 3205 bytes
cnslock/graphics/.xvpics/caps_scroll.h | Bin 0 -> 3207 bytes
cnslock/graphics/.xvpics/none.h | Bin 0 -> 3207 bytes
cnslock/graphics/.xvpics/num.h | Bin 0 -> 3207 bytes
cnslock/graphics/.xvpics/num_scroll.h | Bin 0 -> 3207 bytes
cnslock/graphics/.xvpics/scroll.h | Bin 0 -> 3207 bytes
cnslock/graphics/caps.h | 488 ++++++++++++++++++++++
cnslock/graphics/caps_num.h | 488 ++++++++++++++++++++++
cnslock/graphics/caps_num_scroll.h | 488 ++++++++++++++++++++++
cnslock/graphics/caps_scroll.h | 488 ++++++++++++++++++++++
cnslock/graphics/master.xpm | 71 ++++
cnslock/graphics/none.h | 488 ++++++++++++++++++++++
cnslock/graphics/num.h | 488 ++++++++++++++++++++++
cnslock/graphics/num_scroll.h | 488 ++++++++++++++++++++++
cnslock/graphics/pngs/.xvpics/caps.h | Bin 0 -> 3207 bytes
cnslock/graphics/pngs/.xvpics/caps.png | Bin 0 -> 3205 bytes
cnslock/graphics/pngs/.xvpics/caps_num.h | Bin 0 -> 3207 bytes
cnslock/graphics/pngs/.xvpics/caps_num.png | Bin 0 -> 3206 bytes
cnslock/graphics/pngs/.xvpics/caps_num_scroll.h | Bin 0 -> 3207 bytes
cnslock/graphics/pngs/.xvpics/caps_num_scroll.png | Bin 0 -> 3206 bytes
cnslock/graphics/pngs/.xvpics/caps_scroll.h | Bin 0 -> 3207 bytes
cnslock/graphics/pngs/.xvpics/caps_scroll.png | Bin 0 -> 3205 bytes
cnslock/graphics/pngs/.xvpics/none.png | Bin 0 -> 3205 bytes
cnslock/graphics/pngs/.xvpics/num.h | Bin 0 -> 3207 bytes
cnslock/graphics/pngs/.xvpics/num.png | Bin 0 -> 3205 bytes
cnslock/graphics/pngs/.xvpics/num_scroll.h | Bin 0 -> 3207 bytes
cnslock/graphics/pngs/.xvpics/num_scroll.png | Bin 0 -> 3205 bytes
cnslock/graphics/pngs/.xvpics/scroll.h | Bin 0 -> 3207 bytes
cnslock/graphics/pngs/.xvpics/scroll.png | Bin 0 -> 3205 bytes
cnslock/graphics/pngs/caps.png | Bin 0 -> 898 bytes
cnslock/graphics/pngs/caps_num.png | Bin 0 -> 1081 bytes
cnslock/graphics/pngs/caps_num_scroll.png | Bin 0 -> 1138 bytes
cnslock/graphics/pngs/caps_scroll.png | Bin 0 -> 955 bytes
cnslock/graphics/pngs/none.png | Bin 0 -> 142 bytes
cnslock/graphics/pngs/num.png | Bin 0 -> 827 bytes
cnslock/graphics/pngs/num_scroll.png | Bin 0 -> 889 bytes
cnslock/graphics/pngs/scroll.png | Bin 0 -> 696 bytes
cnslock/graphics/scroll.h | 488 ++++++++++++++++++++++
cnslock/include/applet.h | 2 +
cnslock/include/cnslock.h | 35 ++
cnslock/include/defines.h | 20 +
cnslock/include/kleds.h | 2 +
cnslock/kleds.c | 37 ++
52 files changed, 4857 insertions(+)
create mode 100644 cnslock/CHANGES
create mode 100644 cnslock/COPYING
create mode 100644 cnslock/INSTALL
create mode 100644 cnslock/Makefile
create mode 100644 cnslock/README
create mode 100644 cnslock/TODO
create mode 100644 cnslock/applet.c
create mode 100644 cnslock/cnslock.c
create mode 100644 cnslock/graphics/.xvpics/caps_num_scroll.h
create mode 100644 cnslock/graphics/.xvpics/caps_num_scroll.png
create mode 100644 cnslock/graphics/.xvpics/caps_scroll.h
create mode 100644 cnslock/graphics/.xvpics/none.h
create mode 100644 cnslock/graphics/.xvpics/num.h
create mode 100644 cnslock/graphics/.xvpics/num_scroll.h
create mode 100644 cnslock/graphics/.xvpics/scroll.h
create mode 100644 cnslock/graphics/caps.h
create mode 100644 cnslock/graphics/caps_num.h
create mode 100644 cnslock/graphics/caps_num_scroll.h
create mode 100644 cnslock/graphics/caps_scroll.h
create mode 100644 cnslock/graphics/master.xpm
create mode 100644 cnslock/graphics/none.h
create mode 100644 cnslock/graphics/num.h
create mode 100644 cnslock/graphics/num_scroll.h
create mode 100644 cnslock/graphics/pngs/.xvpics/caps.h
create mode 100644 cnslock/graphics/pngs/.xvpics/caps.png
create mode 100644 cnslock/graphics/pngs/.xvpics/caps_num.h
create mode 100644 cnslock/graphics/pngs/.xvpics/caps_num.png
create mode 100644 cnslock/graphics/pngs/.xvpics/caps_num_scroll.h
create mode 100644 cnslock/graphics/pngs/.xvpics/caps_num_scroll.png
create mode 100644 cnslock/graphics/pngs/.xvpics/caps_scroll.h
create mode 100644 cnslock/graphics/pngs/.xvpics/caps_scroll.png
create mode 100644 cnslock/graphics/pngs/.xvpics/none.png
create mode 100644 cnslock/graphics/pngs/.xvpics/num.h
create mode 100644 cnslock/graphics/pngs/.xvpics/num.png
create mode 100644 cnslock/graphics/pngs/.xvpics/num_scroll.h
create mode 100644 cnslock/graphics/pngs/.xvpics/num_scroll.png
create mode 100644 cnslock/graphics/pngs/.xvpics/scroll.h
create mode 100644 cnslock/graphics/pngs/.xvpics/scroll.png
create mode 100644 cnslock/graphics/pngs/caps.png
create mode 100644 cnslock/graphics/pngs/caps_num.png
create mode 100644 cnslock/graphics/pngs/caps_num_scroll.png
create mode 100644 cnslock/graphics/pngs/caps_scroll.png
create mode 100644 cnslock/graphics/pngs/none.png
create mode 100644 cnslock/graphics/pngs/num.png
create mode 100644 cnslock/graphics/pngs/num_scroll.png
create mode 100644 cnslock/graphics/pngs/scroll.png
create mode 100644 cnslock/graphics/scroll.h
create mode 100644 cnslock/include/applet.h
create mode 100644 cnslock/include/cnslock.h
create mode 100644 cnslock/include/defines.h
create mode 100644 cnslock/include/kleds.h
create mode 100644 cnslock/kleds.c
diff --git a/cnslock/CHANGES b/cnslock/CHANGES
new file mode 100644
index 0000000..43cd819
--- /dev/null
+++ b/cnslock/CHANGES
@@ -0,0 +1,8 @@
+cnslock 1.02 (27th October 2002)
+
+ * Added feature to allow applet to be run in window managers such as
+ enlightenment, fvwm, etc.
+
+cnslock 1.01 (11th October 2002)
+
+ * First public release.
diff --git a/cnslock/COPYING b/cnslock/COPYING
new file mode 100644
index 0000000..eeb586b
--- /dev/null
+++ b/cnslock/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.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 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) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/cnslock/INSTALL b/cnslock/INSTALL
new file mode 100644
index 0000000..a7c4910
--- /dev/null
+++ b/cnslock/INSTALL
@@ -0,0 +1,15 @@
+Requirements
+------------------------------------------------------
+ - gtk+ ( >= 2.1.x )
+ - Xlib, Xpm, gdk-pixbuf
+ - root access for install
+
+Installation
+------------------------------------------------------
+1) Untar/gunzip sources
+ $ tar zxvf cnslock-x.x.x.tar.gz
+
+2) Compilation
+ 'make'
+ become root (via 'su')
+ 'make install'
diff --git a/cnslock/Makefile b/cnslock/Makefile
new file mode 100644
index 0000000..96bc22b
--- /dev/null
+++ b/cnslock/Makefile
@@ -0,0 +1,29 @@
+INSTALL = /usr/bin/install -m 755
+PREFIX = /usr/local
+
+VERSION = 1.02
+CFLAGS = -O3 -Wall `gtk-config --cflags` -DVERSION=$(VERSION) ${EXTRA}
+CC = gcc
+OBJS = cnslock.o kleds.o applet.o
+
+LIBS = `gtk-config --libs | sed "s/-lgtk//g"`
+
+all: cnslock
+
+cnslock.o: cnslock.c include/cnslock.h include/defines.h
+ $(CC) $(CFLAGS) -c cnslock.c -o cnslock.o
+
+applet.o: applet.c include/applet.h include/defines.h
+ gcc $(CFLAGS) -c applet.c -o applet.o
+
+kleds.o: kleds.c include/kleds.h include/defines.h
+ $(CC) -Wall -I/usr/X11R6/include -c kleds.c -o kleds.o
+
+cnslock: $(OBJS)
+ $(CC) -o cnslock $(OBJS) $(LIBS)
+
+clean:
+ rm -rf cnslock *.o *~ .xvpics
+
+install : cnslock
+ $(INSTALL) cnslock $(PREFIX)/bin
diff --git a/cnslock/README b/cnslock/README
new file mode 100644
index 0000000..d915956
--- /dev/null
+++ b/cnslock/README
@@ -0,0 +1,37 @@
+Description
+------------------------------------------------------------
+
+cnslock is a dock application (dockapp) which provides a
+visual indication of the states of the three "lock" buttons
+(caps, num, and scroll).
+
+It was written so that I could see the state of those keys
+as I have a wireless keyboard with no leds on it.
+
+Bugs
+------------------------------------------------------------
+If you discover any bug in this software, please send a
+bugreport to [email protected] and describe the
+problem with as many details as possible.
+
+Copyright
+-------------------------------------------------------------
+cnslock is Copyright (C) 2002 by Simon Hunter,
+SPRIG Positive Research Intelligent Gizmos.
+
+cnslock is licensed through the GNU General Public License.
+Read the COPYING file for the complete GNU license.
+
+Usage
+-------------------------------------------------------------
+
+Simply launch:
+ cnslock
+
+If you have problems running it under a different window
+manager, such as fvwm or enlightenment, there is a command
+line argument that may help:
+ cnslock -w
+
+
+
diff --git a/cnslock/TODO b/cnslock/TODO
new file mode 100644
index 0000000..10a6967
--- /dev/null
+++ b/cnslock/TODO
@@ -0,0 +1,9 @@
+Ideas:
+---------
+* Ability to use user defined images for the various states.
+* Configuration panel access via mouse click.
+* Application launch via mouse clicks (Idea from Fabio Stumbo).
+
+External suggestions:
+---------------------
+* If you have a suggestion, please email me at [email protected].
diff --git a/cnslock/applet.c b/cnslock/applet.c
new file mode 100644
index 0000000..e9f457c
--- /dev/null
+++ b/cnslock/applet.c
@@ -0,0 +1,83 @@
+#include <stdio.h>
+
+#include "include/defines.h"
+#include "include/cnslock.h"
+#include "include/applet.h"
+
+#include "graphics/master.xpm"
+
+/* This function makes the dockapp window */
+void make_new_cnslock_dockapp(int manager_style)
+{
+#define MASK GDK_BUTTON_PRESS_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK
+
+ GdkWindowAttr attr;
+ GdkWindowAttr attri;
+
+ Window win;
+ Window iconwin;
+ XWMHints wmhints;
+ XSizeHints sizehints;
+
+ memset(&attr, 0, sizeof(GdkWindowAttr));
+
+ attr.width = WINDOWSIZE_X;
+ attr.height = WINDOWSIZE_Y;
+ attr.x = 100;
+ attr.y = 100;
+ attr.title = "cnslockapplet";
+ attr.event_mask = MASK;
+ attr.wclass = GDK_INPUT_OUTPUT;
+ attr.visual = gdk_visual_get_system();
+ attr.colormap = gdk_colormap_get_system();
+ attr.wmclass_name = "cnslockapplet";
+ attr.wmclass_class = "cnslockapplet";
+ attr.window_type = GDK_WINDOW_TOPLEVEL;
+
+ /* make a copy for the iconwin - parameters are the same */
+ memcpy(&attri, &attr, sizeof(GdkWindowAttr));
+
+ ad.win = gdk_window_new(NULL, &attr, GDK_WA_TITLE | GDK_WA_WMCLASS | GDK_WA_VISUAL | GDK_WA_COLORMAP | GDK_WA_X |GDK_WA_Y);
+ if (!ad.win)
+ {
+ fprintf(stderr, "FATAL: cannot make toplevel window\n");
+ exit(1);
+ }
+
+ ad.iconwin = gdk_window_new(ad.win, &attri, GDK_WA_TITLE | GDK_WA_WMCLASS | GDK_WA_VISUAL | GDK_WA_COLORMAP | GDK_WA_X |GDK_WA_Y);
+ if (!ad.iconwin)
+ {
+ fprintf(stderr, "FATAL: cannot make icon window\n");
+ exit(1);
+ }
+
+ if(manager_style==0)
+ {
+ win = GDK_WINDOW_XWINDOW(ad.win);
+ iconwin = GDK_WINDOW_XWINDOW(ad.iconwin);
+ sizehints.flags = USSize;
+ sizehints.width = WINDOWSIZE_X;
+ sizehints.height = WINDOWSIZE_Y;
+ XSetWMNormalHints(GDK_WINDOW_XDISPLAY(ad.win), win, &sizehints);
+ wmhints.initial_state = WithdrawnState;
+ wmhints.icon_window = iconwin;
+ wmhints.icon_x = 0;
+ wmhints.icon_y = 0;
+ wmhints.window_group = win;
+ wmhints.flags = StateHint | IconWindowHint | IconPositionHint | WindowGroupHint;
+ XSetWMHints(GDK_WINDOW_XDISPLAY(ad.win), win, &wmhints);
+ }
+
+ ad.gc = gdk_gc_new(ad.win);
+ ad.pixmap = gdk_pixmap_create_from_xpm_d(ad.win, &(ad.mask), NULL, master_xpm);
+ gdk_window_shape_combine_mask(ad.win, ad.mask, 0, 0);
+ gdk_window_shape_combine_mask(ad.iconwin, ad.mask, 0, 0);
+ gdk_window_set_back_pixmap(ad.win, ad.pixmap, False);
+ gdk_window_set_back_pixmap(ad.iconwin, ad.pixmap, False);
+ gdk_window_show(ad.win);
+
+ if(posx!=-1 && posy!=-1)
+ gdk_window_move(ad.win, posx, posy);
+
+#undef MASK
+}
diff --git a/cnslock/cnslock.c b/cnslock/cnslock.c
new file mode 100644
index 0000000..f063475
--- /dev/null
+++ b/cnslock/cnslock.c
@@ -0,0 +1,265 @@
+/* csnlock v1.02
+ * Copyright (C) 2002 Simon Hunter ([email protected])
+ *
+ * cnslock is a dock application that displays the current state of the
+ * three lock keys (caps, num, and scroll)
+ *
+ * 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 receive a copy of the GNU General Public License along with
+ * this program; if you still want it, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Hacked from various wm applets.
+ *
+ */
+
+/* general includes */
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <time.h>
+#include <math.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#define _GNU_SOURCE
+#include <getopt.h>
+#include <ctype.h>
+
+/* gdk includes */
+#include <gdk/gdk.h>
+#include <gdk/gdkx.h>
+
+/* x11 includes */
+#include <X11/xpm.h>
+#include <X11/Xlib.h>
+#include <X11/extensions/shape.h>
+
+/* header includes */
+#include "include/defines.h"
+#include "include/applet.h"
+#include "include/cnslock.h"
+#include "include/kleds.h"
+
+/* graphic includes */
+#include "graphics/none.h"
+#include "graphics/caps.h"
+#include "graphics/num.h"
+#include "graphics/scroll.h"
+#include "graphics/caps_num.h"
+#include "graphics/caps_scroll.h"
+#include "graphics/num_scroll.h"
+#include "graphics/caps_num_scroll.h"
+
+/* stuff */
+void cnslock_update(void);
+
+/* misc support functions */
+void prepare_backbuffer(int solid);
+void parse_options(int argc, char **argv);
+void do_help(void);
+void do_version(void);
+void make_rgb_buffer256(unsigned char *target, unsigned char *source,int width, int height, int frames, char *cmap);
+
+/* globals */
+AppletData ad;
+
+/* keeps track of mouse focus */
+int proximity;
+
+/* background style (n/a) */
+int selected_background=1;
+
+/* initial positional data (n/a) */
+int posx=-1, posy=-1;
+
+/* window manager style (0=wm, 1=other) */
+int manager_style=0;
+
+/* the main routine */
+int main(int argc, char **argv)
+{
+ GdkEvent *event;
+
+ srand(time(NULL));
+
+ /* initialize GDK */
+ if (!gdk_init_check(&argc, &argv))
+ {
+ fprintf(stderr, "GDK init failed, bye bye. Check \"DISPLAY\" variable.\n");
+ exit(-1);
+ }
+ gdk_rgb_init();
+
+ /* parse command line options */
+ parse_options(argc, argv);
+
+ /* zero main data structure */
+ memset(&ad, 0, sizeof(ad));
+
+ /* intialise keyboard leds */
+ init_kleds();
+
+ /* create dockapp window. creates windows, allocates memory, etc */
+ make_new_cnslock_dockapp(manager_style);
+
+ /* draw initial background */
+ prepare_backbuffer(selected_background);
+
+ while(1)
+ {
+ while(gdk_events_pending())
+ {
+ event = gdk_event_get();
+ if(event)
+ {
+ switch (event->type)
+ {
+ case GDK_DESTROY:
+ gdk_exit(0);
+ exit(0);
+ break;
+ case GDK_BUTTON_PRESS:
+ /* printf("button press\n"); */
+ break;
+ case GDK_ENTER_NOTIFY:
+ proximity = 1;
+ break;
+ case GDK_LEAVE_NOTIFY:
+ proximity = 0;
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ usleep(20000);
+ cnslock_update();
+
+ /* actually draw the rgb buffer to screen */
+
+ if (manager_style==0)
+ gdk_draw_rgb_image(ad.iconwin, ad.gc, XMIN, YMIN, XMAX, YMAX, GDK_RGB_DITHER_NONE, ad.rgb, XMAX * 3);
+ else
+ gdk_draw_rgb_image(ad.win, ad.gc, XMIN, YMIN, XMAX, YMAX, GDK_RGB_DITHER_NONE, ad.rgb, XMAX * 3);
+ }
+ return 0;
+} /* main */
+
+/* update caps, num, scroll lock */
+void cnslock_update(void)
+{
+ int status;
+
+ memcpy(&ad.rgb, &ad.bgr, RGBSIZE);
+
+ status = check_kleds();
+ if ((status & 0) == 0)
+ make_rgb_buffer256(ad.rgb,none_data,none_width,none_height,1, *none_cmap);
+ if ((status & 1) == 1)
+ make_rgb_buffer256(ad.rgb,c_data,c_width,c_height,1, *c_cmap);
+ if ((status & 2) == 2)
+ make_rgb_buffer256(ad.rgb,n_data,n_width,n_height,1, *n_cmap);
+ if ((status & 3) == 3)
+ make_rgb_buffer256(ad.rgb,cn_data,cn_width,cn_height,1, *cn_cmap);
+ if ((status & 4) == 4)
+ make_rgb_buffer256(ad.rgb,s_data,s_width,s_height,1, *s_cmap);
+ if ((status & 5) == 5)
+ make_rgb_buffer256(ad.rgb,cs_data,cs_width,cs_height,1, *cs_cmap);
+ if ((status & 6) == 6)
+ make_rgb_buffer256(ad.rgb,ns_data,ns_width,ns_height,1, *ns_cmap);
+ if ((status & 7) == 7)
+ make_rgb_buffer256(ad.rgb,cns_data,cns_width,cns_height,1, *cns_cmap);
+
+ memcpy(&ad.bgr, &ad.rgb, RGBSIZE);
+}
+
+void prepare_backbuffer(int solid)
+{
+ make_rgb_buffer256(ad.rgb,none_data,none_width,none_height,1, *none_cmap);
+
+ /* copy it to the "frequent use" buffer */
+ memcpy(&ad.bgr, &ad.rgb, RGBSIZE);
+
+} /* prepare_backbuffer */
+
+void make_rgb_buffer256(unsigned char *target, unsigned char *source, int width, int height, int frames, char *cmap)
+{
+ int i, j = 0;
+
+ for (i = 0; i < (width * height * frames); i++)
+ {
+ target[j] = cmap[3*source[i]];
+ target[j+1] = cmap[3*source[i]+1];
+ target[j+2] = cmap[3*source[i]+2];
+ j += 3;
+ }
+}
+
+void parse_options(int argc, char *argv[])
+{
+ int c = 0;
+
+ struct option long_options[] = {
+ {"help", no_argument, NULL, 1},
+ {"h", no_argument, NULL, 1},
+ {"version", no_argument, NULL, 2},
+ {"v", no_argument, NULL, 2},
+ {"window", no_argument, NULL, 3},
+ {"w", no_argument, NULL, 3},
+
+ {0, 0, 0, 0}
+ };
+
+ while ((c = getopt_long_only(argc, argv, "", long_options, NULL)) != -1)
+ {
+ switch(c)
+ {
+ case 1:
+ do_help();
+ exit(0);
+ break;
+ case 2:
+ do_version();
+ exit(0);
+ break;
+ case 3:
+ manager_style = 1;
+ break;
+ }
+ }
+}
+
+void do_version(void)
+{
+ printf("\ncnslock applet v%.2f\n\n", VERSION);
+}
+
+/*
+-h,--help Display help
+-v,--version Display version
+-w,--window Alternative window system
+*/
+
+void do_help(void)
+{
+ do_version();
+ printf("This is an applet that displays the various states of the CAPS, NUM and SCROLL LOCK keys.\n"
+ "\nUsage: cnslock [options]\n\n"
+ " -h\t--help\t\tShow this message and exit.\n"
+ " -v\t--version\tShow version and exit.\n"
+ " -w\t--window\tUse alternative windowing system.\n\n"
+ );
+}
+
diff --git a/cnslock/graphics/.xvpics/caps_num_scroll.h b/cnslock/graphics/.xvpics/caps_num_scroll.h
new file mode 100644
index 0000000000000000000000000000000000000000..a5244c815a734d1ba79ef32a2b5cf23a1b07c94a
GIT binary patch
literal 3207
zcmeHHJx@YG5Tt&;;w3cN3HUIvRWKBQiS{H$S{p6!*Xz!H-+5qXBQJQjJ3BLbZx4LD
z>1VTPH(sqDR-5Jac9<WAdB1vl-5>U^{l#Q*eKqS}K0o&Fm)&@=x!-M<ySwdrz1TcI
zb;P94bQrqP`8hFxFFZf%O)$||V?wupN|b=CoMfZaN-Vf2DArWZvWy3rdV$2cBf@|+
zk`1ehgOM8ss*$n%tpvy##7V~!P*x`A*yTwlm;eF8yU3L0m<B>}6s(qxK;qzIRNggV
z+$++_SDApx97f>7DbW9rG{;fAc$;A;?G~~sl8CaMT~5-07#9#xmicwpx>RU3%>9(W
z{rn3=Km4MRCI%}RsD*54Nv%Dh^KY%4DQofn2R)K+gf<f()k6?8Qi)X~*?dMxiwgZE
z9*2@UuS!J&J1rn;>T03n_8vI1BHl`ZTBqeBa3wyczfXV$kEbBkc~R6PuFLc=(aSF{
zvoQCB11ug;B%PI`n>6$z28xI?3$&!09u%HNP^;VqwYCoKC~6fn34PUy6Re{+I($^;
z3>O0NhQ)6wozu?iD(UAinTQ9w!BLsE2P6ow&7OsEqv|6YTnrFLnJmZ2J9xs9x|t^I
J9RBG9z5#rKb-e%p
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/.xvpics/caps_num_scroll.png b/cnslock/graphics/.xvpics/caps_num_scroll.png
new file mode 100644
index 0000000000000000000000000000000000000000..73eddad07add5b29d732a4e7922026e46a64d531
GIT binary patch
literal 3205
zcmeHHJx@YG5Tt&;;w3cNLLMfzDux0u(VoOWYoi7JdcE1%uR9;u*~kmt?at23-rED8
zZu<Fr)=gLI$JJ)Jy&V?EVbQPN_J`wP-(Srav;Ot-<M4jnO&>P*yX|s!w_UFvHZRXz
z;g!#97`n;jIWvJTJU{EBV4{h}gl+*9m4K|AWRuj27E&aNHPy2$<3TRHKoZ>vVZa)3
z!>Zz7<c5K2WNd#c0$GDN>0|=R%H$loJn4uL2pHZ~rZmSiAjwg%#&iWN9DIx_yC#Br
zg`Irm1We{I0v}F={)c3A9My}DGYl=eg`$ciqHJfElXM`)1w@o(e%-Au6-FE8eoByj
z{sk&O{Hl>A1}hn;g<@$*t39LhZ>^mvYw`aFJ(6#PHWMJtQy^$qiB%(RKBJ^XrTitH
zgv_1Sq}0Gp3y4N_t&q9B2hOaBw_?!hw0r_?#FzB<36#O(sfcY}6*Y<LGCfT6^6Sg2
z%sr6+iw7lQXXWU|hJM6A5lLo&mUPpD!qW(9mD`{;u7f*@S_O@vuUc_}b)=)iCw0zn
zArNm^{g%=>?YypHKZlD6J;V);%CtQoB86@CB8(eVA8v3lfR3E3#K}8&WU+3h3A==U
GI)QK9-gRF9
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/.xvpics/caps_scroll.h b/cnslock/graphics/.xvpics/caps_scroll.h
new file mode 100644
index 0000000000000000000000000000000000000000..97eca60688cc75377a9fb34924a11e25a7245b72
GIT binary patch
literal 3207
zcmeHIJ#WH53}w!*h{V#45QU1aEuaiZDz!UOMb<8KpufJ{^LHRrojOz(MQ8i@J^NxL
z^YTzu)v}m3?XKyz{bRj4)vL1kI1H!ZP~I&T)p}jNe|-+e`(nQ7p7;HB|J1kbrh9uW
z5;MKax-Mq<`C$Uzc&_u4V4#skg;oM8Rszy=kj+9XE<s5~afW=9Mcm1$7f7VLA#_+g
zHaJD>jM&go@sw>}#X!`+4?3EFup&A7CJ#Es7;qT1N0HDB6NgELf;FW}VB+9aDp?5#
zw+wf(lP91ugW=e4MraQ51o8y(1pd<m;&RvT`px#^wTY7|kkuuudReWb4Ql~8ILt{N
zD}^J5Z)Ho|QFs)oBPlVg<NGO-uu&WN_dw!82P8q(7}pcMutjjKBcj1Kb;h8wQq&vb
zo(l3+gg33T`=_)E!BxImhZsq02oR9ae^IH!2Hh2akH|`zqZzh#Qq2pJCA0Gv6F39U
C)CM~M
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/.xvpics/none.h b/cnslock/graphics/.xvpics/none.h
new file mode 100644
index 0000000000000000000000000000000000000000..0f76f9d9ef7d030e6388be6c06f09f9e351eb392
GIT binary patch
literal 3207
zcmWGAS1>j<;!^hXb@%jh^S3fJt1vZF@XSj|tw>E#&@ePKwlq>msw_z@*5p!l^>c~$
zcZ+xS_w{x43kl`|ssth<Q&TR6Q7{?;qaiRF0;3@?8UmvsFd71*Aut*OqaiRF0z`%Y
E0AiC88UO$Q
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/.xvpics/num.h b/cnslock/graphics/.xvpics/num.h
new file mode 100644
index 0000000000000000000000000000000000000000..3fa8cbf8f5fd8c4615c150fd4d1c37e1456bb4f4
GIT binary patch
literal 3207
zcmeHDu?~Vj40XP*AYsuF2pC-z3<F@IJBg9iMF;$PZ11jIxj=MrD*^iY+SlH_^EOD5
zScPSED(j-zr&*t7LHW3MeRmJmQIzbW;P!rX&y5Q6`q(x_duXaEudf#co$$tKs#fxd
z1LA-<@J|PZufyj%h=oW{PjZPve8pgC2-JXaAf6#E1KOm%jumL$qRx%L-FD(Io@1)B
zG-{?gBV_!qx^XGpg$v;rdL*0cAi0B#_W*@LQ*nQbOrWcBDOTWPeHxm4Z1hs2!Ev^L
jXjbP7O-}c~Gh1d{Wq_}<<ptUkODYbC1LA-<pdI)Cuv~$u
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/.xvpics/num_scroll.h b/cnslock/graphics/.xvpics/num_scroll.h
new file mode 100644
index 0000000000000000000000000000000000000000..16f7ab057d505bfad5f2e903fe99f1b10a4746a2
GIT binary patch
literal 3207
zcmeHGyH3ME5Ty23SV{wBVmUloNRSKLNYF<@NlODo_<FN*`?$T6t<XSq7I<f8cV^Ff
z%FAutG@EMG_0Qd~A0OK7x!u;?$MJMN9qa4$y1Bor-@m_3pEuQNH#{B2{o!%!``z&N
zT2UwcZQ8cFDo@!!*+ALAUv6N!Xg=SeEJcOEDJBv55tGmqv;lEa-XSj|n$uk83hKA0
zix!wIj+31u)d>wvs$-$!f2*^h`Ym2a#|W0rH$vSGnCu}6LaxNOAP)MeUWy9+yS@N9
zx5g}G4eX=<G^@*noa=Ys%);0x2Dwhk3v?zf>E#X3;_)Pnd7cy{iPxoin8@X)mzkJb
z5&&KX2=Qd;k-!7(h>-;fnF1+Ekb}Zg8^p?wL2X_KcNC?HHiq_=iZ$p&b~JiXXB{R4
zV*``lk~^oK*Hk>uXfk1s;08zO)EFsds9WuWFy5&6aDa;v?8uu9*m=i3?&7+dI<CNf
G-M|kg*a<fP
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/.xvpics/scroll.h b/cnslock/graphics/.xvpics/scroll.h
new file mode 100644
index 0000000000000000000000000000000000000000..809c967f0e0371b4394635c695c2199dc6a1a287
GIT binary patch
literal 3207
zcmeHDyAHxI3}nt%MCt+~Edjv_6m@8e1UnL<D+>(e>%p&>RDumLIjZ8b@6M@izwkwo
zyR52rRa3UBFz>_MSJz9|cNagNPK)KtpC9+`HgVau*__()v~KHq+Z+!Ll<?&txRD)8
zz!I<oECEZv60ih*k-(GBU=@r8{ilW%c+&!^h*2B;vPB9qz;O|P9Zlq7r)Z?GL4WBz
zMMPZ$LP^nw22074OmOdKA1aa5bx#rU04aV#1@T2@bo|w)3N_+H9|RvM_=1}NDpVf<
uOQb`k4iHe2)Hh@X)My|nUlI@(AX$e#La|Q?Ad?dnIs$2;*0F*ACGY~A44ISw
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/caps.h b/cnslock/graphics/caps.h
new file mode 100644
index 0000000..63b4e35
--- /dev/null
+++ b/cnslock/graphics/caps.h
@@ -0,0 +1,488 @@
+int c_width = 56;
+int c_height = 56;
+
+char c_cmap[256][3] = {
+ { 0, 0, 0},
+ { 54, 37, 3},
+ { 56, 39, 3},
+ {218,150, 13},
+ { 6, 4, 0},
+ {177,122, 10},
+ { 97, 67, 6},
+ { 9, 6, 0},
+ { 29, 20, 2},
+ { 26, 18, 2},
+ { 89, 61, 5},
+ {186,127, 11},
+ {196,134, 11},
+ {123, 85, 7},
+ {236,162, 14},
+ { 66, 45, 4},
+ {210,144, 12},
+ { 65, 44, 4},
+ {112, 77, 6},
+ {162,111, 9},
+ { 49, 34, 3},
+ { 88, 60, 5},
+ { 4, 55, 29},
+ {108, 74, 6},
+ { 50, 34, 3},
+ { 24, 16, 1},
+ {233,160, 13},
+ { 41, 28, 2},
+ {136, 93, 8},
+ {138, 95, 8},
+ { 6, 79, 41},
+ { 15,195,102},
+ { 18,232,121},
+ { 2, 31, 16},
+ { 90, 62, 5},
+ {225,154, 13},
+ {118, 81, 7},
+ {120, 83, 7},
+ { 47, 33, 3},
+ {227,156, 13},
+ { 17, 12, 1},
+ { 4, 48, 25},
+ { 13,164, 85},
+ { 14,184, 96},
+ { 13,172, 90},
+ { 3, 43, 23},
+ { 67, 46, 4},
+ {113, 78, 7},
+ {106, 73, 6},
+ { 12, 8, 1},
+ { 1, 0, 0},
+ {168,116, 10},
+ { 1, 17, 9},
+ { 10,133, 69},
+ { 17,215,112},
+ { 8, 99, 52},
+ { 10,128, 67},
+ {195,133, 11},
+ { 74, 50, 4},
+ { 56, 38, 3},
+ { 8,102, 53},
+ { 17,218,113},
+ { 10,130, 68},
+ { 1, 14, 8},
+ { 13,167, 87},
+ { 1, 7, 4},
+ { 80, 55, 5},
+ {201,138, 12},
+ { 7, 5, 0},
+ { 24, 17, 1},
+ { 1, 13, 7},
+ { 12,151, 79},
+ { 4, 46, 24},
+ { 5, 70, 37},
+ { 12,149, 78},
+ { 14,186, 97},
+ { 5, 65, 34},
+ { 0, 6, 3},
+ { 14,178, 93},
+ { 6, 77, 40},
+ { 3, 39, 21},
+ { 12,155, 81},
+ { 15,193,100},
+ { 5, 4, 0},
+ {131, 90, 8},
+ { 37, 25, 2},
+ { 10,124, 65},
+ { 11,142, 74},
+ { 17,224,117},
+ { 8,108, 56},
+ { 1, 8, 4},
+ { 3, 33, 17},
+ { 35, 24, 2},
+ {145, 99, 8},
+ {130, 89, 8},
+ { 3, 36, 19},
+ { 11,139, 72},
+ { 2, 23, 12},
+ { 7, 93, 49},
+ { 16,209,109},
+ { 8,107, 56},
+ {241,165, 14},
+ {153,105, 9},
+ { 32, 22, 2},
+ { 81, 56, 5},
+ { 9, 6, 1},
+ { 9,119, 62},
+ { 13,170, 89},
+ { 4, 54, 28},
+ { 5, 62, 32},
+ {121, 83, 7},
+ {242,166, 14},
+ {170,116, 10},
+ { 0, 1, 1},
+ { 16,201,105},
+ { 7, 85, 44},
+ { 9,116, 60},
+ { 25, 17, 1},
+ {193,133, 11},
+ {124, 85, 7},
+ { 2, 25, 13},
+ { 15, 10, 1},
+ { 4, 47, 24},
+ { 38, 26, 2},
+ { 48, 33, 3},
+ {104, 72, 6},
+ { 31, 21, 2},
+ { 6, 72, 37},
+ { 14,185, 97},
+ { 18,228,119},
+ {203,139, 12},
+ { 69, 48, 4},
+ { 2, 29, 15},
+ { 17,225,117},
+ { 6, 82, 43},
+ { 8,100, 52},
+ {115, 79, 7},
+ {160,110, 9},
+ {142, 98, 8},
+ { 64, 44, 4},
+ { 8,101, 52},
+ { 7, 84, 44},
+ {103, 71, 6},
+ { 8, 6, 0},
+ {123, 84, 7},
+ { 3, 2, 0},
+ { 2, 22, 11},
+ { 13,162, 84},
+ { 6, 73, 38},
+ { 5, 66, 34},
+ {148,102, 9},
+ { 4, 50, 26},
+ { 3, 44, 23},
+ {169,116, 10},
+ { 71, 49, 4},
+ { 45, 31, 3},
+ { 82, 56, 5},
+ { 39, 27, 2},
+ {111, 76, 6},
+ { 23, 16, 1},
+ { 4, 58, 30},
+ { 20,171,226},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255}
+ };
+
+char c_data[] = {
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,2,3,4,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,5,6,0,7,8,9,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,10,11,0,0,12,13,14,15,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,16,17,0,18,19,0,20,21,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,23,24,25,26,27,0,28,29,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,34,35,36,37,0,38,39,40,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,46,47,48,49,0,50,0,51,48,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,17,16,38,51,57,58,0,59,57,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,11,10,0,0,66,67,19,68,69,0,0,0,0,70,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,6,5,0,0,0,0,0,37,4,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 83,3,84,0,0,0,0,25,26,85,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 92,2,5,11,17,0,0,93,94,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,
+ 101,102,103,10,16,102,104,3,105,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,
+ 18,110,111,110,0,110,111,112,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,58,67,
+ 0,0,103,102,16,10,103,102,16,10,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,57,66,
+ 0,0,0,117,111,118,38,0,17,119,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,25,
+ 0,0,0,0,110,121,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,123,124,125,0,125,26,
+ 18,0,0,103,111,126,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,130,21,131,0,0,27,
+ 19,67,66,102,110,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,136,137,0,0,0,0,0,
+ 0,58,138,139,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,142,20,0,0,0,0,0,
+ 143,144,145,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,15,150,0,0,0,0,0,
+ 105,119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,153,154,0,0,0,0,
+ 105,3,155,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,156,130,137,157,0,9,
+ 94,93,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,136,14,13,12,
+ 158,159,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,9,8,7,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0
+ };
diff --git a/cnslock/graphics/caps_num.h b/cnslock/graphics/caps_num.h
new file mode 100644
index 0000000..238ccb4
--- /dev/null
+++ b/cnslock/graphics/caps_num.h
@@ -0,0 +1,488 @@
+int cn_width = 56;
+int cn_height = 56;
+
+char cn_cmap[256][3] = {
+ { 0, 0, 0},
+ { 54, 37, 3},
+ { 56, 39, 3},
+ {218,150, 13},
+ { 6, 4, 0},
+ {177,122, 10},
+ { 97, 67, 6},
+ { 9, 6, 0},
+ { 29, 20, 2},
+ { 26, 18, 2},
+ { 89, 61, 5},
+ {186,127, 11},
+ {196,134, 11},
+ {123, 85, 7},
+ {236,162, 14},
+ { 66, 45, 4},
+ {210,144, 12},
+ { 65, 44, 4},
+ {112, 77, 6},
+ {162,111, 9},
+ { 49, 34, 3},
+ { 88, 60, 5},
+ { 4, 55, 29},
+ {108, 74, 6},
+ { 50, 34, 3},
+ { 24, 16, 1},
+ {233,160, 13},
+ { 41, 28, 2},
+ {136, 93, 8},
+ {138, 95, 8},
+ { 6, 79, 41},
+ { 15,195,102},
+ { 18,232,121},
+ { 2, 31, 16},
+ { 90, 62, 5},
+ {225,154, 13},
+ {118, 81, 7},
+ {120, 83, 7},
+ { 47, 33, 3},
+ {227,156, 13},
+ { 17, 12, 1},
+ { 4, 48, 25},
+ { 13,164, 85},
+ { 14,184, 96},
+ { 13,172, 90},
+ { 3, 43, 23},
+ { 67, 46, 4},
+ {113, 78, 7},
+ {106, 73, 6},
+ { 12, 8, 1},
+ { 1, 0, 0},
+ {168,116, 10},
+ { 1, 17, 9},
+ { 10,133, 69},
+ { 17,215,112},
+ { 8, 99, 52},
+ { 10,128, 67},
+ {195,133, 11},
+ { 74, 50, 4},
+ { 56, 38, 3},
+ { 8,102, 53},
+ { 17,218,113},
+ { 10,130, 68},
+ { 1, 14, 8},
+ { 13,167, 87},
+ { 1, 7, 4},
+ { 80, 55, 5},
+ {201,138, 12},
+ { 7, 5, 0},
+ { 24, 17, 1},
+ { 1, 13, 7},
+ { 12,151, 79},
+ { 4, 46, 24},
+ { 5, 70, 37},
+ { 12,149, 78},
+ { 14,186, 97},
+ { 5, 65, 34},
+ { 0, 6, 3},
+ { 14,178, 93},
+ { 6, 77, 40},
+ { 3, 39, 21},
+ { 12,155, 81},
+ { 15,193,100},
+ { 5, 4, 0},
+ {131, 90, 8},
+ { 37, 25, 2},
+ { 10,124, 65},
+ { 11,142, 74},
+ { 17,224,117},
+ { 8,108, 56},
+ { 1, 8, 4},
+ { 3, 33, 17},
+ { 35, 24, 2},
+ {145, 99, 8},
+ {130, 89, 8},
+ { 3, 36, 19},
+ { 11,139, 72},
+ { 2, 23, 12},
+ { 7, 93, 49},
+ { 16,209,109},
+ { 8,107, 56},
+ {241,165, 14},
+ {153,105, 9},
+ { 32, 22, 2},
+ { 81, 56, 5},
+ { 9, 6, 1},
+ { 9,119, 62},
+ { 13,170, 89},
+ { 4, 54, 28},
+ { 5, 62, 32},
+ {121, 83, 7},
+ {242,166, 14},
+ {170,116, 10},
+ { 0, 1, 1},
+ { 16,201,105},
+ { 7, 85, 44},
+ { 9,116, 60},
+ { 25, 17, 1},
+ {193,133, 11},
+ {124, 85, 7},
+ { 2, 25, 13},
+ { 15, 10, 1},
+ { 4, 47, 24},
+ { 38, 26, 2},
+ { 48, 33, 3},
+ {104, 72, 6},
+ { 31, 21, 2},
+ { 6, 72, 37},
+ { 14,185, 97},
+ { 18,228,119},
+ {203,139, 12},
+ { 69, 48, 4},
+ { 2, 29, 15},
+ { 17,225,117},
+ { 6, 82, 43},
+ { 8,100, 52},
+ {115, 79, 7},
+ {160,110, 9},
+ {142, 98, 8},
+ { 64, 44, 4},
+ { 8,101, 52},
+ { 7, 84, 44},
+ {103, 71, 6},
+ { 8, 6, 0},
+ {123, 84, 7},
+ { 3, 2, 0},
+ { 2, 22, 11},
+ { 13,162, 84},
+ { 6, 73, 38},
+ { 5, 66, 34},
+ {148,102, 9},
+ { 4, 50, 26},
+ { 3, 44, 23},
+ {169,116, 10},
+ { 71, 49, 4},
+ { 45, 31, 3},
+ { 82, 56, 5},
+ { 39, 27, 2},
+ {111, 76, 6},
+ { 23, 16, 1},
+ { 4, 58, 30},
+ { 20,171,226},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255}
+ };
+
+char cn_data[] = {
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,2,3,4,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,5,6,0,7,8,9,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,10,11,0,0,12,13,14,15,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,16,17,0,18,19,0,20,21,0,0,0,
+ 0,0,0,0,0,0,0,22,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,23,24,25,26,27,0,28,29,0,0,0,
+ 0,0,0,0,0,30,31,32,33,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,34,35,36,37,0,38,39,40,0,0,0,
+ 0,0,0,41,42,43,44,43,45,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,46,47,48,49,0,50,0,51,48,0,0,0,0,
+ 0,52,53,54,55,52,56,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,17,16,38,51,57,58,0,59,57,0,0,0,0,0,
+ 60,61,62,63,0,64,62,65,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,11,10,0,0,66,67,19,68,69,0,0,0,0,70,
+ 71,72,0,0,73,74,0,0,73,75,76,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,6,5,0,0,0,0,0,37,4,0,0,0,0,0,0,
+ 0,0,0,77,78,79,80,81,82,79,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 83,3,84,0,0,0,0,25,26,85,0,0,0,0,0,0,
+ 0,0,77,86,87,86,88,89,90,91,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 92,2,5,11,17,0,0,93,94,0,0,0,0,0,0,0,
+ 0,0,95,32,32,96,97,98,99,100,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,
+ 101,102,103,10,16,102,104,3,105,0,0,0,0,0,0,0,
+ 0,0,106,107,108,109,78,107,108,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,
+ 18,110,111,110,0,110,111,112,0,0,0,0,0,0,0,0,
+ 0,0,63,113,53,114,115,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,58,67,
+ 0,0,103,102,16,10,103,102,16,10,0,0,0,0,0,0,
+ 0,0,0,0,116,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,57,66,
+ 0,0,0,117,111,118,38,0,17,119,0,0,0,0,0,0,
+ 0,0,0,65,99,108,0,0,0,0,115,114,120,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,25,
+ 0,0,0,0,110,121,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,98,107,122,0,108,107,78,109,95,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,123,124,125,0,125,26,
+ 18,0,0,103,111,126,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,127,81,128,99,98,97,96,129,73,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,130,21,131,0,0,27,
+ 19,67,66,102,110,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,132,133,86,90,89,88,86,134,135,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,136,137,0,0,0,0,0,
+ 0,58,138,139,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,120,79,82,81,80,79,82,140,141,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,142,20,0,0,0,0,0,
+ 143,144,145,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,146,75,73,91,147,75,73,148,149,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,15,150,0,0,0,0,0,
+ 105,119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,151,60,63,62,61,152,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,153,154,0,0,0,0,
+ 105,3,155,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,55,54,53,52,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,156,130,137,157,0,9,
+ 94,93,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,120,43,42,41,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,136,14,13,12,
+ 158,159,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,160,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,9,8,7,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0
+ };
diff --git a/cnslock/graphics/caps_num_scroll.h b/cnslock/graphics/caps_num_scroll.h
new file mode 100644
index 0000000..3846b03
--- /dev/null
+++ b/cnslock/graphics/caps_num_scroll.h
@@ -0,0 +1,488 @@
+int cns_width = 56;
+int cns_height = 56;
+
+char cns_cmap[256][3] = {
+ { 0, 0, 0},
+ { 54, 37, 3},
+ { 56, 39, 3},
+ {218,150, 13},
+ { 6, 4, 0},
+ {177,122, 10},
+ { 97, 67, 6},
+ { 9, 6, 0},
+ { 29, 20, 2},
+ { 26, 18, 2},
+ { 89, 61, 5},
+ {186,127, 11},
+ {196,134, 11},
+ {123, 85, 7},
+ {236,162, 14},
+ { 66, 45, 4},
+ {210,144, 12},
+ { 65, 44, 4},
+ {112, 77, 6},
+ {162,111, 9},
+ { 49, 34, 3},
+ { 88, 60, 5},
+ { 4, 55, 29},
+ {108, 74, 6},
+ { 50, 34, 3},
+ { 24, 16, 1},
+ {233,160, 13},
+ { 41, 28, 2},
+ {136, 93, 8},
+ {138, 95, 8},
+ { 6, 79, 41},
+ { 15,195,102},
+ { 18,232,121},
+ { 2, 31, 16},
+ { 90, 62, 5},
+ {225,154, 13},
+ {118, 81, 7},
+ {120, 83, 7},
+ { 47, 33, 3},
+ {227,156, 13},
+ { 17, 12, 1},
+ { 4, 48, 25},
+ { 13,164, 85},
+ { 14,184, 96},
+ { 13,172, 90},
+ { 3, 43, 23},
+ { 67, 46, 4},
+ {113, 78, 7},
+ {106, 73, 6},
+ { 12, 8, 1},
+ { 1, 0, 0},
+ {168,116, 10},
+ { 1, 17, 9},
+ { 10,133, 69},
+ { 17,215,112},
+ { 8, 99, 52},
+ { 10,128, 67},
+ {195,133, 11},
+ { 74, 50, 4},
+ { 56, 38, 3},
+ { 8,102, 53},
+ { 17,218,113},
+ { 10,130, 68},
+ { 1, 14, 8},
+ { 13,167, 87},
+ { 1, 7, 4},
+ { 80, 55, 5},
+ {201,138, 12},
+ { 7, 5, 0},
+ { 24, 17, 1},
+ { 1, 13, 7},
+ { 12,151, 79},
+ { 4, 46, 24},
+ { 5, 70, 37},
+ { 12,149, 78},
+ { 14,186, 97},
+ { 5, 65, 34},
+ { 0, 6, 3},
+ { 14,178, 93},
+ { 6, 77, 40},
+ { 3, 39, 21},
+ { 12,155, 81},
+ { 15,193,100},
+ { 5, 4, 0},
+ {131, 90, 8},
+ { 37, 25, 2},
+ { 10,124, 65},
+ { 11,142, 74},
+ { 17,224,117},
+ { 8,108, 56},
+ { 1, 8, 4},
+ { 3, 33, 17},
+ { 35, 24, 2},
+ {145, 99, 8},
+ {130, 89, 8},
+ { 3, 36, 19},
+ { 11,139, 72},
+ { 2, 23, 12},
+ { 7, 93, 49},
+ { 16,209,109},
+ { 8,107, 56},
+ {241,165, 14},
+ {153,105, 9},
+ { 32, 22, 2},
+ { 81, 56, 5},
+ { 9, 6, 1},
+ { 9,119, 62},
+ { 13,170, 89},
+ { 4, 54, 28},
+ { 5, 62, 32},
+ {121, 83, 7},
+ {242,166, 14},
+ {170,116, 10},
+ { 0, 1, 1},
+ { 16,201,105},
+ { 7, 85, 44},
+ { 9,116, 60},
+ { 25, 17, 1},
+ {193,133, 11},
+ {124, 85, 7},
+ { 2, 25, 13},
+ { 15, 10, 1},
+ { 4, 47, 24},
+ { 38, 26, 2},
+ { 48, 33, 3},
+ {104, 72, 6},
+ { 31, 21, 2},
+ { 6, 72, 37},
+ { 14,185, 97},
+ { 18,228,119},
+ {203,139, 12},
+ { 69, 48, 4},
+ { 2, 29, 15},
+ { 17,225,117},
+ { 6, 82, 43},
+ { 8,100, 52},
+ {115, 79, 7},
+ {160,110, 9},
+ {142, 98, 8},
+ { 64, 44, 4},
+ { 8,101, 52},
+ { 7, 84, 44},
+ {103, 71, 6},
+ { 8, 6, 0},
+ {123, 84, 7},
+ { 3, 2, 0},
+ { 2, 22, 11},
+ { 13,162, 84},
+ { 6, 73, 38},
+ { 5, 66, 34},
+ {148,102, 9},
+ { 4, 50, 26},
+ { 3, 44, 23},
+ {169,116, 10},
+ { 71, 49, 4},
+ { 45, 31, 3},
+ { 82, 56, 5},
+ { 39, 27, 2},
+ {111, 76, 6},
+ { 23, 16, 1},
+ { 4, 58, 30},
+ { 20,171,226},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255}
+ };
+
+char cns_data[] = {
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,2,3,4,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,5,6,0,7,8,9,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,10,11,0,0,12,13,14,15,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,16,17,0,18,19,0,20,21,0,0,0,
+ 0,0,0,0,0,0,0,22,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,23,24,25,26,27,0,28,29,0,0,0,
+ 0,0,0,0,0,30,31,32,33,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,34,35,36,37,0,38,39,40,0,0,0,
+ 0,0,0,41,42,43,44,43,45,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,46,47,48,49,0,50,0,51,48,0,0,0,0,
+ 0,52,53,54,55,52,56,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,17,16,38,51,57,58,0,59,57,0,0,0,0,0,
+ 60,61,62,63,0,64,62,65,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,11,10,0,0,66,67,19,68,69,0,0,0,0,70,
+ 71,72,0,0,73,74,0,0,73,75,76,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,6,5,0,0,0,0,0,37,4,0,0,0,0,0,0,
+ 0,0,0,77,78,79,80,81,82,79,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 83,3,84,0,0,0,0,25,26,85,0,0,0,0,0,0,
+ 0,0,77,86,87,86,88,89,90,91,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 92,2,5,11,17,0,0,93,94,0,0,0,0,0,0,0,
+ 0,0,95,32,32,96,97,98,99,100,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,
+ 101,102,103,10,16,102,104,3,105,0,0,0,0,0,0,0,
+ 0,0,106,107,108,109,78,107,108,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,
+ 18,110,111,110,0,110,111,112,0,0,0,0,0,0,0,0,
+ 0,0,63,113,53,114,115,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,58,67,
+ 0,0,103,102,16,10,103,102,16,10,0,0,0,0,0,0,
+ 0,0,0,0,116,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,57,66,
+ 0,0,0,117,111,118,38,0,17,119,0,0,0,0,0,0,
+ 0,0,0,65,99,108,0,0,0,0,115,114,120,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,25,
+ 0,0,0,0,110,121,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,98,107,122,0,108,107,78,109,95,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,123,124,125,0,125,26,
+ 18,0,0,103,111,126,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,127,81,128,99,98,97,96,129,73,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,130,21,131,0,0,27,
+ 19,67,66,102,110,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,132,133,86,90,89,88,86,134,135,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,136,137,0,0,0,0,0,
+ 0,58,138,139,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,120,79,82,81,80,79,82,140,141,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,142,20,0,0,0,0,0,
+ 143,144,145,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,146,75,73,91,147,75,73,148,149,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,15,150,0,0,0,0,0,
+ 105,119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,151,60,63,62,61,152,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,153,154,0,0,0,0,
+ 105,3,155,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,55,54,53,52,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,156,130,137,157,0,9,
+ 94,93,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,120,43,42,41,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,136,14,13,12,
+ 158,159,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,160,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,9,8,7,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,161,161,161,0,0,0,0,161,161,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,161,161,161,161,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,161,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,161,0,0,0,0,0,0,0,
+ 161,161,161,161,0,0,161,0,161,161,161,0,0,0,161,161,
+ 161,161,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,161,0,0,0,0,0,0,161,
+ 0,0,0,0,0,0,161,161,0,0,0,0,0,161,0,0,
+ 0,0,161,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,161,161,161,161,0,0,161,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,161,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,161,0,161,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,161,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,161,0,161,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,161,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,161,0,0,0,0,161,0,161,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,161,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,161,161,161,161,0,0,0,
+ 161,161,161,161,0,0,161,0,0,0,0,0,0,0,161,161,
+ 161,161,0,0,161,161,161,161,161,0,0,161,161,161,161,161,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0
+ };
diff --git a/cnslock/graphics/caps_scroll.h b/cnslock/graphics/caps_scroll.h
new file mode 100644
index 0000000..bf3332b
--- /dev/null
+++ b/cnslock/graphics/caps_scroll.h
@@ -0,0 +1,488 @@
+int cs_width = 56;
+int cs_height = 56;
+
+char cs_cmap[256][3] = {
+ { 0, 0, 0},
+ { 54, 37, 3},
+ { 56, 39, 3},
+ {218,150, 13},
+ { 6, 4, 0},
+ {177,122, 10},
+ { 97, 67, 6},
+ { 9, 6, 0},
+ { 29, 20, 2},
+ { 26, 18, 2},
+ { 89, 61, 5},
+ {186,127, 11},
+ {196,134, 11},
+ {123, 85, 7},
+ {236,162, 14},
+ { 66, 45, 4},
+ {210,144, 12},
+ { 65, 44, 4},
+ {112, 77, 6},
+ {162,111, 9},
+ { 49, 34, 3},
+ { 88, 60, 5},
+ { 4, 55, 29},
+ {108, 74, 6},
+ { 50, 34, 3},
+ { 24, 16, 1},
+ {233,160, 13},
+ { 41, 28, 2},
+ {136, 93, 8},
+ {138, 95, 8},
+ { 6, 79, 41},
+ { 15,195,102},
+ { 18,232,121},
+ { 2, 31, 16},
+ { 90, 62, 5},
+ {225,154, 13},
+ {118, 81, 7},
+ {120, 83, 7},
+ { 47, 33, 3},
+ {227,156, 13},
+ { 17, 12, 1},
+ { 4, 48, 25},
+ { 13,164, 85},
+ { 14,184, 96},
+ { 13,172, 90},
+ { 3, 43, 23},
+ { 67, 46, 4},
+ {113, 78, 7},
+ {106, 73, 6},
+ { 12, 8, 1},
+ { 1, 0, 0},
+ {168,116, 10},
+ { 1, 17, 9},
+ { 10,133, 69},
+ { 17,215,112},
+ { 8, 99, 52},
+ { 10,128, 67},
+ {195,133, 11},
+ { 74, 50, 4},
+ { 56, 38, 3},
+ { 8,102, 53},
+ { 17,218,113},
+ { 10,130, 68},
+ { 1, 14, 8},
+ { 13,167, 87},
+ { 1, 7, 4},
+ { 80, 55, 5},
+ {201,138, 12},
+ { 7, 5, 0},
+ { 24, 17, 1},
+ { 1, 13, 7},
+ { 12,151, 79},
+ { 4, 46, 24},
+ { 5, 70, 37},
+ { 12,149, 78},
+ { 14,186, 97},
+ { 5, 65, 34},
+ { 0, 6, 3},
+ { 14,178, 93},
+ { 6, 77, 40},
+ { 3, 39, 21},
+ { 12,155, 81},
+ { 15,193,100},
+ { 5, 4, 0},
+ {131, 90, 8},
+ { 37, 25, 2},
+ { 10,124, 65},
+ { 11,142, 74},
+ { 17,224,117},
+ { 8,108, 56},
+ { 1, 8, 4},
+ { 3, 33, 17},
+ { 35, 24, 2},
+ {145, 99, 8},
+ {130, 89, 8},
+ { 3, 36, 19},
+ { 11,139, 72},
+ { 2, 23, 12},
+ { 7, 93, 49},
+ { 16,209,109},
+ { 8,107, 56},
+ {241,165, 14},
+ {153,105, 9},
+ { 32, 22, 2},
+ { 81, 56, 5},
+ { 9, 6, 1},
+ { 9,119, 62},
+ { 13,170, 89},
+ { 4, 54, 28},
+ { 5, 62, 32},
+ {121, 83, 7},
+ {242,166, 14},
+ {170,116, 10},
+ { 0, 1, 1},
+ { 16,201,105},
+ { 7, 85, 44},
+ { 9,116, 60},
+ { 25, 17, 1},
+ {193,133, 11},
+ {124, 85, 7},
+ { 2, 25, 13},
+ { 15, 10, 1},
+ { 4, 47, 24},
+ { 38, 26, 2},
+ { 48, 33, 3},
+ {104, 72, 6},
+ { 31, 21, 2},
+ { 6, 72, 37},
+ { 14,185, 97},
+ { 18,228,119},
+ {203,139, 12},
+ { 69, 48, 4},
+ { 2, 29, 15},
+ { 17,225,117},
+ { 6, 82, 43},
+ { 8,100, 52},
+ {115, 79, 7},
+ {160,110, 9},
+ {142, 98, 8},
+ { 64, 44, 4},
+ { 8,101, 52},
+ { 7, 84, 44},
+ {103, 71, 6},
+ { 8, 6, 0},
+ {123, 84, 7},
+ { 3, 2, 0},
+ { 2, 22, 11},
+ { 13,162, 84},
+ { 6, 73, 38},
+ { 5, 66, 34},
+ {148,102, 9},
+ { 4, 50, 26},
+ { 3, 44, 23},
+ {169,116, 10},
+ { 71, 49, 4},
+ { 45, 31, 3},
+ { 82, 56, 5},
+ { 39, 27, 2},
+ {111, 76, 6},
+ { 23, 16, 1},
+ { 4, 58, 30},
+ { 20,171,226},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255}
+ };
+
+char cs_data[] = {
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,2,3,4,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,5,6,0,7,8,9,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,10,11,0,0,12,13,14,15,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,16,17,0,18,19,0,20,21,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,23,24,25,26,27,0,28,29,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,34,35,36,37,0,38,39,40,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,46,47,48,49,0,50,0,51,48,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,17,16,38,51,57,58,0,59,57,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,11,10,0,0,66,67,19,68,69,0,0,0,0,70,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,6,5,0,0,0,0,0,37,4,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 83,3,84,0,0,0,0,25,26,85,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 92,2,5,11,17,0,0,93,94,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,
+ 101,102,103,10,16,102,104,3,105,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,
+ 18,110,111,110,0,110,111,112,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,58,67,
+ 0,0,103,102,16,10,103,102,16,10,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,57,66,
+ 0,0,0,117,111,118,38,0,17,119,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,25,
+ 0,0,0,0,110,121,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,123,124,125,0,125,26,
+ 18,0,0,103,111,126,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,130,21,131,0,0,27,
+ 19,67,66,102,110,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,136,137,0,0,0,0,0,
+ 0,58,138,139,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,142,20,0,0,0,0,0,
+ 143,144,145,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,15,150,0,0,0,0,0,
+ 105,119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,153,154,0,0,0,0,
+ 105,3,155,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,156,130,137,157,0,9,
+ 94,93,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,136,14,13,12,
+ 158,159,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,9,8,7,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,161,161,161,0,0,0,0,161,161,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,161,161,161,161,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,161,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,161,0,0,0,0,0,0,0,
+ 161,161,161,161,0,0,161,0,161,161,161,0,0,0,161,161,
+ 161,161,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,161,0,0,0,0,0,0,161,
+ 0,0,0,0,0,0,161,161,0,0,0,0,0,161,0,0,
+ 0,0,161,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,161,161,161,161,0,0,161,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,161,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,161,0,161,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,161,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,161,0,161,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,161,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,161,0,0,0,0,161,0,161,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,161,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,161,161,161,161,0,0,0,
+ 161,161,161,161,0,0,161,0,0,0,0,0,0,0,161,161,
+ 161,161,0,0,161,161,161,161,161,0,0,161,161,161,161,161,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0
+ };
diff --git a/cnslock/graphics/master.xpm b/cnslock/graphics/master.xpm
new file mode 100644
index 0000000..a582311
--- /dev/null
+++ b/cnslock/graphics/master.xpm
@@ -0,0 +1,71 @@
+/* XPM */
+static char * master_xpm[] = {
+"64 64 4 1",
+" c None",
+". c #000000",
+"+ c #375F87",
+"@ c #ABBAC6",
+" ",
+" ",
+" ",
+" .......................................................... ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" .++++++++++++++++++++++++++++++++++++++++++++++++++++++++@ ",
+" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ",
+" ",
+" ",
+" "};
diff --git a/cnslock/graphics/none.h b/cnslock/graphics/none.h
new file mode 100644
index 0000000..63c2344
--- /dev/null
+++ b/cnslock/graphics/none.h
@@ -0,0 +1,488 @@
+int none_width = 56;
+int none_height = 56;
+
+char none_cmap[256][3] = {
+ { 0, 0, 0},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255}
+ };
+
+char none_data[] = {
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0
+ };
diff --git a/cnslock/graphics/num.h b/cnslock/graphics/num.h
new file mode 100644
index 0000000..0e24841
--- /dev/null
+++ b/cnslock/graphics/num.h
@@ -0,0 +1,488 @@
+int n_width = 56;
+int n_height = 56;
+
+char n_cmap[256][3] = {
+ { 0, 0, 0},
+ { 54, 37, 3},
+ { 56, 39, 3},
+ {218,150, 13},
+ { 6, 4, 0},
+ {177,122, 10},
+ { 97, 67, 6},
+ { 9, 6, 0},
+ { 29, 20, 2},
+ { 26, 18, 2},
+ { 89, 61, 5},
+ {186,127, 11},
+ {196,134, 11},
+ {123, 85, 7},
+ {236,162, 14},
+ { 66, 45, 4},
+ {210,144, 12},
+ { 65, 44, 4},
+ {112, 77, 6},
+ {162,111, 9},
+ { 49, 34, 3},
+ { 88, 60, 5},
+ { 4, 55, 29},
+ {108, 74, 6},
+ { 50, 34, 3},
+ { 24, 16, 1},
+ {233,160, 13},
+ { 41, 28, 2},
+ {136, 93, 8},
+ {138, 95, 8},
+ { 6, 79, 41},
+ { 15,195,102},
+ { 18,232,121},
+ { 2, 31, 16},
+ { 90, 62, 5},
+ {225,154, 13},
+ {118, 81, 7},
+ {120, 83, 7},
+ { 47, 33, 3},
+ {227,156, 13},
+ { 17, 12, 1},
+ { 4, 48, 25},
+ { 13,164, 85},
+ { 14,184, 96},
+ { 13,172, 90},
+ { 3, 43, 23},
+ { 67, 46, 4},
+ {113, 78, 7},
+ {106, 73, 6},
+ { 12, 8, 1},
+ { 1, 0, 0},
+ {168,116, 10},
+ { 1, 17, 9},
+ { 10,133, 69},
+ { 17,215,112},
+ { 8, 99, 52},
+ { 10,128, 67},
+ {195,133, 11},
+ { 74, 50, 4},
+ { 56, 38, 3},
+ { 8,102, 53},
+ { 17,218,113},
+ { 10,130, 68},
+ { 1, 14, 8},
+ { 13,167, 87},
+ { 1, 7, 4},
+ { 80, 55, 5},
+ {201,138, 12},
+ { 7, 5, 0},
+ { 24, 17, 1},
+ { 1, 13, 7},
+ { 12,151, 79},
+ { 4, 46, 24},
+ { 5, 70, 37},
+ { 12,149, 78},
+ { 14,186, 97},
+ { 5, 65, 34},
+ { 0, 6, 3},
+ { 14,178, 93},
+ { 6, 77, 40},
+ { 3, 39, 21},
+ { 12,155, 81},
+ { 15,193,100},
+ { 5, 4, 0},
+ {131, 90, 8},
+ { 37, 25, 2},
+ { 10,124, 65},
+ { 11,142, 74},
+ { 17,224,117},
+ { 8,108, 56},
+ { 1, 8, 4},
+ { 3, 33, 17},
+ { 35, 24, 2},
+ {145, 99, 8},
+ {130, 89, 8},
+ { 3, 36, 19},
+ { 11,139, 72},
+ { 2, 23, 12},
+ { 7, 93, 49},
+ { 16,209,109},
+ { 8,107, 56},
+ {241,165, 14},
+ {153,105, 9},
+ { 32, 22, 2},
+ { 81, 56, 5},
+ { 9, 6, 1},
+ { 9,119, 62},
+ { 13,170, 89},
+ { 4, 54, 28},
+ { 5, 62, 32},
+ {121, 83, 7},
+ {242,166, 14},
+ {170,116, 10},
+ { 0, 1, 1},
+ { 16,201,105},
+ { 7, 85, 44},
+ { 9,116, 60},
+ { 25, 17, 1},
+ {193,133, 11},
+ {124, 85, 7},
+ { 2, 25, 13},
+ { 15, 10, 1},
+ { 4, 47, 24},
+ { 38, 26, 2},
+ { 48, 33, 3},
+ {104, 72, 6},
+ { 31, 21, 2},
+ { 6, 72, 37},
+ { 14,185, 97},
+ { 18,228,119},
+ {203,139, 12},
+ { 69, 48, 4},
+ { 2, 29, 15},
+ { 17,225,117},
+ { 6, 82, 43},
+ { 8,100, 52},
+ {115, 79, 7},
+ {160,110, 9},
+ {142, 98, 8},
+ { 64, 44, 4},
+ { 8,101, 52},
+ { 7, 84, 44},
+ {103, 71, 6},
+ { 8, 6, 0},
+ {123, 84, 7},
+ { 3, 2, 0},
+ { 2, 22, 11},
+ { 13,162, 84},
+ { 6, 73, 38},
+ { 5, 66, 34},
+ {148,102, 9},
+ { 4, 50, 26},
+ { 3, 44, 23},
+ {169,116, 10},
+ { 71, 49, 4},
+ { 45, 31, 3},
+ { 82, 56, 5},
+ { 39, 27, 2},
+ {111, 76, 6},
+ { 23, 16, 1},
+ { 4, 58, 30},
+ { 20,171,226},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255}
+ };
+
+char n_data[] = {
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,22,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,30,31,32,33,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,41,42,43,44,43,45,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,52,53,54,55,52,56,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 60,61,62,63,0,64,62,65,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,70,
+ 71,72,0,0,73,74,0,0,73,75,76,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,77,78,79,80,81,82,79,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,77,86,87,86,88,89,90,91,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,95,32,32,96,97,98,99,100,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,106,107,108,109,78,107,108,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,63,113,53,114,115,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,116,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,65,99,108,0,0,0,0,115,114,120,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,98,107,122,0,108,107,78,109,95,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,127,81,128,99,98,97,96,129,73,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,132,133,86,90,89,88,86,134,135,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,120,79,82,81,80,79,82,140,141,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,146,75,73,91,147,75,73,148,149,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,151,60,63,62,61,152,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,55,54,53,52,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,120,43,42,41,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,160,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0
+ };
diff --git a/cnslock/graphics/num_scroll.h b/cnslock/graphics/num_scroll.h
new file mode 100644
index 0000000..3c236ef
--- /dev/null
+++ b/cnslock/graphics/num_scroll.h
@@ -0,0 +1,488 @@
+int ns_width = 56;
+int ns_height = 56;
+
+char ns_cmap[256][3] = {
+ { 0, 0, 0},
+ { 54, 37, 3},
+ { 56, 39, 3},
+ {218,150, 13},
+ { 6, 4, 0},
+ {177,122, 10},
+ { 97, 67, 6},
+ { 9, 6, 0},
+ { 29, 20, 2},
+ { 26, 18, 2},
+ { 89, 61, 5},
+ {186,127, 11},
+ {196,134, 11},
+ {123, 85, 7},
+ {236,162, 14},
+ { 66, 45, 4},
+ {210,144, 12},
+ { 65, 44, 4},
+ {112, 77, 6},
+ {162,111, 9},
+ { 49, 34, 3},
+ { 88, 60, 5},
+ { 4, 55, 29},
+ {108, 74, 6},
+ { 50, 34, 3},
+ { 24, 16, 1},
+ {233,160, 13},
+ { 41, 28, 2},
+ {136, 93, 8},
+ {138, 95, 8},
+ { 6, 79, 41},
+ { 15,195,102},
+ { 18,232,121},
+ { 2, 31, 16},
+ { 90, 62, 5},
+ {225,154, 13},
+ {118, 81, 7},
+ {120, 83, 7},
+ { 47, 33, 3},
+ {227,156, 13},
+ { 17, 12, 1},
+ { 4, 48, 25},
+ { 13,164, 85},
+ { 14,184, 96},
+ { 13,172, 90},
+ { 3, 43, 23},
+ { 67, 46, 4},
+ {113, 78, 7},
+ {106, 73, 6},
+ { 12, 8, 1},
+ { 1, 0, 0},
+ {168,116, 10},
+ { 1, 17, 9},
+ { 10,133, 69},
+ { 17,215,112},
+ { 8, 99, 52},
+ { 10,128, 67},
+ {195,133, 11},
+ { 74, 50, 4},
+ { 56, 38, 3},
+ { 8,102, 53},
+ { 17,218,113},
+ { 10,130, 68},
+ { 1, 14, 8},
+ { 13,167, 87},
+ { 1, 7, 4},
+ { 80, 55, 5},
+ {201,138, 12},
+ { 7, 5, 0},
+ { 24, 17, 1},
+ { 1, 13, 7},
+ { 12,151, 79},
+ { 4, 46, 24},
+ { 5, 70, 37},
+ { 12,149, 78},
+ { 14,186, 97},
+ { 5, 65, 34},
+ { 0, 6, 3},
+ { 14,178, 93},
+ { 6, 77, 40},
+ { 3, 39, 21},
+ { 12,155, 81},
+ { 15,193,100},
+ { 5, 4, 0},
+ {131, 90, 8},
+ { 37, 25, 2},
+ { 10,124, 65},
+ { 11,142, 74},
+ { 17,224,117},
+ { 8,108, 56},
+ { 1, 8, 4},
+ { 3, 33, 17},
+ { 35, 24, 2},
+ {145, 99, 8},
+ {130, 89, 8},
+ { 3, 36, 19},
+ { 11,139, 72},
+ { 2, 23, 12},
+ { 7, 93, 49},
+ { 16,209,109},
+ { 8,107, 56},
+ {241,165, 14},
+ {153,105, 9},
+ { 32, 22, 2},
+ { 81, 56, 5},
+ { 9, 6, 1},
+ { 9,119, 62},
+ { 13,170, 89},
+ { 4, 54, 28},
+ { 5, 62, 32},
+ {121, 83, 7},
+ {242,166, 14},
+ {170,116, 10},
+ { 0, 1, 1},
+ { 16,201,105},
+ { 7, 85, 44},
+ { 9,116, 60},
+ { 25, 17, 1},
+ {193,133, 11},
+ {124, 85, 7},
+ { 2, 25, 13},
+ { 15, 10, 1},
+ { 4, 47, 24},
+ { 38, 26, 2},
+ { 48, 33, 3},
+ {104, 72, 6},
+ { 31, 21, 2},
+ { 6, 72, 37},
+ { 14,185, 97},
+ { 18,228,119},
+ {203,139, 12},
+ { 69, 48, 4},
+ { 2, 29, 15},
+ { 17,225,117},
+ { 6, 82, 43},
+ { 8,100, 52},
+ {115, 79, 7},
+ {160,110, 9},
+ {142, 98, 8},
+ { 64, 44, 4},
+ { 8,101, 52},
+ { 7, 84, 44},
+ {103, 71, 6},
+ { 8, 6, 0},
+ {123, 84, 7},
+ { 3, 2, 0},
+ { 2, 22, 11},
+ { 13,162, 84},
+ { 6, 73, 38},
+ { 5, 66, 34},
+ {148,102, 9},
+ { 4, 50, 26},
+ { 3, 44, 23},
+ {169,116, 10},
+ { 71, 49, 4},
+ { 45, 31, 3},
+ { 82, 56, 5},
+ { 39, 27, 2},
+ {111, 76, 6},
+ { 23, 16, 1},
+ { 4, 58, 30},
+ { 20,171,226},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255}
+ };
+
+char ns_data[] = {
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,22,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,30,31,32,33,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,41,42,43,44,43,45,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,52,53,54,55,52,56,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 60,61,62,63,0,64,62,65,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,70,
+ 71,72,0,0,73,74,0,0,73,75,76,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,77,78,79,80,81,82,79,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,77,86,87,86,88,89,90,91,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,95,32,32,96,97,98,99,100,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,106,107,108,109,78,107,108,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,63,113,53,114,115,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,116,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,65,99,108,0,0,0,0,115,114,120,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,98,107,122,0,108,107,78,109,95,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,127,81,128,99,98,97,96,129,73,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,132,133,86,90,89,88,86,134,135,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,120,79,82,81,80,79,82,140,141,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,146,75,73,91,147,75,73,148,149,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,151,60,63,62,61,152,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,55,54,53,52,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,120,43,42,41,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,160,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,161,161,161,0,0,0,0,161,161,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,161,161,161,161,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,161,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,161,0,0,0,0,0,0,0,
+ 161,161,161,161,0,0,161,0,161,161,161,0,0,0,161,161,
+ 161,161,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,161,0,0,0,0,0,0,161,
+ 0,0,0,0,0,0,161,161,0,0,0,0,0,161,0,0,
+ 0,0,161,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,161,161,161,161,0,0,161,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,161,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,161,0,161,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,161,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,161,0,161,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,161,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,161,0,0,0,0,161,0,161,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,161,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,161,161,161,161,0,0,0,
+ 161,161,161,161,0,0,161,0,0,0,0,0,0,0,161,161,
+ 161,161,0,0,161,161,161,161,161,0,0,161,161,161,161,161,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0
+ };
diff --git a/cnslock/graphics/pngs/.xvpics/caps.h b/cnslock/graphics/pngs/.xvpics/caps.h
new file mode 100644
index 0000000000000000000000000000000000000000..3f40d901518c3af3b035fc50fb04e6e156337674
GIT binary patch
literal 3207
zcmeH{u};H43_v|F<tr@p1{m8aMP<b;mmvuf?3GX=840n#Q2yYC4E>NB!k^sG524Zx
z9dSsz*PT!mD^eCe*?xBNc#G5NBpGG-Lsl%yyL7frXPCWL^}4R`dOS|&bA0*wtUqp&
z(W0PLxm?|sdA=x~pAyNGXOgA~3~`AD%y~nZpYu3x0Su~H3IKtly4hgBHDFj<kPSwF
zrqOZ~nZXFE3KB@7RklgN_?Ezk8&z~WsJ0HSR1~oP%U3ojd+RMm)RjXMT0u5WiR~Tm
z*4dp718-eqc-!?uo(y+~iJL&ie^)0%k|>8MV3Y~1YQWyU?k-X8pQDv}drgZFsAJle
z{HumL+zC*l`&{{uuJR#`(ZPn61K$_a9wtzb$x#1u0NDZuiyE27T%F1zHM|D{gMq=o
He=zV1l3!Ni
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/.xvpics/caps.png b/cnslock/graphics/pngs/.xvpics/caps.png
new file mode 100644
index 0000000000000000000000000000000000000000..f9d8166387f93fd8c21099bcb932f8012df2d1b5
GIT binary patch
literal 3205
zcmeH{u};H43_v|F<tr@J1FWr53M+283`vk+uY?lmkPr(D<qvMi&=0vG{K*ad5Gvi!
z5r?FE-3g&sk+S&7_Op|RYn;ud$t26~vtm`=rt?iY$Ly`DH+6-Vi<<>Le}2^OSIJ~q
z@VZ>B@5(%17Eh0f<jFHl(*(x&j|S+xq3HWO&Km$iHOm1Y*r;wc5V!`&Y71Jz2+%ZI
zj-$0ef~tZAl4zA}av<L_khoDrw}Wcu;6g=#^}qSbCS`BE#fZ9cNTC&E>y+5Rf!#T?
z*J0p|ixyt@{g5Za-C^Q3F!`_QWJnU_Fa?Y<p-~Ok+t=MC%Kh7Dq~1Z(A_VT3wq^gK
z;f6Z_Zgiik9nw`kq%j_BXgTnGLG57z2bm1@KL?O4*kDj2^O&nsd8EeoXkauj8u$wa
FegN9_R)YWl
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/.xvpics/caps_num.h b/cnslock/graphics/pngs/.xvpics/caps_num.h
new file mode 100644
index 0000000000000000000000000000000000000000..339db73a504905bc145a18baaabdac61b5d2c10f
GIT binary patch
literal 3207
zcmeHHy=vn?5T0TUvWdWZph5<Rg=}HNxp0hZY)EyRL@sOxa(&>iVFTfsyCU}nDqQ42
zROsGhi#*5$RHV#U+ISOXt^8C+&>~si&dfKn^X=fX5gQB+8wb<b>2!Xwm;}S?V92IF
zm#gd5l6Ct1(P+Sa{Q155)omOc&&9>!<l@_6HanhwKW|_pK8HcjfNFh41^CCB;{QIz
zi$eg;-pv&XK*{vohgBS+HE?MP)(k8`lCu<Gy?zX-`;$jl`W2~^z>%7*niqK98_q0{
zge%d<q^++&^9-fGLh(2ez)>4qF0!DtSIWqpn>$$EMnJOd5I+u<s|QXwSH_uNA2P#!
zmr(z;234+N%C_k#?X~N={MJ|mjH?7GH__HnYfqZsj_X^44Y2zN<ZTq*8E5kgaVE`I
zE<O&URKnF=-lQgbUdN=dqRn8k8zp%BcWDBe2JS#Om`F^q!_YJc`&qO*-a$fhu70kl
ziE{e{9B)YQDlLoQ{L3`NdiO<dm->MV^vEiX5*tpEi1@O|Bl~;M^J&L+7kW-WtSys4
zx<19%u@I#Wf1-yeOZ*xMJmOk96j}`{4>LH};Ml^0I4}5QFipJ;a@)P<2E7vsJ7eb0
np%B!fx{-n%w=$I~WH0TR#UhD`+?mpZRH#y*QlL`cKULrXJU3wA
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/.xvpics/caps_num.png b/cnslock/graphics/pngs/.xvpics/caps_num.png
new file mode 100644
index 0000000000000000000000000000000000000000..a9f85a399a52d4f187b9c356a2c556e8f7a2d08e
GIT binary patch
literal 3206
zcmeHHy=vn?5T0TUvWdVOP$7fELbk9WhB!gKv*D`SBywRpko19I!yX)Iaz*Y9RJh24
zsL;L17I}~hs7RTywDIP2Yvrd3L5pO4J2T(R&bNb4zp%r@gU0T7ax$JC&ql%ECK#~s
z)qHWYn6plQ|7)LJ{{FSN?lyLhrs86DeDQrYnH){e&l(tr&p{A0pjw|%0sg+G_}};O
z;t+tdH*<voP%?e<VHJmH30#_jH3LhK<SYePE}uf`{^$voenl!JaHM9d<^`VjiZcr&
z;Y#!|X=@K?o}u(tC>|#QIBJ8-MHaNSN*TFxbqDji2uQXa;K#vo^}s3T$~g1uLuT0T
z66(LypvqND**ZO?y>?xfUmJ^nag`wDHd;Gs?NJllVSR0|0rn7qyo<tn<7{pdXViS*
z;^Qz%CH%b4o77~_>zFiFv>Hrys|1h#%uPVkzzqlo6NxEy7@7uQCyRE68%Su*)z1|*
zQEs1r;|&O2rDZXkf0>3@@1f}JQa^BkezS_B#EO$7BK}e2k)18*`LtuZ3q2<wmX^sN
zU7zCXScp=GKhwjMC4P+r9&s%l3ay5fhZ!7faA@H{oELmHn5Nzex$WM+2E7vsJ7eb0
np%B!fx{-n%w=$I~WdGYUi$xL>xiO^)sZgarr9h>?2UXw^aL!<-
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/.xvpics/caps_num_scroll.h b/cnslock/graphics/pngs/.xvpics/caps_num_scroll.h
new file mode 100644
index 0000000000000000000000000000000000000000..a5db9b3268bdd1c5052862587a179e089f7eba5f
GIT binary patch
literal 3207
zcmeHH&1%~~5T1h!vWdV72qA;RLiS)oeXxV9+R#%sseG_qXzzhy!xl;}?IC>w9el`x
z=-|AG4tbCUbjY!z-L*H7*Gl4BLk8PB^UZwow~IeV<m_zFIGs#CO=cJKaX7pRhh*||
zvAkL?NT=T)4d0V*e||52bsMMWGj=(@xcoSuPS0mwzcersKZ7uAz?;0r4ba1eqJIzL
zr7-{{FXplgAmjOqo6RUBE1+B#tZB7E<CNq8tJNl?9*j3?<;il+fg)8%%?my689g&3
zp{!M#ZtESmGDGDr%V@f0Kyf!H4zi$iRLPLe;tm$K30T4$;$dUCdT3X3c`E#>NudW_
z%MG3yFq2!%$u_;~_S$t-ehZcrLbEkeu9K~!)*d&(8P&IdNg?+M@Y^K5)6V9xWsjRr
zTzncQIfoy2a!5t?ypB#|)QX2mt}{l{n}rT&YITo>4-<(wP8jO};Y36`qdg>q<@V)9
zb(GV$!1jg~UZp_@zJH#_Sns~<?YcqefcwF?oQxHm^_r#M%RKAk2zr6rG2MlFC%{&Q
zmtl1S7r(ZF$W{1*edw}QP_shMatsqPwGAT=GuSxb$iRbC7JTq9b-hA!+P%ksvRH<b
z5&h>-3TnA(kP?n2&v_P;U0fiBmFUR5DRsyz)cokUm@4uIhT+f|8DI(d@-PGlj{$!c
z4}-87OcAN3Hcg1E1-v7VJ-&<(V4+GAgk7S_)XJmc#8E)XE>x5FrGPR|(RZi^@I(vI
iW&)L1ft7u#)%lU!r|d-yjTmMs43TN4&o|(|+rU4Q!*4tQ
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/.xvpics/caps_num_scroll.png b/cnslock/graphics/pngs/.xvpics/caps_num_scroll.png
new file mode 100644
index 0000000000000000000000000000000000000000..ec503358ee9a88fb24a6b50dc44771788c91c620
GIT binary patch
literal 3206
zcmeHH&1%~~5T1h!vWdV72qA;RLiS)oeXxzJ+R#%sseG_qXzzhy!xl;}?IC>w9el`x
z=-|AG4tbCUbjY!z-L*H7*UHbWA%pFm`DVWP+r^(FG8_&Xr_<S|>HK^#2}hUVh)jPj
zSC^|L>Gb=<_vG83->YBU#_8FdT`bNoJ}zdnv-#IA4GhH3APgJuCa-Y=^kqZQzc1sZ
zF#sjc=CTYR<N33j%_t;mpj;QMX|+P*l;i;G^){p)Otxy}$#TwtB2`Gu3q9`%Ju@Vs
zY*d?W>m9f<L**~aXu4rQaW^OqvY>TT$&k+C4wg3wSi&6PVPm;^XjgN2D*UQRp$A>d
z4IUdXlUvNmF1_pa+I3Za2bL8=vkg+NlAWX0o;1N3*LQ$PA$JMzn<T!~&gQXYPnwTh
zd>SV?hab0cNJaL%j!t9Liib(AGDg$ur4DFn^?-&C6Nx!a80!JyL_|B|10;my_T@%(
zl+(As_C^+7r9lY3f1bx!@2>3ax<TlG`@y)Jj1`>ChNa)jJnQ5LdV$+9-GzE5z}AMB
zVRZu+zqWzMRrtMq=(1K&vqH~u3==Z74I>XT*f`+Wz=Kp4y!SA5y+U)^y@!CZSca1k
z{pU~$YPo8V5{@R%c@~p>Tp)&(=*WX9b;v8!{OGutD)I-0;m{cwU<vv1Fa!vX0e=z?
zgRmJ)5viuOO^B=oyeAJmzKjrHp-K~kU82g=%A?}MQ9#NrRFn9nfHF_f_oy%6i58;m
h1S+utEBjQd^CP)W*^3$)G0apLBGX=<Z@_=Ifq$bYZvX%Q
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/.xvpics/caps_scroll.h b/cnslock/graphics/pngs/.xvpics/caps_scroll.h
new file mode 100644
index 0000000000000000000000000000000000000000..9137d8af1d4322f11d3b2e07cc1599d6cfe8e03e
GIT binary patch
literal 3207
zcmeH{y-ve05XWy|%E*${5*}b|OKQQ2ThgH|66}>wDj5l}z);>GLxw(xhwvsI`XE&D
z(2?^;2HFVqx)t?QDe?J!=l`8AeGshI>n0bY@%?BroZe>rMb>Adw_?7S7wodr5jWTD
z`SWA`ewADdCUQ0%&hDn;@nG`wm|!ISx>=UM$^K&p_+dry@54Bq18_!Wr2#O?lEoSh
zWd&SO4^*64fU2T$(kcZUQIbi7&}yPgX}GQ>aO@4q+#M9F63$2zDDC5kBJtir7cHY5
z$GE8xS(Zd>Q-WHR`I?4-&P%J{bsdV_8+L=qmPT^@RqPF6APy#i7Awq21%~d^=91z3
zE1Tna8;V3Q(lK={^$UfIa{{uWeXc5ollp<eWb6i&104>e4kk#0l`;CC1K=$vlQT*)
zn^;;a8|v7fsW^8fh_u^M32urOcW|ZQ(GuWyTKs!)7=&Ulg@~dW5k9MP@7V91G(>o(
zdkstQ>n${-jyo~VKb$MB-D{hrTLIf##COmGI4?mo6~x5R`KQj<x>SUI1}(8@^kF8q
N@R@dWo*YNlfggHkWi|i+
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/.xvpics/caps_scroll.png b/cnslock/graphics/pngs/.xvpics/caps_scroll.png
new file mode 100644
index 0000000000000000000000000000000000000000..9c506bb6913d406ab46643a9e0e3e74c92c211e8
GIT binary patch
literal 3205
zcmeH{y-ve05XWy|%E*${Qa!-hDz#w6E$Pq}3HC}Tk&J{`U?^{pAwwU;LwFMpeGn>n
z=*ama18szQ-HLjul=ytV^Z(A5J_t4#^poCXdOw+s=eOB#nGM<Gttgje!LDwyj6HvT
zl<(I`Z#0vO`FL?RpH4@!r^f{2@Ym0>1kUy!JHU@Cihm!+=^TJFGAj*$QI;&$aHwkF
zih7{p%mUOkm6KK};E0k;B81iuWlF<!BY|UYNapUKSXXdCqCjaMPZWvw7P@E|?Ks9w
zgUG5PV%rMTy2>{+40K*u1+SY><iW5TOtvzT>#yQq2m^625wuugPAV{TpEj2a=U>?z
z&)ZTYf{~7C8mV6>T$~e-HSKd%F`U#76eeRgs2u2UAayW78mx@b{~Q2sL7ALUn%TzE
zTG>*k{!GQCD?z0Fj!JM-bhv{n4UdihztiDAh{GThgDFH5)r#<0oqNxI@1!BZJKbwo
zf?w~TA$8n|asJ_4aqV8aEZqs%<s!a^9>IADqOBk%j?O=I#@3}G^fPFQMWYWhxrNWP
Lr}OMMxeojQoy=s@
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/.xvpics/none.png b/cnslock/graphics/pngs/.xvpics/none.png
new file mode 100644
index 0000000000000000000000000000000000000000..c3e902eab49ad3775fb2358774ebb50fb6549433
GIT binary patch
literal 3205
zcmWGAS1>j<;!^hXb@%jh^S3fJt1vZF@XSj|tw>E#&@ePHQb?*SNiEjoQg-!oiT8Jl
zclP)7b@dAg<^rk%A|q2%E{0Js8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd70xh5!IN
CmJzW4
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/.xvpics/num.h b/cnslock/graphics/pngs/.xvpics/num.h
new file mode 100644
index 0000000000000000000000000000000000000000..2a61dba80b64b52445384a9d74e4ec985ab8132d
GIT binary patch
literal 3207
zcmeH_v1-FW42D%WgKFeK&^tH}#*hvUG=m+^A%;wCQasoWq<f&mYnOIN-@cc=fo^Ky
z4vqTI>HBrul<ReqF8blM9}iRK+N*2J{^K%V=Sx}DwQD!!`}f!Uxl9-P@#Q=n&d<{@
z?8moL>N|Zk&ZQ7vH1PiosGt=v-v)3>YiHyf+ZC`FqkIKmGcl(<K@9*Jl(U#PEytL+
zBM>K{iY)_m;(25gwhxJTI{>y-0OfrKQ9iz3Cz<%x&?rEs6R}d{P7~CH7%V(xvr2w$
wWNL*uEv1I6x}Dm+ID7z=0q>;aZvB)$-34%#9|I`=&mby7(Lgj14g7fnKl!8^WdHyG
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/.xvpics/num.png b/cnslock/graphics/pngs/.xvpics/num.png
new file mode 100644
index 0000000000000000000000000000000000000000..6070abb5d860ab8578efe0dd386bc65290f0571d
GIT binary patch
literal 3205
zcmeH_v1-FW42D%WgJR@C&^tH}#*hvUG(#NDX$+m(q<FAhX!k&g*DmdlzI`rv1KpIu
z9UAqa)A#FrQ?A!_I`8_oZrG2lYfi2yyYJ(4nvP}lRBy_!zu)O+k<NF+>tWm<UdF!P
z4WA#W@AFkVmqL8e!2dU(f>ywM8^9^8osn~Fm%w6-@+E-H#GLj7)c|Nv&SK)U9An~^
zK%9gswhYvY=aEs^+$ZAg0N7Rml=m4#`S`9*GV!gUQGiY-Vx`EfCRi0>u<(@4D*3sQ
wSt-nEAvI*x<<w^4@Bvf?{45=J>8JehE`YQA5J35V22l};2BLvz;N}gS0Ua3|0ssI2
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/.xvpics/num_scroll.h b/cnslock/graphics/pngs/.xvpics/num_scroll.h
new file mode 100644
index 0000000000000000000000000000000000000000..89c294bb28cdf561a612f0b82d563ee576effa32
GIT binary patch
literal 3207
zcmeH{&uhXk6vy8nLRQj4#@f;zq~Hz;^Uz8fEbO%D@SqO1yD;>+%XV=8{a%_V_ygtT
z<}j2deffU!UcL!^)A?Xf2A#?Dbut^zYgMgPl~2BwtMzJ`cZ)(-W&Zj5v-<7@ozd)N
zF&{6U=hNwE_VFH|5}#730Iu!oz~wu@ytcrzp$EsJNX2wcrhSlPOk{n4G$eBo5~2j)
zF{iV<r6M{eg{%dTPlC0F5=2eTCt}8{`xbe305a`*Q0S)@g~!);5|Zy4j~Q?kwaAuo
zSw{kjHW_Rqm4;pVbrW&HcqV#Ohf-#)+AaC;0ays~iJH#nMfP~(!KL!SgTgw!sDBM5
z`p)c6C-{FlXgH}4f}22M2S)_W%#pYS&TuHgVo;=AQJW&paxP<H`$leto3PEk^R`Pj
z%B`-Eo6rf)ERyUA_Bn^|<n!cAHJGjGcIz@pTp~AXq}%4KOSJXV#@(hdhNSs8MsAn5
I4lc)mKjEz@xBvhE
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/.xvpics/num_scroll.png b/cnslock/graphics/pngs/.xvpics/num_scroll.png
new file mode 100644
index 0000000000000000000000000000000000000000..7f8e1080ab21de1be8649d6cdd29509903ebbfef
GIT binary patch
literal 3205
zcmeH{&uhXk6vy8nLRQj4#@f;zq~Hz}=0PQ`7IxZnc+d{EyD;>+%XV=8{a%_>@CVAv
z&0#1_`ttqcy?hh;R;0t>!0XKBud~IpDpkHwc{=-AtvBmcnvF)|^z-*;{oVCClf}!j
znl7KK`FyhYc=u3;&p;^;uI=i;<vYNfw!o9I1IL0ug>+8FJ&<HfBt3xGCvyQ3VgSHH
zPG@;b1$0abSqdPZ1Z$5ah?1O7gpB9+E%NRFWSlur=%*8f$5(selkXZ28E_S}$d+<h
z1_JtRGT25c_A~l*6Jek6M0BYR#Y|tdTk_!pFdyU-HJ#Rr<nhLVi{*m@g>^bn{~C&l
zJH5Xm!vE7j!^z?x*aRXoI3lQLj>HXchC>k+gQCI~)f91-vl%1P*K$2<!Y2F9+bmrx
zx4K%cLnk=BNVF%|=PbUH&ymyBV79v3txG4diR`SFZkx3(DvX~dZa0lFB=yHJa=XNJ
Ia5)bA0gZ4eU;qFB
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/.xvpics/scroll.h b/cnslock/graphics/pngs/.xvpics/scroll.h
new file mode 100644
index 0000000000000000000000000000000000000000..06f6b5772283bd8b3e795bf46fd0711afab39061
GIT binary patch
literal 3207
zcmeHDu?oU45bd1NC2OFIj%`U(T(y-BZ3W#6(yT5z)W7#~xem5L#6b`)1d@CA-sR;T
zjmolA#C3D1+p62@eAKzBuY(=!pw>yEi$Yx<cYE82xNP@*SM|HDY0CC|62OF=YAqsO
zoB$`l32*|O04Kl+{2&2oR_+xe)4*fUGy&K{(jNf=b^`cEIv{}=7-7iNWCEu;c(GnP
z(lZcrS6@b0&!m1db%=+DgQ#}b(2_I4Tu1VS^a~wYFw+lcFoAD<QgqVzJiQnCG+;2v
N6*y_(lYzfW;0eZqAa?)&
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/.xvpics/scroll.png b/cnslock/graphics/pngs/.xvpics/scroll.png
new file mode 100644
index 0000000000000000000000000000000000000000..4537be9343805b5183aae4fc2cdcdd3674bb8618
GIT binary patch
literal 3205
zcmeHDu?oU45bd1NC2PP%*OuhaRa@!MR?xj5?dqaK{d+H$>tGv190cJ)Ah~z%U0&W1
zOqQi;SyqR#E}E@%gLS67cKy(IX5}`{TpsuSwpPo$-nUKB?wYE~>+?w=4|i&<N@Pg_
zl7J*22}lBxfF$sP1T-xCE1=WJW7vcU93UNz2!T2g{39Kb&<u_MHZ_`{sUDuK*NzSh
z0{u0V3Dpy67|k8#(cvMk{WZ4qgfP{yd?x)uM;2iG0S{*Itxt|lL&!6D;ZGxmlYBvw
KW<CY@y9A#0P9PNk
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/caps.png b/cnslock/graphics/pngs/caps.png
new file mode 100644
index 0000000000000000000000000000000000000000..bb6c9799de6686e6d9286b293412d4c13d7c736c
GIT binary patch
literal 898
zcmV-|1AY97P)<h;3K|Lk000e1NJLTq001}u001}$0{{R3pIFN*0005zP)t-s0000s
zB?CAo1KO4i1_S`HdJ17f1_=fL9TWl@5&~I01-gF=#D)udRR`>%4ni#i(vS>6ECg^(
z2BL2XF(Lz4JOu<d9c)SlG9m*Q5CQ3+4JjM~h+PPZUkC<IDG$SD66kpX9}rqT1>u?v
zc2Ng-QwJ|01LK?x5exwYFc}S`RSvjd4Xj!ND;Gm91aVFWYDoqR2mt{A0H|~d0TBrb
zg+&q9a0p{G3V=hyg$qhD1UM!G2xc`A+HnekL;(&64X0ND2Lw<z1<8sG2L%8a5di@W
z2Mm`_1TGi_MkNfDP7b<Z1wkSJ1_KVVT?S1k11A*>n^6zJWCa8OgIWkB83GD?K?{yb
z5#V(QY&Zc31Op)vBNzgaV+ev-2m>S&3yVks7YqkoF%Z#h2x~a;r4E^C2_O~%Q8)z&
z1_23oJ`Ji_1U4K6J|KBh2lA#4s&onf0Ra%nX$Ms-33NOe5dp!43w%`v0vQbt3IPN!
z7$zD5Fd+kINCqDj0tQGW4!L0x<af)93`H;m0v!(#;dKU5D+pvXb594LZV8TJ2tX_Z
z2xT+}R4ivl1_%ZKdsGJl0ssOQ3k{-F21zCbLL!uA2?R1411uM*bP7i?1T7x}QaA-C
z8v<`k1{V+k1UeoRtK#XZm+b%m00Cl4M??UK1szBL000SaNLh0L01FTR01FTSts}j4
z00007bV*G`2hs`)3@|wG&HpU`00AONL_t(|obA#(PlHe#1@L2$wm=^|+9*^PwdkbP
zPT&UW7f?6bO==f#QDd|Yb+MZGSWJ9>RRO<%hshXDa_`9<ez`aQTp-VX&QwNM5T>(1
zv4~Px;+?Djm1?a{Lsf%rpwXn^%&cj(FgH)bg~g>d?Bx}bt*&*}v4L)fbed{+9T%Gp
z>7dAf=Nntw$zkXBt|+F}W`Dr0u$Po+?UV4JASxQr>yxf^7z|`JI1+{=H1seE5k|+P
zbA4bCsB*F>=y>sV5}n%6&M2sx$sV3l=;CsOk)_9Pjjkv-ZeGVzHGD4!DR(pZY4`Sy
za=34#_3-$_In<xi8gkQ2^75KO;f;mw<H-l4eviH}o=>e>`TWWNA(cy6Se`t2^8DF+
Y1JRl&J{nCg>Hq)$07*qoM6N<$f>-z)b^rhX
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/caps_num.png b/cnslock/graphics/pngs/caps_num.png
new file mode 100644
index 0000000000000000000000000000000000000000..2e790a2d7266074f30f9b732834a5b35c152352d
GIT binary patch
literal 1081
zcmV-91jhS`P)<h;3K|Lk000e1NJLTq001}u001}$0{{R3pIFN*0005zP)t-s0000s
zB?CAo1KO4i1_S`HdJ17f1_=fL9TWl@5&~I01-gF=#D)udRR`>%4ni#i(vS>6ECg^(
z2BL2XF(Lz4JOu<d9c)SlG9m*Q5CQ3+4JjM~h+PPZUkC<IDG$SD66kpX9}rqT1>u?v
zc2Ng-QwJ|01LK?x5exwYFc}S`RSvjd4Xj!ND;Gm91aVFWYDoqR2mt{A0H|~d0TBrb
zg+&q9a0p{G3V=hyg$qhD1UM!G2xc`A+HnekL;(&64X0ND2Lw<z1<8sG2L%8a5di@W
z2Mm`_1TGi_MkNfDP7b<Z1wkSJ1_KVVT?S1k11A*>n^6zJWCa8OgIWkB83GD?K?{yb
z5#V(QY&Zc31Op)vBNzgaV+ev-2m>S&3yVks7YqkoF%Z#h2x~a;r4E^C2_O~%Q8)z&
z1_23oJ`Ji_1U4K6J|KBh2lA#4s&onf0Ra%nX$Ms-33NOe5dp!43w%`v0vQbt3IPN!
z7$zD5Fd+kINCqDj0tQGW4!L0x<af)93`H;m0v!(#;dKU5D+pvXb594LZV8TJ2tX_Z
z2xT+}R4ivl1_%ZKdsGJl0ssOQ3k{-F21zCbLL!uA2?R1411uM*bP7i?1T7x}QaA-C
z8v<`k1{V+k1UeoRtK#XZm+b%m00Cl4M??UK1szBL000SaNLh0L01FTR01FTSts}j4
z00007bV*G`2hs`)3@{&6$4W*300G%aL_t(|oMT`Z1;ZIIlBti0nT0%!tZWSI9Gs-<
z<Kkvu;Nj)tCt0I_AcK%FgNP_XM2t9%;u4Zl(hM@PFut6;f+A5Gm6TOf8PwD@AUsVi
zZ5?f0BDCr08yGSeF&G<wc_yZ2<|Y=zSSKi;W^8H2U~LKJ+1T3IGdS2e5}}csi-Ez(
zS=hxD#Bp=?U|{g{0%C6;0{Ylk!IUZ@1^D{;2LuNB6VMmT90H;wr9$EQ!otHMBBP=S
zXpCWE<rZXMh>e4b#49KyBqk-N;MXUenwHKbke0!m2^Y%B&dK%5&LLo-uuxup9z$M!
z0Yb>W(6p$SfHnpzX9kA!GyyIUMu?UW(#F7G=>#N7^UKs21k2%qj>%wm78h0E)+i(i
zBJ(OyMU%3t7;>`xa^taUs;;SJsFe}|x;4KJO{zYyAvq~Aq0tko#wO8bV5kZ^JEi5J
zOSQCyMMXx0wY6i@*U<@~t-87~B`f@c0t5VmdU~;F>=OY~{Szi)k(}i189mwCbIMdK
za{SZ4RAxCAIS`m`V{d0W1DnjuSzwLKvvKG&H#0TCDlw<2b1nmCTr75N71~;wI7|eF
z4<9ejy!kjJ7vR(e1e_e~_@qa{C>RB!V8{Ug5<gTi?dLGh00000NkvXXu0mjf4TxZY
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/caps_num_scroll.png b/cnslock/graphics/pngs/caps_num_scroll.png
new file mode 100644
index 0000000000000000000000000000000000000000..42c1d537ffff5e4cc367c9c30ac63001f92b959e
GIT binary patch
literal 1138
zcmV-&1daQNP)<h;3K|Lk000e1NJLTq001}u001}$0{{R3pIFN*0005zP)t-s0000s
zB?CAo1KO4i1_S`HdJ17f1_=fL9TWl@5&~I01-gF=#D)udRR`>%4ni#i(vS>6ECg^(
z2BL2XF(Lz4JOu<d9c)SlG9m*Q5CQ3+4JjM~h+PPZUkC<IDG$SD66kpX9}rqT1>u?v
zc2Ng-QwJ|01LK?x5exwYFc}S`RSvjd4Xj!ND;Gm91aVFWYDoqR2mt{A0H|~d0TBrb
zg+&q9a0p{G3V=hyg$qhD1UM!G2xc`A+HnekL;(&64X0ND2Lw<z1<8sG2L%8a5di@W
z2Mm`_1TGi_MkNfDP7b<Z1wkSJ1_KVVT?S1k11A*>n^6zJWCa8OgIWkB83GD?K?{yb
z5#V(QY&Zc31Op)vBNzgaV+ev-2m>S&3yVks7YqkoF%Z#h2x~a;r4E^C2_O~%Q8)z&
z1_23oJ`Ji_1U4K6J|KBh2lA#4s&onf0Ra%nX$Ms-33NOe5dp!43w%`v0vQbt3IPN!
z7$zD5Fd+kINCqDj0tQGW4!L0x<af)93`H;m0v!(#;dKU5D+pvXb594LZV8TJ2tX_Z
z2xT+}R4ivl1_%ZKdsGJl0ssOQ3k{-F21zCbLL!uA2?R1411uM*bP7i?1T7x}QaA-C
z8v<`k1{V+k1UeoRtK#XZm+b%m00Cl4M??UK1szBL000SaNLh0L01FTR01FTSts}j4
z00007bV*G`2hs`)3@;=pmaY5%00I(8L_t(|oMT`Z1;ZIIlBti0nT0%!tZWSI9Gs-<
z<Kkvu;Nj)tCt0I_AcK%FgNP_XM2t9%;u4Zl(hM@PFut6;f+A5Gm6TOf8PwD@AUsVi
zZ5?f0BDCr08yGSeF&G<wc_yZ2<|Y=zSSKi;W^8H2U~LKJ+1T3IGdS2e5}}csi-Ez(
zS=hxD#Bp=?U|{g{0%C6;0{Ylk!IUZ@1^D{;2LuNB6VMmT90H;wr9$EQ!otHMBBP=S
zXpCWE<rZXMh>e4b#49KyBqk-N;MXUenwHKbke0!m2^Y%B&dK%5&LLo-uuxup9z$M!
z0Yb>W(6p$SfHnpzX9kA!GyyIUMu?UW(#F7G=>#N7^UKs21k2%qj>%wm78h0E)+i(i
zBJ(OyMU%3t7;>`xa^taUs;;SJsFe}|x;4KJO{zYyAvq~Aq0tko#wO8bV5kZ^JEi5J
zOSQCyMMXx0wY6i@*U<@~t-87~B`f@c0t5VmdU~;F>=OY~{Szi)k(}i189mwCbIMdK
za{SZ4RAxCAIS`m`V{d0W1DnjuSzwLKvvKG&H#0TCDlw<2b1nmCTr75N71~;wI7|eF
z4<9ejy!kjJ7vR(e1e_e~_@sw3Sh#Q@5`{$;t2jgwg~F7=sgsaKxWx;h?t(dkutpfQ
z5Y-uYG{UXIFouvuhy)!qE+pH=g~;KE7RD&lC>Txv01=pvPp_FL#{d8T07*qoM6N<$
Ef+>A^7XSbN
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/caps_scroll.png b/cnslock/graphics/pngs/caps_scroll.png
new file mode 100644
index 0000000000000000000000000000000000000000..7628405955b58dd3e70fa8bbc87aeb79d51546d3
GIT binary patch
literal 955
zcmV;s14R6ZP)<h;3K|Lk000e1NJLTq001}u001}$0{{R3pIFN*0005zP)t-s0000s
zB?CAo1KO4i1_S`HdJ17f1_=fL9TWl@5&~I01-gF=#D)udRR`>%4ni#i(vS>6ECg^(
z2BL2XF(Lz4JOu<d9c)SlG9m*Q5CQ3+4JjM~h+PPZUkC<IDG$SD66kpX9}rqT1>u?v
zc2Ng-QwJ|01LK?x5exwYFc}S`RSvjd4Xj!ND;Gm91aVFWYDoqR2mt{A0H|~d0TBrb
zg+&q9a0p{G3V=hyg$qhD1UM!G2xc`A+HnekL;(&64X0ND2Lw<z1<8sG2L%8a5di@W
z2Mm`_1TGi_MkNfDP7b<Z1wkSJ1_KVVT?S1k11A*>n^6zJWCa8OgIWkB83GD?K?{yb
z5#V(QY&Zc31Op)vBNzgaV+ev-2m>S&3yVks7YqkoF%Z#h2x~a;r4E^C2_O~%Q8)z&
z1_23oJ`Ji_1U4K6J|KBh2lA#4s&onf0Ra%nX$Ms-33NOe5dp!43w%`v0vQbt3IPN!
z7$zD5Fd+kINCqDj0tQGW4!L0x<af)93`H;m0v!(#;dKU5D+pvXb594LZV8TJ2tX_Z
z2xT+}R4ivl1_%ZKdsGJl0ssOQ3k{-F21zCbLL!uA2?R1411uM*bP7i?1T7x}QaA-C
z8v<`k1{V+k1UeoRtK#XZm+b%m00Cl4M??UK1szBL000SaNLh0L01FTR01FTSts}j4
z00007bV*G`2hs`)3^EY+PBm2k00CP`L_t(|obA#(Pr_gn2H;mJmzG;E5H0AUQk@iK
z0yj|qfVv5rMV8h@jZqwM5ly@-Cf@V?Q+p8tg5v4m&~TFWO?&e6d^ssFE<e|VM;G8G
zy}@7z;RsK6LKKL_6G<`@CCCa=X)>IeRx?@5%#z{U{6Y@e;u4W9ujE&;hC-g`BvC6A
zOIR-w9ijqIt|%Lu_QTfST`1^8j`{~|b31mZnO!2>3k0JQP^}SNc3-axqJF?Nh)|IY
z(|}<f5?!eR)OAs?FA^-4t=o}#tU)><L0Pr$#wiJ%oj1|U$ktiS3leOlFRiUAm9lP-
z+*RAn()A6=;Wp*O-Ted2A^GS;gSJh(o}L}Zy-?w6tNjMPRwYlg_LGRm-akA*@R6_=
z=7(a8^~8|w(D!b$F9usb%2BX8n0=kAbBxij6RiIjzrgOOfzOPBZsQ*z^E{FD?(y4>
d`(j*vs!!1KV_cU3B!vI~002ovPDHLkV1nE!GAjT8
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/none.png b/cnslock/graphics/pngs/none.png
new file mode 100644
index 0000000000000000000000000000000000000000..60b3dfea196be0dce71e80e5981e4220b655a0f8
GIT binary patch
literal 142
zcmeAS@N?(olHy`uVBq!ia0vp^79h;X3?wIctc(RxYymzYu0Z<#|Nl#G&c6#}F(!Gt
zyD)UH%6b4foCO|{#S9GG0wBz|R(WqJP>{XE)7O>#5*Ig*qQzp7JGMX}K2I0Nkcv6U
e2@<T%l0Y*KFfcBvf4Utg!{F)a=d#Wzp$PzF5+J_-
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/num.png b/cnslock/graphics/pngs/num.png
new file mode 100644
index 0000000000000000000000000000000000000000..808f84809f5c27ee007d4a87c7b0958a2e8d8444
GIT binary patch
literal 827
zcmV-B1H}A^P)<h;3K|Lk000e1NJLTq001}u001}$0{{R3pIFN*0005zP)t-s0000s
zB?CAo1KO4i1_S`HdJ17f1_=fL9TWl@5&~I01-gF=#D)udRR`>%4ni#i(vS>6ECg^(
z2BL2XF(Lz4JOu<d9c)SlG9m*Q5CQ3+4JjM~h+PPZUkC<IDG$SD66kpX9}rqT1>u?v
zc2Ng-QwJ|01LK?x5exwYFc}S`RSvjd4Xj!ND;Gm91aVFWYDoqR2mt{A0H|~d0TBrb
zg+&q9a0p{G3V=hyg$qhD1UM!G2xc`A+HnekL;(&64X0ND2Lw<z1<8sG2L%8a5di@W
z2Mm`_1TGi_MkNfDP7b<Z1wkSJ1_KVVT?S1k11A*>n^6zJWCa8OgIWkB83GD?K?{yb
z5#V(QY&Zc31Op)vBNzgaV+ev-2m>S&3yVks7YqkoF%Z#h2x~a;r4E^C2_O~%Q8)z&
z1_23oJ`Ji_1U4K6J|KBh2lA#4s&onf0Ra%nX$Ms-33NOe5dp!43w%`v0vQbt3IPN!
z7$zD5Fd+kINCqDj0tQGW4!L0x<af)93`H;m0v!(#;dKU5D+pvXb594LZV8TJ2tX_Z
z2xT+}R4ivl1_%ZKdsGJl0ssOQ3k{-F21zCbLL!uA2?R1411uM*bP7i?1T7x}QaA-C
z8v<`k1{V+k1UeoRtK#XZm+b%m00Cl4M??UK1szBL000SaNLh0L01FTR01FTSts}j4
z00007bV*G`2hs`)3^5ej4x*0$007%bL_t(|obArJ62V{;hT(G+N}?om2?|MQ5FuL;
zB1JZpL_ri84Q4D2jb$iZs^t#O-!cC?bINDF13;twR~a&v%`tfbRw%M1wv1*RU#W66
z{9IiSC1{9EtZTJ90CM+zN)J8SS2f)*HN3M1*3cd~Xy`JG=Lg{!4JT1NRihZ~K$`LM
z1kXM#$QU%k@1My$#mXRBLL8}67rnVM)?wg#8yO3?J8NVQt^EN#nQEq?Yv%EUg=a-}
zE{c4;p(g?Ebx9N+1Q4nfo+Dr>TP%>w0X)eVjYgyWW-p{hEINb+;4%OJ002ovPDHLk
FV1l`|;=lj^
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/num_scroll.png b/cnslock/graphics/pngs/num_scroll.png
new file mode 100644
index 0000000000000000000000000000000000000000..b1150e19ccbce39c93920d4b25f8b373ed3b20a6
GIT binary patch
literal 889
zcmV-<1BU#GP)<h;3K|Lk000e1NJLTq001}u001}$0{{R3pIFN*0005zP)t-s0000s
zB?CAo1KO4i1_S`HdJ17f1_=fL9TWl@5&~I01-gF=#D)udRR`>%4ni#i(vS>6ECg^(
z2BL2XF(Lz4JOu<d9c)SlG9m*Q5CQ3+4JjM~h+PPZUkC<IDG$SD66kpX9}rqT1>u?v
zc2Ng-QwJ|01LK?x5exwYFc}S`RSvjd4Xj!ND;Gm91aVFWYDoqR2mt{A0H|~d0TBrb
zg+&q9a0p{G3V=hyg$qhD1UM!G2xc`A+HnekL;(&64X0ND2Lw<z1<8sG2L%8a5di@W
z2Mm`_1TGi_MkNfDP7b<Z1wkSJ1_KVVT?S1k11A*>n^6zJWCa8OgIWkB83GD?K?{yb
z5#V(QY&Zc31Op)vBNzgaV+ev-2m>S&3yVks7YqkoF%Z#h2x~a;r4E^C2_O~%Q8)z&
z1_23oJ`Ji_1U4K6J|KBh2lA#4s&onf0Ra%nX$Ms-33NOe5dp!43w%`v0vQbt3IPN!
z7$zD5Fd+kINCqDj0tQGW4!L0x<af)93`H;m0v!(#;dKU5D+pvXb594LZV8TJ2tX_Z
z2xT+}R4ivl1_%ZKdsGJl0ssOQ3k{-F21zCbLL!uA2?R1411uM*bP7i?1T7x}QaA-C
z8v<`k1{V+k1UeoRtK#XZm+b%m00Cl4M??UK1szBL000SaNLh0L01FTR01FTSts}j4
z00007bV*G`2hs`)3^N8Afw4sZ009|EL_t(|oMT`Z1*2ei0WtEl$;m4ylA%pgOIt@<
zmt<`wre@|Q7NlEeV{2#6;9%!Ssy;V&4+aKLFCg~zA=y%2KmUNhAb-;Jg@uPjL`FrE
ztTA3eAt5m-IfZ16S=l+ce%U!B>tnDlG%YG7T^k6Lkf)8oF&XU6;-U&tbtYw3G2~?X
z<;Ih2XMJEpa#CVKqbI2vTUx`SA|t}u+DW#u!apc5z(1&`msE|Dygj2QdwWiqO0ty<
z4AX7w?QCa|p^?Gd%+!PoZ57&Dn&eo=z_5TkZNnZcT(}U4!Xk@R93qKAVM^iDNk}8y
z;)PIm!JI)@BaB*z>I^&@;Z|W7Lr5b;f{q#&l5OKc<Zwg_V-#u>3?~2pqn~G36Nn6q
P00000NkvXXu0mjf;UNK{
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/pngs/scroll.png b/cnslock/graphics/pngs/scroll.png
new file mode 100644
index 0000000000000000000000000000000000000000..8d672c3c1407e9362e405027be4bad2c40aa1ead
GIT binary patch
literal 696
zcmWksSx8h-0KNCU`|i7Mn|aUFnK8$GG;v%p9ZJQ~nVd0oT*ev&$-OK~#c@kPu{6^X
zg;Xj<k+QS}TRuvt5dBDmD1QP$%8E!xq6okGX#6<maL&*9IOl49UY5lB@c;nHZnG46
z)U*#mdwANlZUg{+&(CpMJvPZen<D7VaS0>v<RV{@i8&1P-jtsgRg%gqbqlNgLT54i
zb5@lRjW$L^vk^7s;@Ji+K7@9qFeq7HpN$hjXsrx)W~4}eYM_h^o+8*0sa~n|`q4oJ
z%B5+{_ARNkfNd{gV}t3hlaeAr6sME!6sum8OAkxwC{1PzYRY5J+ObF=1mM1#hYH8{
zS(T5Cq$-i`$z16ZvJ;RgoF=u0mCYu;*8){Ux_1(?C_kB58x&avXcY)0R-AC47%g+m
zAdcm!mMR!?2*9-JX&KHvL`V3Dw+qzE)eHicN{K;7@m*$NI9vJLLh4PBAUaqH)l#EX
zq_>37VF!dE8>JE1vUvH!d2-J5`>yI{9T((F6_^+fL#{1NS|~wD{!Cg>M-lsHPPO3X
z0fh2e9b0VV+$lN*F82vt#Vn<h)I3D7+HgNAE|@-J!+|~&wi#3}E4;q7tq+OTI7I2y
z%61Dbj3U*E%?@_v0ykVq(v67JB(hH9=`2hz=yb9)1t?!Znss7(IFk`_qn1MnezZ|D
z@8+}OQFI_(XksD`QVls+BSUl~!27|MorQ^A&(g5+c$NhWFnXKEaE-Q-W&i|vAMjD=
zs}@hly6w4Ec7qqhgaCO@yZ;-P-C}mOPwtMab0A2}oO+k~Z2roEtJ_D-8-97ktzPa=
zCryrjsXcPWFns@Zb?WudeD(8jdz5Qvv~5h+x=8+B%UwJneR7%O18~#Uz~1oI^)cBI
WR>d8ynVWvIUkmKkJj>&Z^4|aD>a9)y
literal 0
HcmV?d00001
diff --git a/cnslock/graphics/scroll.h b/cnslock/graphics/scroll.h
new file mode 100644
index 0000000..3a7282f
--- /dev/null
+++ b/cnslock/graphics/scroll.h
@@ -0,0 +1,488 @@
+int s_width = 56;
+int s_height = 56;
+
+char s_cmap[256][3] = {
+ { 0, 0, 0},
+ { 54, 37, 3},
+ { 56, 39, 3},
+ {218,150, 13},
+ { 6, 4, 0},
+ {177,122, 10},
+ { 97, 67, 6},
+ { 9, 6, 0},
+ { 29, 20, 2},
+ { 26, 18, 2},
+ { 89, 61, 5},
+ {186,127, 11},
+ {196,134, 11},
+ {123, 85, 7},
+ {236,162, 14},
+ { 66, 45, 4},
+ {210,144, 12},
+ { 65, 44, 4},
+ {112, 77, 6},
+ {162,111, 9},
+ { 49, 34, 3},
+ { 88, 60, 5},
+ { 4, 55, 29},
+ {108, 74, 6},
+ { 50, 34, 3},
+ { 24, 16, 1},
+ {233,160, 13},
+ { 41, 28, 2},
+ {136, 93, 8},
+ {138, 95, 8},
+ { 6, 79, 41},
+ { 15,195,102},
+ { 18,232,121},
+ { 2, 31, 16},
+ { 90, 62, 5},
+ {225,154, 13},
+ {118, 81, 7},
+ {120, 83, 7},
+ { 47, 33, 3},
+ {227,156, 13},
+ { 17, 12, 1},
+ { 4, 48, 25},
+ { 13,164, 85},
+ { 14,184, 96},
+ { 13,172, 90},
+ { 3, 43, 23},
+ { 67, 46, 4},
+ {113, 78, 7},
+ {106, 73, 6},
+ { 12, 8, 1},
+ { 1, 0, 0},
+ {168,116, 10},
+ { 1, 17, 9},
+ { 10,133, 69},
+ { 17,215,112},
+ { 8, 99, 52},
+ { 10,128, 67},
+ {195,133, 11},
+ { 74, 50, 4},
+ { 56, 38, 3},
+ { 8,102, 53},
+ { 17,218,113},
+ { 10,130, 68},
+ { 1, 14, 8},
+ { 13,167, 87},
+ { 1, 7, 4},
+ { 80, 55, 5},
+ {201,138, 12},
+ { 7, 5, 0},
+ { 24, 17, 1},
+ { 1, 13, 7},
+ { 12,151, 79},
+ { 4, 46, 24},
+ { 5, 70, 37},
+ { 12,149, 78},
+ { 14,186, 97},
+ { 5, 65, 34},
+ { 0, 6, 3},
+ { 14,178, 93},
+ { 6, 77, 40},
+ { 3, 39, 21},
+ { 12,155, 81},
+ { 15,193,100},
+ { 5, 4, 0},
+ {131, 90, 8},
+ { 37, 25, 2},
+ { 10,124, 65},
+ { 11,142, 74},
+ { 17,224,117},
+ { 8,108, 56},
+ { 1, 8, 4},
+ { 3, 33, 17},
+ { 35, 24, 2},
+ {145, 99, 8},
+ {130, 89, 8},
+ { 3, 36, 19},
+ { 11,139, 72},
+ { 2, 23, 12},
+ { 7, 93, 49},
+ { 16,209,109},
+ { 8,107, 56},
+ {241,165, 14},
+ {153,105, 9},
+ { 32, 22, 2},
+ { 81, 56, 5},
+ { 9, 6, 1},
+ { 9,119, 62},
+ { 13,170, 89},
+ { 4, 54, 28},
+ { 5, 62, 32},
+ {121, 83, 7},
+ {242,166, 14},
+ {170,116, 10},
+ { 0, 1, 1},
+ { 16,201,105},
+ { 7, 85, 44},
+ { 9,116, 60},
+ { 25, 17, 1},
+ {193,133, 11},
+ {124, 85, 7},
+ { 2, 25, 13},
+ { 15, 10, 1},
+ { 4, 47, 24},
+ { 38, 26, 2},
+ { 48, 33, 3},
+ {104, 72, 6},
+ { 31, 21, 2},
+ { 6, 72, 37},
+ { 14,185, 97},
+ { 18,228,119},
+ {203,139, 12},
+ { 69, 48, 4},
+ { 2, 29, 15},
+ { 17,225,117},
+ { 6, 82, 43},
+ { 8,100, 52},
+ {115, 79, 7},
+ {160,110, 9},
+ {142, 98, 8},
+ { 64, 44, 4},
+ { 8,101, 52},
+ { 7, 84, 44},
+ {103, 71, 6},
+ { 8, 6, 0},
+ {123, 84, 7},
+ { 3, 2, 0},
+ { 2, 22, 11},
+ { 13,162, 84},
+ { 6, 73, 38},
+ { 5, 66, 34},
+ {148,102, 9},
+ { 4, 50, 26},
+ { 3, 44, 23},
+ {169,116, 10},
+ { 71, 49, 4},
+ { 45, 31, 3},
+ { 82, 56, 5},
+ { 39, 27, 2},
+ {111, 76, 6},
+ { 23, 16, 1},
+ { 4, 58, 30},
+ { 20,171,226},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255},
+ {255,255,255}
+ };
+
+char s_data[] = {
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,70,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,161,161,161,0,0,0,0,161,161,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,161,161,161,161,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,161,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,161,0,0,0,0,0,0,0,
+ 161,161,161,161,0,0,161,0,161,161,161,0,0,0,161,161,
+ 161,161,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,161,0,0,0,0,0,0,161,
+ 0,0,0,0,0,0,161,161,0,0,0,0,0,161,0,0,
+ 0,0,161,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,161,161,161,161,0,0,161,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,161,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,161,0,161,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,161,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,161,0,161,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,161,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,161,0,0,0,0,161,0,161,
+ 0,0,0,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,161,0,0,0,161,0,0,0,0,0,0,161,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,161,161,161,161,0,0,0,
+ 161,161,161,161,0,0,161,0,0,0,0,0,0,0,161,161,
+ 161,161,0,0,161,161,161,161,161,0,0,161,161,161,161,161,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0
+ };
diff --git a/cnslock/include/applet.h b/cnslock/include/applet.h
new file mode 100644
index 0000000..4744a03
--- /dev/null
+++ b/cnslock/include/applet.h
@@ -0,0 +1,2 @@
+
+void make_new_cnslock_dockapp(int);
diff --git a/cnslock/include/cnslock.h b/cnslock/include/cnslock.h
new file mode 100644
index 0000000..d0103bb
--- /dev/null
+++ b/cnslock/include/cnslock.h
@@ -0,0 +1,35 @@
+#ifndef CNSLOCK_H_
+#define CNSLOCK_H_
+
+#include <gdk/gdk.h>
+#include <gdk/gdkx.h>
+#include "defines.h"
+
+/* this is the max size of the RGB buffer: 56 * 56 * 3
+ * used for memcpy, memset, etc operations */
+#define RGBSIZE (XMAX * YMAX * 3)
+
+/* main dockapp info structure. windows, buffers, etc */
+typedef struct {
+ Display *display; /* X11 display */
+ GdkWindow *win; /* main window */
+ GdkWindow *iconwin; /* icon window */
+ GdkGC *gc; /* drawing GC */
+ GdkPixmap *pixmap; /* main dockapp pixmap */
+ GdkBitmap *mask; /* dockapp mask */
+
+ /* main image buffer */
+ unsigned char rgb[RGBSIZE];
+
+ /* back buffer - stores things we dont want to redraw all the time */
+ unsigned char bgr[RGBSIZE];
+
+} AppletData;
+
+extern AppletData ad;
+extern int posx;
+extern int posy;
+#endif
+
+
+
diff --git a/cnslock/include/defines.h b/cnslock/include/defines.h
new file mode 100644
index 0000000..52fbd2e
--- /dev/null
+++ b/cnslock/include/defines.h
@@ -0,0 +1,20 @@
+#ifndef DEFINES_H
+#define DEFINES_H
+
+/* Below this line, there are only defines that users don't have to
+ care about normally.
+-----------------------------------------------------------------------------*/
+
+/* perform clipping outside this range, also this is the size of the
+ * drawing area */
+
+#define XMIN 4
+#define XMAX 56
+#define YMIN 4
+#define YMAX 56
+
+#define WINDOWSIZE_X 64
+#define WINDOWSIZE_Y 64
+
+#endif
+
diff --git a/cnslock/include/kleds.h b/cnslock/include/kleds.h
new file mode 100644
index 0000000..3001054
--- /dev/null
+++ b/cnslock/include/kleds.h
@@ -0,0 +1,2 @@
+void init_kleds(void);
+int check_kleds(void);
\ No newline at end of file
diff --git a/cnslock/kleds.c b/cnslock/kleds.c
new file mode 100644
index 0000000..4c93386
--- /dev/null
+++ b/cnslock/kleds.c
@@ -0,0 +1,37 @@
+/*
+ This code is based upon some lines(actually two lines :-)
+ in E-Leds by Mathias Meisfjordskar<[email protected]>
+ Released under GPL.
+*/
+
+#include <stdio.h>
+#include <X11/XKBlib.h>
+
+#include "include/defines.h"
+#include "include/kleds.h"
+
+Display *display;
+
+/*
+ Returns the turned on leds:
+ Bit 0 is Capslock
+ Bit 1 is Numlock
+ Bit 2 is Scrollock
+*/
+
+int check_kleds()
+{
+ unsigned int states;
+
+ if (XkbGetIndicatorState(display, XkbUseCoreKbd, &states) != Success)
+ {
+ perror("Error while reading Indicator status\n");
+ return -1;
+ }
+ return (states & 0x7);
+}
+
+void init_kleds()
+{
+ display = XOpenDisplay(NULL);
+}
--
2.7.4
--
To unsubscribe, send mail to [email protected].