aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore12
l---------README1
-rw-r--r--README.md16
-rw-r--r--contrib/Bitcoin.app/Contents/Info.plist32
-rw-r--r--contrib/Bitcoin.app/Contents/MacOS/.higit0
-rw-r--r--contrib/Bitcoin.app/Contents/Resources/BitcoinAppIcon.icnsbin0 -> 286031 bytes
-rw-r--r--contrib/gitian-win32.yml84
-rw-r--r--contrib/gitian.yml57
-rw-r--r--contrib/wx-patches/README4
-rw-r--r--contrib/wx-patches/toplevel.cpp.diff86
-rw-r--r--contrib/wx-patches/toplevel.h.diff9
-rw-r--r--doc/README30
-rw-r--r--doc/README_windows.txt34
-rw-r--r--doc/build-msw.txt107
-rw-r--r--doc/build-osx.txt278
-rw-r--r--doc/build-unix.txt110
-rw-r--r--doc/coding.txt41
-rw-r--r--doc/release-process.txt45
-rw-r--r--locale/cs/LC_MESSAGES/bitcoin.mobin0 -> 20692 bytes
-rw-r--r--locale/cs/LC_MESSAGES/bitcoin.po971
-rw-r--r--locale/de/LC_MESSAGES/bitcoin.mobin0 -> 21572 bytes
-rw-r--r--locale/de/LC_MESSAGES/bitcoin.po975
-rw-r--r--locale/eo/LC_MESSAGES/bitcoin.mobin0 -> 20523 bytes
-rw-r--r--locale/eo/LC_MESSAGES/bitcoin.po1029
-rw-r--r--locale/es/LC_MESSAGES/bitcoin.mobin0 -> 20718 bytes
-rw-r--r--locale/es/LC_MESSAGES/bitcoin.po967
-rw-r--r--locale/fr/LC_MESSAGES/bitcoin.mobin0 -> 15859 bytes
-rw-r--r--locale/fr/LC_MESSAGES/bitcoin.po849
-rw-r--r--locale/it/LC_MESSAGES/bitcoin.mobin0 -> 20832 bytes
-rw-r--r--locale/it/LC_MESSAGES/bitcoin.po967
-rw-r--r--locale/lt/LC_MESSAGES/bitcoin.mobin0 -> 19060 bytes
-rw-r--r--locale/lt/LC_MESSAGES/bitcoin.po971
-rw-r--r--locale/nl/LC_MESSAGES/bitcoin.mobin0 -> 20886 bytes
-rw-r--r--locale/nl/LC_MESSAGES/bitcoin.po973
-rw-r--r--locale/pl/LC_MESSAGES/bitcoin.po976
-rw-r--r--locale/pt/LC_MESSAGES/bitcoin.mobin0 -> 15767 bytes
-rw-r--r--locale/pt/LC_MESSAGES/bitcoin.po811
-rw-r--r--locale/readme.txt5
-rw-r--r--locale/ru/LC_MESSAGES/bitcoin.mobin0 -> 25721 bytes
-rw-r--r--locale/ru/LC_MESSAGES/bitcoin.po1021
-rw-r--r--locale/sv/LC_MESSAGES/bitcoin.po978
-rw-r--r--locale/zh_cn/LC_MESSAGES/bitcoin.mobin0 -> 19663 bytes
-rw-r--r--locale/zh_cn/LC_MESSAGES/bitcoin.po967
-rw-r--r--share/pixmaps/addressbook16.bmpbin0 -> 1334 bytes
-rw-r--r--share/pixmaps/addressbook16mask.bmpbin0 -> 126 bytes
-rw-r--r--share/pixmaps/addressbook20.bmpbin0 -> 1478 bytes
-rw-r--r--share/pixmaps/addressbook20mask.bmpbin0 -> 142 bytes
-rw-r--r--share/pixmaps/bitcoin-bc.icobin0 -> 22486 bytes
-rw-r--r--share/pixmaps/bitcoin.icobin0 -> 25782 bytes
-rw-r--r--share/pixmaps/check.icobin0 -> 766 bytes
-rw-r--r--share/pixmaps/favicon.icobin0 -> 2550 bytes
-rw-r--r--share/pixmaps/send16.bmpbin0 -> 1334 bytes
-rw-r--r--share/pixmaps/send16mask.bmpbin0 -> 126 bytes
-rw-r--r--share/pixmaps/send16masknoshadow.bmpbin0 -> 126 bytes
-rw-r--r--share/pixmaps/send20.bmpbin0 -> 1478 bytes
-rw-r--r--share/pixmaps/send20mask.bmpbin0 -> 142 bytes
-rw-r--r--share/setup.nsi149
-rw-r--r--share/ui.rc15
-rw-r--r--share/uiproject.fbp6358
-rw-r--r--src/cryptopp/License.txt67
-rw-r--r--src/cryptopp/Readme.txt429
-rw-r--r--src/cryptopp/cpu.cpp6
-rw-r--r--src/cryptopp/cpu.h2
-rw-r--r--src/cryptopp/cryptlib.h4
-rw-r--r--src/cryptopp/iterhash.h2
-rw-r--r--src/cryptopp/misc.h4
-rw-r--r--src/cryptopp/obj/.gitignore2
-rw-r--r--src/cryptopp/secblock.h4
-rw-r--r--src/cryptopp/sha.cpp8
-rw-r--r--src/cryptopp/sha.h2
-rw-r--r--src/cryptopp/smartptr.h2
-rw-r--r--src/json/LICENSE.txt24
-rw-r--r--src/json/json_spirit_reader.cpp4
-rw-r--r--src/json/json_spirit_value.cpp2
-rw-r--r--src/json/json_spirit_writer.cpp4
-rw-r--r--src/makefile.linux-mingw111
-rw-r--r--src/makefile.mingw97
-rw-r--r--src/makefile.osx88
-rw-r--r--src/makefile.unix90
-rw-r--r--src/makefile.vc145
-rw-r--r--src/obj/.gitignore2
-rw-r--r--src/obj/nogui/.gitignore2
-rw-r--r--src/obj/test/.gitignore2
-rw-r--r--src/test/README21
-rw-r--r--src/test/test_bitcoin.cpp6
-rw-r--r--src/test/uint160_tests.cpp16
-rw-r--r--src/test/uint256_tests.cpp16
-rw-r--r--src/ui.cpp2964
-rw-r--r--src/ui.h350
-rw-r--r--src/uibase.cpp1008
-rw-r--r--src/uibase.h421
-rw-r--r--src/xpm/about.xpm665
-rw-r--r--src/xpm/addressbook16.xpm278
-rw-r--r--src/xpm/addressbook20.xpm282
-rw-r--r--src/xpm/bitcoin16.xpm219
-rw-r--r--src/xpm/bitcoin20.xpm160
-rw-r--r--src/xpm/bitcoin32.xpm232
-rw-r--r--src/xpm/bitcoin48.xpm277
-rw-r--r--src/xpm/bitcoin80.xpm292
-rw-r--r--src/xpm/check.xpm41
-rw-r--r--src/xpm/send16.xpm278
-rw-r--r--src/xpm/send16noshadow.xpm278
-rw-r--r--src/xpm/send20.xpm282
103 files changed, 29088 insertions, 29 deletions
diff --git a/.gitignore b/.gitignore
index 94f5bcbf55..aeeef170e6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,5 @@
-*~
-*.o
-moc_*.cpp
-*.pro.user
-qrc_*.cpp
-ui_*.cpp
-ui_*.h
+src/*.exe
+src/bitcoin
+src/bitcoind
+.*.swp
+*.*~*
diff --git a/README b/README
new file mode 120000
index 0000000000..42061c01a1
--- /dev/null
+++ b/README
@@ -0,0 +1 @@
+README.md \ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000000..ab328adbff
--- /dev/null
+++ b/README.md
@@ -0,0 +1,16 @@
+Bitcoin integration/staging tree
+
+Development process
+===================
+
+Developers work in their own trees, then submit pull requests when they think their feature or bug fix is ready.
+
+If it is a simple/trivial/non-controversial change, then one of the bitcoin development team members simply pulls it.
+
+If it is a more complicated or potentially controversial change, then the patch submitter will be asked to start a discussion (if they haven't already) on the development forums: http://www.bitcoin.org/smf/index.php?board=6.0
+The patch will be accepted if there is broad consensus that it is a good thing. Developers should expect to rework and resubmit patches if they don't match the project's coding conventions (see coding.txt) or are controversial.
+
+The master branch is regularly built and tested (by who? need people willing to be quality assurance testers), and periodically pushed to the subversion repo to become the official, stable, released bitcoin.
+
+
+Feature branches are created when there are major new features being worked on by several people.
diff --git a/contrib/Bitcoin.app/Contents/Info.plist b/contrib/Bitcoin.app/Contents/Info.plist
new file mode 100644
index 0000000000..9a2eccc280
--- /dev/null
+++ b/contrib/Bitcoin.app/Contents/Info.plist
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDisplayName</key>
+ <string>Bitcoin</string>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>bitcoin</string>
+ <key>CFBundleIdentifier</key>
+ <string>org.bitcoin.bitcoin</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>Bitcoin</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>0.3.24</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>324</string>
+ <key>LSMinimumSystemVersion</key>
+ <string>10.5</string>
+ <key>CFBundleIconFile</key>
+ <string>BitcoinAppIcon.icns</string>
+ <key>LSMultipleInstancesProhibited</key>
+ <true/>
+</dict>
+</plist>
diff --git a/contrib/Bitcoin.app/Contents/MacOS/.higit b/contrib/Bitcoin.app/Contents/MacOS/.higit
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/contrib/Bitcoin.app/Contents/MacOS/.higit
diff --git a/contrib/Bitcoin.app/Contents/Resources/BitcoinAppIcon.icns b/contrib/Bitcoin.app/Contents/Resources/BitcoinAppIcon.icns
new file mode 100644
index 0000000000..033ce1a607
--- /dev/null
+++ b/contrib/Bitcoin.app/Contents/Resources/BitcoinAppIcon.icns
Binary files differ
diff --git a/contrib/gitian-win32.yml b/contrib/gitian-win32.yml
new file mode 100644
index 0000000000..07d31c717e
--- /dev/null
+++ b/contrib/gitian-win32.yml
@@ -0,0 +1,84 @@
+---
+name: "bitcoin"
+suites:
+- "lucid"
+architectures:
+- "i386"
+packages:
+- "mingw32"
+- "git-core"
+- "unzip"
+- "nsis"
+reference_datetime: "2011-01-30 00:00:00"
+remotes:
+- "url": "https://github.com/bitcoin/bitcoin.git"
+ "dir": "bitcoin"
+files:
+- "wxWidgets-2.9.1.tar.bz2"
+- "boost_1_43_0.tar.bz2"
+- "openssl-1.0.0d.tar.gz"
+- "db-4.7.25.NC.tar.gz"
+- "upnpc-exe-win32-20110215.zip"
+- "miniupnpc-1.5.20110215.tar.gz"
+- "WSPiApi.h"
+script: |
+ #
+ tar xjf wxWidgets-2.9.1.tar.bz2
+ cd wxWidgets-2.9.1
+ ./configure --host=i586-mingw32msvc --build=i686-linux --disable-shared --enable-monolithic --without-libpng --disable-svg
+ perl -i -p -e "s/__TIME__/\"$REFERENCE_TIME\"/;s/__DATE__/\"$REFERENCE_DATE\"/" include/wx/chartype.h
+ make $MAKEOPTS
+ cd ..
+ #
+ tar xzf openssl-1.0.0d.tar.gz
+ cd openssl-1.0.0d
+ ./Configure --cross-compile-prefix=i586-mingw32msvc- mingw
+ make
+ cd ..
+ #
+ tar xzf db-4.7.25.NC.tar.gz
+ cd db-4.7.25.NC/build_unix
+ ../dist/configure --enable-mingw --enable-cxx --host=i586-mingw32msvc CFLAGS="-I/usr/i586-mingw32msvc/include"
+ make $MAKEOPTS
+ cd ../..
+ #
+ tar xjf boost_1_43_0.tar.bz2
+ cd boost_1_43_0
+ echo "using gcc : 4.4 : i586-mingw32msvc-g++
+ :
+ <rc>i586-mingw32msvc-windres
+ <archiver>i586-mingw32msvc-ar
+ ;" > user-config.jam
+ ./bootstrap.sh --without-icu
+ ./bjam toolset=gcc target-os=windows threadapi=win32 threading=multi --user-config=user-config.jam --without-mpi --without-python -sNO_BZIP2=1 -sNO_ZLIB=1 --layout=tagged --build-type=complete $MAKEOPTS stage
+ cd ..
+ #
+ mkdir upnpc-exe-win32-20110215
+ cd upnpc-exe-win32-20110215
+ unzip ../upnpc-exe-win32-20110215.zip
+ mkdir miniupnpc
+ cd miniupnpc
+ tar xzf ../../miniupnpc-1.5.20110215.tar.gz
+ mv ./miniupnpc-1.5.20110215/* ./
+ cd ../..
+ #
+ cp WSPiApi.h $HOME/build
+ #
+ cd bitcoin
+ mkdir -p $OUTDIR/src
+ cp -a . $OUTDIR/src
+ rm -rf $OUTDIR/src/.git
+ cp -a $OUTDIR/src/locale $OUTDIR
+ cp $OUTDIR/src/doc/README_windows.txt $OUTDIR/readme.txt
+ cp $OUTDIR/src/COPYING $OUTDIR/license.txt
+ cd src
+ sed 's/$(DEBUGFLAGS)//' < makefile.linux-mingw > makefile.linux-mingw.2 && mv makefile.linux-mingw.2 makefile.linux-mingw
+ sed 's|//#include <WSPiApi.h>|#include <WSPiApi.h>|' < net.cpp > net.cpp.2 && mv net.cpp.2 net.cpp
+ make -f makefile.linux-mingw $MAKEOPTS DEPSDIR=$HOME/build bitcoin.exe USE_UPNP=1
+ make -f makefile.linux-mingw $MAKEOPTS DEPSDIR=$HOME/build bitcoind.exe USE_UPNP=0
+ i586-mingw32msvc-strip bitcoin.exe
+ i586-mingw32msvc-strip bitcoind.exe
+ makensis ../share/setup.nsi
+ cp bitcoin.exe ../share/bitcoin-*-win32-setup.exe $OUTDIR/
+ mkdir $OUTDIR/daemon
+ cp bitcoind.exe $OUTDIR/daemon
diff --git a/contrib/gitian.yml b/contrib/gitian.yml
new file mode 100644
index 0000000000..90be8934fa
--- /dev/null
+++ b/contrib/gitian.yml
@@ -0,0 +1,57 @@
+---
+name: "bitcoin"
+suites:
+- "lucid"
+architectures:
+- "i386"
+- "amd64"
+packages:
+- "libdb4.7++-dev"
+- "libxxf86vm-dev"
+- "libgtk2.0-dev"
+- "libboost-all-dev"
+- "libssl-dev"
+- "git-core"
+reference_datetime: "2011-01-30 00:00:00"
+remotes:
+- "url": "https://github.com/bitcoin/bitcoin.git"
+ "dir": "bitcoin"
+files:
+- "wxWidgets-2.9.1.tar.bz2"
+- "miniupnpc-1.5.tar.gz"
+- "toplevel.h.diff"
+- "toplevel.cpp.diff"
+script: |
+ INSTDIR="$HOME/install"
+ export LIBRARY_PATH="$INSTDIR/lib"
+ #
+ tar xzf miniupnpc-1.5.tar.gz
+ cd miniupnpc-1.5
+ INSTALLPREFIX=$INSTDIR make $MAKEOPTS install
+ cd ..
+ #
+ tar xjf wxWidgets-2.9.1.tar.bz2
+ cd wxWidgets-2.9.1
+ cd include/wx/gtk
+ patch < ../../../../toplevel.h.diff
+ cd ../../../src/gtk
+ patch < ../../../toplevel.cpp.diff
+ cd ../..
+ ./configure --prefix=$INSTDIR --enable-monolithic --disable-shared
+ perl -i -p -e "s/__TIME__/\"$REFERENCE_TIME\"/;s/__DATE__/\"$REFERENCE_DATE\"/" include/wx/chartype.h
+ make $MAKEOPTS install
+ cd ..
+ #
+ cd bitcoin
+ mkdir -p $OUTDIR/src
+ cp -a . $OUTDIR/src
+ rm -rf $OUTDIR/src/.git
+ mv $OUTDIR/src/locale $OUTDIR
+ cp $OUTDIR/src/doc/README $OUTDIR
+ cp $OUTDIR/src/COPYING $OUTDIR
+ cd src
+ sed 's/$(DEBUGFLAGS)//' < makefile.unix > makefile.unix.2 && mv makefile.unix.2 makefile.unix
+ PATH=$INSTDIR/bin:$PATH make -f makefile.unix CXX="g++ -I$INSTDIR/include -L$INSTDIR/lib" $MAKEOPTS bitcoin USE_UPNP=1
+ PATH=$INSTDIR/bin:$PATH make -f makefile.unix CXX="g++ -I$INSTDIR/include -L$INSTDIR/lib" $MAKEOPTS bitcoind USE_UPNP=0
+ mkdir -p $OUTDIR/bin/$GBUILD_BITS
+ install -s bitcoin bitcoind $OUTDIR/bin/$GBUILD_BITS
diff --git a/contrib/wx-patches/README b/contrib/wx-patches/README
new file mode 100644
index 0000000000..2afb4a9e91
--- /dev/null
+++ b/contrib/wx-patches/README
@@ -0,0 +1,4 @@
+This folder contains two patches which are applied to wxWidgets
+2.9.1 before building the wxWidgets which is used for release
+versions of bitcoin. They make the GUI show up on newer OSs
+with new libgtks, such as Ubuntu 11.04.
diff --git a/contrib/wx-patches/toplevel.cpp.diff b/contrib/wx-patches/toplevel.cpp.diff
new file mode 100644
index 0000000000..359abf28d4
--- /dev/null
+++ b/contrib/wx-patches/toplevel.cpp.diff
@@ -0,0 +1,86 @@
+--- /wxWidgets/trunk/src/gtk/toplevel.cpp (revision 67326)
++++ /wxWidgets/trunk/src/gtk/toplevel.cpp (revision 67496)
+@@ -72,4 +72,8 @@
+ // send any activate events at all
+ static int g_sendActivateEvent = -1;
++
++// Whether _NET_REQUEST_FRAME_EXTENTS support is working
++// 0 == not tested yet, 1 == working, 2 == broken
++static int gs_requestFrameExtentsStatus;
+
+ //-----------------------------------------------------------------------------
+@@ -432,4 +436,12 @@
+ if (event->state == GDK_PROPERTY_NEW_VALUE && event->atom == property)
+ {
++ if (win->m_netFrameExtentsTimerId)
++ {
++ // WM support for _NET_REQUEST_FRAME_EXTENTS is working
++ gs_requestFrameExtentsStatus = 1;
++ g_source_remove(win->m_netFrameExtentsTimerId);
++ win->m_netFrameExtentsTimerId = 0;
++ }
++
+ wxSize decorSize = win->m_decorSize;
+ int left, right, top, bottom;
+@@ -439,4 +451,22 @@
+ win->GTKUpdateDecorSize(decorSize);
+ }
++ return false;
++}
++}
++
++extern "C" {
++static gboolean request_frame_extents_timeout(void* data)
++{
++ // WM support for _NET_REQUEST_FRAME_EXTENTS is broken
++ gs_requestFrameExtentsStatus = 2;
++ gdk_threads_enter();
++ wxTopLevelWindowGTK* win = static_cast<wxTopLevelWindowGTK*>(data);
++ win->m_netFrameExtentsTimerId = 0;
++ wxSize decorSize = win->m_decorSize;
++ int left, right, top, bottom;
++ if (wxGetFrameExtents(gtk_widget_get_window(win->m_widget), &left, &right, &top, &bottom))
++ decorSize.Set(left + right, top + bottom);
++ win->GTKUpdateDecorSize(decorSize);
++ gdk_threads_leave();
+ return false;
+ }
+@@ -459,4 +489,5 @@
+ m_deferShowAllowed = true;
+ m_updateDecorSize = true;
++ m_netFrameExtentsTimerId = 0;
+
+ m_urgency_hint = -2;
+@@ -811,5 +842,6 @@
+ if (deferShow)
+ {
+- deferShow = m_deferShowAllowed && !GTK_WIDGET_REALIZED(m_widget);
++ deferShow = gs_requestFrameExtentsStatus != 2 &&
++ m_deferShowAllowed && !gtk_widget_get_realized(m_widget);
+ if (deferShow)
+ {
+@@ -829,11 +861,4 @@
+ // GetSize()/SetSize() because it makes window bigger between each
+ // restore and save.
+- m_updateDecorSize = deferShow;
+- }
+- if (deferShow)
+- {
+- // Fluxbox support for _NET_REQUEST_FRAME_EXTENTS is broken
+- const char* name = gdk_x11_screen_get_window_manager_name(screen);
+- deferShow = strcmp(name, "Fluxbox") != 0;
+ m_updateDecorSize = deferShow;
+ }
+@@ -875,4 +900,12 @@
+ (XEvent*)&xevent);
+
++ if (gs_requestFrameExtentsStatus == 0)
++ {
++ // if WM does not respond to request within 1 second,
++ // we assume support for _NET_REQUEST_FRAME_EXTENTS is not working
++ m_netFrameExtentsTimerId =
++ g_timeout_add(1000, request_frame_extents_timeout, this);
++ }
++
+ // defer calling gtk_widget_show()
+ m_isShown = true;
diff --git a/contrib/wx-patches/toplevel.h.diff b/contrib/wx-patches/toplevel.h.diff
new file mode 100644
index 0000000000..c2718d4637
--- /dev/null
+++ b/contrib/wx-patches/toplevel.h.diff
@@ -0,0 +1,9 @@
+--- /wxWidgets/trunk/include/wx/gtk/toplevel.h (revision 65373)
++++ /wxWidgets/trunk/include/wx/gtk/toplevel.h (revision 67496)
+@@ -114,4 +114,6 @@
+ // wxUSER_ATTENTION_ERROR difference, -2 for no hint, -1 for ERROR hint, rest for GtkTimeout handle.
+ int m_urgency_hint;
++ // timer for detecting WM with broken _NET_REQUEST_FRAME_EXTENTS handling
++ unsigned m_netFrameExtentsTimerId;
+
+ // return the size of the window without WM decorations
diff --git a/doc/README b/doc/README
new file mode 100644
index 0000000000..a4df4c227b
--- /dev/null
+++ b/doc/README
@@ -0,0 +1,30 @@
+Bitcoin 0.3.24 BETA
+
+Copyright (c) 2009-2011 Bitcoin Developers
+Distributed under the MIT/X11 software license, see the accompanying
+file license.txt or http://www.opensource.org/licenses/mit-license.php.
+This product includes software developed by the OpenSSL Project for use in
+the OpenSSL Toolkit (http://www.openssl.org/). This product includes
+cryptographic software written by Eric Young (eay@cryptsoft.com).
+
+
+Intro
+-----
+Bitcoin is a free open source peer-to-peer electronic cash system that is
+completely decentralized, without the need for a central server or trusted
+parties. Users hold the crypto keys to their own money and transact directly
+with each other, with the help of a P2P network to check for double-spending.
+
+
+Setup
+-----
+Unpack the files into a directory and run:
+ bin/32/bitcoin (GUI, 32-bit)
+ bin/32/bitcoind (headless, 32-bit)
+ bin/64/bitcoin (GUI, 64-bit)
+ bin/64/bitcoind (headless, 64-bit)
+
+See the documentation at the bitcoin wiki:
+ https://en.bitcoin.it/wiki/Main_Page
+
+... for help and more information.
diff --git a/doc/README_windows.txt b/doc/README_windows.txt
new file mode 100644
index 0000000000..a19dcc9e92
--- /dev/null
+++ b/doc/README_windows.txt
@@ -0,0 +1,34 @@
+Bitcoin 0.3.24 BETA
+
+Copyright (c) 2009-2011 Bitcoin Developers
+Distributed under the MIT/X11 software license, see the accompanying
+file license.txt or http://www.opensource.org/licenses/mit-license.php.
+This product includes software developed by the OpenSSL Project for use in
+the OpenSSL Toolkit (http://www.openssl.org/). This product includes
+cryptographic software written by Eric Young (eay@cryptsoft.com).
+
+
+Intro
+-----
+Bitcoin is a free open source peer-to-peer electronic cash system that is
+completely decentralized, without the need for a central server or trusted
+parties. Users hold the crypto keys to their own money and transact directly
+with each other, with the help of a P2P network to check for double-spending.
+
+
+Setup
+-----
+Unpack the files into a directory and run bitcoin.exe.
+
+If you have Microsoft Security Essentials, you need to add bitcoin.exe to its
+"Excluded processes" list. Microsoft Security Essentials->Settings tab,
+select Excluded processes, press Add, select bitcoin.exe, OK, Save changes.
+
+The software automatically finds other nodes to connect to. You can
+enable Universal Plug and Play using a menu entry or set your firewall
+to forward port 8333 (TCP) to your computer so you can receive
+incoming connections. Bitcoin work without incoming connections,
+but allowing incoming connections helps the Bitcoin network.
+
+See the bitcoin wiki at: https://en.bitcoin.it/wiki/Main_Page
+for more help and information.
diff --git a/doc/build-msw.txt b/doc/build-msw.txt
new file mode 100644
index 0000000000..1911008d1f
--- /dev/null
+++ b/doc/build-msw.txt
@@ -0,0 +1,107 @@
+Copyright (c) 2009-2011 Bitcoin Developers
+Distributed under the MIT/X11 software license, see the accompanying
+file license.txt or http://www.opensource.org/licenses/mit-license.php.
+This product includes software developed by the OpenSSL Project for use in
+the OpenSSL Toolkit (http://www.openssl.org/). This product includes
+cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP
+software written by Thomas Bernard.
+
+
+WINDOWS BUILD NOTES
+===================
+
+Compilers Supported
+-------------------
+MinGW GCC http://tdm-gcc.tdragon.net/
+ TDM-GCC with gcc 4.5.1 was used to build this release.
+MSYS 1.0.11 was also used (sh needed to compile some dependencies)
+
+
+Candidate releases were built with MSVC 10.0 (2010), but
+compiling with Visual C++ caused rendering artifacts when
+bitcoin was run.
+
+
+Dependencies
+------------
+Libraries you need to download separately and build:
+
+ default path download
+wxWidgets \wxwidgets-2.9.1-mgw http://www.wxwidgets.org/downloads/
+OpenSSL \openssl-1.0.0d-mgw http://www.openssl.org/source/
+Berkeley DB \db-4.7.25.NC-mgw http://www.oracle.com/technology/software/products/berkeley-db/index.html
+Boost \boost-1.43.0-mgw http://www.boost.org/users/download/
+miniupnpc \upnpc-exe-win32-20110215 http://miniupnp.tuxfamily.org/files/
+
+Their licenses:
+wxWidgets LGPL 2.1 with very liberal exceptions
+OpenSSL Old BSD license with the problematic advertising requirement
+Berkeley DB New BSD license with additional requirement that linked software must be free open source
+Boost MIT-like license
+miniupnpc New (3-clause) BSD license
+
+Versions used in this release:
+wxWidgets 2.9.1
+OpenSSL 1.0.0d
+Berkeley DB 4.7.25.NC
+Boost 1.43.0
+miniupnpc 1.5-20110215
+
+
+Notes
+-----
+The UI layout is edited with wxFormBuilder. The project file is
+uiproject.fbp. It generates uibase.cpp and uibase.h, which define base
+classes that do the rote work of constructing all the UI elements.
+
+wxWidgets
+---------
+DOS shell:
+cd \wxWidgets-2.9.1-mgw\build\msw
+mingw32-make -f makefile.gcc
+
+OpenSSL
+-------
+MSYS shell:
+un-tar sources with MSYS 'tar xfz' to avoid issue with symlinks (OpenSSL ticket 2377)
+change 'MAKE' env. variable from 'C:\MinGW32\bin\mingw32-make.exe' to '/c/MinGW32/bin/mingw32-make.exe'
+
+cd /c/openssl-1.0.0d-mgw
+./config
+make
+
+Berkeley DB
+-----------
+MSYS shell:
+cd /c/db-4.7.25.NC-mgw/build_unix
+sh ../dist/configure --enable-mingw --enable-cxx
+make
+
+
+Boost
+-----
+DOS prompt:
+downloaded boost jam 3.1.18
+cd \boost-1.43.0-mgw
+bjam toolset=gcc --build-type=complete stage
+
+Note:
+building with boost 1.45.0 failed because of boost ticket 4614, 4258
+builds fine with boost 1.43.0
+
+MiniUPnPc
+---------
+Building miniupnpc failed on Windows Server 2003, thus it is expected that a binary copy will be used.
+See http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=642
+UPnP support is optional, make with USE_UPNP= to disable it.
+
+Get upnpc-exe-win32-20110215.zip and unzip it to \upnpc-exe-win32-20110215
+Get miniupnpc-1.5.20110215.tar.gz and copy *.h to \upnpc-exe-win32-20110215\miniupnpc
+
+Bitcoin
+-------
+DOS prompt:
+cd \bitcoin\src
+mingw32-make bitcoin.exe bitcoind.exe -f makefile.mingw
+strip bitcoin.exe
+strip bitcoind.exe
diff --git a/doc/build-osx.txt b/doc/build-osx.txt
new file mode 100644
index 0000000000..ddf025003b
--- /dev/null
+++ b/doc/build-osx.txt
@@ -0,0 +1,278 @@
+Copyright (c) 2010 Laszlo Hanyecz
+Portions Copyright (c) 2011 Douglas Huff
+Distributed under the MIT/X11 software license, see the accompanying file
+license.txt or http://www.opensource.org/licenses/mit-license.php. This
+product includes software developed by the OpenSSL Project for use in the
+OpenSSL Toolkit (http://www.openssl.org/). This product includes cryptographic
+software written by Eric Young (eay@cryptsoft.com) and UPnP software written by
+Thomas Bernard.
+
+
+Mac OS X build instructions
+Laszlo Hanyecz <solar@heliacal.net>
+Douglas Huff <dhuff@jrbobdobbs.org>
+
+
+Tested on 10.5 and 10.6 intel. PPC is not supported because it's big-endian.
+
+All of the commands should be executed in Terminal.app.. it's in
+/Applications/Utilities
+
+You need to install XCode with all the options checked so that the compiler and
+everything is available in /usr not just /Developer I think it comes on the DVD
+but you can get the current version from http://developer.apple.com
+
+
+1. Pick a directory to work inside.. something like ~/bitcoin works. The
+structure I use looks like this:
+
+(~ is your home directory)
+
+~/bitcoin
+~/bitcoin/bitcoin # Upstream source tree
+~/bitcoin/src # source code (symlink to ~/bitcoin/bitcoin/src)
+~/bitcoin/deps # dependencies.. like libraries and headers needed to compile
+~/bitcoin/Bitcoin.app # the application bundle where you can run the app
+
+Just execute: mkdir ~/bitcoin
+This will create the top dir for you..
+
+WARNING: do not use the ~ notation with the configure scripts.. use the full
+name of the directory, for example /Users/james/bitcoin/deps for a user named
+'james'. In my examples I am using 'macosuser' so make sure you change that.
+
+2. Check out the bitcoin code from github:
+
+cd ~/bitcoin
+git clone https://github.com/bitcoin/bitcoin.git
+ln -s bitcoin/src src
+
+This will make ~/bitcoin/bitcoin for you with all the files from git. This puts
+the actual sources in ~/bitcoin/bitcoin/src and create a symlink src in
+~/bitcoin to this location.
+
+3. Get and build the dependencies
+
+
+Boost
+-----
+
+Download from http://www.boost.org/users/download/
+I'm assuming it ended up in ~/Downloads..
+
+mkdir ~/bitcoin/deps
+cd ~/bitcoin/deps
+tar xvjf ~/Downloads/boost_1_42_0.tar.bz2
+cd boost_1_42_0
+./bootstrap.sh
+./bjam architecture=combined address-model=32_64 macosx-version=10.5 macosx-version-min=10.5 link=static runtime-link=static --toolset=darwin --prefix=/Users/macosuser/bitcoin/deps install
+
+If you're using Snow Leopard, you will need to specify 10.6 as your Mac OS X
+version instead of 10.5.
+
+This part takes a while.. use your judgement and fix it if something doesn't
+build for some reason.
+
+Change the prefix to whatever your directory is (my username in this example
+is macosuser). I'm also running on 10.6 so i have macosx-version=10.6 change
+to 10.5 if you're using leopard.
+
+This is what my output looked like at the end:
+...failed updating 2 targets...
+...skipped 144 targets...
+...updated 8074 targets...
+
+
+OpenSSL
+-------
+
+(System or MacPorts openssl will work fine. Optional.)
+
+Download from http://www.openssl.org/source/
+
+We would like to build this as a 32 bit/64 bit library so we actually build it
+2 times and join it together here.. If you downloaded with safari it already
+uncompressed it so it will just be a tar not a tar.gz
+
+cd ~/bitcoin/deps
+tar xvf ~/Downloads/openssl-1.0.0.tar
+mv openssl-1.0.0 openssl-1.0.0-i386
+tar xvf ~/Downloads/openssl-1.0.0.tar
+mv openssl-1.0.0 openssl-1.0.0-x86_64
+# build i386 (32 bit intel) binary
+cd openssl-1.0.0-i386
+./Configure --prefix=/Users/macosuser/bitcoin/deps --openssldir=/Users/macosuser/bitcoin/deps/openssl darwin-i386-cc && make
+make install # only do this on one of the architectures, to install the headers
+cd ..
+# build x86_64 (64 bit intel) binary
+cd openssl-1.0.0-x86_64
+./Configure --prefix=/Users/macosuser/bitcoin/deps --openssldir=/Users/macosuser/bitcoin/deps/openssl darwin64-x86_64-cc && make
+cd ..
+
+# combine the libs
+cd ~/bitcoin/deps
+lipo -arch i386 openssl-1.0.0-i386/libcrypto.a -arch x86_64 openssl-1.0.0-x86_64/libcrypto.a -o lib/libcrypto.a -create
+lipo -arch i386 openssl-1.0.0-i386/libssl.a -arch x86_64 openssl-1.0.0-x86_64/libssl.a -o lib/libssl.a -create
+
+Verify your binaries
+
+file lib/libcrypto.a
+
+output should look like this:
+
+lib/libcrypto.a: Mach-O universal binary with 2 architectures
+lib/libcrypto.a (for architecture i386): current ar archive random library
+lib/libcrypto.a (for architecture x86_64): current ar archive random library
+
+
+miniupnpc
+---------
+
+(MacPorts miniupnpc package works fine. You will need to modify makefile.)
+
+The process for miniupnpc (optional) is similar to that of OpenSSL.
+
+Download from http://miniupnp.tuxfamily.org/files/.
+
+cd ~/bitcoin/deps
+tar xvf ~/Downloads/miniupnpc-1.5.tar
+mv miniupnpc-1.5 miniupnpc-1.5-x86_64
+tar xvf ~/Downloads/miniupnpc-1.5.tar
+mv miniupnpc-1.5 miniupnpc-1.5-i386
+# build x86_64 (64 bit intel) binary
+cd miniupnpc-1.5-x86_64
+export CFLAGS="-arch x86_64"
+export LDFLAGS="-arch x86_64"
+export PREFIX="/Users/macuser/bitcoin/deps"
+make && make install
+# build i386 (32 bit intel) binary
+cd miniupnpc-1.5-i386
+export CFLAGS="-arch i386"
+export LDFLAGS="-arch i386"
+export PREFIX="/Users/macuser/bitcoin/deps"
+make
+
+# combine the libs
+cd ~/bitcoin/deps
+lipo -arch i386 miniupnpc-1.5-i386/libminiupnpc.a -arch x86_64 miniupnpc-1.5-x86_64/libminiupnpc.a -o lib/libminiupnpc.a -create
+
+Verify your binaries
+
+file lib/libminiupnpc.a
+
+output should look like this:
+
+lib/libminiupnpc.a: Mach-O universal binary with 2 architectures
+lib/libminiupnpc.a (for architecture i386): current ar archive random library
+lib/libminiupnpc.a (for architecture x86_64): current ar archive random library
+
+
+Berkeley DB
+-----------
+
+(System or MacPorts version work fine.)
+
+Download from http://freshmeat.net/projects/berkeleydb/
+
+cd ~/bitcoin/deps
+tar xvf ~/Downloads/db-4.8.26.tar
+cd db-4.8.26/build_unix
+../dist/configure --prefix=/Users/macosuser/bitcoin/deps --enable-cxx && make && make install
+
+
+wxWidgets
+---------
+
+(The wxWidgets-devel MacPorts package will work but will throw annoying assertion dialogs.)
+
+This is the big one..
+
+Check it out from svn
+
+cd ~/bitcoin/deps
+svn checkout http://svn.wxwidgets.org/svn/wx/wxWidgets/trunk wxWidgets-trunk
+
+This will make a wxWidgets-trunk directory in deps.
+
+Use this script snippet, change your prefix to whatever your dir is:
+
+PREFIX=~/bitcoin/deps
+SRCDIR="$PREFIX/wxWidgets-trunk"
+BUILDDIR="$SRCDIR/macbuild"
+
+cd "$PREFIX" &&
+#svn checkout http://svn.wxwidgets.org/svn/wx/wxWidgets/trunk wxWidgets-trunk &&
+cd "$SRCDIR" &&
+
+[ -f include/wx/hashmap.h.orig ] || cp include/wx/hashmap.h include/wx/hashmap.h.orig &&
+sed 's/if wxUSE_STL/if 0 \&\& wxUSE_STL/g' < include/wx/hashmap.h.orig > include/wx/hashmap.h &&
+
+[ -f include/wx/hashset.h.orig ] || cp include/wx/hashset.h include/wx/hashset.h.orig &&
+sed 's/if wxUSE_STL/if 0 \&\& wxUSE_STL/g' < include/wx/hashset.h.orig > include/wx/hashset.h &&
+
+
+
+rm -vrf "$BUILDDIR" &&
+mkdir "$BUILDDIR" &&
+cd "$BUILDDIR" &&
+
+../configure --prefix="$PREFIX" \
+--with-osx_cocoa \
+--disable-shared \
+--disable-debug_flag \
+--with-macosx-version-min=10.5 \
+--enable-stl \
+--enable-utf8 \
+--enable-universal_binary \
+--with-libjpeg=builtin \
+--with-libpng=builtin \
+--with-regex=builtin \
+--with-libtiff=builtin \
+--with-zlib=builtin \
+--with-expat=builtin \
+--with-macosx-sdk=/Developer/SDKs/MacOSX10.5.sdk &&
+
+
+find . -name Makefile |
+while read i; do
+ echo $i;
+ sed 's/-arch i386/-arch i386 -arch x86_64/g' < "$i" > "$i".new &&
+ mv "$i" "$i".old &&
+ mv "$i".new "$i";
+done
+
+
+
+make &&
+make install
+
+
+
+Now you should be able to build bitcoin
+
+cd ~/bitcoin/src
+make -f makefile.osx bitcoin
+
+Before you can run it, you need to create an application bundle for Mac OS.
+
+A bundle is provided in contrib/Bitcoin.app.
+
+Copy the bitcoin binary in to it like this:
+ cp -pR ~/bitcoin/bitcoin/contrib/Bitcoin.app ~/bitcoin/
+ cp ~/bitcoin/src/bitcoin ~/bitcoin/Bitcoin.app/Contents/MacOS/
+
+To run it you can just click the Bitcoin.app in Finder, or just do:
+open ~/bitcoin/Bitcoin.app
+
+If you want to run it with arguments you can just run it without backgrounding
+by specifying the full name in terminal:
+
+~/bitcoin/Bitcoin.app/Contents/MacOS/bitcoin -addnode=192.75.207.66
+
+You can also run it with arguments in the background with output going to the
+normal places for apps (Console) like this:
+
+open ~/bitcoin/Bitcoin.app --args -connect=192.75.207.66
+
+It is advisable to relocate Bitcoin.app to /Applications or $HOME/Applications.
+
diff --git a/doc/build-unix.txt b/doc/build-unix.txt
new file mode 100644
index 0000000000..0c4e88e523
--- /dev/null
+++ b/doc/build-unix.txt
@@ -0,0 +1,110 @@
+Copyright (c) 2009-2010 Satoshi Nakamoto
+Distributed under the MIT/X11 software license, see the accompanying
+file license.txt or http://www.opensource.org/licenses/mit-license.php.
+This product includes software developed by the OpenSSL Project for use in
+the OpenSSL Toolkit (http://www.openssl.org/). This product includes
+cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP
+software written by Thomas Bernard.
+
+
+UNIX BUILD NOTES
+================
+
+To Build
+--------
+
+cd src/
+
+make -f makefile.unix # Bitcoin with wxWidgets GUI
+ or
+make -f makefile.unix bitcoind # Headless bitcoin
+
+
+Dependencies
+------------
+sudo apt-get install build-essential
+sudo apt-get install libgtk2.0-dev
+sudo apt-get install libssl-dev
+sudo apt-get install libdb4.7-dev
+sudo apt-get install libdb4.7++-dev
+Boost 1.40+: sudo apt-get install libboost-all-dev
+or Boost 1.37: sudo apt-get install libboost1.37-dev
+
+If using Boost 1.37, append -mt to the boost libraries in the makefile.
+
+Requires wxWidgets 2.9.0 or greater, which uses UTF-8. Don't try 2.8, it
+won't work.
+
+You need to download wxWidgets from http://www.wxwidgets.org/downloads/
+and build it yourself. See the build instructions and configure parameters
+below.
+
+Requires miniupnpc for UPnP port mapping. It can be downloaded from
+http://miniupnp.tuxfamily.org/files/. UPnP support is compiled in and
+turned off by default. Set USE_UPNP to a different value to control this:
+USE_UPNP= no UPnP support, miniupnp not required;
+USE_UPNP=0 (the default) UPnP support turned off by default at runtime;
+USE_UPNP=1 UPnP support turned on by default at runtime.
+
+Licenses of statically linked libraries:
+wxWidgets LGPL 2.1 with very liberal exceptions
+Berkeley DB New BSD license with additional requirement that linked software must be free open source
+Boost MIT-like license
+miniupnpc New (3-clause) BSD license
+
+Versions used in this release:
+GCC 4.3.3
+OpenSSL 0.9.8g
+wxWidgets 2.9.0
+Berkeley DB 4.7.25.NC
+Boost 1.37
+miniupnpc 1.5
+
+
+Notes
+-----
+The UI layout is edited with wxFormBuilder. The project file is
+uiproject.fbp. It generates uibase.cpp and uibase.h, which define base
+classes that do the rote work of constructing all the UI elements.
+
+The release is built with GCC and then "strip bitcoin" to strip the debug
+symbols, which reduces the executable size by about 90%.
+
+
+wxWidgets
+---------
+cd /usr/local
+tar -xzvf wxWidgets-2.9.0.tar.gz
+cd wxWidgets-2.9.0
+mkdir buildgtk
+cd buildgtk
+../configure --with-gtk --enable-debug --disable-shared --enable-monolithic --without-libpng --disable-svg
+make
+sudo su
+make install
+ldconfig
+
+
+miniupnpc
+---------
+tar -xzvf miniupnpc-1.5.tar.gz
+cd miniupnpc-1.5
+make
+sudo su
+make install
+
+
+Berkeley DB
+-----------
+You need Berkeley DB 4.7. Don't use 4.8, the database/log0000* files
+are incompatible. If you have to build Berkeley DB yourself:
+../dist/configure --enable-cxx
+make
+
+
+Boost
+-----
+If you need to build Boost yourself:
+sudo su
+./bootstrap.sh
+./bjam install
diff --git a/doc/coding.txt b/doc/coding.txt
new file mode 100644
index 0000000000..4707476697
--- /dev/null
+++ b/doc/coding.txt
@@ -0,0 +1,41 @@
+Please be consistent with the existing coding style.
+
+Block style:
+
+bool Function(char* psz, int n)
+{
+ // Comment summarising what this section of code does
+ for (int i = 0; i < n; i++)
+ {
+ // When something fails, return early
+ if (!Something())
+ return false;
+ ...
+ }
+
+ // Success return is usually at the end
+ return true;
+}
+
+- ANSI/Allman block style
+- 4 space indenting, no tabs
+- No extra spaces inside parenthesis; please don't do ( this )
+- No space after function names, one space after if, for and while
+
+Variable names begin with the type in lowercase, like nSomeVariable.
+Please don't put the first word of the variable name in lowercase like
+someVariable.
+
+Common types:
+n integer number: short, unsigned short, int, unsigned int,
+ int64, uint64, sometimes char if used as a number
+d double, float
+f flag
+hash uint256
+p pointer or array, one p for each level of indirection
+psz pointer to null terminated string
+str string object
+v vector or similar list objects
+map map or multimap
+set set or multiset
+bn CBigNum
diff --git a/doc/release-process.txt b/doc/release-process.txt
new file mode 100644
index 0000000000..4940afefa5
--- /dev/null
+++ b/doc/release-process.txt
@@ -0,0 +1,45 @@
+* update (commit) version in sources
+
+* update (commit) version in OSX app bundle
+
+ * CFBundleShortVersionString should have value like 0.3.23
+ * CFBundleVersion should have value like 323
+
+* tag version in git
+
+ $ git tag -a v0.3.23
+
+* write release notes. git shortlog helps a lot:
+
+ $ git shortlog --no-merges v0.3.22..
+
+* create source-only archive
+
+ $ git archive --format=tar --prefix=bitcoin-0.3.23/ HEAD | \
+ gzip -9c > ~/tmp/bitcoin-0.3.23-src.tar.gz
+
+* perform gitian builds
+
+ * From the bitcoin source dir
+ $ cd ../gitian-builder
+ $ ./bin/gbuild --commit bitcoin=v0.3.23 ../bitcoin/contrib/gitian.yml
+ $ ./bin/gbuild --commit bitcoin=v0.3.23 ../bitcoin/contrib/gitian-win32.yml
+
+ Build output expected:
+ 1. linux 32-bit and 64-bit binaries + source
+ 2. windows 32-bit binary + source
+ 3. windows installer
+
+* upload source and builds to SF
+
+* create SHA1SUMS for builds, and PGP-sign it
+
+* update bitcoin.org version
+
+* update forum version
+
+* update wiki
+
+* update wiki download links
+
+
diff --git a/locale/cs/LC_MESSAGES/bitcoin.mo b/locale/cs/LC_MESSAGES/bitcoin.mo
new file mode 100644
index 0000000000..80354cf764
--- /dev/null
+++ b/locale/cs/LC_MESSAGES/bitcoin.mo
Binary files differ
diff --git a/locale/cs/LC_MESSAGES/bitcoin.po b/locale/cs/LC_MESSAGES/bitcoin.po
new file mode 100644
index 0000000000..51fe18297c
--- /dev/null
+++ b/locale/cs/LC_MESSAGES/bitcoin.po
@@ -0,0 +1,971 @@
+# This file is distributed under the same license as the Bitcoin package.
+# xHire <xhire@mujmalysvet.cz>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-05-26 21:44+0200\n"
+"PO-Revision-Date: 2011-05-26 22:31+0100\n"
+"Last-Translator: xHire <xhire@mujmalysvet.cz>\n"
+"Language-Team: \n"
+"Language: cs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-SearchPath-0: ../../..\n"
+
+#: ../../../src/net.cpp:1503
+#, c-format
+msgid "Unable to bind to port %d on this computer. Bitcoin is probably already running."
+msgstr "Nedaří se mi připojit na port %d na tomhle počítači. Bitcoin už pravděpodobně jednou běží."
+
+#: ../../../src/ui.cpp:204
+#, c-format
+msgid "This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?"
+msgstr "Tahle transakce přesahuje velikostní limit. Pořád ji ale můžeš poslat, pokud za ni zaplatíš poplatek %s, který půjde uzlům, které tvou transakci zpracují, a navíc tak podpoříš síť. Chceš zaplatit poplatek?"
+
+#: ../../../src/ui.cpp:303
+msgid "Status"
+msgstr "Stav"
+
+#: ../../../src/ui.cpp:304
+msgid "Date"
+msgstr "Datum"
+
+#: ../../../src/ui.cpp:305
+msgid "Description"
+msgstr "Popis"
+
+#: ../../../src/ui.cpp:306
+msgid "Debit"
+msgstr "Výdaje"
+
+#: ../../../src/ui.cpp:307
+msgid "Credit"
+msgstr "Příjmy"
+
+#: ../../../src/ui.cpp:513
+#, c-format
+msgid "Open for %d blocks"
+msgstr "Otevřeno pro %d bloků"
+
+#: ../../../src/ui.cpp:515
+#, c-format
+msgid "Open until %s"
+msgstr "Otřevřeno dokud %s"
+
+#: ../../../src/ui.cpp:521
+#, c-format
+msgid "%d/offline?"
+msgstr "%d/offline?"
+
+#: ../../../src/ui.cpp:523
+#, c-format
+msgid "%d/unconfirmed"
+msgstr "%d/nepotvrzeno"
+
+#: ../../../src/ui.cpp:525
+#, c-format
+msgid "%d confirmations"
+msgstr "%d potvrzení"
+
+#: ../../../src/ui.cpp:610
+msgid "Generated"
+msgstr "Vygenerováno"
+
+#: ../../../src/ui.cpp:618
+#, c-format
+msgid "Generated (%s matures in %d more blocks)"
+msgstr "Vygenerováno (%s dozraje po %d blocích)"
+
+#: ../../../src/ui.cpp:622
+msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
+msgstr "Vygenerovaný - Varování: Tehnle blok nebyl obdržen žádným jiným uzlem a pravděpodobně nebude akceptován!"
+
+#: ../../../src/ui.cpp:626
+msgid "Generated (not accepted)"
+msgstr "Vygenerováno (neakceptováno)"
+
+#: ../../../src/ui.cpp:636
+msgid "From: "
+msgstr "Od: "
+
+#: ../../../src/ui.cpp:660
+msgid "Received with: "
+msgstr "Přijato adresou: "
+
+#: ../../../src/ui.cpp:706
+msgid "Payment to yourself"
+msgstr "Platba pro sebe sama"
+
+#: ../../../src/ui.cpp:740
+msgid "To: "
+msgstr "Pro: "
+
+#: ../../../src/ui.cpp:1055
+msgid " Generating"
+msgstr " Generuji"
+
+#: ../../../src/ui.cpp:1057
+msgid "(not connected)"
+msgstr "(nepřipojen)"
+
+#: ../../../src/ui.cpp:1060
+#, c-format
+msgid " %d connections %d blocks %d transactions"
+msgstr " %d spojení %d bloků %d transakcí"
+
+#: ../../../src/ui.cpp:1165
+#: ../../../src/ui.cpp:2529
+msgid "New Receiving Address"
+msgstr "Nová Bitcoinová adresa"
+
+#: ../../../src/ui.cpp:1166
+#: ../../../src/ui.cpp:2530
+msgid ""
+"You should use a new address for each payment you receive.\n"
+"\n"
+"Label"
+msgstr ""
+"Měl bys vždy použít novou adresu pro každou platbu, kterou přijímáš.\n"
+"\n"
+"Označení"
+
+#: ../../../src/ui.cpp:1235
+msgid "<b>Status:</b> "
+msgstr "<b>Stav:</b> "
+
+#: ../../../src/ui.cpp:1240
+msgid ", has not been successfully broadcast yet"
+msgstr ", ještě nebylo rozesláno"
+
+#: ../../../src/ui.cpp:1242
+#, c-format
+msgid ", broadcast through %d node"
+msgstr ", rozesláno přes %d uzel"
+
+#: ../../../src/ui.cpp:1244
+#, c-format
+msgid ", broadcast through %d nodes"
+msgstr ", rozesláno přes %d uzlů"
+
+#: ../../../src/ui.cpp:1248
+msgid "<b>Date:</b> "
+msgstr "<b>Datum:</b> "
+
+#: ../../../src/ui.cpp:1256
+msgid "<b>Source:</b> Generated<br>"
+msgstr "<b>Zdroj:</b> Vygenerováno<br>"
+
+#: ../../../src/ui.cpp:1262
+#: ../../../src/ui.cpp:1280
+msgid "<b>From:</b> "
+msgstr "<b>Od:</b> "
+
+#: ../../../src/ui.cpp:1280
+msgid "unknown"
+msgstr "neznámo"
+
+#: ../../../src/ui.cpp:1281
+#: ../../../src/ui.cpp:1305
+#: ../../../src/ui.cpp:1364
+msgid "<b>To:</b> "
+msgstr "<b>Pro:</b> "
+
+#: ../../../src/ui.cpp:1284
+msgid " (yours, label: "
+msgstr " (tvoje, označení: "
+
+#: ../../../src/ui.cpp:1286
+msgid " (yours)"
+msgstr " (tvoje)"
+
+#: ../../../src/ui.cpp:1323
+#: ../../../src/ui.cpp:1335
+#: ../../../src/ui.cpp:1381
+#: ../../../src/ui.cpp:1398
+msgid "<b>Credit:</b> "
+msgstr "<b>Příjem:</b> "
+
+#: ../../../src/ui.cpp:1325
+#, c-format
+msgid "(%s matures in %d more blocks)"
+msgstr "(%s dozraje po %d blocích)"
+
+#: ../../../src/ui.cpp:1327
+msgid "(not accepted)"
+msgstr "(neakceptováno)"
+
+#: ../../../src/ui.cpp:1372
+#: ../../../src/ui.cpp:1380
+#: ../../../src/ui.cpp:1395
+msgid "<b>Debit:</b> "
+msgstr "<b>Výdaj:</b> "
+
+#: ../../../src/ui.cpp:1386
+msgid "<b>Transaction fee:</b> "
+msgstr "<b>Transakční poplatek:</b> "
+
+#: ../../../src/ui.cpp:1402
+msgid "<b>Net amount:</b> "
+msgstr "<b>Čistá částka:</b> "
+
+#: ../../../src/ui.cpp:1409
+msgid "Message:"
+msgstr "Zpráva:"
+
+#: ../../../src/ui.cpp:1411
+msgid "Comment:"
+msgstr "Komentář:"
+
+#: ../../../src/ui.cpp:1414
+msgid "Generated coins must wait 120 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, it will change to \"not accepted\" and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours."
+msgstr "Vygenerované mince musí čekat 120 bloků, než mohou být utraceny. Když jsi vygeneroval tenhle blok, tak byl rozposlán do sítě, aby byl přidán do řetězce bloků. Pokud se mu nepodaří dostat se do řetězce, změní se na \"neakceptovaný\" a nebude utratitelný. To se občas může přihodit, pokud jiný uzel vygeneruje blok zhruba ve stejném okamžiku jako ty."
+
+#: ../../../src/ui.cpp:1594
+msgid "Cannot write autostart/bitcoin.desktop file"
+msgstr "Nemohu zapisovat do souboru autostart/bitcoin.desktop"
+
+#: ../../../src/ui.cpp:1630
+msgid "Main"
+msgstr "Hlavní"
+
+#: ../../../src/ui.cpp:1638
+msgid "&Start Bitcoin on window system startup"
+msgstr "&Spustit Bitcoin při startu okenního systému"
+
+#: ../../../src/ui.cpp:1645
+msgid "&Minimize on close"
+msgstr "&Zavřením pouze skrýt"
+
+#: ../../../src/ui.cpp:1787
+#, c-format
+msgid "version %s"
+msgstr "verze %s"
+
+#: ../../../src/ui.cpp:1899
+msgid "Error in amount "
+msgstr "Chyba v částce"
+
+#: ../../../src/ui.cpp:1899
+#: ../../../src/ui.cpp:1904
+#: ../../../src/ui.cpp:1909
+#: ../../../src/ui.cpp:1944
+#: ../../../src/uibase.cpp:55
+msgid "Send Coins"
+msgstr "Pošli mince"
+
+#: ../../../src/ui.cpp:1904
+msgid "Amount exceeds your balance "
+msgstr "Částka překračuje stav účtu"
+
+#: ../../../src/ui.cpp:1909
+msgid "Total exceeds your balance when the "
+msgstr "Celková částka přesahuje stav tvého účtu, když "
+
+#: ../../../src/ui.cpp:1909
+msgid " transaction fee is included "
+msgstr " transakční poplatek je zahrnut"
+
+#: ../../../src/ui.cpp:1927
+msgid "Payment sent "
+msgstr "Platba odeslána"
+
+#: ../../../src/ui.cpp:1927
+#: ../../../src/ui.cpp:1932
+#: ../../../src/ui.cpp:2076
+#: ../../../src/ui.cpp:2229
+#: ../../../src/main.cpp:3997
+msgid "Sending..."
+msgstr "Posílám..."
+
+#: ../../../src/ui.cpp:1944
+msgid "Invalid address "
+msgstr "Neplatná adresa"
+
+#: ../../../src/ui.cpp:1997
+#, c-format
+msgid "Sending %s to %s"
+msgstr "Posílám %s %s"
+
+#: ../../../src/ui.cpp:2070
+#: ../../../src/ui.cpp:2103
+msgid "CANCELLED"
+msgstr "ZRUŠENO"
+
+#: ../../../src/ui.cpp:2074
+msgid "Cancelled"
+msgstr "Zrušeno"
+
+#: ../../../src/ui.cpp:2076
+msgid "Transfer cancelled "
+msgstr "Převod zrušen"
+
+#: ../../../src/ui.cpp:2129
+msgid "Error: "
+msgstr "Chyba: "
+
+#: ../../../src/ui.cpp:2143
+#: ../../../src/ui.cpp:2214
+#: ../../../src/main.cpp:4016
+msgid "Insufficient funds"
+msgstr "Nedostatek peněz"
+
+#: ../../../src/ui.cpp:2148
+msgid "Connecting..."
+msgstr "Připojuji..."
+
+#: ../../../src/ui.cpp:2153
+msgid "Unable to connect"
+msgstr "Nemohu se připojit"
+
+#: ../../../src/ui.cpp:2158
+msgid "Requesting public key..."
+msgstr "Požaduji veřejný klíč..."
+
+#: ../../../src/ui.cpp:2170
+msgid "Received public key..."
+msgstr "Přijat veřejný klíč..."
+
+#: ../../../src/ui.cpp:2184
+msgid "Recipient is not accepting transactions sent by IP address"
+msgstr "Příjemce neakceptuje transakce poslané IP adresou"
+
+#: ../../../src/ui.cpp:2186
+msgid "Transfer was not accepted"
+msgstr "Převod nebyl akceptován"
+
+#: ../../../src/ui.cpp:2195
+msgid "Invalid response received"
+msgstr "Přišla neplatná odpověď"
+
+#: ../../../src/ui.cpp:2210
+msgid "Creating transaction..."
+msgstr "Vytvářím transakci..."
+
+#: ../../../src/ui.cpp:2222
+#, c-format
+msgid "This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds"
+msgstr "Tato transakce vyžaduje transakční poplatek nejméně %s kvůli svému objemu, komplexnosti nebo utrácení nedávno přijaté hotovosti"
+
+#: ../../../src/ui.cpp:2224
+msgid "Transaction creation failed"
+msgstr "Vytvoření transakce selhalo"
+
+#: ../../../src/ui.cpp:2231
+msgid "Transaction aborted"
+msgstr "Transakce zrušena"
+
+#: ../../../src/ui.cpp:2239
+msgid "Lost connection, transaction cancelled"
+msgstr "Spojení se ztratilo, takže transakce byla zrušena"
+
+#: ../../../src/ui.cpp:2255
+msgid "Sending payment..."
+msgstr "Posílám platbu..."
+
+#: ../../../src/ui.cpp:2261
+msgid "The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "Transakce byla odmítnuta. Tohle může nastat, pokud nějaké mince z tvé peněženky už jednou byly utraceny, například pokud používáš kopii souboru wallet.dat a mince byly utraceny v druhé kopii, ale nebyly označeny jako utracené v této."
+
+#: ../../../src/ui.cpp:2270
+msgid "Waiting for confirmation..."
+msgstr "Čekám na potvrzení..."
+
+#: ../../../src/ui.cpp:2288
+msgid ""
+"The payment was sent, but the recipient was unable to verify it.\n"
+"The transaction is recorded and will credit to the recipient,\n"
+"but the comment information will be blank."
+msgstr ""
+"Platba byla poslána, ale příjemce není schopen ji ověřit.\n"
+"Transakce je zaznamenána a bude připsána příjemci,\n"
+"ale poznámka u platby bude prázdná."
+
+#: ../../../src/ui.cpp:2297
+msgid "Payment was sent, but an invalid response was received"
+msgstr "Platba byla odeslána, ale přišla neplatná odpověď"
+
+#: ../../../src/ui.cpp:2303
+msgid "Payment completed"
+msgstr "Platba je kompletní"
+
+#: ../../../src/ui.cpp:2334
+#: ../../../src/ui.cpp:2480
+#: ../../../src/ui.cpp:2517
+msgid "Name"
+msgstr "Jméno"
+
+#: ../../../src/ui.cpp:2335
+#: ../../../src/ui.cpp:2480
+#: ../../../src/ui.cpp:2517
+msgid "Address"
+msgstr "Adresa"
+
+#: ../../../src/ui.cpp:2337
+#: ../../../src/ui.cpp:2492
+msgid "Label"
+msgstr "Označení"
+
+#: ../../../src/ui.cpp:2338
+#: ../../../src/uibase.cpp:837
+msgid "Bitcoin Address"
+msgstr "Bitcoinová adresa"
+
+#: ../../../src/ui.cpp:2462
+msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
+msgstr "Tohle je jedna z tvých vlastních adres pro příjem plateb a nemůže být zadána do adresáře."
+
+#: ../../../src/ui.cpp:2480
+#: ../../../src/ui.cpp:2486
+msgid "Edit Address"
+msgstr "Upravit adresu"
+
+#: ../../../src/ui.cpp:2492
+msgid "Edit Address Label"
+msgstr "Upravit označení adresy"
+
+#: ../../../src/ui.cpp:2517
+#: ../../../src/ui.cpp:2523
+msgid "Add Address"
+msgstr "Přidat adresu"
+
+#: ../../../src/ui.cpp:2600
+msgid "Bitcoin"
+msgstr "Bitcoin"
+
+#: ../../../src/ui.cpp:2602
+msgid "Bitcoin - Generating"
+msgstr "Bitcoin - Generování"
+
+#: ../../../src/ui.cpp:2604
+msgid "Bitcoin - (not connected)"
+msgstr "Bitcoin - (nepřipojen)"
+
+#: ../../../src/ui.cpp:2683
+msgid "&Open Bitcoin"
+msgstr "&Otevřít Bitcoin"
+
+#: ../../../src/ui.cpp:2684
+msgid "&Send Bitcoins"
+msgstr "&Poslat Bitcoiny"
+
+#: ../../../src/ui.cpp:2685
+msgid "O&ptions..."
+msgstr "&Možnosti..."
+
+#: ../../../src/ui.cpp:2688
+#: ../../../src/uibase.cpp:25
+msgid "E&xit"
+msgstr "&Konec"
+
+#: ../../../src/ui.cpp:2904
+msgid "Program has crashed and will terminate. "
+msgstr "Program havaroval a bude ukončen."
+
+#: ../../../src/main.cpp:1866
+msgid "Warning: Disk space is low "
+msgstr "Upozornění: Na disku je málo místa"
+
+#: ../../../src/main.cpp:3990
+#, c-format
+msgid "Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds "
+msgstr "Chyba: Tato transakce vyžaduje transakční poplatek nejméně %s kvůli svému objemu, komplexnosti nebo utrácení nedávno přijaté hotovosti"
+
+#: ../../../src/main.cpp:3992
+msgid "Error: Transaction creation failed "
+msgstr "Chyba: Vytvoření transakce selhalo"
+
+#: ../../../src/main.cpp:4001
+msgid "Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "Chyba: Transakce byla odmítnuta. Tohle může nastat, pokud nějaké mince z tvé peněženky už jednou byly utraceny, například pokud používáš kopii souboru wallet.dat a mince byly utraceny v druhé kopii, ale nebyly označeny jako utracené v této."
+
+#: ../../../src/main.cpp:4014
+msgid "Invalid amount"
+msgstr "Neplatná částka"
+
+#: ../../../src/main.cpp:4021
+msgid "Invalid bitcoin address"
+msgstr "Neplatná Bitcoinová adresa"
+
+#: ../../../src/rpc.cpp:1802
+#: ../../../src/rpc.cpp:1804
+#, c-format
+msgid "To use the %s option"
+msgstr "Pro použití volby %s"
+
+#: ../../../src/rpc.cpp:1806
+#, c-format
+msgid ""
+"Warning: %s, you must set rpcpassword=<password>\n"
+"in the configuration file: %s\n"
+"If the file does not exist, create it with owner-readable-only file permissions.\n"
+msgstr ""
+"Varování: %s, musíš nastavit rpcpassword=<heslo>\n"
+"v konfiguračním souboru: %s\n"
+"Pokud tenhle soubor neexistuje, vytvoř ho s oprávněním pro čtení pouze pro vlastníka.\n"
+
+#: ../../../src/rpc.cpp:1974
+#, c-format
+msgid ""
+"You must set rpcpassword=<password> in the configuration file:\n"
+"%s\n"
+"If the file does not exist, create it with owner-readable-only file permissions."
+msgstr ""
+"Musíš nastavit rpcpassword=<heslo> v konfiguračním souboru:\n"
+"%s\n"
+"Pokud tenhle soubor neexistuje, vytvoř ho s oprávněním pro čtení pouze pro vlastníka."
+
+#: ../../../src/util.cpp:866
+msgid "Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly."
+msgstr "Varování: Prosím zkontroluj, že datum a čas jsou na tvém počítači správně nastaveny. Pokud jsou nastaveny špatně, Bitcoin nebude fungovat správně."
+
+#: ../../../src/util.cpp:899
+msgid "beta"
+msgstr "beta"
+
+#: ../../../src/uibase.cpp:28
+msgid "&File"
+msgstr "&Soubor"
+
+#: ../../../src/uibase.cpp:32
+msgid "&Your Receiving Addresses..."
+msgstr "Tvá Bitcoinová &adresa..."
+
+#: ../../../src/uibase.cpp:36
+msgid "&Options..."
+msgstr "M&ožnosti"
+
+#: ../../../src/uibase.cpp:39
+msgid "&Settings"
+msgstr "Nas&tavení"
+
+#: ../../../src/uibase.cpp:43
+msgid "&About..."
+msgstr "&O programu"
+
+#: ../../../src/uibase.cpp:46
+msgid "&Help"
+msgstr "&Nápověda"
+
+#: ../../../src/uibase.cpp:56
+msgid "Address Book"
+msgstr "Adresář"
+
+#: ../../../src/uibase.cpp:69
+msgid "Your Bitcoin Address:"
+msgstr "Tvá Bitcoinová adresa:"
+
+#: ../../../src/uibase.cpp:76
+msgid " &New... "
+msgstr " &Nová..."
+
+#: ../../../src/uibase.cpp:79
+#: ../../../src/uibase.cpp:780
+#: ../../../src/uibase.cpp:883
+msgid " &Copy to Clipboard "
+msgstr " &Kopírovat do schránky"
+
+#: ../../../src/uibase.cpp:93
+msgid "Balance:"
+msgstr "Stav účtu:"
+
+#: ../../../src/uibase.cpp:109
+msgid " All"
+msgstr " Vše"
+
+#: ../../../src/uibase.cpp:109
+msgid " Sent"
+msgstr " Odeslané"
+
+#: ../../../src/uibase.cpp:109
+msgid " Received"
+msgstr " Přijaté"
+
+#: ../../../src/uibase.cpp:109
+msgid " In Progress"
+msgstr " Pracuje se na tom"
+
+#: ../../../src/uibase.cpp:130
+msgid "All Transactions"
+msgstr "Všechny transakce"
+
+#: ../../../src/uibase.cpp:141
+msgid "Sent/Received"
+msgstr "Odeslané/Přijaté"
+
+#: ../../../src/uibase.cpp:152
+msgid "Sent"
+msgstr "Odeslané"
+
+#: ../../../src/uibase.cpp:163
+msgid "Received"
+msgstr "Přijaté"
+
+#: ../../../src/uibase.cpp:302
+#: ../../../src/uibase.cpp:443
+#: ../../../src/uibase.cpp:542
+#: ../../../src/uibase.cpp:722
+#: ../../../src/uibase.cpp:783
+#: ../../../src/uibase.cpp:892
+#: ../../../src/uibase.cpp:981
+msgid "OK"
+msgstr "&Budiž"
+
+#: ../../../src/uibase.cpp:345
+msgid "&Start Bitcoin on system startup"
+msgstr "&Spustit Bitcoin při startu systému"
+
+#: ../../../src/uibase.cpp:348
+msgid "&Minimize to the tray instead of the taskbar"
+msgstr "&Minimalizovávat do ikony v panelu"
+
+#: ../../../src/uibase.cpp:351
+msgid "Map port using &UPnP"
+msgstr "Namapovat port přes &UPnP"
+
+#: ../../../src/uibase.cpp:354
+msgid "M&inimize to the tray on close"
+msgstr "Zavřením &minimalizovat do ikony"
+
+#: ../../../src/uibase.cpp:360
+msgid "&Connect through socks4 proxy: "
+msgstr "&Připojit přes socks4 proxy:"
+
+#: ../../../src/uibase.cpp:371
+msgid "Proxy &IP:"
+msgstr "&IP adresa proxy:"
+
+#: ../../../src/uibase.cpp:379
+msgid " &Port:"
+msgstr " &Port:"
+
+#: ../../../src/uibase.cpp:392
+msgid "Optional transaction fee per KB that helps make sure your transactions are processed quickly. Most transactions are 1KB. Fee 0.01 recommended."
+msgstr "Dobrovolný transakční poplatek za každý započatý KB napomáhá tomu, aby tvé transakce byly rychle zpracovány. Většina transakcí má do 1 KB. Doporučená výše poplatku je 0.01."
+
+#: ../../../src/uibase.cpp:399
+msgid "Pay transaction fee:"
+msgstr "Výše transakčního poplatku:"
+
+#: ../../../src/uibase.cpp:420
+msgid "// [don't translate] Test panel 2 for future expansion"
+msgstr ""
+
+#: ../../../src/uibase.cpp:424
+msgid "// [don't translate] Let's not start multiple pages until the first page is filled up"
+msgstr ""
+
+#: ../../../src/uibase.cpp:446
+#: ../../../src/uibase.cpp:668
+#: ../../../src/uibase.cpp:727
+#: ../../../src/uibase.cpp:786
+#: ../../../src/uibase.cpp:895
+#: ../../../src/uibase.cpp:984
+msgid "Cancel"
+msgstr "&Zrušit"
+
+#: ../../../src/uibase.cpp:449
+msgid "&Apply"
+msgstr "&Použít"
+
+#: ../../../src/uibase.cpp:508
+msgid "Bitcoin "
+msgstr "Bitcoin"
+
+#: ../../../src/uibase.cpp:514
+msgid "version"
+msgstr "verze"
+
+#: ../../../src/uibase.cpp:525
+msgid ""
+"Copyright (c) 2009-2011 Bitcoin Developers\n"
+"\n"
+"This is experimental software.\n"
+"\n"
+"Distributed under the MIT/X11 software license, see the accompanying file \n"
+"license.txt or http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"This product includes software developed by the OpenSSL Project for use in the \n"
+"OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
+msgstr ""
+"Copyright (c) 2009-2011 Vývojáři Bitcoinu\n"
+"\n"
+"Tohle je experimentální program.\n"
+"\n"
+"Šířen pod licencí MIT/X11, viz přiložený soubor license.txt nebo \n"
+"http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"Tento produkt zahrnuje programy vyvinuté OpenSSL Projektem pro použití \n"
+"v OpenSSL Toolkitu (http://www.openssl.org/) a kryptografický program od \n"
+"Erika Younga (eay@cryptsoft.com) a program UPnP od Thomase Bernarda."
+
+#: ../../../src/uibase.cpp:581
+msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+msgstr "Vlož Bitcoinovou adresu (např. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+
+#: ../../../src/uibase.cpp:595
+msgid "Pay &To:"
+msgstr "&Komu:"
+
+#: ../../../src/uibase.cpp:610
+msgid "&Paste"
+msgstr "&Vložit"
+
+#: ../../../src/uibase.cpp:613
+msgid " Address &Book..."
+msgstr " &Adresář..."
+
+#: ../../../src/uibase.cpp:620
+msgid "&Amount:"
+msgstr "&Částka"
+
+#: ../../../src/uibase.cpp:630
+msgid "T&ransfer:"
+msgstr "&Převod:"
+
+#: ../../../src/uibase.cpp:636
+msgid " Standard"
+msgstr " Standard"
+
+#: ../../../src/uibase.cpp:663
+msgid "&Send"
+msgstr "&Poslat"
+
+#: ../../../src/uibase.cpp:711
+msgid ""
+"\n"
+"\n"
+"Connecting..."
+msgstr ""
+"\n"
+"\n"
+"Připojuji..."
+
+#: ../../../src/uibase.cpp:761
+msgid "These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. The highlighted address is displayed in the main window."
+msgstr "Tohle jsou tvé Bitcoinové adresy na příjem plateb. Asi budeš chtít dát jinou adresu každému odesílateli, abys věděl, kdo ti kolik platil. Označená adresa bude zobrazena v hlavním okně."
+
+#: ../../../src/uibase.cpp:774
+#: ../../../src/uibase.cpp:886
+msgid "&Edit..."
+msgstr "&Upravit..."
+
+#: ../../../src/uibase.cpp:777
+#: ../../../src/uibase.cpp:889
+msgid " &New Address... "
+msgstr " &Nová adresa..."
+
+#: ../../../src/uibase.cpp:849
+msgid "Sending"
+msgstr "Cizí adresy (pro odesílání)"
+
+#: ../../../src/uibase.cpp:857
+msgid "These are your Bitcoin addresses for receiving payments. You can give a different one to each sender to keep track of who is paying you. The highlighted address will be displayed in the main window."
+msgstr "Tohle jsou tvé Bitcoinové adresy na příjem plateb. Můžeš dát jinou adresu každému odesílateli, abys věděl, kdo ti kolik platil. Označená adresa bude zobrazena v hlavním okně."
+
+#: ../../../src/uibase.cpp:870
+msgid "Receiving"
+msgstr "Tvoje adresy (pro příjem)"
+
+#: ../../../src/uibase.cpp:880
+msgid "&Delete"
+msgstr "&Smazat"
+
+#: ../../../src/init.cpp:142
+msgid "Bitcoin version"
+msgstr "Bitcoin verze"
+
+#: ../../../src/init.cpp:143
+msgid "Usage:"
+msgstr "Užití:"
+
+#: ../../../src/init.cpp:145
+msgid "Send command to -server or bitcoind\n"
+msgstr "Poslat příkaz pro -server nebo bitcoind\n"
+
+#: ../../../src/init.cpp:146
+msgid "List commands\n"
+msgstr "Výpis příkazů\n"
+
+#: ../../../src/init.cpp:147
+msgid "Get help for a command\n"
+msgstr "Získat nápovědu pro příkaz\n"
+
+#: ../../../src/init.cpp:148
+msgid "Options:\n"
+msgstr "Možnosti:\n"
+
+#: ../../../src/init.cpp:149
+msgid "Specify configuration file (default: bitcoin.conf)\n"
+msgstr "Konfigurační soubor (výchozí: bitcoin.conf)\n"
+
+#: ../../../src/init.cpp:150
+msgid "Specify pid file (default: bitcoind.pid)\n"
+msgstr "PID soubor (výchozí: bitcoind.pid)\n"
+
+#: ../../../src/init.cpp:151
+msgid "Generate coins\n"
+msgstr "Generovat mince\n"
+
+#: ../../../src/init.cpp:152
+msgid "Don't generate coins\n"
+msgstr "Negenerovat mince\n"
+
+#: ../../../src/init.cpp:153
+msgid "Start minimized\n"
+msgstr "Startovat minimalizovaně\n"
+
+#: ../../../src/init.cpp:154
+msgid "Specify data directory\n"
+msgstr "Adresář pro data\n"
+
+#: ../../../src/init.cpp:155
+msgid "Connect through socks4 proxy\n"
+msgstr "Připojovat se skrz socks4 proxy\n"
+
+#: ../../../src/init.cpp:156
+msgid "Allow DNS lookups for addnode and connect\n"
+msgstr "Povolit DNS dotazy pro addnode (přidání uzlu) a connect (připojení)\n"
+
+#: ../../../src/init.cpp:157
+msgid "Add a node to connect to\n"
+msgstr "Přidat uzel, ke kterému se připojit\n"
+
+#: ../../../src/init.cpp:158
+msgid "Connect only to the specified node\n"
+msgstr "Připojovat se pouze k udanému uzlu\n"
+
+#: ../../../src/init.cpp:159
+msgid "Don't accept connections from outside\n"
+msgstr "Nepřijímat připojení zvenčí\n"
+
+#: ../../../src/init.cpp:162
+msgid "Don't attempt to use UPnP to map the listening port\n"
+msgstr "Nesnažit se použít UPnP k namapování naslouchacího portu\n"
+
+#: ../../../src/init.cpp:164
+msgid "Attempt to use UPnP to map the listening port\n"
+msgstr "Snažit se použít UPnP k namapování naslouchacího portu\n"
+
+#: ../../../src/init.cpp:167
+msgid "Fee per KB to add to transactions you send\n"
+msgstr "Poplatek za KB, který se přidá ke každé odeslané transakci\n"
+
+#: ../../../src/init.cpp:169
+msgid "Accept command line and JSON-RPC commands\n"
+msgstr "Akceptovat příkazy z příkazové řádky a přes JSON-RPC\n"
+
+#: ../../../src/init.cpp:172
+msgid "Run in the background as a daemon and accept commands\n"
+msgstr "Běžet na pozadí jako démon a akceptovat příkazy\n"
+
+#: ../../../src/init.cpp:174
+msgid "Use the test network\n"
+msgstr "Použít testovací síť\n"
+
+#: ../../../src/init.cpp:175
+msgid "Username for JSON-RPC connections\n"
+msgstr "Uživatelské jméno pro JSON-RPC spojení\n"
+
+#: ../../../src/init.cpp:176
+msgid "Password for JSON-RPC connections\n"
+msgstr "Heslo pro JSON-RPC spojení\n"
+
+#: ../../../src/init.cpp:177
+msgid "Listen for JSON-RPC connections on <port> (default: 8332)\n"
+msgstr "Čekat na JSON-RPC spojení na <portu> (výchozí: 8332)\n"
+
+#: ../../../src/init.cpp:178
+msgid "Allow JSON-RPC connections from specified IP address\n"
+msgstr "Povolit JSON-RPC spojení ze specifikované IP adresy\n"
+
+#: ../../../src/init.cpp:179
+msgid "Send commands to node running on <ip> (default: 127.0.0.1)\n"
+msgstr "Posílat příkazy uzlu běžícím na <ip> (výchozí: 127.0.0.1)\n"
+
+#: ../../../src/init.cpp:180
+msgid "Set key pool size to <n> (default: 100)\n"
+msgstr "Nastavit zásobník klíčů na velikost <n> (výchozí: 100)\n"
+
+#: ../../../src/init.cpp:181
+msgid "Rescan the block chain for missing wallet transactions\n"
+msgstr "Přeskenovat řetězec bloků na chybějící transakce peněženky\n"
+
+#: ../../../src/init.cpp:185
+msgid ""
+"\n"
+"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"
+msgstr ""
+"\n"
+"Možnosti SSL: (viz instrukce nastavení SSL v Bitcoin Wiki)\n"
+
+#: ../../../src/init.cpp:186
+msgid "Use OpenSSL (https) for JSON-RPC connections\n"
+msgstr "Použít OpenSSL (https) pro JSON-RPC spojení\n"
+
+#: ../../../src/init.cpp:187
+msgid "Server certificate file (default: server.cert)\n"
+msgstr "Soubor se serverovým certifikátem (výchozí: server.cert)\n"
+
+#: ../../../src/init.cpp:188
+msgid "Server private key (default: server.pem)\n"
+msgstr "Soubor se serverovým soukromým klíčem (výchozí: server.pem)\n"
+
+#: ../../../src/init.cpp:189
+msgid "Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
+msgstr "Akceptovatelné šifry (výchozí: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
+
+#: ../../../src/init.cpp:193
+msgid "This help message\n"
+msgstr "Tato nápověda\n"
+
+#: ../../../src/init.cpp:330
+#, c-format
+msgid "Cannot obtain a lock on data directory %s. Bitcoin is probably already running."
+msgstr "Nedaří se mi získat zámek na datový adresář %s. Bitcoin pravděpodobně už jednou běží."
+
+#: ../../../src/init.cpp:356
+msgid "Error loading addr.dat \n"
+msgstr "Chyba při načítání addr.dat \n"
+
+#: ../../../src/init.cpp:362
+msgid "Error loading blkindex.dat \n"
+msgstr "Chyba při načítání blkindex.dat \n"
+
+#: ../../../src/init.cpp:369
+msgid "Error loading wallet.dat \n"
+msgstr "Chyba při načítání wallet.dat \n"
+
+#: ../../../src/init.cpp:449
+msgid "Invalid -proxy address"
+msgstr "Neplatná -proxy adresa"
+
+#: ../../../src/init.cpp:472
+msgid "Invalid amount for -paytxfee=<amount>"
+msgstr "Neplatná částka pro -paytxfee=<částka>"
+
+#: ../../../src/init.cpp:476
+msgid "Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."
+msgstr "Varování: -paytxfee je nastaveno velmi vysoko. Toto je transakční poplatek, který zaplatíš za každou poslanou transakci."
+
+#: ../../../src/uibase.h:147
+msgid "Transaction Details"
+msgstr "Detaily transakce"
+
+#: ../../../src/uibase.h:199
+msgid "Options"
+msgstr "Možnosti"
+
+#: ../../../src/uibase.h:228
+msgid "About Bitcoin"
+msgstr "O Bitcoinu"
+
+#: ../../../src/uibase.h:337
+msgid "Your Bitcoin Addresses"
+msgstr "Tvá Bitcoinová adresa"
+
diff --git a/locale/de/LC_MESSAGES/bitcoin.mo b/locale/de/LC_MESSAGES/bitcoin.mo
new file mode 100644
index 0000000000..bcea1d3662
--- /dev/null
+++ b/locale/de/LC_MESSAGES/bitcoin.mo
Binary files differ
diff --git a/locale/de/LC_MESSAGES/bitcoin.po b/locale/de/LC_MESSAGES/bitcoin.po
new file mode 100644
index 0000000000..a0519f0a2f
--- /dev/null
+++ b/locale/de/LC_MESSAGES/bitcoin.po
@@ -0,0 +1,975 @@
+# Jakob Kramer <censored@gmail.com>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-05-15 18:18+0100\n"
+"PO-Revision-Date: 2011-05-26 22:34+0100\n"
+"Last-Translator: Jakob Kramer <censored@gmail.com>\n"
+"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Virtaal 0.6.1\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-SearchPath-0: ../../..\n"
+
+#: ../../../src/net.cpp:1499
+#, c-format
+msgid "Unable to bind to port %d on this computer. Bitcoin is probably already running."
+msgstr "Kann nicht zu Port %d auf diesem Computer verbinden. Bitcoin läuft wahrscheinlich bereits."
+
+#: ../../../src/ui.cpp:202
+#, c-format
+msgid "This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?"
+msgstr "Diese Überweisung übersteigt das Betragslimit. Sie können sie trotzdem tätigen, aber es wird eine Gebühr von %s erhoben, die an den Teilnehmer ausgeschüttet wird, der Ihre Überweisung bearbeitet und dadurch hilft, das Netzwerk am laufen zu halten. Möchten Sie die Gebühr entrichten?"
+
+#: ../../../src/ui.cpp:301
+msgid "Status"
+msgstr "Status"
+
+#: ../../../src/ui.cpp:302
+msgid "Date"
+msgstr "Datum"
+
+#: ../../../src/ui.cpp:303
+msgid "Description"
+msgstr "Beschreibung"
+
+#: ../../../src/ui.cpp:304
+msgid "Debit"
+msgstr "Belastungen"
+
+#: ../../../src/ui.cpp:305
+msgid "Credit"
+msgstr "Gutschriften"
+
+#: ../../../src/ui.cpp:511
+#, c-format
+msgid "Open for %d blocks"
+msgstr "Offen für %d Blöcke"
+
+#: ../../../src/ui.cpp:513
+#, c-format
+msgid "Open until %s"
+msgstr "Offen bis %s"
+
+#: ../../../src/ui.cpp:519
+#, c-format
+msgid "%d/offline?"
+msgstr "%d/Offline?"
+
+#: ../../../src/ui.cpp:521
+#, c-format
+msgid "%d/unconfirmed"
+msgstr "%d/nicht bestätigt"
+
+#: ../../../src/ui.cpp:523
+#, c-format
+msgid "%d confirmations"
+msgstr "%d Bestätigungen"
+
+#: ../../../src/ui.cpp:608
+msgid "Generated"
+msgstr "Erzeugt"
+
+#: ../../../src/ui.cpp:616
+#, c-format
+msgid "Generated (%s matures in %d more blocks)"
+msgstr "Erzeugt (%s reifen nach %d weiteren Blöcken)"
+
+#: ../../../src/ui.cpp:620
+msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
+msgstr "Erzeugt - Warnung: Dieser Block wurde von keinem anderen Teilnehmer empfangen und wird wahrscheinlich nicht akzeptiert werden!"
+
+#: ../../../src/ui.cpp:624
+msgid "Generated (not accepted)"
+msgstr "Erzeugt (nicht akzeptiert)"
+
+#: ../../../src/ui.cpp:634
+msgid "From: "
+msgstr "Von: "
+
+#: ../../../src/ui.cpp:658
+msgid "Received with: "
+msgstr "Empfangen durch: "
+
+#: ../../../src/ui.cpp:704
+msgid "Payment to yourself"
+msgstr "Überweisung an Sie selbst"
+
+#: ../../../src/ui.cpp:738
+msgid "To: "
+msgstr "An: "
+
+#: ../../../src/ui.cpp:1053
+msgid " Generating"
+msgstr " Erzeugen"
+
+#: ../../../src/ui.cpp:1055
+msgid "(not connected)"
+msgstr "(nicht verbunden)"
+
+#: ../../../src/ui.cpp:1058
+#, c-format
+msgid " %d connections %d blocks %d transactions"
+msgstr " %d Verbindungen %d Blöcke %d Überweisungen"
+
+#: ../../../src/ui.cpp:1163
+#: ../../../src/ui.cpp:2527
+msgid "New Receiving Address"
+msgstr "&Neue Empfangs-Adresse"
+
+#: ../../../src/ui.cpp:1164
+#: ../../../src/ui.cpp:2528
+msgid ""
+"You should use a new address for each payment you receive.\n"
+"\n"
+"Label"
+msgstr ""
+"Am besten verwenden Sie für jede Zahlung, die Sie erhalten, eine neue Adresse.\n"
+"\n"
+"Beschreibung"
+
+#: ../../../src/ui.cpp:1233
+msgid "<b>Status:</b> "
+msgstr "<b>Status:</b> "
+
+#: ../../../src/ui.cpp:1238
+msgid ", has not been successfully broadcast yet"
+msgstr ", wurde noch nicht erfolgreich übertragen"
+
+#: ../../../src/ui.cpp:1240
+#, c-format
+msgid ", broadcast through %d node"
+msgstr ", durch %d Teilnehmer übertragen"
+
+#: ../../../src/ui.cpp:1242
+#, c-format
+msgid ", broadcast through %d nodes"
+msgstr ", durch %d Teilnehmer übertragen"
+
+#: ../../../src/ui.cpp:1246
+msgid "<b>Date:</b> "
+msgstr "<b>Datum</b> "
+
+#: ../../../src/ui.cpp:1254
+msgid "<b>Source:</b> Generated<br>"
+msgstr "<b>Quelle:</b> Erzeugt<br>"
+
+#: ../../../src/ui.cpp:1260
+#: ../../../src/ui.cpp:1278
+msgid "<b>From:</b> "
+msgstr "<b>Von:</b> "
+
+#: ../../../src/ui.cpp:1278
+msgid "unknown"
+msgstr "Unbekannt"
+
+#: ../../../src/ui.cpp:1279
+#: ../../../src/ui.cpp:1303
+#: ../../../src/ui.cpp:1362
+msgid "<b>To:</b> "
+msgstr "<b>An:</b> "
+
+#: ../../../src/ui.cpp:1282
+msgid " (yours, label: "
+msgstr " (Eigene, Beschreibung: "
+
+#: ../../../src/ui.cpp:1284
+msgid " (yours)"
+msgstr " (Eigene)"
+
+#: ../../../src/ui.cpp:1321
+#: ../../../src/ui.cpp:1333
+#: ../../../src/ui.cpp:1379
+#: ../../../src/ui.cpp:1396
+msgid "<b>Credit:</b> "
+msgstr "<b>Gutschrift:</b> "
+
+#: ../../../src/ui.cpp:1323
+#, c-format
+msgid "(%s matures in %d more blocks)"
+msgstr "(%s reifen nach %d weiteren Blöcken)"
+
+#: ../../../src/ui.cpp:1325
+msgid "(not accepted)"
+msgstr "(nicht akzeptiert)"
+
+#: ../../../src/ui.cpp:1370
+#: ../../../src/ui.cpp:1378
+#: ../../../src/ui.cpp:1393
+msgid "<b>Debit:</b> "
+msgstr "<b>Belastung:</b> "
+
+#: ../../../src/ui.cpp:1384
+msgid "<b>Transaction fee:</b> "
+msgstr "<b>Überweisungsgebühr:</b> "
+
+#: ../../../src/ui.cpp:1400
+msgid "<b>Net amount:</b> "
+msgstr "<b>Nettobetrag:</b> "
+
+#: ../../../src/ui.cpp:1407
+msgid "Message:"
+msgstr "Nachricht:"
+
+#: ../../../src/ui.cpp:1409
+msgid "Comment:"
+msgstr "Kommentar:"
+
+#: ../../../src/ui.cpp:1412
+msgid "Generated coins must wait 120 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, it will change to \"not accepted\" and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours."
+msgstr "Erzeugte Münzen müssen 120 Blöcke lang reifen. Als Sie diesen Block erzeugt haben, wurde er an alle Teilnehmer übertragen, damit er zur Block-Kette hinzugefügt werden kann. Falls der Block es nicht in die Block-Kette schafft, wird die Beschreibung zu \"nicht akzeptiert\" geändert, und Sie können die Münzen nicht ausgeben. Dies kann manchmal passieren, wenn Sie und ein anderer Teilnehmer annähernd zeitgleich einen Block erzeugen."
+
+#: ../../../src/ui.cpp:1592
+msgid "Cannot write autostart/bitcoin.desktop file"
+msgstr "Kann Datei autostart/bitcoin.desktop nicht schreiben"
+
+#: ../../../src/ui.cpp:1628
+msgid "Main"
+msgstr "Haupt"
+
+#: ../../../src/ui.cpp:1636
+msgid "&Start Bitcoin on window system startup"
+msgstr "Bitcoin beim &Systemstart ausführen"
+
+#: ../../../src/ui.cpp:1643
+msgid "&Minimize on close"
+msgstr "Beim schließen &Minimieren"
+
+#: ../../../src/ui.cpp:1785
+#, c-format
+msgid "version %s"
+msgstr "version %s"
+
+#: ../../../src/ui.cpp:1897
+msgid "Error in amount "
+msgstr "Fehler in Betrag "
+
+#: ../../../src/ui.cpp:1897
+#: ../../../src/ui.cpp:1902
+#: ../../../src/ui.cpp:1907
+#: ../../../src/ui.cpp:1942
+#: ../../../src/uibase.cpp:55
+msgid "Send Coins"
+msgstr "Überweisen"
+
+#: ../../../src/ui.cpp:1902
+msgid "Amount exceeds your balance "
+msgstr "Der Betrag übersteigt Ihr Guthaben "
+
+#: ../../../src/ui.cpp:1907
+msgid "Total exceeds your balance when the "
+msgstr "Der Betrag übersteigt Ihr Guthaben, wenn man die "
+
+#: ../../../src/ui.cpp:1907
+msgid " transaction fee is included "
+msgstr " Überweisungsgebühr berücksichtigt "
+
+#: ../../../src/ui.cpp:1925
+msgid "Payment sent "
+msgstr "Zahlung überwiesen "
+
+#: ../../../src/ui.cpp:1925
+#: ../../../src/ui.cpp:1930
+#: ../../../src/ui.cpp:2074
+#: ../../../src/ui.cpp:2227
+#: ../../../src/main.cpp:3999
+msgid "Sending..."
+msgstr "Überweise ..."
+
+#: ../../../src/ui.cpp:1942
+msgid "Invalid address "
+msgstr "Ungültige Adresse "
+
+#: ../../../src/ui.cpp:1995
+#, c-format
+msgid "Sending %s to %s"
+msgstr "Überweise %s an %s"
+
+#: ../../../src/ui.cpp:2068
+#: ../../../src/ui.cpp:2101
+msgid "CANCELLED"
+msgstr "ANNULLIERT"
+
+#: ../../../src/ui.cpp:2072
+msgid "Cancelled"
+msgstr "Annulliert"
+
+#: ../../../src/ui.cpp:2074
+msgid "Transfer cancelled "
+msgstr "Überweisung annulliert "
+
+#: ../../../src/ui.cpp:2127
+msgid "Error: "
+msgstr "Fehler: "
+
+#: ../../../src/ui.cpp:2141
+#: ../../../src/ui.cpp:2212
+#: ../../../src/main.cpp:4018
+msgid "Insufficient funds"
+msgstr "Unzureichende Geldmittel"
+
+#: ../../../src/ui.cpp:2146
+msgid "Connecting..."
+msgstr "Verbinde ..."
+
+#: ../../../src/ui.cpp:2151
+msgid "Unable to connect"
+msgstr "Kann nicht verbinden"
+
+#: ../../../src/ui.cpp:2156
+msgid "Requesting public key..."
+msgstr "Fordere öffentlichen Schlüssel an ..."
+
+#: ../../../src/ui.cpp:2168
+msgid "Received public key..."
+msgstr "Öffentlicher Schlüssel empfangen ..."
+
+#: ../../../src/ui.cpp:2182
+msgid "Recipient is not accepting transactions sent by IP address"
+msgstr "Empfänger akzeptiert keine Überweisungen von IP-Adressen"
+
+#: ../../../src/ui.cpp:2184
+msgid "Transfer was not accepted"
+msgstr "Überweisung wurde nicht akzeptiert"
+
+#: ../../../src/ui.cpp:2193
+msgid "Invalid response received"
+msgstr "Ungültige Antwort erhalten"
+
+#: ../../../src/ui.cpp:2208
+msgid "Creating transaction..."
+msgstr "Erstelle Überweisung ..."
+
+#: ../../../src/ui.cpp:2220
+#, c-format
+msgid "This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds"
+msgstr "Diese Überweisung benötigt eine Überweisungsgebühr von mindestens %s wegen ihres Betrags, Komplexität oder der Benutzung kürzlich erhaltener Geldmittel"
+
+#: ../../../src/ui.cpp:2222
+msgid "Transaction creation failed"
+msgstr "Überweisung konnte nicht erzeugt werden."
+
+#: ../../../src/ui.cpp:2229
+msgid "Transaction aborted"
+msgstr "Überweisung abgebrochen"
+
+#: ../../../src/ui.cpp:2237
+msgid "Lost connection, transaction cancelled"
+msgstr "Verbindung verloren, Überweisungsvorgang abgebrochen"
+
+#: ../../../src/ui.cpp:2253
+msgid "Sending payment..."
+msgstr "Überweise Zahlung ..."
+
+#: ../../../src/ui.cpp:2259
+msgid "The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "Die Überweisung wurde abgelehnt. Das kann passieren, wenn einige der Münzen in Ihrer Brieftasche bereits ausgegeben wurden, z.B. weil Sie eine Kopie der Brieftasche (wallet.dat) gemacht haben. Bitcoins, die mithilfe der Kopie ausgegeben wurden, sind in dieser Brieftasche noch nicht als ausgegeben markiert worden."
+
+#: ../../../src/ui.cpp:2268
+msgid "Waiting for confirmation..."
+msgstr "Warte auf Bestätigung ..."
+
+#: ../../../src/ui.cpp:2286
+msgid ""
+"The payment was sent, but the recipient was unable to verify it.\n"
+"The transaction is recorded and will credit to the recipient,\n"
+"but the comment information will be blank."
+msgstr ""
+"Die Zahlung wurde überwiesen, aber der Empfänger konnte sie nicht bestätigen.\n"
+"Die Überweisung wurde gespeichert und wird dem Empfänger gutgeschrieben,\n"
+"aber die begleitende Nachricht wird nicht ankommen."
+
+#: ../../../src/ui.cpp:2295
+msgid "Payment was sent, but an invalid response was received"
+msgstr "Die Zahlung wurde überwiesen, aber die Antwort war fehlerhaft"
+
+#: ../../../src/ui.cpp:2301
+msgid "Payment completed"
+msgstr "Zahlung ausgeführt"
+
+#: ../../../src/ui.cpp:2332
+#: ../../../src/ui.cpp:2478
+#: ../../../src/ui.cpp:2515
+msgid "Name"
+msgstr "Name"
+
+#: ../../../src/ui.cpp:2333
+#: ../../../src/ui.cpp:2478
+#: ../../../src/ui.cpp:2515
+msgid "Address"
+msgstr "Adresse"
+
+#: ../../../src/ui.cpp:2335
+#: ../../../src/ui.cpp:2490
+msgid "Label"
+msgstr "Beschreibung"
+
+#: ../../../src/ui.cpp:2336
+#: ../../../src/uibase.cpp:837
+msgid "Bitcoin Address"
+msgstr "Bitcoin-Adresse"
+
+#: ../../../src/ui.cpp:2460
+msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
+msgstr "Dies ist eine Ihrer eigenen Adressen für den Zahlungseingang und kann deshalb nicht in das Adressbuch übernommen werden. "
+
+#: ../../../src/ui.cpp:2478
+#: ../../../src/ui.cpp:2484
+msgid "Edit Address"
+msgstr "Adresse bearbeiten"
+
+#: ../../../src/ui.cpp:2490
+msgid "Edit Address Label"
+msgstr "Beschreibung der Adresse bearbeiten"
+
+#: ../../../src/ui.cpp:2515
+#: ../../../src/ui.cpp:2521
+msgid "Add Address"
+msgstr "Adresse hinzufügen"
+
+#: ../../../src/ui.cpp:2598
+msgid "Bitcoin"
+msgstr "Bitcoin"
+
+#: ../../../src/ui.cpp:2600
+msgid "Bitcoin - Generating"
+msgstr "Bitcoin - Erzeuge"
+
+#: ../../../src/ui.cpp:2602
+msgid "Bitcoin - (not connected)"
+msgstr "Bitcoin - (nicht verbunden)"
+
+#: ../../../src/ui.cpp:2681
+msgid "&Open Bitcoin"
+msgstr "Bitcoin Ö&ffnen"
+
+#: ../../../src/ui.cpp:2682
+msgid "&Send Bitcoins"
+msgstr "Bitcoins &senden"
+
+#: ../../../src/ui.cpp:2683
+msgid "O&ptions..."
+msgstr "O&ptionen ..."
+
+#: ../../../src/ui.cpp:2686
+#: ../../../src/uibase.cpp:25
+msgid "E&xit"
+msgstr "B&eenden"
+
+#: ../../../src/ui.cpp:2902
+msgid "Program has crashed and will terminate. "
+msgstr "Das Programm ist abgestürzt und wird beendet. "
+
+#: ../../../src/main.cpp:1868
+msgid "Warning: Disk space is low "
+msgstr "Warnung: Festplatte fast voll "
+
+#: ../../../src/main.cpp:3992
+#, c-format
+msgid "Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds "
+msgstr "Fehler: Diese Überweisung benötigt eine Überweisungsgebühr von mindestens %s wegen ihrer Größe, Komplexität oder der Benutzung erst kürzlich erhaltener Geldmittel "
+
+#: ../../../src/main.cpp:3994
+msgid "Error: Transaction creation failed "
+msgstr "Fehler: Überweisung konnte nicht erzeugt werden. "
+
+#: ../../../src/main.cpp:4003
+msgid "Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "Fehler: Die Überweisung wurde abgelehnt. Das kann passieren, wenn einige der Münzen in Ihrer Brieftasche bereits ausgegeben wurden, z.B. weil Sie eine Kopie der Brieftasche (wallet.dat) gemacht haben. Bitcoins, die mithilfe der Kopie ausgegeben wurden, sind in dieser Brieftasche noch nicht als ausgegeben markiert worden."
+
+#: ../../../src/main.cpp:4016
+msgid "Invalid amount"
+msgstr "Ungültiger Betrag"
+
+#: ../../../src/main.cpp:4023
+msgid "Invalid bitcoin address"
+msgstr "Ungültige Bitcoin-Adresse"
+
+#: ../../../src/rpc.cpp:1800
+#: ../../../src/rpc.cpp:1802
+#, c-format
+msgid "To use the %s option"
+msgstr "Um die %s Option zu nutzen"
+
+#: ../../../src/rpc.cpp:1804
+#, c-format
+msgid ""
+"Warning: %s, you must set rpcpassword=<password>\n"
+"in the configuration file: %s\n"
+"If the file does not exist, create it with owner-readable-only file permissions.\n"
+msgstr ""
+"Warnung: %s, Sie müssen rpcpassword=<password> einstellen\n"
+"in der Konfigurationsdatei: %s\n"
+"Wenn die Datei nicht existiert, erstellen Sie sie mit ausschließlich Besitzer-Leserechten.\n"
+
+#: ../../../src/rpc.cpp:1972
+#, c-format
+msgid ""
+"You must set rpcpassword=<password> in the configuration file:\n"
+"%s\n"
+"If the file does not exist, create it with owner-readable-only file permissions."
+msgstr ""
+"Sie müssen rpcpassword=<password> in der Konfigurationsdatei einstellen:\n"
+"%s\n"
+"Wenn die Datei nicht existiert, erstellen Sie sie mit ausschließlich Besitzer-Leserechten."
+
+#: ../../../src/util.cpp:865
+msgid "Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly."
+msgstr "Warnung: Bitte überprüfen Sie die Richtigkeit des Datums und der Uhrzeit Ihres Computers. Falls Ihre Uhr falsch läuft, wird Bitcoin nicht richtig funktionieren."
+
+#: ../../../src/util.cpp:898
+msgid "beta"
+msgstr "Beta"
+
+#: ../../../src/uibase.cpp:28
+msgid "&File"
+msgstr "&Datei"
+
+#: ../../../src/uibase.cpp:32
+msgid "&Your Receiving Addresses..."
+msgstr "&Ihre Empfangs-Adressen ..."
+
+#: ../../../src/uibase.cpp:36
+msgid "&Options..."
+msgstr "&Optionen ..."
+
+#: ../../../src/uibase.cpp:39
+msgid "&Settings"
+msgstr "&Einstellungen"
+
+#: ../../../src/uibase.cpp:43
+msgid "&About..."
+msgstr "Ü&ber..."
+
+#: ../../../src/uibase.cpp:46
+msgid "&Help"
+msgstr "&Hilfe"
+
+#: ../../../src/uibase.cpp:56
+msgid "Address Book"
+msgstr "Adressbuch"
+
+#: ../../../src/uibase.cpp:69
+msgid "Your Bitcoin Address:"
+msgstr "Ihre Bitcoin-Adresse:"
+
+#: ../../../src/uibase.cpp:76
+msgid " &New... "
+msgstr " &Neu ... "
+
+#: ../../../src/uibase.cpp:79
+#: ../../../src/uibase.cpp:780
+#: ../../../src/uibase.cpp:883
+msgid " &Copy to Clipboard "
+msgstr " In die Zwischenablage &kopieren "
+
+#: ../../../src/uibase.cpp:93
+msgid "Balance:"
+msgstr "Kontostand:"
+
+#: ../../../src/uibase.cpp:109
+msgid " All"
+msgstr " Alle"
+
+#: ../../../src/uibase.cpp:109
+msgid " Sent"
+msgstr " Überwiesen"
+
+#: ../../../src/uibase.cpp:109
+msgid " Received"
+msgstr " Erhalten"
+
+#: ../../../src/uibase.cpp:109
+msgid " In Progress"
+msgstr " In Bearbeitung"
+
+#: ../../../src/uibase.cpp:130
+msgid "All Transactions"
+msgstr "Alle Überweisungen"
+
+#: ../../../src/uibase.cpp:141
+msgid "Sent/Received"
+msgstr "Überwiesen/Erhalten"
+
+#: ../../../src/uibase.cpp:152
+msgid "Sent"
+msgstr "Überwiesen"
+
+#: ../../../src/uibase.cpp:163
+msgid "Received"
+msgstr "Erhalten"
+
+#: ../../../src/uibase.cpp:302
+#: ../../../src/uibase.cpp:443
+#: ../../../src/uibase.cpp:542
+#: ../../../src/uibase.cpp:722
+#: ../../../src/uibase.cpp:783
+#: ../../../src/uibase.cpp:892
+#: ../../../src/uibase.cpp:981
+msgid "OK"
+msgstr "OK"
+
+#: ../../../src/uibase.cpp:345
+msgid "&Start Bitcoin on system startup"
+msgstr "Bitcoin beim &Systemstart ausführen"
+
+#: ../../../src/uibase.cpp:348
+msgid "&Minimize to the tray instead of the taskbar"
+msgstr "In den Infobereich statt in die Taskleiste &minimieren"
+
+#: ../../../src/uibase.cpp:351
+msgid "Map port using &UPnP"
+msgstr "Portweiterleitung via &UPnP"
+
+#: ../../../src/uibase.cpp:354
+msgid "M&inimize to the tray on close"
+msgstr "Beim Schließen in den Infobereich m&inimieren"
+
+#: ../../../src/uibase.cpp:360
+msgid "&Connect through socks4 proxy: "
+msgstr "&Per Socks4-Proxy verbinden: "
+
+#: ../../../src/uibase.cpp:371
+msgid "Proxy &IP:"
+msgstr "Proxy &IP:"
+
+#: ../../../src/uibase.cpp:379
+msgid " &Port:"
+msgstr " &Port:"
+
+#: ../../../src/uibase.cpp:392
+msgid "Optional transaction fee per KB that helps make sure your transactions are processed quickly. Most transactions are 1KB. Fee 0.01 recommended."
+msgstr "Eine freiwillige Überweisungsgebühr pro KB, die dabei hilft, dass Ihre Überweisungen schnell durchgeführt werden. Die meisten Überweisungen sind 1 KB groß. Eine Gebühr von 0,01 ist empfohlen."
+
+#: ../../../src/uibase.cpp:399
+msgid "Pay transaction fee:"
+msgstr "Überweisungsgebühr:"
+
+#: ../../../src/uibase.cpp:420
+msgid "// [don't translate] Test panel 2 for future expansion"
+msgstr ""
+
+#: ../../../src/uibase.cpp:424
+msgid "// [don't translate] Let's not start multiple pages until the first page is filled up"
+msgstr ""
+
+#: ../../../src/uibase.cpp:446
+#: ../../../src/uibase.cpp:668
+#: ../../../src/uibase.cpp:727
+#: ../../../src/uibase.cpp:786
+#: ../../../src/uibase.cpp:895
+#: ../../../src/uibase.cpp:984
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: ../../../src/uibase.cpp:449
+msgid "&Apply"
+msgstr "&Anwenden"
+
+#: ../../../src/uibase.cpp:508
+msgid "Bitcoin "
+msgstr "Bitcoin "
+
+#: ../../../src/uibase.cpp:514
+msgid "version"
+msgstr "Version"
+
+#: ../../../src/uibase.cpp:525
+msgid ""
+"Copyright (c) 2009-2011 Bitcoin Developers\n"
+"\n"
+"This is experimental software.\n"
+"\n"
+"Distributed under the MIT/X11 software license, see the accompanying file \n"
+"license.txt or http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"This product includes software developed by the OpenSSL Project for use in the \n"
+"OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
+msgstr ""
+"Copyright (c) 2009-2011 Bitcoin Developers\n"
+"\n"
+"Dies ist experimentelle Software.\n"
+"\n"
+"Lizensiert unter der MIT/X11 Software-Lizenz. Beachten Sie die beiliegende\n"
+"Datei license.txt oder http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"Dieses Produkt enthält Software, die vom OpenSSL-Projekt zur Nutzung im\n"
+"OpenSSL Toolkit (http://www.openssl.org/) geschrieben wurde, sowie\n"
+"kryptographische Software von Eric Young (eay@cryptsoft.com)\n"
+"und UPnP-Software, entwickelt von Thomas Bernard."
+
+#: ../../../src/uibase.cpp:581
+msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+msgstr "Geben Sie eine Bitcoin-Adresse ein (z.B. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+
+#: ../../../src/uibase.cpp:595
+msgid "Pay &To:"
+msgstr "Überweisen &An:"
+
+#: ../../../src/uibase.cpp:610
+msgid "&Paste"
+msgstr "&Einfügen"
+
+#: ../../../src/uibase.cpp:613
+msgid " Address &Book..."
+msgstr " Address&buch..."
+
+#: ../../../src/uibase.cpp:620
+msgid "&Amount:"
+msgstr "&Betrag:"
+
+#: ../../../src/uibase.cpp:630
+msgid "T&ransfer:"
+msgstr "Ü&berweisung:"
+
+#: ../../../src/uibase.cpp:636
+msgid " Standard"
+msgstr " Standard"
+
+#: ../../../src/uibase.cpp:663
+msgid "&Send"
+msgstr "Ü&berweisen"
+
+#: ../../../src/uibase.cpp:711
+msgid ""
+"\n"
+"\n"
+"Connecting..."
+msgstr ""
+"\n"
+"\n"
+"Verbinde ..."
+
+#: ../../../src/uibase.cpp:761
+msgid "These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. The highlighted address is displayed in the main window."
+msgstr "Dies sind Ihre Bitcoin-Adressen zum Empfang von Zahlungen. Sie sollten vielleicht jedem Überweisenden eine andere Adresse geben um nachvollziehen zu können von wem eine Zahlung stammt. Die markierte Adresse wird im Hauptfenster angezeigt."
+
+#: ../../../src/uibase.cpp:774
+#: ../../../src/uibase.cpp:886
+msgid "&Edit..."
+msgstr "&Bearbeiten ..."
+
+#: ../../../src/uibase.cpp:777
+#: ../../../src/uibase.cpp:889
+msgid " &New Address... "
+msgstr " &Neue Adresse ... "
+
+#: ../../../src/uibase.cpp:849
+msgid "Sending"
+msgstr "Überweise"
+
+#: ../../../src/uibase.cpp:857
+msgid "These are your Bitcoin addresses for receiving payments. You can give a different one to each sender to keep track of who is paying you. The highlighted address will be displayed in the main window."
+msgstr "Dies sind Ihre Bitcoin-Adressen zum Empfang von Zahlungen. Sie können jedem Überweisenden eine andere Adresse geben um nachvollziehen zu können von wem eine Zahlung stammt. Die markierte Adresse wird im Hauptfenster angezeigt."
+
+#: ../../../src/uibase.cpp:870
+msgid "Receiving"
+msgstr "Empfange"
+
+#: ../../../src/uibase.cpp:880
+msgid "&Delete"
+msgstr "&Löschen"
+
+#: ../../../src/init.cpp:147
+msgid "Bitcoin version"
+msgstr "Bitcoin "
+
+#: ../../../src/init.cpp:148
+msgid "Usage:"
+msgstr "Benutz:"
+
+#: ../../../src/init.cpp:150
+msgid "Send command to -server or bitcoind\n"
+msgstr "Sende Befehl zu -server oder bitcoind\n"
+
+#: ../../../src/init.cpp:151
+msgid "List commands\n"
+msgstr "Liste Befehle auf\n"
+
+#: ../../../src/init.cpp:152
+msgid "Get help for a command\n"
+msgstr "Hilfe für einen Befehl erhalten\n"
+
+#: ../../../src/init.cpp:153
+msgid "Options:\n"
+msgstr "Optionen:\n"
+
+#: ../../../src/init.cpp:154
+msgid "Specify configuration file (default: bitcoin.conf)\n"
+msgstr "Konfigurationsdatei bestimmen (Standard: bitcoin.conf)\n"
+
+#: ../../../src/init.cpp:155
+msgid "Specify pid file (default: bitcoind.pid)\n"
+msgstr "pid-Datei bestimmen (Standard: bitcoind.pid)\n"
+
+#: ../../../src/init.cpp:156
+msgid "Generate coins\n"
+msgstr "Münzen erzeugen\n"
+
+#: ../../../src/init.cpp:157
+msgid "Don't generate coins\n"
+msgstr "Keine Münzen erzeugen\n"
+
+#: ../../../src/init.cpp:158
+msgid "Start minimized\n"
+msgstr "Minimiert starten\n"
+
+#: ../../../src/init.cpp:159
+msgid "Specify data directory\n"
+msgstr "Datenverzeichnis festlegen\n"
+
+#: ../../../src/init.cpp:160
+msgid "Connect through socks4 proxy\n"
+msgstr "Socks4-Proxy verwenden\n"
+
+#: ../../../src/init.cpp:161
+msgid "Specify connection timeout (in milliseconds)\n"
+msgstr "Verbindungs-Timeout in Milisekunden\n"
+
+#: ../../../src/init.cpp:161
+msgid "Allow DNS lookups for addnode and connect\n"
+msgstr "DNS-Auflösung für addnode und connect erlauben\n"
+
+#: ../../../src/init.cpp:162
+msgid "Add a node to connect to\n"
+msgstr "Einen Teilnehmer hinzufügen, zu dem verbunden werden soll\n"
+
+#: ../../../src/init.cpp:163
+msgid "Connect only to the specified node\n"
+msgstr "Nur zu dem angegebenen Teilnehmer verbinden\n"
+
+#: ../../../src/init.cpp:164
+msgid "Don't accept connections from outside\n"
+msgstr "Akzeptiere keine externen Verbindungen\n"
+
+#: ../../../src/init.cpp:167
+msgid "Don't attempt to use UPnP to map the listening port\n"
+msgstr "Versuche nicht, UPnP zur Portweiterleitung zu nutzen\n"
+
+#: ../../../src/init.cpp:169
+msgid "Attempt to use UPnP to map the listening port\n"
+msgstr "Versuche, UPnP zur Portweiterleitung zu nutzen\n"
+
+#: ../../../src/init.cpp:172
+msgid "Fee per KB to add to transactions you send\n"
+msgstr "Gebühr pro KB für Überweisungen, die Sie tätigen\n"
+
+#: ../../../src/init.cpp:174
+msgid "Accept command line and JSON-RPC commands\n"
+msgstr "Akzeptiere Kommandozeile und JSON-RPC-Befehle\n"
+
+#: ../../../src/init.cpp:177
+msgid "Run in the background as a daemon and accept commands\n"
+msgstr "Laufe im Hintergrund als Daemon und akzeptiere Befehle\n"
+
+#: ../../../src/init.cpp:179
+msgid "Use the test network\n"
+msgstr "Nutze das Testnetzwerk\n"
+
+#: ../../../src/init.cpp:180
+msgid "Username for JSON-RPC connections\n"
+msgstr "Benutzername für JSON-RPC-Verbindungen\n"
+
+#: ../../../src/init.cpp:181
+msgid "Password for JSON-RPC connections\n"
+msgstr "Passwort für JSON-RPC-Verbindungen\n"
+
+#: ../../../src/init.cpp:182
+msgid "Listen for JSON-RPC connections on <port> (default: 8332)\n"
+msgstr "Horche für JSON-RPC-Verbindungen auf <port> (Standard: 8332)\n"
+
+#: ../../../src/init.cpp:183
+msgid "Allow JSON-RPC connections from specified IP address\n"
+msgstr "Erlaube JSON-RPC-Verbindungen von bestimmter IP-Adresse\n"
+
+#: ../../../src/init.cpp:184
+msgid "Send commands to node running on <ip> (default: 127.0.0.1)\n"
+msgstr "Sende Befehle zum Knoten mit <ip> (Standard: 127.0.0.1)\n"
+
+#: ../../../src/init.cpp:185
+msgid "Set key pool size to <n> (default: 100)\n"
+msgstr "Setze Key-Pool-Größe auf <n> (Standard: 100)\n"
+
+#: ../../../src/init.cpp:186
+msgid "Rescan the block chain for missing wallet transactions\n"
+msgstr "Frage die Block-Kette nach fehlenden Brieftaschen-Überweisungen ab\n"
+
+#: ../../../src/init.cpp:190
+msgid ""
+"\n"
+"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"
+msgstr ""
+"\n"
+"SSL-Optionen: (siehe das Bitcoin-Wiki für SSL-Installationsanleitungen)\n"
+
+#: ../../../src/init.cpp:191
+msgid "Use OpenSSL (https) for JSON-RPC connections\n"
+msgstr "Nutze OpenSSL (https) für JSON-RPC-Verbindungen\n"
+
+#: ../../../src/init.cpp:192
+msgid "Server certificate file (default: server.cert)\n"
+msgstr "Server-Zertifikatsdatei (Standard: server.cert)\n"
+
+#: ../../../src/init.cpp:193
+msgid "Server private key (default: server.pem)\n"
+msgstr "Server-Geheimschlüssel (Standard: server.pem)\n"
+
+#: ../../../src/init.cpp:194
+msgid "Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
+msgstr "Anzunehmende Verschlüsselungen (Standard: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
+
+#: ../../../src/init.cpp:198
+msgid "This help message\n"
+msgstr "Diese Anleitung\n"
+
+#: ../../../src/init.cpp:335
+#, c-format
+msgid "Cannot obtain a lock on data directory %s. Bitcoin is probably already running."
+msgstr "Erhalte keinen Lock für Datenverzeichnis %s. Bitcoin läuft wahrscheinlich bereits."
+
+#: ../../../src/init.cpp:361
+msgid "Error loading addr.dat \n"
+msgstr "Fehler beim Laden von addr.dat \n"
+
+#: ../../../src/init.cpp:367
+msgid "Error loading blkindex.dat \n"
+msgstr "Fehler beim Laden von blkindex.dat \n"
+
+#: ../../../src/init.cpp:374
+msgid "Error loading wallet.dat \n"
+msgstr "Fehler beim Laden von wallet.dat \n"
+
+#: ../../../src/init.cpp:454
+msgid "Invalid -proxy address"
+msgstr "Ungültige -Proxy Adresse"
+
+#: ../../../src/init.cpp:477
+msgid "Invalid amount for -paytxfee=<amount>"
+msgstr "Ungültiger Betrag für -paytxfee=<amount>"
+
+#: ../../../src/init.cpp:481
+msgid "Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."
+msgstr "Warnung: -paytxfee ist sehr hoch gesetzt. Das ist die Überweisungsgebühr, die Sie fürs Senden einer Überweisung zahlen."
+
+#: ../../../src/uibase.h:147
+msgid "Transaction Details"
+msgstr "Überweisungsdetails"
+
+#: ../../../src/uibase.h:199
+msgid "Options"
+msgstr "Optionen"
+
+#: ../../../src/uibase.h:228
+msgid "About Bitcoin"
+msgstr "Über Bitcoin"
+
+#: ../../../src/uibase.h:337
+msgid "Your Bitcoin Addresses"
+msgstr "Ihre Bitcoin-Adressen"
diff --git a/locale/eo/LC_MESSAGES/bitcoin.mo b/locale/eo/LC_MESSAGES/bitcoin.mo
new file mode 100644
index 0000000000..5f898f2a5d
--- /dev/null
+++ b/locale/eo/LC_MESSAGES/bitcoin.mo
Binary files differ
diff --git a/locale/eo/LC_MESSAGES/bitcoin.po b/locale/eo/LC_MESSAGES/bitcoin.po
new file mode 100644
index 0000000000..e144cd8c76
--- /dev/null
+++ b/locale/eo/LC_MESSAGES/bitcoin.po
@@ -0,0 +1,1029 @@
+#
+# Danube <none>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Bitcoin 0.3.22\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-05-15 18:18+0100\n"
+"PO-Revision-Date: 2011-05-23 19:47+0200\n"
+"Last-Translator: Danube <none>\n"
+"Language-Team: Esperanto <none>\n"
+"Language: Esperanto\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
+"X-Poedit-Basepath: .\n"
+"Plural-Forms: j\n"
+"X-Poedit-Language: Esperanto\n"
+"X-Poedit-SearchPath-0: ../../..\n"
+
+#: ../../../src/net.cpp:1499
+#, c-format
+msgid ""
+"Unable to bind to port %d on this computer. Bitcoin is probably already "
+"running."
+msgstr ""
+"Ne povis alligi al la porton %d ĉe ĉi tiu komputilo. Verŝajne la Bitmonero "
+"jam estas rulanta."
+
+#: ../../../src/ui.cpp:202
+#, c-format
+msgid ""
+"This transaction is over the size limit. You can still send it for a fee of "
+"%s, which goes to the nodes that process your transaction and helps to "
+"support the network. Do you want to pay the fee?"
+msgstr ""
+"Tiu ĉi transakcio transpasas la grandeclimiton. Tamen vi povas sendi ĝin "
+"pagante transakcian koston de %s. Tiun koston ricevas la nodoj, kiuj "
+"realigas vian transakcion kaj kiuj helpas subteni la reton. Ĉu vi volas pagi "
+"la transakcian koston?"
+
+#: ../../../src/ui.cpp:301
+msgid "Status"
+msgstr "Stato"
+
+#: ../../../src/ui.cpp:302
+msgid "Date"
+msgstr "Dato"
+
+#: ../../../src/ui.cpp:303
+msgid "Description"
+msgstr "Priskribo"
+
+#: ../../../src/ui.cpp:304
+msgid "Debit"
+msgstr "Debeto"
+
+#: ../../../src/ui.cpp:305
+msgid "Credit"
+msgstr "Kredito"
+
+#: ../../../src/ui.cpp:511
+#, c-format
+msgid "Open for %d blocks"
+msgstr "Malfermita por %d blokoj"
+
+#: ../../../src/ui.cpp:513
+#, c-format
+msgid "Open until %s"
+msgstr "Malfermita ĝis %s"
+
+#: ../../../src/ui.cpp:519
+#, c-format
+msgid "%d/offline?"
+msgstr "%d/senkonekta?"
+
+#: ../../../src/ui.cpp:521
+#, c-format
+msgid "%d/unconfirmed"
+msgstr "%d/ne konfirmita"
+
+#: ../../../src/ui.cpp:523
+#, c-format
+msgid "%d confirmations"
+msgstr "%d konfirmoj"
+
+#: ../../../src/ui.cpp:608
+msgid "Generated"
+msgstr "Kreita"
+
+#: ../../../src/ui.cpp:616
+#, c-format
+msgid "Generated (%s matures in %d more blocks)"
+msgstr "Kreita (%s maturiĝos post %d blokoj)"
+
+#: ../../../src/ui.cpp:620
+msgid ""
+"Generated - Warning: This block was not received by any other nodes and will "
+"probably not be accepted!"
+msgstr ""
+"Kreita - Averto: Tiu bloko ne estas ricevita de iuj ajn aliaj nodoj! "
+"Verŝajne ĝi ne estos akceptita!"
+
+#: ../../../src/ui.cpp:624
+msgid "Generated (not accepted)"
+msgstr "Kreita (ne akceptita)"
+
+#: ../../../src/ui.cpp:634
+msgid "From: "
+msgstr "De: "
+
+#: ../../../src/ui.cpp:658
+msgid "Received with: "
+msgstr "Ricevita per: "
+
+#: ../../../src/ui.cpp:704
+msgid "Payment to yourself"
+msgstr "Pago al vi mem"
+
+#: ../../../src/ui.cpp:738
+msgid "To: "
+msgstr "Al: "
+
+#: ../../../src/ui.cpp:1053
+msgid " Generating"
+msgstr " Kreanta"
+
+#: ../../../src/ui.cpp:1055
+msgid "(not connected)"
+msgstr "(ne konektita)"
+
+#: ../../../src/ui.cpp:1058
+#, c-format
+msgid " %d connections %d blocks %d transactions"
+msgstr " %d konektoj %d blokoj %d transakcioj"
+
+#: ../../../src/ui.cpp:1163 ../../../src/ui.cpp:2527
+msgid "New Receiving Address"
+msgstr "Nova Ricevadreso"
+
+#: ../../../src/ui.cpp:1164 ../../../src/ui.cpp:2528
+msgid ""
+"You should use a new address for each payment you receive.\n"
+"\n"
+"Label"
+msgstr ""
+"Uzu novan adreson por ĉiu ajn pago kiu vi ricevos.\n"
+"\n"
+"Etikedo"
+
+#: ../../../src/ui.cpp:1233
+msgid "<b>Status:</b> "
+msgstr "<b>Stato:</b> "
+
+#: ../../../src/ui.cpp:1238
+msgid ", has not been successfully broadcast yet"
+msgstr ", ankoraŭ ne estas dissendita sukcese"
+
+#: ../../../src/ui.cpp:1240
+#, c-format
+msgid ", broadcast through %d node"
+msgstr ", estas dissendita per %d nodo"
+
+#: ../../../src/ui.cpp:1242
+#, c-format
+msgid ", broadcast through %d nodes"
+msgstr ", estas dissendita per %d nodoj"
+
+#: ../../../src/ui.cpp:1246
+msgid "<b>Date:</b> "
+msgstr "<b>Dato:</b> "
+
+#: ../../../src/ui.cpp:1254
+msgid "<b>Source:</b> Generated<br>"
+msgstr "<b>Fonto:</b> Kreita<br>"
+
+#: ../../../src/ui.cpp:1260 ../../../src/ui.cpp:1278
+msgid "<b>From:</b> "
+msgstr "<b>De:</b> "
+
+#: ../../../src/ui.cpp:1278
+msgid "unknown"
+msgstr "nekonata"
+
+#: ../../../src/ui.cpp:1279 ../../../src/ui.cpp:1303 ../../../src/ui.cpp:1362
+msgid "<b>To:</b> "
+msgstr "<b>Al:</b> "
+
+#: ../../../src/ui.cpp:1282
+msgid " (yours, label: "
+msgstr " (via, etikedo: "
+
+#: ../../../src/ui.cpp:1284
+msgid " (yours)"
+msgstr " (via)"
+
+#: ../../../src/ui.cpp:1321 ../../../src/ui.cpp:1333 ../../../src/ui.cpp:1379
+#: ../../../src/ui.cpp:1396
+msgid "<b>Credit:</b> "
+msgstr "<b>Кredito:</b> "
+
+#: ../../../src/ui.cpp:1323
+#, c-format
+msgid "(%s matures in %d more blocks)"
+msgstr "(%s maturiĝos post %d blokoj)"
+
+#: ../../../src/ui.cpp:1325
+msgid "(not accepted)"
+msgstr "(ne akceptita)"
+
+#: ../../../src/ui.cpp:1370 ../../../src/ui.cpp:1378 ../../../src/ui.cpp:1393
+msgid "<b>Debit:</b> "
+msgstr "<b>Debeto:</b> "
+
+#: ../../../src/ui.cpp:1384
+msgid "<b>Transaction fee:</b> "
+msgstr "<b>Transakcia kosto:</b> "
+
+#: ../../../src/ui.cpp:1400
+msgid "<b>Net amount:</b> "
+msgstr "<b>Neta kvanto:</b> "
+
+#: ../../../src/ui.cpp:1407
+msgid "Message:"
+msgstr "Mesaĝo:"
+
+#: ../../../src/ui.cpp:1409
+msgid "Comment:"
+msgstr "Komento:"
+
+#: ../../../src/ui.cpp:1412
+msgid ""
+"Generated coins must wait 120 blocks before they can be spent. When you "
+"generated this block, it was broadcast to the network to be added to the "
+"block chain. If it fails to get into the chain, it will change to \"not "
+"accepted\" and not be spendable. This may occasionally happen if another "
+"node generates a block within a few seconds of yours."
+msgstr ""
+"Kreitaj moneroj devas atendi dum 120 blokoj ĝis ili povas esti elspezita. "
+"Kiam vi kreis tiun blokon, ĝi estis dissendita al la reton por esti "
+"inkludita en la blokĉeno. Se ĝi malsukcesos esti inkludita en la ĉeno, ĝi "
+"ŝanĝiĝos al \\\"ne akceptita\\\" kaj estos neelspezebla. Kelkfoje tio povas "
+"okazi se alia nodo kreas blokon samtempe (dum kelkaj sekundoj)."
+
+#: ../../../src/ui.cpp:1592
+msgid "Cannot write autostart/bitcoin.desktop file"
+msgstr "Ne povas skribi la dosieron autostart/bitcoin.desktop"
+
+#: ../../../src/ui.cpp:1628
+msgid "Main"
+msgstr "Ĉefa"
+
+#: ../../../src/ui.cpp:1636
+msgid "&Start Bitcoin on window system startup"
+msgstr "&Lanĉu Bitmoneron kiam vindozo ekas"
+
+#: ../../../src/ui.cpp:1643
+msgid "&Minimize on close"
+msgstr "Nur &kaŝiĝi anstataŭ malfermiĝi"
+
+#: ../../../src/ui.cpp:1785
+#, c-format
+msgid "version %s"
+msgstr "versio %s"
+
+#: ../../../src/ui.cpp:1897
+msgid "Error in amount "
+msgstr "Eraro en kvanto "
+
+#: ../../../src/ui.cpp:1897 ../../../src/ui.cpp:1902 ../../../src/ui.cpp:1907
+#: ../../../src/ui.cpp:1942 ../../../src/uibase.cpp:55
+msgid "Send Coins"
+msgstr "Sendu monerojn"
+
+#: ../../../src/ui.cpp:1902
+msgid "Amount exceeds your balance "
+msgstr "Kvanto transpasas vian bonhavon "
+
+#: ../../../src/ui.cpp:1907
+msgid "Total exceeds your balance when the "
+msgstr "Entuta sumo transpasas vian bonhavon, se la "
+
+#: ../../../src/ui.cpp:1907
+msgid " transaction fee is included "
+msgstr " transakcia kosto estas inkludita "
+
+#: ../../../src/ui.cpp:1925
+msgid "Payment sent "
+msgstr "Pago sendita "
+
+#: ../../../src/ui.cpp:1925 ../../../src/ui.cpp:1930 ../../../src/ui.cpp:2074
+#: ../../../src/ui.cpp:2227 ../../../src/main.cpp:3999
+msgid "Sending..."
+msgstr "Sendanta..."
+
+#: ../../../src/ui.cpp:1942
+msgid "Invalid address "
+msgstr "Malvalida adreso "
+
+#: ../../../src/ui.cpp:1995
+#, c-format
+msgid "Sending %s to %s"
+msgstr "Sendanta %s al %s"
+
+#: ../../../src/ui.cpp:2068 ../../../src/ui.cpp:2101
+msgid "CANCELLED"
+msgstr "MALVALIDIGITA"
+
+#: ../../../src/ui.cpp:2072
+msgid "Cancelled"
+msgstr "Malvalidigita"
+
+#: ../../../src/ui.cpp:2074
+msgid "Transfer cancelled "
+msgstr "Transfero malvalidigita "
+
+#: ../../../src/ui.cpp:2127
+msgid "Error: "
+msgstr "Eraro: "
+
+#: ../../../src/ui.cpp:2141 ../../../src/ui.cpp:2212
+#: ../../../src/main.cpp:4018
+msgid "Insufficient funds"
+msgstr "Malsufiĉa mono"
+
+#: ../../../src/ui.cpp:2146
+msgid "Connecting..."
+msgstr "Konektanta..."
+
+#: ../../../src/ui.cpp:2151
+msgid "Unable to connect"
+msgstr "Ne povas konekti"
+
+#: ../../../src/ui.cpp:2156
+msgid "Requesting public key..."
+msgstr "Postulanta publikan ĉifroŝlosilon..."
+
+#: ../../../src/ui.cpp:2168
+msgid "Received public key..."
+msgstr "Ricevinta publikan ĉifroŝlosilon..."
+
+#: ../../../src/ui.cpp:2182
+msgid "Recipient is not accepting transactions sent by IP address"
+msgstr "Adresato ne akceptas transakciojn senditajn per IP adreso"
+
+#: ../../../src/ui.cpp:2184
+msgid "Transfer was not accepted"
+msgstr "Transfero ne estis akceptita"
+
+#: ../../../src/ui.cpp:2193
+msgid "Invalid response received"
+msgstr "Malvalida respondo ricevita"
+
+#: ../../../src/ui.cpp:2208
+msgid "Creating transaction..."
+msgstr "Kreanta la transakcion..."
+
+#: ../../../src/ui.cpp:2220
+#, c-format
+msgid ""
+"This transaction requires a transaction fee of at least %s because of its "
+"amount, complexity, or use of recently received funds"
+msgstr ""
+"Tiu ĉi transakcio necesas transakcian koston de minimume %s, ĉar ĝia kvanto "
+"aŭ ĝia komplekseco aŭ la uzo de mono lastatempe ricevita."
+
+#: ../../../src/ui.cpp:2222
+msgid "Transaction creation failed"
+msgstr "La transakcio ne funkciis"
+
+#: ../../../src/ui.cpp:2229
+msgid "Transaction aborted"
+msgstr "Transakcio malvalidigita"
+
+#: ../../../src/ui.cpp:2237
+msgid "Lost connection, transaction cancelled"
+msgstr "Perdis la konekton, transakcio malvalidigita"
+
+#: ../../../src/ui.cpp:2253
+msgid "Sending payment..."
+msgstr "Sendanta pagon..."
+
+#: ../../../src/ui.cpp:2259
+msgid ""
+"The transaction was rejected. This might happen if some of the coins in "
+"your wallet were already spent, such as if you used a copy of wallet.dat and "
+"coins were spent in the copy but not marked as spent here."
+msgstr ""
+"La transakcio estas malakceptita. Tio povas okazi se iom da moneroj en via "
+"monujo jam estis elspezata, ekzemple se vi uzis kopion de la monujo wallet."
+"dat kaj moneroj estis elspezita en la kopio, sed ne estas markata kiel "
+"elspezata ĉi tie."
+
+#: ../../../src/ui.cpp:2268
+msgid "Waiting for confirmation..."
+msgstr "Atendanta la konfirmon..."
+
+#: ../../../src/ui.cpp:2286
+msgid ""
+"The payment was sent, but the recipient was unable to verify it.\n"
+"The transaction is recorded and will credit to the recipient,\n"
+"but the comment information will be blank."
+msgstr ""
+"La pago estis sendita, sed la ricevanto ne povis atesti ĝin.\n"
+"La transakcio estas registrita kaj estos skribita en la krediton de la "
+"ricevanto,\n"
+"sed la komenta informo estas malplena."
+
+#: ../../../src/ui.cpp:2295
+msgid "Payment was sent, but an invalid response was received"
+msgstr "Pago estis sendita, sed malvalida respondo estas ricivita"
+
+#: ../../../src/ui.cpp:2301
+msgid "Payment completed"
+msgstr "Pago kompletigita"
+
+#: ../../../src/ui.cpp:2332 ../../../src/ui.cpp:2478 ../../../src/ui.cpp:2515
+msgid "Name"
+msgstr "Nomo"
+
+#: ../../../src/ui.cpp:2333 ../../../src/ui.cpp:2478 ../../../src/ui.cpp:2515
+msgid "Address"
+msgstr "Adreso"
+
+#: ../../../src/ui.cpp:2335 ../../../src/ui.cpp:2490
+msgid "Label"
+msgstr "Etikedo"
+
+#: ../../../src/ui.cpp:2336 ../../../src/uibase.cpp:837
+msgid "Bitcoin Address"
+msgstr "Bitmonera adreso"
+
+#: ../../../src/ui.cpp:2460
+msgid ""
+"This is one of your own addresses for receiving payments and cannot be "
+"entered in the address book. "
+msgstr ""
+"Tiu ĉi estas unu el viaj adresoj mem pro ricevi pagojn. Ĝi ne povas esti "
+"enskribita en la adresaro. "
+
+#: ../../../src/ui.cpp:2478 ../../../src/ui.cpp:2484
+msgid "Edit Address"
+msgstr "Editu adreson"
+
+#: ../../../src/ui.cpp:2490
+msgid "Edit Address Label"
+msgstr "Editu adresan etikedon"
+
+#: ../../../src/ui.cpp:2515 ../../../src/ui.cpp:2521
+msgid "Add Address"
+msgstr "Aldonu adreson"
+
+#: ../../../src/ui.cpp:2598
+msgid "Bitcoin"
+msgstr "Bitmonero"
+
+#: ../../../src/ui.cpp:2600
+msgid "Bitcoin - Generating"
+msgstr "Bitmonero - Kreanta"
+
+#: ../../../src/ui.cpp:2602
+msgid "Bitcoin - (not connected)"
+msgstr "Bitcoin - (ne konektita)"
+
+#: ../../../src/ui.cpp:2681
+msgid "&Open Bitcoin"
+msgstr "&Malfermu Bitmoneron"
+
+#: ../../../src/ui.cpp:2682
+msgid "&Send Bitcoins"
+msgstr "&Sendu bitmonerojn"
+
+#: ../../../src/ui.cpp:2683
+msgid "O&ptions..."
+msgstr "&Opcioj..."
+
+#: ../../../src/ui.cpp:2686 ../../../src/uibase.cpp:25
+msgid "E&xit"
+msgstr "&Fermu"
+
+#: ../../../src/ui.cpp:2902
+msgid "Program has crashed and will terminate. "
+msgstr "La programo kraŝis kaj haltiĝos. "
+
+#: ../../../src/main.cpp:1868
+msgid "Warning: Disk space is low "
+msgstr "Averto: Malmulte da storloko "
+
+#: ../../../src/main.cpp:3992
+#, c-format
+msgid ""
+"Error: This transaction requires a transaction fee of at least %s because of "
+"its amount, complexity, or use of recently received funds "
+msgstr ""
+"Eraro: Tiu ĉi transakcio necesas transakcian koston de minimume %s, ĉar ĝia "
+"kvanto aŭ ĝia komplekseco aŭ la uzo de mono lastatempe ricevitaŭ "
+
+#: ../../../src/main.cpp:3994
+msgid "Error: Transaction creation failed "
+msgstr "Eraro: La kreado de la transakcio ne funkciis "
+
+#: ../../../src/main.cpp:4003
+msgid ""
+"Error: The transaction was rejected. This might happen if some of the coins "
+"in your wallet were already spent, such as if you used a copy of wallet.dat "
+"and coins were spent in the copy but not marked as spent here."
+msgstr ""
+"Eraro: La transakcio estas malakceptita. Tio povas okazi se iom da moneroj "
+"en via monujo jam estas elspezita, ekzemple se vi uzis kopion de la monujo "
+"wallet.dat kaj moneroj estis elspezita en la kopio, sed ne estas markata "
+"kiel elspezata ĉi tie."
+
+#: ../../../src/main.cpp:4016
+msgid "Invalid amount"
+msgstr "Malvalida kvanto"
+
+#: ../../../src/main.cpp:4023
+msgid "Invalid bitcoin address"
+msgstr "Malvalida bitmonera adreso"
+
+#: ../../../src/rpc.cpp:1800 ../../../src/rpc.cpp:1802
+#, c-format
+msgid "To use the %s option"
+msgstr "Por uzi la %s optcion"
+
+#: ../../../src/rpc.cpp:1804
+#, c-format
+msgid ""
+"Warning: %s, you must set rpcpassword=<password>\n"
+"in the configuration file: %s\n"
+"If the file does not exist, create it with owner-readable-only file "
+"permissions.\n"
+msgstr ""
+"Averto: %s, vi devas meti rpcpassword=<pasvorto>\n"
+"en la agorda dosiero: %s\n"
+"Se la doriero ne ekzistas, kreu ĝin nurposedantlegeble.\n"
+
+#: ../../../src/rpc.cpp:1972
+#, c-format
+msgid ""
+"You must set rpcpassword=<password> in the configuration file:\n"
+"%s\n"
+"If the file does not exist, create it with owner-readable-only file "
+"permissions."
+msgstr ""
+"Vi devas meti rpcpassword=<pasvorto> en la agorda dosiero:\n"
+"%s\n"
+"Se la dosiero ne ekzistas, kreu ĝin nurposedantlegeble."
+
+#: ../../../src/util.cpp:865
+msgid ""
+"Warning: Please check that your computer's date and time are correct. If "
+"your clock is wrong Bitcoin will not work properly."
+msgstr ""
+"Averto: Bonvole kontrolu ke la dato kaj la tempo de via komputilo estas "
+"ĝusta. Se viaj horloĝo malĝustas, Bitmonero ne funkcios korekte."
+
+#: ../../../src/util.cpp:898
+msgid "beta"
+msgstr "beta"
+
+#: ../../../src/uibase.cpp:28
+msgid "&File"
+msgstr "&Dosiero"
+
+#: ../../../src/uibase.cpp:32
+msgid "&Your Receiving Addresses..."
+msgstr "&Viaj ricevadresoj..."
+
+#: ../../../src/uibase.cpp:36
+msgid "&Options..."
+msgstr "&Opcioj..."
+
+#: ../../../src/uibase.cpp:39
+msgid "&Settings"
+msgstr "&Agordoj"
+
+#: ../../../src/uibase.cpp:43
+msgid "&About..."
+msgstr "&Pri..."
+
+#: ../../../src/uibase.cpp:46
+msgid "&Help"
+msgstr "&Helpo"
+
+#: ../../../src/uibase.cpp:56
+msgid "Address Book"
+msgstr "Adresaro"
+
+#: ../../../src/uibase.cpp:69
+msgid "Your Bitcoin Address:"
+msgstr "Via bitmonera adreso:"
+
+#: ../../../src/uibase.cpp:76
+msgid " &New... "
+msgstr " &Nova... "
+
+#: ../../../src/uibase.cpp:79 ../../../src/uibase.cpp:780
+#: ../../../src/uibase.cpp:883
+msgid " &Copy to Clipboard "
+msgstr " &Kopiu al la poŝon "
+
+#: ../../../src/uibase.cpp:93
+msgid "Balance:"
+msgstr "Bonhavo:"
+
+#: ../../../src/uibase.cpp:109
+msgid " All"
+msgstr " Ĉiom"
+
+#: ../../../src/uibase.cpp:109
+msgid " Sent"
+msgstr " Sendita"
+
+#: ../../../src/uibase.cpp:109
+msgid " Received"
+msgstr " Ricevita"
+
+#: ../../../src/uibase.cpp:109
+msgid " In Progress"
+msgstr " Progresanta"
+
+#: ../../../src/uibase.cpp:130
+msgid "All Transactions"
+msgstr "Ĉiuj transakcioj"
+
+#: ../../../src/uibase.cpp:141
+msgid "Sent/Received"
+msgstr "Sendita/Ricevita"
+
+#: ../../../src/uibase.cpp:152
+msgid "Sent"
+msgstr "Sendita"
+
+#: ../../../src/uibase.cpp:163
+msgid "Received"
+msgstr "Ricevita"
+
+#: ../../../src/uibase.cpp:302 ../../../src/uibase.cpp:443
+#: ../../../src/uibase.cpp:542 ../../../src/uibase.cpp:722
+#: ../../../src/uibase.cpp:783 ../../../src/uibase.cpp:892
+#: ../../../src/uibase.cpp:981
+msgid "OK"
+msgstr "Bone"
+
+#: ../../../src/uibase.cpp:345
+msgid "&Start Bitcoin on system startup"
+msgstr "&Lanĉigu Bitmoneron kiam la sistemo ekas"
+
+#: ../../../src/uibase.cpp:348
+msgid "&Minimize to the tray instead of the taskbar"
+msgstr "&Kaŝu al la programan pleton anstataŭ al la programan linion"
+
+#: ../../../src/uibase.cpp:351
+msgid "Map port using &UPnP"
+msgstr "Pordplusendo per &UPnP"
+
+#: ../../../src/uibase.cpp:354
+msgid "M&inimize to the tray on close"
+msgstr "K&aŝu al la programan pleton anstataŭ malfermu ĝin"
+
+#: ../../../src/uibase.cpp:360
+msgid "&Connect through socks4 proxy: "
+msgstr "&Konekti per socks4 prokuro: "
+
+#: ../../../src/uibase.cpp:371
+msgid "Proxy &IP:"
+msgstr "Prokura &IP:"
+
+#: ../../../src/uibase.cpp:379
+msgid " &Port:"
+msgstr " &Pordo:"
+
+#: ../../../src/uibase.cpp:392
+msgid ""
+"Optional transaction fee per KB that helps make sure your transactions are "
+"processed quickly. Most transactions are 1KB. Fee 0.01 recommended."
+msgstr ""
+"Volonta transakcia kosto po kilobajto, kiu helpas certigi ke viaj "
+"transakcioj estas plenumita rapide. La plej transacioj estas 1 kilobajto. "
+"Rekomendita transakcia kosto: 0.01"
+
+#: ../../../src/uibase.cpp:399
+msgid "Pay transaction fee:"
+msgstr "Pagu transakcian koston:"
+
+#: ../../../src/uibase.cpp:420
+msgid "// [don't translate] Test panel 2 for future expansion"
+msgstr ""
+
+#: ../../../src/uibase.cpp:424
+msgid ""
+"// [don't translate] Let's not start multiple pages until the first page is "
+"filled up"
+msgstr ""
+
+#: ../../../src/uibase.cpp:446 ../../../src/uibase.cpp:668
+#: ../../../src/uibase.cpp:727 ../../../src/uibase.cpp:786
+#: ../../../src/uibase.cpp:895 ../../../src/uibase.cpp:984
+msgid "Cancel"
+msgstr "Malvalidigu"
+
+#: ../../../src/uibase.cpp:449
+msgid "&Apply"
+msgstr "&Apliku"
+
+#: ../../../src/uibase.cpp:508
+msgid "Bitcoin "
+msgstr "Bitmonero "
+
+#: ../../../src/uibase.cpp:514
+msgid "version"
+msgstr "versio"
+
+#: ../../../src/uibase.cpp:525
+msgid ""
+"Copyright (c) 2009-2011 Bitcoin Developers\n"
+"\n"
+"This is experimental software.\n"
+"\n"
+"Distributed under the MIT/X11 software license, see the accompanying file \n"
+"license.txt or http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"This product includes software developed by the OpenSSL Project for use in "
+"the \n"
+"OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written "
+"by \n"
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
+msgstr ""
+"Kopirajto (c) 2009-2011 Disvolviĝuloj de Bitmonero\n"
+"\n"
+"Tio ĉi estas eksperimenta softvaro.\n"
+"\n"
+"Distribita laŭ la MIT/X11 softvara licenco. Vidu la kundonitan dosieron \n"
+"license.txt aŭ http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"Tio ĉi produkto inkludas softvaron, kiu estas disvolviĝita de la OpenSSL "
+"projekto por uzo en la \n"
+"OpenSSL Toolkit (http://www.openssl.org/), kaj kriptografia softvaro verkita "
+"de \n"
+"Eric Young (eay@cryptsoft.com) kaj UPnP softvaro verkita de Thomas Bernard."
+
+#: ../../../src/uibase.cpp:581
+msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+msgstr "Entajpu bitmoneran adreson (ekz. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+
+#: ../../../src/uibase.cpp:595
+msgid "Pay &To:"
+msgstr "Pagu &al:"
+
+#: ../../../src/uibase.cpp:610
+msgid "&Paste"
+msgstr "&Elpoŝigi"
+
+#: ../../../src/uibase.cpp:613
+msgid " Address &Book..."
+msgstr " &Adresaro..."
+
+#: ../../../src/uibase.cpp:620
+msgid "&Amount:"
+msgstr "&Kvanto:"
+
+#: ../../../src/uibase.cpp:630
+msgid "T&ransfer:"
+msgstr "T&ransfero:"
+
+#: ../../../src/uibase.cpp:636
+msgid " Standard"
+msgstr " Normo"
+
+#: ../../../src/uibase.cpp:663
+msgid "&Send"
+msgstr "&Sendu"
+
+#: ../../../src/uibase.cpp:711
+msgid ""
+"\n"
+"\n"
+"Connecting..."
+msgstr ""
+"\n"
+"\n"
+"Konektanta..."
+
+#: ../../../src/uibase.cpp:761
+msgid ""
+"These are your Bitcoin addresses for receiving payments. You may want to "
+"give a different one to each sender so you can keep track of who is paying "
+"you. The highlighted address is displayed in the main window."
+msgstr ""
+"Tiuj ĉi estas viaj bitmonerajn adresojn por ricevi pagojn. Vi povus voli "
+"doni malsaman adreson al ĉiuj sendanto, por ke vi povas vidi kiu pagis vin. "
+"La markita adreso estas vidigita en la ĉefa fenestro."
+
+#: ../../../src/uibase.cpp:774 ../../../src/uibase.cpp:886
+msgid "&Edit..."
+msgstr "&Redakti..."
+
+#: ../../../src/uibase.cpp:777 ../../../src/uibase.cpp:889
+msgid " &New Address... "
+msgstr " &Nova adreso... "
+
+#: ../../../src/uibase.cpp:849
+msgid "Sending"
+msgstr "Sendanta"
+
+#: ../../../src/uibase.cpp:857
+msgid ""
+"These are your Bitcoin addresses for receiving payments. You can give a "
+"different one to each sender to keep track of who is paying you. The "
+"highlighted address will be displayed in the main window."
+msgstr ""
+"Tiuj estas viaj bitmoneraj adresoj por ricevi pagojn. Vi povas doni malsaman "
+"adreson al ĉiuj sendanto, por ke vi povas vidi kiu pagis vin. La markita "
+"adreso estas vidigita en la ĉefa fenestro."
+
+#: ../../../src/uibase.cpp:870
+msgid "Receiving"
+msgstr "Ricevanta"
+
+#: ../../../src/uibase.cpp:880
+msgid "&Delete"
+msgstr "&Viŝu"
+
+#: ../../../src/init.cpp:147
+msgid "Bitcoin version"
+msgstr "Versio de Bitmonero"
+
+#: ../../../src/init.cpp:148
+msgid "Usage:"
+msgstr "Uzado:"
+
+#: ../../../src/init.cpp:150
+msgid "Send command to -server or bitcoind\n"
+msgstr "Sendu komandon al aŭ -server aŭ bitcoind\n"
+
+#: ../../../src/init.cpp:151
+msgid "List commands\n"
+msgstr "Listigu komandojn\n"
+
+#: ../../../src/init.cpp:152
+msgid "Get help for a command\n"
+msgstr "Ricevu helpon de komando\n"
+
+#: ../../../src/init.cpp:153
+msgid "Options:\n"
+msgstr "Opcioj:\n"
+
+#: ../../../src/init.cpp:154
+msgid "Specify configuration file (default: bitcoin.conf)\n"
+msgstr "Elektu agordan dosieron (defaŭlto: bitcoin.conf)\n"
+
+#: ../../../src/init.cpp:155
+msgid "Specify pid file (default: bitcoind.pid)\n"
+msgstr "Elektu pid dosieron (defaŭlto: bitcoind.pid)\n"
+
+#: ../../../src/init.cpp:156
+msgid "Generate coins\n"
+msgstr "Generate coins\n"
+
+#: ../../../src/init.cpp:157
+msgid "Don't generate coins\n"
+msgstr "Ne kreu monerojn\n"
+
+#: ../../../src/init.cpp:158
+msgid "Start minimized\n"
+msgstr "Lanĉiĝu kaŝe\n"
+
+#: ../../../src/init.cpp:159
+msgid "Specify data directory\n"
+msgstr "Elektu datenara dosierujon\n"
+
+#: ../../../src/init.cpp:160
+msgid "Connect through socks4 proxy\n"
+msgstr "Konektu per socks4 prokuro\n"
+
+#: ../../../src/init.cpp:161
+msgid "Allow DNS lookups for addnode and connect\n"
+msgstr "Permesu DNS solvon por aldoni nodon kaj konekti\n"
+
+#: ../../../src/init.cpp:162
+msgid "Add a node to connect to\n"
+msgstr "Aldonu nodon konektotan\n"
+
+#: ../../../src/init.cpp:163
+msgid "Connect only to the specified node\n"
+msgstr "Konektu nur al specifan nodon\n"
+
+#: ../../../src/init.cpp:164
+msgid "Don't accept connections from outside\n"
+msgstr "Ne akceptu eksterajn konektojn\n"
+
+#: ../../../src/init.cpp:167
+msgid "Don't attempt to use UPnP to map the listening port\n"
+msgstr "Ne provu uzi UPnP-on por la pordplusendo\n"
+
+#: ../../../src/init.cpp:169
+msgid "Attempt to use UPnP to map the listening port\n"
+msgstr "Provu uzi UPnP-on por la pordplusendo\n"
+
+#: ../../../src/init.cpp:172
+msgid "Fee per KB to add to transactions you send\n"
+msgstr "Kosto po kilobajto aldonota al viaj transakcioj sendataj\n"
+
+#: ../../../src/init.cpp:174
+msgid "Accept command line and JSON-RPC commands\n"
+msgstr "Akceptu kaj komandliniajn kaj JSON-RPC-ajn komandojn\n"
+
+#: ../../../src/init.cpp:177
+msgid "Run in the background as a daemon and accept commands\n"
+msgstr "Lanĉigu fone kiel demono kaj akceptu komandojn\n"
+
+#: ../../../src/init.cpp:179
+msgid "Use the test network\n"
+msgstr "Uzu la testreton\n"
+
+#: ../../../src/init.cpp:180
+msgid "Username for JSON-RPC connections\n"
+msgstr "Salutnomo por JSON-RPC-aj konektoj\n"
+
+#: ../../../src/init.cpp:181
+msgid "Password for JSON-RPC connections\n"
+msgstr "Pasvorto por JSON-RPC-aj konektoj\n"
+
+#: ../../../src/init.cpp:182
+msgid "Listen for JSON-RPC connections on <port> (default: 8332)\n"
+msgstr "Aŭskultu JSON-RPC-ajn konektojn ĉe <pordo> (defaŭlto: 8332)\n"
+
+#: ../../../src/init.cpp:183
+msgid "Allow JSON-RPC connections from specified IP address\n"
+msgstr "Permesu JSON-RPC-ajn konektojn el specifa IP-adreso\n"
+
+#: ../../../src/init.cpp:184
+msgid "Send commands to node running on <ip> (default: 127.0.0.1)\n"
+msgstr "Sendu komandojn al nodo rulanta ĉe <ip> (defaŭlto: 127.0.0.1)\n"
+
+#: ../../../src/init.cpp:185
+msgid "Set key pool size to <n> (default: 100)\n"
+msgstr "Difinu la grandecon de la ĉifroŝlosilaro kiel <n> (defaŭlto: 100)\n"
+
+#: ../../../src/init.cpp:186
+msgid "Rescan the block chain for missing wallet transactions\n"
+msgstr "Reskandu la blokĉenon por mankantaj transakcioj en la monujo\n"
+
+#: ../../../src/init.cpp:190
+msgid ""
+"\n"
+"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"
+msgstr ""
+"\n"
+"SSL-aj opcioj: (Legu la Vikipedion de Bitmonero pri la agordaĵaj instruoj)\n"
+
+#: ../../../src/init.cpp:191
+msgid "Use OpenSSL (https) for JSON-RPC connections\n"
+msgstr "Uzu OpenSSL (https) por JSON-RPC-aj konektoj\n"
+
+#: ../../../src/init.cpp:192
+msgid "Server certificate file (default: server.cert)\n"
+msgstr "Argorda doesiero de la servilo (defaŭlto: server.cert)\n"
+
+#: ../../../src/init.cpp:193
+msgid "Server private key (default: server.pem)\n"
+msgstr "Privata ĉifroŝlosilo de la servilo (defaŭlto: server.pem)\n"
+
+#: ../../../src/init.cpp:194
+msgid ""
+"Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:"
+"@STRENGTH)\n"
+msgstr ""
+"\"Akcepteblaj ĉifroj (defaŭlto: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:"
+"@STRENGTH)\n"
+
+#: ../../../src/init.cpp:198
+msgid "This help message\n"
+msgstr "Ĉi tiu helpa mesaĝo\n"
+
+#: ../../../src/init.cpp:335
+#, c-format
+msgid ""
+"Cannot obtain a lock on data directory %s. Bitcoin is probably already "
+"running."
+msgstr ""
+"Ne povas ŝlosi la datenan dosierujon %s. Verŝajne alia instanco de la "
+"programo Bitmonero jam rulas."
+
+#: ../../../src/init.cpp:361
+msgid "Error loading addr.dat \n"
+msgstr "Eraro ŝarĝante la dosieron addr.dat \n"
+
+#: ../../../src/init.cpp:367
+msgid "Error loading blkindex.dat \n"
+msgstr "Eraro ŝarĝante la dosieron blkindex.dat \n"
+
+#: ../../../src/init.cpp:374
+msgid "Error loading wallet.dat \n"
+msgstr "Eraro ŝarĝante la dosieron wallet.dat \n"
+
+#: ../../../src/init.cpp:454
+msgid "Invalid -proxy address"
+msgstr "Malvalida prokuradreso (-proxy)"
+
+#: ../../../src/init.cpp:477
+msgid "Invalid amount for -paytxfee=<amount>"
+msgstr "Malvalida kvanto de la transakcia kosto (-paytxfee=<kvanto>)"
+
+#: ../../../src/init.cpp:481
+msgid ""
+"Warning: -paytxfee is set very high. This is the transaction fee you will "
+"pay if you send a transaction."
+msgstr ""
+"Averto: La transakcia kosto (-paytxfee) estas tre alta. Tiu ĉi estas la "
+"kosto, kiun vi devos pagi kiam vi sendos transakcion."
+
+#: ../../../src/uibase.h:147
+msgid "Transaction Details"
+msgstr "Detaloj pri transakcio"
+
+#: ../../../src/uibase.h:199
+msgid "Options"
+msgstr "Detaloj pri transakcio"
+
+#: ../../../src/uibase.h:228
+msgid "About Bitcoin"
+msgstr "Pri Bitmonero"
+
+#: ../../../src/uibase.h:337
+msgid "Your Bitcoin Addresses"
+msgstr "Viaj Bitmoneraj adresoj"
diff --git a/locale/es/LC_MESSAGES/bitcoin.mo b/locale/es/LC_MESSAGES/bitcoin.mo
new file mode 100644
index 0000000000..e22b894c5a
--- /dev/null
+++ b/locale/es/LC_MESSAGES/bitcoin.mo
Binary files differ
diff --git a/locale/es/LC_MESSAGES/bitcoin.po b/locale/es/LC_MESSAGES/bitcoin.po
new file mode 100644
index 0000000000..c67886e676
--- /dev/null
+++ b/locale/es/LC_MESSAGES/bitcoin.po
@@ -0,0 +1,967 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-05-24 20:21-0500\n"
+"PO-Revision-Date: 2011-05-24 20:23-0500\n"
+"Last-Translator: Ariel Patiño <ariel@ficticio.com>\n"
+"Language-Team: \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-SearchPath-0: ../../..\n"
+
+#: ../../../src/net.cpp:1503
+#, c-format
+msgid "Unable to bind to port %d on this computer. Bitcoin is probably already running."
+msgstr "No es posible escuchar en el puerto %d en este computador. Probablemente el cliente Bitcoin ya se está ejecutando."
+
+#: ../../../src/ui.cpp:204
+#, c-format
+msgid "This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?"
+msgstr "Esta transacción supera el límite. Puede seguir enviandola con una comisión de %s, que va a los nodos que procesan su transacción y ayuda a mantener la red. ¿Quiere pagar la comisión?"
+
+#: ../../../src/ui.cpp:303
+msgid "Status"
+msgstr "Estado"
+
+#: ../../../src/ui.cpp:304
+msgid "Date"
+msgstr "Fecha"
+
+#: ../../../src/ui.cpp:305
+msgid "Description"
+msgstr "Descripción"
+
+#: ../../../src/ui.cpp:306
+msgid "Debit"
+msgstr "Débito"
+
+#: ../../../src/ui.cpp:307
+msgid "Credit"
+msgstr "Crédito"
+
+#: ../../../src/ui.cpp:513
+#, c-format
+msgid "Open for %d blocks"
+msgstr "Abrir para %d bloques"
+
+#: ../../../src/ui.cpp:515
+#, c-format
+msgid "Open until %s"
+msgstr "Abrir hasta %s"
+
+#: ../../../src/ui.cpp:521
+#, c-format
+msgid "%d/offline?"
+msgstr "%d/desconectado?"
+
+#: ../../../src/ui.cpp:523
+#, c-format
+msgid "%d/unconfirmed"
+msgstr "%d/no confirmado"
+
+#: ../../../src/ui.cpp:525
+#, c-format
+msgid "%d confirmations"
+msgstr "%d confirmaciones"
+
+#: ../../../src/ui.cpp:610
+msgid "Generated"
+msgstr "Generado"
+
+#: ../../../src/ui.cpp:618
+#, c-format
+msgid "Generated (%s matures in %d more blocks)"
+msgstr "Generado (%s madura en %d bloques)"
+
+#: ../../../src/ui.cpp:622
+msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
+msgstr "Generado - Cuidado: Este bloque no se recibió de otros nodos y probablemente no sea aceptado!"
+
+#: ../../../src/ui.cpp:626
+msgid "Generated (not accepted)"
+msgstr "Generado (no aceptado)"
+
+#: ../../../src/ui.cpp:636
+msgid "From: "
+msgstr "De: "
+
+#: ../../../src/ui.cpp:660
+msgid "Received with: "
+msgstr "Recibido con: "
+
+#: ../../../src/ui.cpp:706
+msgid "Payment to yourself"
+msgstr "Pago para usted mismo"
+
+#: ../../../src/ui.cpp:740
+msgid "To: "
+msgstr "Para: "
+
+#: ../../../src/ui.cpp:1055
+msgid " Generating"
+msgstr " Generando"
+
+#: ../../../src/ui.cpp:1057
+msgid "(not connected)"
+msgstr "(no conectado)"
+
+#: ../../../src/ui.cpp:1060
+#, c-format
+msgid " %d connections %d blocks %d transactions"
+msgstr " %d conexiones %d bloques %d transacciones"
+
+#: ../../../src/ui.cpp:1165
+#: ../../../src/ui.cpp:2529
+msgid "New Receiving Address"
+msgstr "Nueva dirección de recepción"
+
+#: ../../../src/ui.cpp:1166
+#: ../../../src/ui.cpp:2530
+msgid ""
+"You should use a new address for each payment you receive.\n"
+"\n"
+"Label"
+msgstr ""
+"Debes usar una nueva dirección para cada pago que usted recibe.\n"
+"\n"
+"Etiqueta"
+
+#: ../../../src/ui.cpp:1235
+msgid "<b>Status:</b> "
+msgstr "<b>Estado:</b> "
+
+#: ../../../src/ui.cpp:1240
+msgid ", has not been successfully broadcast yet"
+msgstr ", no ha sido emitido satisfactoriamente todavía"
+
+#: ../../../src/ui.cpp:1242
+#, c-format
+msgid ", broadcast through %d node"
+msgstr ", emitido mediante %d nodo"
+
+#: ../../../src/ui.cpp:1244
+#, c-format
+msgid ", broadcast through %d nodes"
+msgstr ", emitido mediante %d nodos"
+
+#: ../../../src/ui.cpp:1248
+msgid "<b>Date:</b> "
+msgstr "<b>Fecha:</b> "
+
+#: ../../../src/ui.cpp:1256
+msgid "<b>Source:</b> Generated<br>"
+msgstr "<b>Fuente:</b> Generado<br>"
+
+#: ../../../src/ui.cpp:1262
+#: ../../../src/ui.cpp:1280
+msgid "<b>From:</b> "
+msgstr "<b>De:</b> "
+
+#: ../../../src/ui.cpp:1280
+msgid "unknown"
+msgstr "desconocido"
+
+#: ../../../src/ui.cpp:1281
+#: ../../../src/ui.cpp:1305
+#: ../../../src/ui.cpp:1364
+msgid "<b>To:</b> "
+msgstr "<b>Para:</b> "
+
+#: ../../../src/ui.cpp:1284
+msgid " (yours, label: "
+msgstr "(suya, etiqueta: "
+
+#: ../../../src/ui.cpp:1286
+msgid " (yours)"
+msgstr "(suya)"
+
+#: ../../../src/ui.cpp:1323
+#: ../../../src/ui.cpp:1335
+#: ../../../src/ui.cpp:1381
+#: ../../../src/ui.cpp:1398
+msgid "<b>Credit:</b> "
+msgstr "<b>Crédito:</b> "
+
+#: ../../../src/ui.cpp:1325
+#, c-format
+msgid "(%s matures in %d more blocks)"
+msgstr "(%s madura en %d bloques)"
+
+#: ../../../src/ui.cpp:1327
+msgid "(not accepted)"
+msgstr "(no aceptada)"
+
+#: ../../../src/ui.cpp:1372
+#: ../../../src/ui.cpp:1380
+#: ../../../src/ui.cpp:1395
+msgid "<b>Debit:</b> "
+msgstr "<b>Débito:</b> "
+
+#: ../../../src/ui.cpp:1386
+msgid "<b>Transaction fee:</b> "
+msgstr "<b>Comisión transacción:</b> "
+
+#: ../../../src/ui.cpp:1402
+msgid "<b>Net amount:</b> "
+msgstr "<b>Cantidad de la red:</b> "
+
+#: ../../../src/ui.cpp:1409
+msgid "Message:"
+msgstr "Mensaje:"
+
+#: ../../../src/ui.cpp:1411
+msgid "Comment:"
+msgstr "Comentario:"
+
+#: ../../../src/ui.cpp:1414
+msgid "Generated coins must wait 120 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, it will change to \"not accepted\" and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours."
+msgstr "Las monedas generadas deben esperar 120 bloques antes de ser gastadas. Cuando usted generó este bloque, fue emitido a la red para ser agregado a la cadena de bloques. Si falla al incluirse en la cadena, cambiará a \"no aceptado\" y no se podrá gastar. Esto puede ocurrir ocasionalmente si otro nodo genera un bloque apenas a unos segundos del suyo."
+
+#: ../../../src/ui.cpp:1594
+msgid "Cannot write autostart/bitcoin.desktop file"
+msgstr "No se puede escribir el fichero autostart/bitcoin.desktop"
+
+#: ../../../src/ui.cpp:1630
+msgid "Main"
+msgstr "Principal"
+
+#: ../../../src/ui.cpp:1638
+msgid "&Start Bitcoin on window system startup"
+msgstr "&Arrancar Bitcoin al iniciar el sistema"
+
+#: ../../../src/ui.cpp:1645
+msgid "&Minimize on close"
+msgstr "&Minimizar al cerrar"
+
+#: ../../../src/ui.cpp:1787
+#, c-format
+msgid "version %s"
+msgstr "versión %s"
+
+#: ../../../src/ui.cpp:1899
+msgid "Error in amount "
+msgstr "Error en la cantidad "
+
+#: ../../../src/ui.cpp:1899
+#: ../../../src/ui.cpp:1904
+#: ../../../src/ui.cpp:1909
+#: ../../../src/ui.cpp:1944
+#: ../../../src/uibase.cpp:55
+msgid "Send Coins"
+msgstr "Enviar monedas"
+
+#: ../../../src/ui.cpp:1904
+msgid "Amount exceeds your balance "
+msgstr "La cantidad excede su balance "
+
+#: ../../../src/ui.cpp:1909
+msgid "Total exceeds your balance when the "
+msgstr "El total excede su balance cuando el "
+
+#: ../../../src/ui.cpp:1909
+msgid " transaction fee is included "
+msgstr " la comisión de la transaccion está incluida "
+
+#: ../../../src/ui.cpp:1927
+msgid "Payment sent "
+msgstr "Pago enviado "
+
+#: ../../../src/ui.cpp:1927
+#: ../../../src/ui.cpp:1932
+#: ../../../src/ui.cpp:2076
+#: ../../../src/ui.cpp:2229
+#: ../../../src/main.cpp:3997
+msgid "Sending..."
+msgstr "Enviando..."
+
+#: ../../../src/ui.cpp:1944
+msgid "Invalid address "
+msgstr "Dirección inválida "
+
+#: ../../../src/ui.cpp:1997
+#, c-format
+msgid "Sending %s to %s"
+msgstr "Enviando %s a %s"
+
+#: ../../../src/ui.cpp:2070
+#: ../../../src/ui.cpp:2103
+msgid "CANCELLED"
+msgstr "CANCELADO"
+
+#: ../../../src/ui.cpp:2074
+msgid "Cancelled"
+msgstr "Cancelado"
+
+#: ../../../src/ui.cpp:2076
+msgid "Transfer cancelled "
+msgstr "Transferencia cancelada "
+
+#: ../../../src/ui.cpp:2129
+msgid "Error: "
+msgstr "Error: "
+
+#: ../../../src/ui.cpp:2143
+#: ../../../src/ui.cpp:2214
+#: ../../../src/main.cpp:4016
+msgid "Insufficient funds"
+msgstr "Fondos insuficientes"
+
+#: ../../../src/ui.cpp:2148
+msgid "Connecting..."
+msgstr "Conectando..."
+
+#: ../../../src/ui.cpp:2153
+msgid "Unable to connect"
+msgstr "No es posible conectar"
+
+#: ../../../src/ui.cpp:2158
+msgid "Requesting public key..."
+msgstr "Pidiendo clave pública..."
+
+#: ../../../src/ui.cpp:2170
+msgid "Received public key..."
+msgstr "Clave pública recibida..."
+
+#: ../../../src/ui.cpp:2184
+msgid "Recipient is not accepting transactions sent by IP address"
+msgstr "El destinatario no está aceptando transacciones enviadas por direcciones IP"
+
+#: ../../../src/ui.cpp:2186
+msgid "Transfer was not accepted"
+msgstr "La transferencia no fue aceptada"
+
+#: ../../../src/ui.cpp:2195
+msgid "Invalid response received"
+msgstr "Respuesta inválida recibida"
+
+#: ../../../src/ui.cpp:2210
+msgid "Creating transaction..."
+msgstr "Creando transacción..."
+
+#: ../../../src/ui.cpp:2222
+#, c-format
+msgid "This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds"
+msgstr "Esta transacción requiere de una comisión de al menos %s por su cantidad, complejidad o uso de fondos recibidos recientemente"
+
+#: ../../../src/ui.cpp:2224
+msgid "Transaction creation failed"
+msgstr "Fallo al crear la transacción."
+
+#: ../../../src/ui.cpp:2231
+msgid "Transaction aborted"
+msgstr "Transacción abortada"
+
+#: ../../../src/ui.cpp:2239
+msgid "Lost connection, transaction cancelled"
+msgstr "Conexión perdida, transacción cancelada"
+
+#: ../../../src/ui.cpp:2255
+msgid "Sending payment..."
+msgstr "Enviando pago..."
+
+#: ../../../src/ui.cpp:2261
+msgid "The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "La transacción fue rechazada. Esto puede haber ocurrido si alguna de las monedas fue gastada, o si ha usado una copia de wallet.dat y las monedas fueron gastadas en la copia pero no fueron marcadas como gastadas aqui."
+
+#: ../../../src/ui.cpp:2270
+msgid "Waiting for confirmation..."
+msgstr "Esperando confirmación..."
+
+#: ../../../src/ui.cpp:2288
+msgid ""
+"The payment was sent, but the recipient was unable to verify it.\n"
+"The transaction is recorded and will credit to the recipient,\n"
+"but the comment information will be blank."
+msgstr ""
+"El pago fue enviado, pero el receptor no pudo verificarlo.\n"
+"La transacción se grabó y dará el crédito al receptor,\n"
+"pero la información en los comentarios quedará en blanco."
+
+#: ../../../src/ui.cpp:2297
+msgid "Payment was sent, but an invalid response was received"
+msgstr "El pago fue enviado, pero se recibió una respuesta inválida"
+
+#: ../../../src/ui.cpp:2303
+msgid "Payment completed"
+msgstr "Pago completado"
+
+#: ../../../src/ui.cpp:2334
+#: ../../../src/ui.cpp:2480
+#: ../../../src/ui.cpp:2517
+msgid "Name"
+msgstr "Nombre"
+
+#: ../../../src/ui.cpp:2335
+#: ../../../src/ui.cpp:2480
+#: ../../../src/ui.cpp:2517
+msgid "Address"
+msgstr "Dirección"
+
+#: ../../../src/ui.cpp:2337
+#: ../../../src/ui.cpp:2492
+msgid "Label"
+msgstr "Etiqueta"
+
+#: ../../../src/ui.cpp:2338
+#: ../../../src/uibase.cpp:837
+msgid "Bitcoin Address"
+msgstr "Dirección Bitcoin"
+
+#: ../../../src/ui.cpp:2462
+msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
+msgstr "Esta es una de sus direcciones para recibir pagos y no puede incluirse en la libreta de direcciones. "
+
+#: ../../../src/ui.cpp:2480
+#: ../../../src/ui.cpp:2486
+msgid "Edit Address"
+msgstr "Editar dirección"
+
+#: ../../../src/ui.cpp:2492
+msgid "Edit Address Label"
+msgstr "Editar etiqueta dirección"
+
+#: ../../../src/ui.cpp:2517
+#: ../../../src/ui.cpp:2523
+msgid "Add Address"
+msgstr "Agregar dirección"
+
+#: ../../../src/ui.cpp:2600
+msgid "Bitcoin"
+msgstr "Bitcoin"
+
+#: ../../../src/ui.cpp:2602
+msgid "Bitcoin - Generating"
+msgstr "Bitcoin - Generando"
+
+#: ../../../src/ui.cpp:2604
+msgid "Bitcoin - (not connected)"
+msgstr "Bitcoin - (no conectado)"
+
+#: ../../../src/ui.cpp:2683
+msgid "&Open Bitcoin"
+msgstr "&Abrir Bitcoin"
+
+#: ../../../src/ui.cpp:2684
+msgid "&Send Bitcoins"
+msgstr "&Enviar Bitcoin"
+
+#: ../../../src/ui.cpp:2685
+msgid "O&ptions..."
+msgstr "O&pciones"
+
+#: ../../../src/ui.cpp:2688
+#: ../../../src/uibase.cpp:25
+msgid "E&xit"
+msgstr "S&alir"
+
+#: ../../../src/ui.cpp:2904
+msgid "Program has crashed and will terminate. "
+msgstr "El programa ha detectado un error y va a cerrarse. "
+
+#: ../../../src/main.cpp:1866
+msgid "Warning: Disk space is low "
+msgstr "Cuidado: Poco espacio en disco "
+
+#: ../../../src/main.cpp:3990
+#, c-format
+msgid "Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds "
+msgstr "Error: Esta transacción requiere de una comisión de al menos %s por su cantidad, complejidad o uso de fondos recibidos recientemente "
+
+#: ../../../src/main.cpp:3992
+msgid "Error: Transaction creation failed "
+msgstr "Error: La creación de la transacción falló "
+
+#: ../../../src/main.cpp:4001
+msgid "Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "Error: La transacción fue rechazada. Esto puede haber ocurrido si alguna de las monedas ya fue gastada, o si ha usado un copia de wallet.dat y las monedas fueron gastadas en la copia pero no han sido marcadas como gastadas aqui."
+
+#: ../../../src/main.cpp:4014
+msgid "Invalid amount"
+msgstr "Cantidad erronea"
+
+#: ../../../src/main.cpp:4021
+msgid "Invalid bitcoin address"
+msgstr "Dirección Bitcoin inválida"
+
+#: ../../../src/rpc.cpp:1802
+#: ../../../src/rpc.cpp:1804
+#, c-format
+msgid "To use the %s option"
+msgstr "Para usar la opción %s"
+
+#: ../../../src/rpc.cpp:1806
+#, c-format
+msgid ""
+"Warning: %s, you must set rpcpassword=<password>\n"
+"in the configuration file: %s\n"
+"If the file does not exist, create it with owner-readable-only file permissions.\n"
+msgstr ""
+"Precaución: %s, debes especificar rpcpassword=<password>\n"
+"en el archivo de configuración: %s\n"
+"Si el archivo no existe, debes crearlo con permisos de lectura al autor solamente.\n"
+
+#: ../../../src/rpc.cpp:1974
+#, c-format
+msgid ""
+"You must set rpcpassword=<password> in the configuration file:\n"
+"%s\n"
+"If the file does not exist, create it with owner-readable-only file permissions."
+msgstr ""
+"Debes especificar rpcpassword=<password> en el archivo de configuración:\n"
+"%s\n"
+"Si el archivo no existe, debes crearlo con permisos de lectura al autor solamente."
+
+#: ../../../src/util.cpp:866
+msgid "Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly."
+msgstr "Precaución: Por favor revisa que la fecha y hora de tu computador son correctas. Si tu reloj está mal, Bitcoin no funcionará correctamente."
+
+#: ../../../src/util.cpp:899
+msgid "beta"
+msgstr "beta"
+
+#: ../../../src/uibase.cpp:28
+msgid "&File"
+msgstr "&Archivo"
+
+#: ../../../src/uibase.cpp:32
+msgid "&Your Receiving Addresses..."
+msgstr "&Tus direcciones de recepción..."
+
+#: ../../../src/uibase.cpp:36
+msgid "&Options..."
+msgstr "&Opciones..."
+
+#: ../../../src/uibase.cpp:39
+msgid "&Settings"
+msgstr "&Configuración"
+
+#: ../../../src/uibase.cpp:43
+msgid "&About..."
+msgstr "&Acerca de..."
+
+#: ../../../src/uibase.cpp:46
+msgid "&Help"
+msgstr "&Ayuda"
+
+#: ../../../src/uibase.cpp:56
+msgid "Address Book"
+msgstr "Libreta de direcciones"
+
+#: ../../../src/uibase.cpp:69
+msgid "Your Bitcoin Address:"
+msgstr "Su dirección Bitcoin:"
+
+#: ../../../src/uibase.cpp:76
+msgid " &New... "
+msgstr " &Nuevo... "
+
+#: ../../../src/uibase.cpp:79
+#: ../../../src/uibase.cpp:780
+#: ../../../src/uibase.cpp:883
+msgid " &Copy to Clipboard "
+msgstr " &Copiar al portapapeles "
+
+#: ../../../src/uibase.cpp:93
+msgid "Balance:"
+msgstr "Balance:"
+
+#: ../../../src/uibase.cpp:109
+msgid " All"
+msgstr " Todo"
+
+#: ../../../src/uibase.cpp:109
+msgid " Sent"
+msgstr " Enviado"
+
+#: ../../../src/uibase.cpp:109
+msgid " Received"
+msgstr " Recibido"
+
+#: ../../../src/uibase.cpp:109
+msgid " In Progress"
+msgstr " En progreso"
+
+#: ../../../src/uibase.cpp:130
+msgid "All Transactions"
+msgstr "Todas las transacciones"
+
+#: ../../../src/uibase.cpp:141
+msgid "Sent/Received"
+msgstr "Enviado/Recibido"
+
+#: ../../../src/uibase.cpp:152
+msgid "Sent"
+msgstr "Enviado"
+
+#: ../../../src/uibase.cpp:163
+msgid "Received"
+msgstr "Recibido"
+
+#: ../../../src/uibase.cpp:302
+#: ../../../src/uibase.cpp:443
+#: ../../../src/uibase.cpp:542
+#: ../../../src/uibase.cpp:722
+#: ../../../src/uibase.cpp:783
+#: ../../../src/uibase.cpp:892
+#: ../../../src/uibase.cpp:981
+msgid "OK"
+msgstr "OK"
+
+#: ../../../src/uibase.cpp:345
+msgid "&Start Bitcoin on system startup"
+msgstr "&Arrancar Bitcoin al iniciar el sistema"
+
+#: ../../../src/uibase.cpp:348
+msgid "&Minimize to the tray instead of the taskbar"
+msgstr "&Minimizar a la bandeja en vez de a la barra de tareas"
+
+#: ../../../src/uibase.cpp:351
+msgid "Map port using &UPnP"
+msgstr "Mapear el puerto usando &UPnP"
+
+#: ../../../src/uibase.cpp:354
+msgid "M&inimize to the tray on close"
+msgstr "M&inimizar a la bandeja al cerrar"
+
+#: ../../../src/uibase.cpp:360
+msgid "&Connect through socks4 proxy: "
+msgstr "&Conectar usando un proxy socks4: "
+
+#: ../../../src/uibase.cpp:371
+msgid "Proxy &IP:"
+msgstr "Proxy &IP:"
+
+#: ../../../src/uibase.cpp:379
+msgid " &Port:"
+msgstr " &Puerto:"
+
+#: ../../../src/uibase.cpp:392
+msgid "Optional transaction fee per KB that helps make sure your transactions are processed quickly. Most transactions are 1KB. Fee 0.01 recommended."
+msgstr "Comisión opcional a las transacciones por KB que ayuda a asegurar que tus transacciones son procesadas rápidamente. La mayoría de las transacciones son de 1KB. Se recomienda una comisión de 0.01."
+
+#: ../../../src/uibase.cpp:399
+msgid "Pay transaction fee:"
+msgstr "Comisión de la transacción:"
+
+#: ../../../src/uibase.cpp:420
+msgid "// [don't translate] Test panel 2 for future expansion"
+msgstr ""
+
+#: ../../../src/uibase.cpp:424
+msgid "// [don't translate] Let's not start multiple pages until the first page is filled up"
+msgstr ""
+
+#: ../../../src/uibase.cpp:446
+#: ../../../src/uibase.cpp:668
+#: ../../../src/uibase.cpp:727
+#: ../../../src/uibase.cpp:786
+#: ../../../src/uibase.cpp:895
+#: ../../../src/uibase.cpp:984
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: ../../../src/uibase.cpp:449
+msgid "&Apply"
+msgstr "&Aplicar"
+
+#: ../../../src/uibase.cpp:508
+msgid "Bitcoin "
+msgstr "Bitcoin "
+
+#: ../../../src/uibase.cpp:514
+msgid "version"
+msgstr "versión"
+
+#: ../../../src/uibase.cpp:525
+msgid ""
+"Copyright (c) 2009-2011 Bitcoin Developers\n"
+"\n"
+"This is experimental software.\n"
+"\n"
+"Distributed under the MIT/X11 software license, see the accompanying file \n"
+"license.txt or http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"This product includes software developed by the OpenSSL Project for use in the \n"
+"OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
+msgstr ""
+"Copyright (c) 2009-2010 Bitcoin Developers\n"
+"\n"
+"Este es un software experimental.\n"
+"\n"
+"Distribuido bajo la licencia MIT/X11, vea el archivo adjunto \n"
+"license.txt o http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"Este producto incluye software desarrollado por OpenSSL Project para su uso en el\n"
+"OpenSSL Toolkit (http://www.openssl.org/) y software criptográfico escrito por \n"
+"Eric Young (eay@cryptsoft.com) y UPnP software escrito por Thomas Bernard."
+
+#: ../../../src/uibase.cpp:581
+msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+msgstr "Ponga una dirección Bitcoin (ejemplo: 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+
+#: ../../../src/uibase.cpp:595
+msgid "Pay &To:"
+msgstr "Pagar &A:"
+
+#: ../../../src/uibase.cpp:610
+msgid "&Paste"
+msgstr "&Pegar"
+
+#: ../../../src/uibase.cpp:613
+msgid " Address &Book..."
+msgstr " Libreta &Direcciones..."
+
+#: ../../../src/uibase.cpp:620
+msgid "&Amount:"
+msgstr "&Cantidad:"
+
+#: ../../../src/uibase.cpp:630
+msgid "T&ransfer:"
+msgstr "T&ransferir:"
+
+#: ../../../src/uibase.cpp:636
+msgid " Standard"
+msgstr " Estándar"
+
+#: ../../../src/uibase.cpp:663
+msgid "&Send"
+msgstr "&Enviar"
+
+#: ../../../src/uibase.cpp:711
+msgid ""
+"\n"
+"\n"
+"Connecting..."
+msgstr ""
+"\n"
+"\n"
+"Conenctando..."
+
+#: ../../../src/uibase.cpp:761
+msgid "These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. The highlighted address is displayed in the main window."
+msgstr "Estas son tus direcciones Bitcoin para recibir pagos. Puedes darle una diferente a cada emisor para saber quien te está pagando. La dirección resaltada se muestra en la ventana principal."
+
+#: ../../../src/uibase.cpp:774
+#: ../../../src/uibase.cpp:886
+msgid "&Edit..."
+msgstr "&Editar..."
+
+#: ../../../src/uibase.cpp:777
+#: ../../../src/uibase.cpp:889
+msgid " &New Address... "
+msgstr " &Nueva dirección... "
+
+#: ../../../src/uibase.cpp:849
+msgid "Sending"
+msgstr "Enviando"
+
+#: ../../../src/uibase.cpp:857
+msgid "These are your Bitcoin addresses for receiving payments. You can give a different one to each sender to keep track of who is paying you. The highlighted address will be displayed in the main window."
+msgstr "Estas son tus direcciones Bitcoin para recibir pagos. Puedes darle una diferente a cada emisor para saber quien te está pagando. La dirección resaltada se muestra en la ventana principal."
+
+#: ../../../src/uibase.cpp:870
+msgid "Receiving"
+msgstr "Recibiendo"
+
+#: ../../../src/uibase.cpp:880
+msgid "&Delete"
+msgstr "&Borrar"
+
+#: ../../../src/init.cpp:142
+msgid "Bitcoin version"
+msgstr "versión Bitcoin"
+
+#: ../../../src/init.cpp:143
+msgid "Usage:"
+msgstr "Uso:"
+
+#: ../../../src/init.cpp:145
+msgid "Send command to -server or bitcoind\n"
+msgstr "Enviar comando a bitcoin corriendo con -server o a bitcoind\n"
+
+#: ../../../src/init.cpp:146
+msgid "List commands\n"
+msgstr "Lista de comandos\n"
+
+#: ../../../src/init.cpp:147
+msgid "Get help for a command\n"
+msgstr "Recibir ayuda para un comando\n"
+
+#: ../../../src/init.cpp:148
+msgid "Options:\n"
+msgstr "Opciones:\n"
+
+#: ../../../src/init.cpp:149
+msgid "Specify configuration file (default: bitcoin.conf)\n"
+msgstr "Especificar archivo de configuración (predeterminado: bitcoin.conf)\n"
+
+#: ../../../src/init.cpp:150
+msgid "Specify pid file (default: bitcoind.pid)\n"
+msgstr "Especificar archivo pid (predeterminado: bitcoin.pid)\n"
+
+#: ../../../src/init.cpp:151
+msgid "Generate coins\n"
+msgstr "Generar monedas\n"
+
+#: ../../../src/init.cpp:152
+msgid "Don't generate coins\n"
+msgstr "No generar monedas\n"
+
+#: ../../../src/init.cpp:153
+msgid "Start minimized\n"
+msgstr "Arrancar minimizado\n"
+
+#: ../../../src/init.cpp:154
+msgid "Specify data directory\n"
+msgstr "Especificar directorio para los datos\n"
+
+#: ../../../src/init.cpp:155
+msgid "Connect through socks4 proxy\n"
+msgstr "Conectar mediante proxy socks4\n"
+
+#: ../../../src/init.cpp:156
+msgid "Allow DNS lookups for addnode and connect\n"
+msgstr "Permitir búsqueda DNS para addnode y connect\n"
+
+#: ../../../src/init.cpp:157
+msgid "Add a node to connect to\n"
+msgstr "Agregar un nodo para conectarse\n"
+
+#: ../../../src/init.cpp:158
+msgid "Connect only to the specified node\n"
+msgstr "Conectar solo al nodo especificado\n"
+
+#: ../../../src/init.cpp:159
+msgid "Don't accept connections from outside\n"
+msgstr "No aceptar conexiones desde el exterior\n"
+
+#: ../../../src/init.cpp:162
+msgid "Don't attempt to use UPnP to map the listening port\n"
+msgstr "No intentar usar UPnP para mapear el puerto de entrada\n"
+
+#: ../../../src/init.cpp:164
+msgid "Attempt to use UPnP to map the listening port\n"
+msgstr "Intentar usar UPnP para mapear el puerto de escucha.\n"
+
+#: ../../../src/init.cpp:167
+msgid "Fee per KB to add to transactions you send\n"
+msgstr "Comisión por KB para agregar a las transacciones que envias\n"
+
+#: ../../../src/init.cpp:169
+msgid "Accept command line and JSON-RPC commands\n"
+msgstr "Aceptar comandos por línea de comandos y JSON-RPC\n"
+
+#: ../../../src/init.cpp:172
+msgid "Run in the background as a daemon and accept commands\n"
+msgstr "Correr en el fondo como demonio y aceptar comandos\n"
+
+#: ../../../src/init.cpp:174
+msgid "Use the test network\n"
+msgstr "Usar la red de pruebas\n"
+
+#: ../../../src/init.cpp:175
+msgid "Username for JSON-RPC connections\n"
+msgstr "Usuario para las conexiones JSON-RPC\n"
+
+#: ../../../src/init.cpp:176
+msgid "Password for JSON-RPC connections\n"
+msgstr "Contraseña para las conexiones JSON-RPC\n"
+
+#: ../../../src/init.cpp:177
+msgid "Listen for JSON-RPC connections on <port> (default: 8332)\n"
+msgstr "Escuchar conexiones JSON-RPC en el puerto <puerto> (predeterminado: 8332)\n"
+
+#: ../../../src/init.cpp:178
+msgid "Allow JSON-RPC connections from specified IP address\n"
+msgstr "Permitir conexiones JSON-RPC desde la dirección IP especificada\n"
+
+#: ../../../src/init.cpp:179
+msgid "Send commands to node running on <ip> (default: 127.0.0.1)\n"
+msgstr "Enviar comando al nodo ejecutándose en <ip> (predeterminado: 127.0.0.1)\n"
+
+#: ../../../src/init.cpp:180
+msgid "Set key pool size to <n> (default: 100)\n"
+msgstr "Ajustar el tamaño de la llave (key) de la piscina (pool) a <n> (predeterminado: 100)\n"
+
+#: ../../../src/init.cpp:181
+msgid "Rescan the block chain for missing wallet transactions\n"
+msgstr "Re-escanear la cadena de bloques para transacciones perdidas de la billetera\n"
+
+#: ../../../src/init.cpp:185
+msgid ""
+"\n"
+"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"
+msgstr ""
+"\n"
+"Opciones SSL: (ver la Bitcoin Wiki para instrucciones de configuración SSL)\n"
+
+#: ../../../src/init.cpp:186
+msgid "Use OpenSSL (https) for JSON-RPC connections\n"
+msgstr "Usar OpenSSL (https) para las conexiones JSON-RPC\n"
+
+#: ../../../src/init.cpp:187
+msgid "Server certificate file (default: server.cert)\n"
+msgstr "Archivo de certificado del servidor (Predeterminado: server.cert)\n"
+
+#: ../../../src/init.cpp:188
+msgid "Server private key (default: server.pem)\n"
+msgstr "Clave privada del servidor (Predeterminado: server.pem)\n"
+
+#: ../../../src/init.cpp:189
+msgid "Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
+msgstr "Cifrados aceptados (Predeterminado: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
+
+#: ../../../src/init.cpp:193
+msgid "This help message\n"
+msgstr "Este mensaje de ayuda\n"
+
+#: ../../../src/init.cpp:330
+#, c-format
+msgid "Cannot obtain a lock on data directory %s. Bitcoin is probably already running."
+msgstr "No se puede obtener el bloqueo en el directorio de datos %s. Probablemente el cliente de Bitcoin ya se está ejecutando."
+
+#: ../../../src/init.cpp:356
+msgid "Error loading addr.dat \n"
+msgstr "Error cargando addr.dat \n"
+
+#: ../../../src/init.cpp:362
+msgid "Error loading blkindex.dat \n"
+msgstr "Error cargando blkindex.dat \n"
+
+#: ../../../src/init.cpp:369
+msgid "Error loading wallet.dat \n"
+msgstr "Error cargando wallet.dat \n"
+
+#: ../../../src/init.cpp:449
+msgid "Invalid -proxy address"
+msgstr "Dirección proxy - inválida"
+
+#: ../../../src/init.cpp:472
+msgid "Invalid amount for -paytxfee=<amount>"
+msgstr "Cantidad inválida para -paytxfee=<cantidad>"
+
+#: ../../../src/init.cpp:476
+msgid "Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."
+msgstr "Precaución: -paytxfee está configurado muy alto. Esta es la comisión que pagarás si envias una transacción."
+
+#: ../../../src/uibase.h:147
+msgid "Transaction Details"
+msgstr "Detalles de la transacción"
+
+#: ../../../src/uibase.h:199
+msgid "Options"
+msgstr "Opciones"
+
+#: ../../../src/uibase.h:228
+msgid "About Bitcoin"
+msgstr "Acerca de Bitcoin"
+
+#: ../../../src/uibase.h:337
+msgid "Your Bitcoin Addresses"
+msgstr "Sus direcciones Bitcoin"
diff --git a/locale/fr/LC_MESSAGES/bitcoin.mo b/locale/fr/LC_MESSAGES/bitcoin.mo
new file mode 100644
index 0000000000..f4d669b4c0
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/bitcoin.mo
Binary files differ
diff --git a/locale/fr/LC_MESSAGES/bitcoin.po b/locale/fr/LC_MESSAGES/bitcoin.po
new file mode 100644
index 0000000000..a714e01026
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/bitcoin.po
@@ -0,0 +1,849 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-05-26 22:02-0000\n"
+"PO-Revision-Date: 2010-07-15 02:48+0100\n"
+"Last-Translator: aidos\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-SearchPath-0: ../../..\n"
+
+#: ../../../init.cpp:174
+msgid "Cannot write autostart/bitcoin.desktop file"
+msgstr ""
+
+#: ../../../init.cpp:388
+#, fuzzy
+msgid "Usage:"
+msgstr ""
+
+#: ../../../init.cpp:390
+msgid "Send command to bitcoin running with -server or -daemon\n"
+msgstr ""
+
+#: ../../../init.cpp:391
+msgid "Get help for a command\n"
+msgstr ""
+
+#: ../../../init.cpp:392
+msgid "List commands\n"
+msgstr ""
+
+#: ../../../init.cpp:393
+msgid "Options:\n"
+msgstr "Options:\n"
+
+#: ../../../init.cpp:394
+msgid "Generate coins\n"
+msgstr "Générer des pièces\n"
+
+#: ../../../init.cpp:395
+msgid "Don't generate coins\n"
+msgstr "Ne pas générer de pièce\n"
+
+#: ../../../init.cpp:396
+msgid "Start minimized\n"
+msgstr "Démarrer réduit\n"
+
+#: ../../../init.cpp:397
+msgid "Specify data directory\n"
+msgstr "Spécifier le repertoire de donnée\n"
+
+#: ../../../init.cpp:398
+msgid "Connect through socks4 proxy\n"
+msgstr "Connection à travers un proxy SOCKS4\n"
+
+#: ../../../init.cpp:399
+msgid "Add a node to connect to\n"
+msgstr "Ajouter un nœud auquel se connecter\n"
+
+#: ../../../init.cpp:400
+msgid "Connect only to the specified node\n"
+msgstr "Se connecter uniquement au nœud spécifié\n"
+
+#: ../../../init.cpp:401
+msgid "Accept command line and JSON-RPC commands\n"
+msgstr ""
+
+#: ../../../init.cpp:402
+msgid "Run in the background as a daemon and accept commands\n"
+msgstr ""
+
+#: ../../../init.cpp:403
+msgid "This help message\n"
+msgstr "Ce message d'aide\n"
+
+#: ../../../init.cpp:503
+msgid "Error loading addr.dat \n"
+msgstr "Erreur lors du chargement de addr.dat \n"
+
+#: ../../../init.cpp:509
+msgid "Error loading blkindex.dat \n"
+msgstr "Erreur lors du chargement de blkindex.dat \n"
+
+#: ../../../init.cpp:516
+msgid "Error loading wallet.dat \n"
+msgstr "Erreur lors du chargement de wallet.dat \n"
+
+#: ../../../init.cpp:584
+msgid "Invalid -proxy address"
+msgstr "Adresse -proxy invalide"
+
+#: ../../../init.cpp:677
+msgid "Program has crashed and will terminate. "
+msgstr "Le programme a planté et va s'arrêter. "
+
+#: ../../../main.cpp:1480
+#: ../../../main.cpp:1482
+msgid "Warning: Disk space is low "
+msgstr "Attention: L'espace disque est presque épuisé "
+
+#: ../../../main.cpp:3094
+#, c-format
+msgid "Error: This is an oversized transaction that requires a transaction fee of %s "
+msgstr "Erreur: Ceci est une transaction de taille excessive qui nécessite %s de frais de transaction "
+
+#: ../../../main.cpp:3096
+msgid "Error: Transaction creation failed "
+msgstr "Erreur: La création de la transaction a échouée "
+
+#: ../../../main.cpp:3101
+#: ../../../ui.cpp:1776
+#: ../../../ui.cpp:1778
+#: ../../../ui.cpp:1919
+#: ../../../ui.cpp:2068
+msgid "Sending..."
+msgstr "Envoi..."
+
+#: ../../../main.cpp:3105
+msgid "Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "Erreur: La transaction a été rejetée. Ceci peut arriver si une partie des pièces de votre porte-monnaie ont déjà été dépensées, par exemple si vous avez utilisé une copie de wallet.dat et que les pièces ont été dépensées dans la copie mais pas marquées comme telles ici."
+
+#: ../../../main.cpp:3117
+msgid "Invalid amount"
+msgstr "Quantité invalide"
+
+#: ../../../main.cpp:3119
+#: ../../../ui.cpp:1986
+#: ../../../ui.cpp:2053
+msgid "Insufficient funds"
+msgstr "Fonds insuffisants"
+
+#: ../../../main.cpp:3124
+msgid "Invalid bitcoin address"
+msgstr "Adresse bitcoin incorrecte"
+
+#: ../../../ui.cpp:189
+#, c-format
+msgid "This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?"
+msgstr "Cette transaction est au delà de la limite de taille. Vous pouvez tout de même l'envoyer moyennant des frais de %s, qui ira au noeud gérant votre transaction, et qui aidera à soutenir le réseau. Acceptez-vous de payer ces frais ?"
+
+#: ../../../ui.cpp:286
+msgid "Status"
+msgstr "État"
+
+#: ../../../ui.cpp:287
+msgid "Date"
+msgstr "Date"
+
+#: ../../../ui.cpp:288
+msgid "Description"
+msgstr "Description"
+
+#: ../../../ui.cpp:289
+msgid "Debit"
+msgstr "Débit"
+
+#: ../../../ui.cpp:290
+msgid "Credit"
+msgstr "Crédit"
+
+#: ../../../ui.cpp:489
+#, c-format
+msgid "Open for %d blocks"
+msgstr "Ouvert pour %d blocks"
+
+#: ../../../ui.cpp:491
+#, c-format
+msgid "Open until %s"
+msgstr "Ouvert jusqu'au %s"
+
+#: ../../../ui.cpp:497
+#, c-format
+msgid "%d/offline?"
+msgstr "%d/hors-ligne?"
+
+#: ../../../ui.cpp:499
+#, c-format
+msgid "%d/unconfirmed"
+msgstr "%d/non confirmé"
+
+#: ../../../ui.cpp:501
+#, c-format
+msgid "%d confirmations"
+msgstr "%d confirmations"
+
+#: ../../../ui.cpp:584
+msgid "Generated"
+msgstr "Généré"
+
+#: ../../../ui.cpp:592
+#, c-format
+msgid "Generated (%s matures in %d more blocks)"
+msgstr "Généré (%s mûrira dans %d blocks)"
+
+#: ../../../ui.cpp:596
+msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
+msgstr "Généré - Attention: Ce block n'a été reçu par aucun autre nœud et ne sera probablement pas accepté!"
+
+#: ../../../ui.cpp:600
+msgid "Generated (not accepted)"
+msgstr "Généré (pas accepté)"
+
+#: ../../../ui.cpp:610
+msgid "From: "
+msgstr "De: "
+
+#: ../../../ui.cpp:634
+msgid "Received with: "
+msgstr "Reçu depuis: "
+
+#: ../../../ui.cpp:676
+msgid "Payment to yourself"
+msgstr "Paiement à vous-même"
+
+#: ../../../ui.cpp:713
+msgid "To: "
+msgstr "À: "
+
+#: ../../../ui.cpp:1009
+msgid " Generating"
+msgstr " Génération en cours"
+
+#: ../../../ui.cpp:1011
+msgid "(not connected)"
+msgstr "(non connecté)"
+
+#: ../../../ui.cpp:1014
+#, c-format
+msgid " %d connections %d blocks %d transactions"
+msgstr " %d connexions %d blocks %d transactions"
+
+#: ../../../ui.cpp:1128
+#: ../../../ui.cpp:2368
+msgid "New Receiving Address"
+msgstr "Nouvelle adresse de reception"
+
+#: ../../../ui.cpp:1129
+#: ../../../ui.cpp:2369
+msgid ""
+"You should use a new address for each payment you receive.\n"
+"\n"
+"Label"
+msgstr ""
+"C'est une bonne politique d'utiliser une nouvelle adresse pour \n"
+"chaque paiement reçu.\n"
+"\n"
+"Intitulé"
+
+#: ../../../ui.cpp:1198
+msgid "<b>Status:</b> "
+msgstr "<b>État:</b> "
+
+#: ../../../ui.cpp:1203
+msgid ", has not been successfully broadcast yet"
+msgstr ", n'a pas encore été diffusé avec succès"
+
+#: ../../../ui.cpp:1205
+#, c-format
+msgid ", broadcast through %d node"
+msgstr ", diffusé à travers %d nœud"
+
+#: ../../../ui.cpp:1207
+#, c-format
+msgid ", broadcast through %d nodes"
+msgstr ", diffusé à travers %d nœuds"
+
+#: ../../../ui.cpp:1211
+msgid "<b>Date:</b> "
+msgstr "<b>Date:</b> "
+
+#: ../../../ui.cpp:1219
+msgid "<b>Source:</b> Generated<br>"
+msgstr "<b>Source:</b> Généré<br>"
+
+#: ../../../ui.cpp:1225
+#: ../../../ui.cpp:1243
+msgid "<b>From:</b> "
+msgstr "<b>De:</b> "
+
+#: ../../../ui.cpp:1243
+msgid "unknown"
+msgstr "inconnu"
+
+#: ../../../ui.cpp:1244
+#: ../../../ui.cpp:1268
+#: ../../../ui.cpp:1327
+msgid "<b>To:</b> "
+msgstr "<b>À:</b> "
+
+#: ../../../ui.cpp:1247
+msgid " (yours, label: "
+msgstr " (vous, intitulé: "
+
+#: ../../../ui.cpp:1249
+msgid " (yours)"
+msgstr " (vous)"
+
+#: ../../../ui.cpp:1286
+#: ../../../ui.cpp:1298
+#: ../../../ui.cpp:1361
+msgid "<b>Credit:</b> "
+msgstr "<b>Crédit:</b> "
+
+#: ../../../ui.cpp:1288
+#, c-format
+msgid "(%s matures in %d more blocks)"
+msgstr "(%s mûrira dans %d blocks)"
+
+#: ../../../ui.cpp:1290
+msgid "(not accepted)"
+msgstr "(pas accepté)"
+
+#: ../../../ui.cpp:1335
+#: ../../../ui.cpp:1358
+msgid "<b>Debit:</b> "
+msgstr "<b>Débit:</b> "
+
+#: ../../../ui.cpp:1349
+msgid "<b>Transaction fee:</b> "
+msgstr "<b>Redevance de transaction :</b> "
+
+#: ../../../ui.cpp:1365
+msgid "<b>Net amount:</b> "
+msgstr "<b>Montant net:</b> "
+
+#: ../../../ui.cpp:1372
+msgid "Message:"
+msgstr "Message:"
+
+#: ../../../ui.cpp:1375
+msgid "Generated coins must wait 120 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, it will change to \"not accepted\" and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours."
+msgstr "Les pièces générées doivent attendrent 120 blocks avant de pouvoir être dépensées. Quand vous avez généré ce block, il a été diffusé au réseau pour être ajouté à la chaîne de block. Si il échoue à être intégré à la chaîne, il changera à \"pas accepté\" et ne sera pas dépensable. Ceci peut parfois arriver si un autre nœud génère un block à quelques secondes du vôtre."
+
+#: ../../../ui.cpp:1442
+msgid "Main"
+msgstr "Général"
+
+#: ../../../ui.cpp:1447
+#, fuzzy
+msgid "&Start Bitcoin on window system startup"
+msgstr "&Lancer Bitcoin au démarrage du système"
+
+#: ../../../ui.cpp:1454
+msgid "&Minimize on close"
+msgstr "&Réduire à la fermeture"
+
+#: ../../../ui.cpp:1610
+#, c-format
+msgid "version %s%s BETA"
+msgstr "version %s%s BETA"
+
+#: ../../../ui.cpp:1696
+msgid "Will appear as \"From: Unknown\""
+msgstr "Apparaîtra ainsi \"De: Inconnu\""
+
+#: ../../../ui.cpp:1681
+msgid "n/a"
+msgstr "Inconnu"
+
+#: ../../../ui.cpp:1681
+msgid "Unknown"
+msgstr "Inconnu"
+
+#: ../../../ui.cpp:1697
+msgid "Can't include a message when sending to a Bitcoin address"
+msgstr "Impossible d'inclure un message lors d'un envoi à une adresse Bitcoin"
+
+#: ../../../ui.cpp:1750
+msgid "Error in amount "
+msgstr "Erreur dans le montant "
+
+#: ../../../ui.cpp:1750
+#: ../../../ui.cpp:1755
+#: ../../../ui.cpp:1760
+#: ../../../ui.cpp:1786
+#: ../../../uibase.cpp:59
+msgid "Send Coins"
+msgstr "Envoyer des pièces"
+
+#: ../../../ui.cpp:1755
+msgid "Amount exceeds your balance "
+msgstr "Le montant dépasse votre solde "
+
+#: ../../../ui.cpp:1760
+msgid "Total exceeds your balance when the "
+msgstr "Le total dépasse votre solde quand les "
+
+#: ../../../ui.cpp:1760
+msgid " transaction fee is included "
+msgstr " de frais de transaction sont ajoutés "
+
+#: ../../../ui.cpp:1776
+msgid "Payment sent "
+msgstr "Paiement envoyé "
+
+#: ../../../ui.cpp:1786
+msgid "Invalid address "
+msgstr "Adresse invalide "
+
+#: ../../../ui.cpp:1840
+#, c-format
+msgid "Sending %s to %s"
+msgstr "Envoi de %s à %s"
+
+#: ../../../ui.cpp:1913
+#: ../../../ui.cpp:1946
+msgid "CANCELLED"
+msgstr "ANNULÉ"
+
+#: ../../../ui.cpp:1917
+msgid "Cancelled"
+msgstr "Annulé"
+
+#: ../../../ui.cpp:1919
+msgid "Transfer cancelled "
+msgstr "Transfert annulé "
+
+#: ../../../ui.cpp:1972
+msgid "Error: "
+msgstr "Erreur: "
+
+#: ../../../ui.cpp:1991
+msgid "Connecting..."
+msgstr "Connexion..."
+
+#: ../../../ui.cpp:1996
+msgid "Unable to connect"
+msgstr "Impossible de se connecter"
+
+#: ../../../ui.cpp:2001
+msgid "Requesting public key..."
+msgstr "Requête de la clef publique..."
+
+#: ../../../ui.cpp:2013
+msgid "Received public key..."
+msgstr "Clef publique reçue..."
+
+#: ../../../ui.cpp:2025
+msgid "Transfer was not accepted"
+msgstr "Le transfer n'a pas été accepté"
+
+#: ../../../ui.cpp:2034
+msgid "Invalid response received"
+msgstr "Réponse invalide reçue"
+
+#: ../../../ui.cpp:2049
+msgid "Creating transaction..."
+msgstr "Création de la transaction..."
+
+#: ../../../ui.cpp:2061
+#, c-format
+msgid "This is an oversized transaction that requires a transaction fee of %s"
+msgstr "Ceci est une transaction de taille excessive qui nécessite des frais de transaction de %s"
+
+#: ../../../ui.cpp:2063
+msgid "Transaction creation failed"
+msgstr "La création de la transaction a échouée"
+
+#: ../../../ui.cpp:2070
+msgid "Transaction aborted"
+msgstr "Transaction interrompue"
+
+#: ../../../ui.cpp:2078
+msgid "Lost connection, transaction cancelled"
+msgstr "Connexion perdue, transaction annulée"
+
+#: ../../../ui.cpp:2094
+msgid "Sending payment..."
+msgstr "Envoi du paiement..."
+
+#: ../../../ui.cpp:2100
+msgid "The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "La transaction a été rejetée. Ceci peut arriver si une partie des pièces de votre porte-monnaie ont déjà été dépensées, par exemple si vous avez utilisé une copie de wallet.dat et que les pièces ont été dépensées dans la copie mais pas marquées comme telles ici."
+
+#: ../../../ui.cpp:2109
+msgid "Waiting for confirmation..."
+msgstr "Attente de confirmation..."
+
+#: ../../../ui.cpp:2127
+msgid ""
+"The payment was sent, but the recipient was unable to verify it.\n"
+"The transaction is recorded and will credit to the recipient,\n"
+"but the comment information will be blank."
+msgstr ""
+"Le paiement a été envoyé, mais le destinataire n'a pas pû le vérifier.\n"
+"La transaction est enregistrée et sera créditée au destinataire,\n"
+"mais le commentaire sera vide."
+
+#: ../../../ui.cpp:2136
+msgid "Payment was sent, but an invalid response was received"
+msgstr "Le paiement a été envoyé, mais une réponse invalide a été reçue"
+
+#: ../../../ui.cpp:2142
+msgid "Payment completed"
+msgstr "Paiement terminé"
+
+#: ../../../ui.cpp:2173
+#: ../../../ui.cpp:2319
+#: ../../../ui.cpp:2356
+msgid "Name"
+msgstr "Nom"
+
+#: ../../../ui.cpp:2174
+#: ../../../ui.cpp:2319
+#: ../../../ui.cpp:2356
+msgid "Address"
+msgstr "Adresse"
+
+#: ../../../ui.cpp:2176
+#: ../../../ui.cpp:2331
+msgid "Label"
+msgstr "Intitulé"
+
+#: ../../../ui.cpp:2177
+#: ../../../uibase.cpp:902
+msgid "Bitcoin Address"
+msgstr "Adresse Bitcoin"
+
+#: ../../../ui.cpp:2301
+msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
+msgstr "Ceci est une de vos adresses de reception de paiement, et ne peut être ajoutée au carnet d'adresse. "
+
+#: ../../../ui.cpp:2319
+#: ../../../ui.cpp:2325
+msgid "Edit Address"
+msgstr "Modifier l'adresse"
+
+#: ../../../ui.cpp:2331
+msgid "Edit Address Label"
+msgstr "Modifier l'intitulé de l'adresse"
+
+#: ../../../ui.cpp:2356
+#: ../../../ui.cpp:2362
+msgid "Add Address"
+msgstr "Ajouter une adresse"
+
+#: ../../../ui.cpp:2438
+msgid "Bitcoin"
+msgstr "Bitcoin"
+
+#: ../../../ui.cpp:2440
+msgid "Bitcoin - Generating"
+msgstr "Bitcoin - Génération"
+
+#: ../../../ui.cpp:2442
+msgid "Bitcoin - (not connected)"
+msgstr "Bitcoin - (non connecté)"
+
+#: ../../../ui.cpp:2519
+msgid "&Open Bitcoin"
+msgstr "&Ouvrir Bitcoin"
+
+#: ../../../ui.cpp:2520
+msgid "O&ptions..."
+msgstr "O&ptions..."
+
+#: ../../../ui.cpp:2524
+#: ../../../uibase.cpp:25
+msgid "E&xit"
+msgstr "&Quitter"
+
+#: ../../../uibase.cpp:28
+msgid "&File"
+msgstr "&Fichier"
+
+#: ../../../uibase.cpp:36
+msgid "&Your Receiving Addresses..."
+msgstr "&Vos adresses de reception..."
+
+#: ../../../uibase.cpp:40
+msgid "&Options..."
+msgstr "&Options..."
+
+#: ../../../uibase.cpp:43
+msgid "&Settings"
+msgstr "&Préférences"
+
+#: ../../../uibase.cpp:47
+msgid "&About..."
+msgstr "&À propos..."
+
+#: ../../../uibase.cpp:50
+msgid "&Help"
+msgstr "&Aide"
+
+#: ../../../uibase.cpp:60
+msgid "Address Book"
+msgstr "Carnet d'adresse"
+
+#: ../../../uibase.cpp:75
+msgid "Your Bitcoin Address:"
+msgstr "Votre adresse Bitcoin :"
+
+#: ../../../uibase.cpp:82
+msgid " &New... "
+msgstr " &Nouvelle... "
+
+#: ../../../uibase.cpp:85
+#: ../../../uibase.cpp:845
+#: ../../../uibase.cpp:948
+msgid " &Copy to Clipboard "
+msgstr " &Copier dans le presse-papier "
+
+#: ../../../uibase.cpp:99
+msgid "Balance:"
+msgstr "Solde :"
+
+#: ../../../uibase.cpp:115
+msgid " All"
+msgstr " Tout"
+
+#: ../../../uibase.cpp:115
+msgid " Sent"
+msgstr " Envoyés"
+
+#: ../../../uibase.cpp:115
+msgid " Received"
+msgstr " Reçus"
+
+#: ../../../uibase.cpp:115
+msgid " In Progress"
+msgstr " En cours"
+
+#: ../../../uibase.cpp:136
+msgid "All Transactions"
+msgstr "Toutes les transactions"
+
+#: ../../../uibase.cpp:147
+msgid "Sent/Received"
+msgstr "Envoyées/Reçues"
+
+#: ../../../uibase.cpp:158
+msgid "Sent"
+msgstr "Envoyées"
+
+#: ../../../uibase.cpp:169
+msgid "Received"
+msgstr "Reçues"
+
+#: ../../../uibase.cpp:312
+#: ../../../uibase.cpp:473
+#: ../../../uibase.cpp:574
+#: ../../../uibase.cpp:787
+#: ../../../uibase.cpp:848
+#: ../../../uibase.cpp:957
+#: ../../../uibase.cpp:1046
+msgid "OK"
+msgstr "OK"
+
+#: ../../../uibase.cpp:355
+msgid "Optional transaction fee you give to the nodes that process your transactions."
+msgstr "Frais de transaction optionel que vous donnez au nœud qui traite vos transactions."
+
+#: ../../../uibase.cpp:364
+msgid "Transaction fee:"
+msgstr "Frais de transaction :"
+
+#: ../../../uibase.cpp:380
+msgid "&Limit coin generation to"
+msgstr "&Limiter la génération de pièce à"
+
+#: ../../../uibase.cpp:387
+msgid "processors"
+msgstr "processeurs"
+
+#: ../../../uibase.cpp:393
+msgid "&Start Bitcoin on system startup"
+msgstr "&Lancer Bitcoin au démarrage du système"
+
+#: ../../../uibase.cpp:397
+msgid "&Minimize to the tray instead of the taskbar"
+msgstr ""
+"&Réduire dans la zone de notification\n"
+"plutôt que dans la barre des tâches"
+
+#: ../../../uibase.cpp:401
+msgid "M&inimize to the tray on close"
+msgstr "Ré&duire dans la zone de notification"
+
+#: ../../../uibase.cpp:408
+msgid "&Connect through socks4 proxy: "
+msgstr "Se &connecter à travers un proxy SOCKS4: "
+
+#: ../../../uibase.cpp:420
+msgid "Proxy &IP:"
+msgstr "&IP du proxy :"
+
+#: ../../../uibase.cpp:428
+msgid " &Port:"
+msgstr " Port :"
+
+#: ../../../uibase.cpp:450
+msgid "// [don't translate] Test panel 2 for future expansion"
+msgstr ""
+
+#: ../../../uibase.cpp:454
+msgid "// [don't translate] Let's not start multiple pages until the first page is filled up"
+msgstr ""
+
+#: ../../../uibase.cpp:476
+#: ../../../uibase.cpp:729
+#: ../../../uibase.cpp:792
+#: ../../../uibase.cpp:851
+#: ../../../uibase.cpp:960
+#: ../../../uibase.cpp:1049
+msgid "Cancel"
+msgstr "Annuler"
+
+#: ../../../uibase.cpp:479
+msgid "&Apply"
+msgstr "&Appliquer"
+
+#: ../../../uibase.cpp:540
+msgid "Bitcoin "
+msgstr "Bitcoin "
+
+#: ../../../uibase.cpp:546
+msgid "version"
+msgstr "version"
+
+#: ../../../uibase.cpp:557
+msgid ""
+"Copyright (c) 2009-2010 Bitcoin Developers\n"
+"\n"
+"This is experimental software.\n"
+"\n"
+"Distributed under the MIT/X11 software license, see the accompanying file \n"
+"license.txt or http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"This product includes software developed by the OpenSSL Project for use in the \n"
+"OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
+msgstr ""
+"Copyright (c) 2009-2010 Bitcoin Developers\n"
+"\n"
+"Ceci est un logiciel expérimental.\n"
+"\n"
+"Distribué sous la licence logicielle MIT/X11, voir le fichier joint \n"
+"license.txt ou http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"Ce produit comprend des composants logiciels développés pour le Projet OpenSSL \n"
+"OpenSSL Toolkit (http://www.openssl.org/) ainsi que des composants cryptographiques \n"
+"écrits par Eric Young (eay@cryptsoft.com) et des logiciels UPnP écrits par Thomas Bernard.."
+
+#: ../../../uibase.cpp:613
+msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) or IP address (e.g. 123.45.6.7)"
+msgstr ""
+"Entrez une adresse Bitcoin (par exemple : 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L)\n"
+" ou une adresse IP (par exemple : 123.45.6.7)"
+
+#: ../../../uibase.cpp:627
+msgid "Pay &To:"
+msgstr "&Payable à:"
+
+#: ../../../uibase.cpp:642
+msgid "&Paste"
+msgstr "&Coller"
+
+#: ../../../uibase.cpp:645
+msgid " Address &Book..."
+msgstr " Carnet d'&adresse..."
+
+#: ../../../uibase.cpp:652
+msgid "&Amount:"
+msgstr "&Montant :"
+
+#: ../../../uibase.cpp:662
+msgid "T&ransfer:"
+msgstr "T&ransfert :"
+
+#: ../../../uibase.cpp:668
+msgid " Standard"
+msgstr " Standard"
+
+#: ../../../uibase.cpp:690
+msgid "&From:"
+msgstr "&De :"
+
+#: ../../../uibase.cpp:707
+msgid "&Message:"
+msgstr "&Message:"
+
+#: ../../../uibase.cpp:724
+msgid "&Send"
+msgstr "&Envoyer"
+
+#: ../../../uibase.cpp:776
+msgid ""
+"\n"
+"\n"
+"Connecting..."
+msgstr ""
+"\n"
+"\n"
+"Connexion..."
+
+#: ../../../uibase.cpp:826
+msgid "These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. The highlighted address is displayed in the main window."
+msgstr "Voici vos adresses Bitcoin de reception de paiement. Il peut être judicieux d'en fournir une différente à chaque émetteur afin de pouvoir suivre qui vous paie. L'adresse surlignée est affichée dans la fenêtre principale."
+
+#: ../../../uibase.cpp:839
+#: ../../../uibase.cpp:951
+msgid "&Edit..."
+msgstr "&Modifier..."
+
+#: ../../../uibase.cpp:842
+#: ../../../uibase.cpp:954
+msgid " &New Address... "
+msgstr " &Nouvelle adresse... "
+
+#: ../../../uibase.cpp:914
+msgid "Sending"
+msgstr "Envoi"
+
+#: ../../../uibase.cpp:922
+msgid "These are your Bitcoin addresses for receiving payments. You can give a different one to each sender to keep track of who is paying you. The highlighted address will be displayed in the main window."
+msgstr "Voici vos adresses Bitcoin de reception de paiement. Vous pouvez en fournir une différente à chaque émetteur afin de pouvoir suivre qui vous paie. L'adresse surlignée sera affichée dans la fenêtre principale."
+
+#: ../../../uibase.cpp:935
+msgid "Receiving"
+msgstr "Reception"
+
+#: ../../../uibase.cpp:945
+msgid "&Delete"
+msgstr "&Supprimer"
+
+#: ../../../uibase.h:149
+msgid "Transaction Details"
+msgstr "Détails de la transaction"
+
+#: ../../../uibase.h:202
+msgid "Options"
+msgstr "Options"
+
+#: ../../../uibase.h:230
+msgid "About Bitcoin"
+msgstr "À propos de Bitcoin"
+
+#: ../../../uibase.h:340
+msgid "Your Bitcoin Addresses"
+msgstr "Votre adresse Bitcoin"
+
+#~ msgid "Usage: bitcoin [options]"
+#~ msgstr "Usage: bitcoin [options]"
diff --git a/locale/it/LC_MESSAGES/bitcoin.mo b/locale/it/LC_MESSAGES/bitcoin.mo
new file mode 100644
index 0000000000..12386bc87e
--- /dev/null
+++ b/locale/it/LC_MESSAGES/bitcoin.mo
Binary files differ
diff --git a/locale/it/LC_MESSAGES/bitcoin.po b/locale/it/LC_MESSAGES/bitcoin.po
new file mode 100644
index 0000000000..c041b1e3a8
--- /dev/null
+++ b/locale/it/LC_MESSAGES/bitcoin.po
@@ -0,0 +1,967 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-05-15 18:22+0100\n"
+"PO-Revision-Date: 2011-05-26 09:46+0100\n"
+"Last-Translator: Joozero <hostfat@gmail.com>\n"
+"Language-Team: \n"
+"Language: Italian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-SearchPath-0: ../../..\n"
+
+#: ../../../src/net.cpp:1499
+#, c-format
+msgid "Unable to bind to port %d on this computer. Bitcoin is probably already running."
+msgstr "Impossibile utilizzare la porta %d su questo computer. Bitcoin probabilmente e' gia' in esecuzione"
+
+#: ../../../src/ui.cpp:202
+#, c-format
+msgid "This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?"
+msgstr "Questo trasferimento supera le dimensioni massime. Puoi comunque inviarlo per un costo aggiuntivo di %s, che andrà ai nodi che effettueranno il processo della tua operazione e che supportano il network. Vuoi pagare il costo aggiuntivo?"
+
+#: ../../../src/ui.cpp:301
+msgid "Status"
+msgstr "Stato"
+
+#: ../../../src/ui.cpp:302
+msgid "Date"
+msgstr "Data"
+
+#: ../../../src/ui.cpp:303
+msgid "Description"
+msgstr "Descrizione"
+
+#: ../../../src/ui.cpp:304
+msgid "Debit"
+msgstr "Debito"
+
+#: ../../../src/ui.cpp:305
+msgid "Credit"
+msgstr "Credito"
+
+#: ../../../src/ui.cpp:511
+#, c-format
+msgid "Open for %d blocks"
+msgstr "Aperto per %d blocchi"
+
+#: ../../../src/ui.cpp:513
+#, c-format
+msgid "Open until %s"
+msgstr "Aperto fino a %s"
+
+#: ../../../src/ui.cpp:519
+#, c-format
+msgid "%d/offline?"
+msgstr "%d/disconnesso?"
+
+#: ../../../src/ui.cpp:521
+#, c-format
+msgid "%d/unconfirmed"
+msgstr "%d/non confermato"
+
+#: ../../../src/ui.cpp:523
+#, c-format
+msgid "%d confirmations"
+msgstr "%d conferme"
+
+#: ../../../src/ui.cpp:608
+msgid "Generated"
+msgstr "Generato"
+
+#: ../../../src/ui.cpp:616
+#, c-format
+msgid "Generated (%s matures in %d more blocks)"
+msgstr "Generato (%s matureranno in %d altri blocchi)"
+
+#: ../../../src/ui.cpp:620
+msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
+msgstr "Generato - Attenzione: Questo blocco non è stato ricevuto da nessun altro nodo e probabilmente non sarà accettato!"
+
+#: ../../../src/ui.cpp:624
+msgid "Generated (not accepted)"
+msgstr "Generato (non accettato)"
+
+#: ../../../src/ui.cpp:634
+msgid "From: "
+msgstr "Da: "
+
+#: ../../../src/ui.cpp:658
+msgid "Received with: "
+msgstr "Ricevuto con: "
+
+#: ../../../src/ui.cpp:704
+msgid "Payment to yourself"
+msgstr "Pagamento a te stesso"
+
+#: ../../../src/ui.cpp:738
+msgid "To: "
+msgstr "A: "
+
+#: ../../../src/ui.cpp:1053
+msgid " Generating"
+msgstr " Generando"
+
+#: ../../../src/ui.cpp:1055
+msgid "(not connected)"
+msgstr "(non connesso)"
+
+#: ../../../src/ui.cpp:1058
+#, c-format
+msgid " %d connections %d blocks %d transactions"
+msgstr " %d connessioni %d blocchi %d trasferimenti"
+
+#: ../../../src/ui.cpp:1163
+#: ../../../src/ui.cpp:2527
+msgid "New Receiving Address"
+msgstr "Nuovo indirizzo di ricezione"
+
+#: ../../../src/ui.cpp:1164
+#: ../../../src/ui.cpp:2528
+msgid ""
+"You should use a new address for each payment you receive.\n"
+"\n"
+"Label"
+msgstr ""
+"Si dovrebbe usare un nuovo indirizzo per ogni pagamento che ricevi.\n"
+"\n"
+"Label"
+
+#: ../../../src/ui.cpp:1233
+msgid "<b>Status:</b> "
+msgstr "<b>Stato:</b> "
+
+#: ../../../src/ui.cpp:1238
+msgid ", has not been successfully broadcast yet"
+msgstr ", non è ancora stato trasmesso correttamente"
+
+#: ../../../src/ui.cpp:1240
+#, c-format
+msgid ", broadcast through %d node"
+msgstr ", trasmissione attraverso %d nodo"
+
+#: ../../../src/ui.cpp:1242
+#, c-format
+msgid ", broadcast through %d nodes"
+msgstr ", trasmissione attraverso %d nodi"
+
+#: ../../../src/ui.cpp:1246
+msgid "<b>Date:</b> "
+msgstr "<b>Data:</b> "
+
+#: ../../../src/ui.cpp:1254
+msgid "<b>Source:</b> Generated<br>"
+msgstr "<b>Sorgente:</b> Generato<br>"
+
+#: ../../../src/ui.cpp:1260
+#: ../../../src/ui.cpp:1278
+msgid "<b>From:</b> "
+msgstr "<b>Da:</b> "
+
+#: ../../../src/ui.cpp:1278
+msgid "unknown"
+msgstr "sconosciuto"
+
+#: ../../../src/ui.cpp:1279
+#: ../../../src/ui.cpp:1303
+#: ../../../src/ui.cpp:1362
+msgid "<b>To:</b> "
+msgstr "<b>A:</b> "
+
+#: ../../../src/ui.cpp:1282
+msgid " (yours, label: "
+msgstr " (vostro, label: "
+
+#: ../../../src/ui.cpp:1284
+msgid " (yours)"
+msgstr " (vostro)"
+
+#: ../../../src/ui.cpp:1321
+#: ../../../src/ui.cpp:1333
+#: ../../../src/ui.cpp:1379
+#: ../../../src/ui.cpp:1396
+msgid "<b>Credit:</b> "
+msgstr "<b>Credito:</b> "
+
+#: ../../../src/ui.cpp:1323
+#, c-format
+msgid "(%s matures in %d more blocks)"
+msgstr "(%s matureranno in %d altri blocchi)"
+
+#: ../../../src/ui.cpp:1325
+msgid "(not accepted)"
+msgstr "(non accettato)"
+
+#: ../../../src/ui.cpp:1370
+#: ../../../src/ui.cpp:1378
+#: ../../../src/ui.cpp:1393
+msgid "<b>Debit:</b> "
+msgstr "<b>Debito:</b> "
+
+#: ../../../src/ui.cpp:1384
+msgid "<b>Transaction fee:</b> "
+msgstr "<b>Costo del trasferimento :</b> "
+
+#: ../../../src/ui.cpp:1400
+msgid "<b>Net amount:</b> "
+msgstr "<b>Quantità del network:</b> "
+
+#: ../../../src/ui.cpp:1407
+msgid "Message:"
+msgstr "Messaggio:"
+
+#: ../../../src/ui.cpp:1409
+msgid "Comment:"
+msgstr "Commento:"
+
+#: ../../../src/ui.cpp:1412
+msgid "Generated coins must wait 120 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, it will change to \"not accepted\" and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours."
+msgstr "Le monete generate devono aspettare 120 blocchi prima di poter essere spese. Quando hai generato questo blocco, è stato diffuso sul network per essere aggiunto alla catena dei blocchi. Se fallirà l'entrata nella catena, cambierà in \"non accettato\" e non spendibile. Questo può capitare se un altro nodo genera un blocco pochi secondi prima del tuo."
+
+#: ../../../src/ui.cpp:1592
+msgid "Cannot write autostart/bitcoin.desktop file"
+msgstr "Impossibile creare il file autostart/bitcoin.desktop"
+
+#: ../../../src/ui.cpp:1628
+msgid "Main"
+msgstr "Principale"
+
+#: ../../../src/ui.cpp:1636
+msgid "&Start Bitcoin on window system startup"
+msgstr "&Avvia Bitcoin all'avvio del sistema"
+
+#: ../../../src/ui.cpp:1643
+msgid "&Minimize on close"
+msgstr "&Minimizza se chiuso"
+
+#: ../../../src/ui.cpp:1785
+#, c-format
+msgid "version %s"
+msgstr "versione %s"
+
+#: ../../../src/ui.cpp:1897
+msgid "Error in amount "
+msgstr "Errore nell'ammontare "
+
+#: ../../../src/ui.cpp:1897
+#: ../../../src/ui.cpp:1902
+#: ../../../src/ui.cpp:1907
+#: ../../../src/ui.cpp:1942
+#: ../../../src/uibase.cpp:55
+msgid "Send Coins"
+msgstr "Invia monete"
+
+#: ../../../src/ui.cpp:1902
+msgid "Amount exceeds your balance "
+msgstr "L'ammontare è andato oltre i tuoi capitali "
+
+#: ../../../src/ui.cpp:1907
+msgid "Total exceeds your balance when the "
+msgstr "Il totale supera il tuo bilancio quando il "
+
+#: ../../../src/ui.cpp:1907
+msgid " transaction fee is included "
+msgstr " il costo del trasferimento è incluso "
+
+#: ../../../src/ui.cpp:1925
+msgid "Payment sent "
+msgstr "Pagamento inviato "
+
+#: ../../../src/ui.cpp:1925
+#: ../../../src/ui.cpp:1930
+#: ../../../src/ui.cpp:2074
+#: ../../../src/ui.cpp:2227
+#: ../../../src/main.cpp:3999
+msgid "Sending..."
+msgstr "Invio in corso..."
+
+#: ../../../src/ui.cpp:1942
+msgid "Invalid address "
+msgstr "Indirizzo non valido "
+
+#: ../../../src/ui.cpp:1995
+#, c-format
+msgid "Sending %s to %s"
+msgstr "Inviando %s a %s"
+
+#: ../../../src/ui.cpp:2068
+#: ../../../src/ui.cpp:2101
+msgid "CANCELLED"
+msgstr "CANCELLATO"
+
+#: ../../../src/ui.cpp:2072
+msgid "Cancelled"
+msgstr "Cancellato"
+
+#: ../../../src/ui.cpp:2074
+msgid "Transfer cancelled "
+msgstr "Operazione cancellata "
+
+#: ../../../src/ui.cpp:2127
+msgid "Error: "
+msgstr "Errore: "
+
+#: ../../../src/ui.cpp:2141
+#: ../../../src/ui.cpp:2212
+#: ../../../src/main.cpp:4018
+msgid "Insufficient funds"
+msgstr "Fondi insufficenti"
+
+#: ../../../src/ui.cpp:2146
+msgid "Connecting..."
+msgstr "Connessione in corso..."
+
+#: ../../../src/ui.cpp:2151
+msgid "Unable to connect"
+msgstr "Impossibile connettersi"
+
+#: ../../../src/ui.cpp:2156
+msgid "Requesting public key..."
+msgstr "Richiesta chiave pubblica..."
+
+#: ../../../src/ui.cpp:2168
+msgid "Received public key..."
+msgstr "Ricezione chiave pubblica..."
+
+#: ../../../src/ui.cpp:2182
+msgid "Recipient is not accepting transactions sent by IP address"
+msgstr "Il destinatario non accetta transazioni effettuate tramite questo IP"
+
+#: ../../../src/ui.cpp:2184
+msgid "Transfer was not accepted"
+msgstr "Trasferimento non accettato"
+
+#: ../../../src/ui.cpp:2193
+msgid "Invalid response received"
+msgstr "Risposta non valida ricevuta"
+
+#: ../../../src/ui.cpp:2208
+msgid "Creating transaction..."
+msgstr "Creo transazione..."
+
+#: ../../../src/ui.cpp:2220
+#, c-format
+msgid "This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds"
+msgstr "Questa transazione richiede un costo di transazione di almeno %s a causa della sua quantità, complessità, o per l'uso di fondi recentemente ricevuti"
+
+#: ../../../src/ui.cpp:2222
+msgid "Transaction creation failed"
+msgstr "Creazione trasferimento fallita"
+
+#: ../../../src/ui.cpp:2229
+msgid "Transaction aborted"
+msgstr "Trasferimento bloccato"
+
+#: ../../../src/ui.cpp:2237
+msgid "Lost connection, transaction cancelled"
+msgstr "Connessione persa, trasferimento cancellato"
+
+#: ../../../src/ui.cpp:2253
+msgid "Sending payment..."
+msgstr "Invio del pagamento..."
+
+#: ../../../src/ui.cpp:2259
+msgid "The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "Il trasferimento è stato respinto. Questo può accadere se alcune delle monete nel tuo portafoglio erano già state spese, o anche se hai usato una copia di wallet.dat e le monete erano già state spese nella copia originale ma non segnate in quest'ultima."
+
+#: ../../../src/ui.cpp:2268
+msgid "Waiting for confirmation..."
+msgstr "In attesa di conferma..."
+
+#: ../../../src/ui.cpp:2286
+msgid ""
+"The payment was sent, but the recipient was unable to verify it.\n"
+"The transaction is recorded and will credit to the recipient,\n"
+"but the comment information will be blank."
+msgstr ""
+"Il pagamento è stato inviato, ma il destinatario non è stato in grado di verificarlo.\n"
+"Il trasferimento è registrato e sarà accreditato al destinatario,\n"
+"ma il commento informativo verrà mostrato come vuoto."
+
+#: ../../../src/ui.cpp:2295
+msgid "Payment was sent, but an invalid response was received"
+msgstr "Il pagamento è stato inviato, ma è arrivata un risposta invalida"
+
+#: ../../../src/ui.cpp:2301
+msgid "Payment completed"
+msgstr "Pagamento completato"
+
+#: ../../../src/ui.cpp:2332
+#: ../../../src/ui.cpp:2478
+#: ../../../src/ui.cpp:2515
+msgid "Name"
+msgstr "Nome"
+
+#: ../../../src/ui.cpp:2333
+#: ../../../src/ui.cpp:2478
+#: ../../../src/ui.cpp:2515
+msgid "Address"
+msgstr "Indirizzo"
+
+#: ../../../src/ui.cpp:2335
+#: ../../../src/ui.cpp:2490
+msgid "Label"
+msgstr "Label"
+
+#: ../../../src/ui.cpp:2336
+#: ../../../src/uibase.cpp:837
+msgid "Bitcoin Address"
+msgstr "Indirizzo Bitcoin"
+
+#: ../../../src/ui.cpp:2460
+msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
+msgstr "Questo qui è uno dei tuoi indirizzi personali per ricevere pagamenti e non può essere inserito nella rubrica indirizzi. "
+
+#: ../../../src/ui.cpp:2478
+#: ../../../src/ui.cpp:2484
+msgid "Edit Address"
+msgstr "Modifica indirizzo"
+
+#: ../../../src/ui.cpp:2490
+msgid "Edit Address Label"
+msgstr "Modifica spazio indirizzo"
+
+#: ../../../src/ui.cpp:2515
+#: ../../../src/ui.cpp:2521
+msgid "Add Address"
+msgstr "Aggiungi indirizzo"
+
+#: ../../../src/ui.cpp:2598
+msgid "Bitcoin"
+msgstr "Bitcoin"
+
+#: ../../../src/ui.cpp:2600
+msgid "Bitcoin - Generating"
+msgstr "Bitcoin - Generando"
+
+#: ../../../src/ui.cpp:2602
+msgid "Bitcoin - (not connected)"
+msgstr "Bitcoin - (non connesso)"
+
+#: ../../../src/ui.cpp:2681
+msgid "&Open Bitcoin"
+msgstr "&Apri Bitcoin"
+
+#: ../../../src/ui.cpp:2682
+msgid "&Send Bitcoins"
+msgstr "&Apri Bitcoin"
+
+#: ../../../src/ui.cpp:2683
+msgid "O&ptions..."
+msgstr "&Opzioni..."
+
+#: ../../../src/ui.cpp:2686
+#: ../../../src/uibase.cpp:25
+msgid "E&xit"
+msgstr "&Esci"
+
+#: ../../../src/ui.cpp:2902
+msgid "Program has crashed and will terminate. "
+msgstr "Il programma è crashato e sarà terminato. "
+
+#: ../../../src/main.cpp:1868
+msgid "Warning: Disk space is low "
+msgstr "Attenzione: c'è poco spazio sul disco "
+
+#: ../../../src/main.cpp:3992
+#, c-format
+msgid "Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds "
+msgstr "Errore: Questa transazione richiede un costo di transazione di almeno %s a causa della sua quantità, complessità, o per l'uso di fondi recentemente ricevuti"
+
+#: ../../../src/main.cpp:3994
+msgid "Error: Transaction creation failed "
+msgstr "Errore: Creazione del trasferimento fallito "
+
+#: ../../../src/main.cpp:4003
+msgid "Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "Errore: Il trasferimento è stato respinto. Questo può accadere se alcune delle monete nel tuo portafoglio erano già state spese, o anche se hai usato una copia di wallet.dat e le monete erano già state spese nella copia originale ma non segnate in quest'ultima."
+
+#: ../../../src/main.cpp:4016
+msgid "Invalid amount"
+msgstr "Quantità non valida"
+
+#: ../../../src/main.cpp:4023
+msgid "Invalid bitcoin address"
+msgstr "Indirizzo bitcoin non valido"
+
+#: ../../../src/rpc.cpp:1800
+#: ../../../src/rpc.cpp:1802
+#, c-format
+msgid "To use the %s option"
+msgstr "Usare l'opzione %s"
+
+#: ../../../src/rpc.cpp:1804
+#, c-format
+msgid ""
+"Warning: %s, you must set rpcpassword=<password>\n"
+"in the configuration file: %s\n"
+"If the file does not exist, create it with owner-readable-only file permissions.\n"
+msgstr ""
+"Attenzione: %s, devi impostare rpcpassword=<password>\n"
+"nel file di configurazione: %s\n"
+"Se questo file non esiste, puoi crearlo come un file di sola lettura.\n"
+
+#: ../../../src/rpc.cpp:1972
+#, c-format
+msgid ""
+"You must set rpcpassword=<password> in the configuration file:\n"
+"%s\n"
+"If the file does not exist, create it with owner-readable-only file permissions."
+msgstr ""
+"Devi settare rpcpassword=<password> nel file di configurazione:\n"
+"%s\n"
+"Se questo file non esiste, puoi crearlo come un file di sola lettura"
+
+#: ../../../src/util.cpp:865
+msgid "Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly."
+msgstr "Attenzione: Controlla che data/ora del tuo computer siano corrette. Se il tuo orologio è sbagliato bitcoin non funzionerà correttamente"
+
+#: ../../../src/util.cpp:898
+msgid "beta"
+msgstr "beta"
+
+#: ../../../src/uibase.cpp:28
+msgid "&File"
+msgstr "&File"
+
+#: ../../../src/uibase.cpp:32
+msgid "&Your Receiving Addresses..."
+msgstr "&Il tuo indirizzo di ricezione..."
+
+#: ../../../src/uibase.cpp:36
+msgid "&Options..."
+msgstr "&Opzioni..."
+
+#: ../../../src/uibase.cpp:39
+msgid "&Settings"
+msgstr "I&mpostazioni"
+
+#: ../../../src/uibase.cpp:43
+msgid "&About..."
+msgstr "&Info..."
+
+#: ../../../src/uibase.cpp:46
+msgid "&Help"
+msgstr "&Aiuto"
+
+#: ../../../src/uibase.cpp:56
+msgid "Address Book"
+msgstr "Rubrica indirizzi"
+
+#: ../../../src/uibase.cpp:69
+msgid "Your Bitcoin Address:"
+msgstr "Il tuo indirizzo Bitcoin:"
+
+#: ../../../src/uibase.cpp:76
+msgid " &New... "
+msgstr " &Nuovo... "
+
+#: ../../../src/uibase.cpp:79
+#: ../../../src/uibase.cpp:780
+#: ../../../src/uibase.cpp:883
+msgid " &Copy to Clipboard "
+msgstr " &Copia nella Clipboard "
+
+#: ../../../src/uibase.cpp:93
+msgid "Balance:"
+msgstr "Bilancio:"
+
+#: ../../../src/uibase.cpp:109
+msgid " All"
+msgstr " Tutte"
+
+#: ../../../src/uibase.cpp:109
+msgid " Sent"
+msgstr " Inviato"
+
+#: ../../../src/uibase.cpp:109
+msgid " Received"
+msgstr " Ricevuto"
+
+#: ../../../src/uibase.cpp:109
+msgid " In Progress"
+msgstr " In lavorazione"
+
+#: ../../../src/uibase.cpp:130
+msgid "All Transactions"
+msgstr "Tutte le transazioni"
+
+#: ../../../src/uibase.cpp:141
+msgid "Sent/Received"
+msgstr "Inviato/Ricevuto"
+
+#: ../../../src/uibase.cpp:152
+msgid "Sent"
+msgstr "Inviato"
+
+#: ../../../src/uibase.cpp:163
+msgid "Received"
+msgstr "Ricevuto"
+
+#: ../../../src/uibase.cpp:302
+#: ../../../src/uibase.cpp:443
+#: ../../../src/uibase.cpp:542
+#: ../../../src/uibase.cpp:722
+#: ../../../src/uibase.cpp:783
+#: ../../../src/uibase.cpp:892
+#: ../../../src/uibase.cpp:981
+msgid "OK"
+msgstr "OK"
+
+#: ../../../src/uibase.cpp:345
+msgid "&Start Bitcoin on system startup"
+msgstr "&Avvia Bitcoin all'avvio del sistema"
+
+#: ../../../src/uibase.cpp:348
+msgid "&Minimize to the tray instead of the taskbar"
+msgstr "&Minimizza nella tray invece che nella barra"
+
+#: ../../../src/uibase.cpp:351
+msgid "Map port using &UPnP"
+msgstr "Imposta le porte del firewall utilizzando &UPnP"
+
+#: ../../../src/uibase.cpp:354
+msgid "&Minimize to the tray on close"
+msgstr "&Minimizza nella tray alla chiusura"
+
+#: ../../../src/uibase.cpp:360
+msgid "&Connect through socks4 proxy: "
+msgstr "&Connesso attraverso proxy socks4: "
+
+#: ../../../src/uibase.cpp:371
+msgid "Proxy &IP:"
+msgstr "Proxy &IP:"
+
+#: ../../../src/uibase.cpp:379
+msgid " &Port:"
+msgstr " &Porta:"
+
+#: ../../../src/uibase.cpp:392
+msgid "Optional transaction fee per KB that helps make sure your transactions are processed quickly. Most transactions are 1KB. Fee 0.01 recommended."
+msgstr "Tassa di transazione per ogni KB opzionale che consente di assicurarsi che le transazioni siano trattate con rapidità. La maggior parte delle operazioni sono 1KB. Quota 0,01 raccomandata."
+
+#: ../../../src/uibase.cpp:399
+msgid "Pay transaction fee:"
+msgstr "Costo trasferimento:"
+
+#: ../../../src/uibase.cpp:420
+msgid "// [don't translate] Test panel 2 for future expansion"
+msgstr ""
+
+#: ../../../src/uibase.cpp:424
+msgid "// [don't translate] Let's not start multiple pages until the first page is filled up"
+msgstr ""
+
+#: ../../../src/uibase.cpp:446
+#: ../../../src/uibase.cpp:668
+#: ../../../src/uibase.cpp:727
+#: ../../../src/uibase.cpp:786
+#: ../../../src/uibase.cpp:895
+#: ../../../src/uibase.cpp:984
+msgid "Cancel"
+msgstr "Cancella"
+
+#: ../../../src/uibase.cpp:449
+msgid "&Apply"
+msgstr "&Accetta"
+
+#: ../../../src/uibase.cpp:508
+msgid "Bitcoin "
+msgstr "Bitcoin "
+
+#: ../../../src/uibase.cpp:514
+msgid "version"
+msgstr "versione"
+
+#: ../../../src/uibase.cpp:525
+msgid ""
+"Copyright (c) 2009-2011 Bitcoin Developers\n"
+"\n"
+"This is experimental software.\n"
+"\n"
+"Distributed under the MIT/X11 software license, see the accompanying file \n"
+"license.txt or http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"This product includes software developed by the OpenSSL Project for use in the \n"
+"OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
+msgstr ""
+"Copyright (c) 2009-2010 Bitcoin Developers\n"
+"\n"
+"Questo è un software sperimentale.\n"
+"\n"
+"Distribuito sotto la licenza software MIT/X11, guarda il file license.txt\n"
+"incluso oppure su http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"Questo prodotto include software sviluppato dal progetto OpenSSL per\n"
+"l'uso del (http://www.openssl.org/) e il software criptografico scritto\n"
+"da Eric Young (eay@cryptsoft.com) e UPnP software scritto da Thomas Bernard."
+
+#: ../../../src/uibase.cpp:581
+msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+msgstr "Inserisci un indirizzo Bitcoin (es. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+
+#: ../../../src/uibase.cpp:595
+msgid "Pay &To:"
+msgstr "Paga &a:"
+
+#: ../../../src/uibase.cpp:610
+msgid "&Paste"
+msgstr "&Incolla"
+
+#: ../../../src/uibase.cpp:613
+msgid " Address &Book..."
+msgstr " &Rubrica degli indirizzi..."
+
+#: ../../../src/uibase.cpp:620
+msgid "&Amount:"
+msgstr "&Quantità"
+
+#: ../../../src/uibase.cpp:630
+msgid "&Transfer:"
+msgstr "&Trasferimento:"
+
+#: ../../../src/uibase.cpp:636
+msgid " Standard"
+msgstr " Standard"
+
+#: ../../../src/uibase.cpp:663
+msgid "&Send"
+msgstr "&Invia"
+
+#: ../../../src/uibase.cpp:711
+msgid ""
+"\n"
+"\n"
+"Connecting..."
+msgstr ""
+"\n"
+"\n"
+"Connessione in corso..."
+
+#: ../../../src/uibase.cpp:761
+msgid "These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. The highlighted address is displayed in the main window."
+msgstr "Questi sono i tuoi indirizzi Bitcoin per ricevere pagamenti. Potrai darne uno diverso ad ognuno per cosi tenere traccia di chi ti sta pagando. L'indirizzo selezionato sarà quello mostrato nella finestra principale."
+
+#: ../../../src/uibase.cpp:774
+#: ../../../src/uibase.cpp:886
+msgid "&Edit..."
+msgstr "&Cambia..."
+
+#: ../../../src/uibase.cpp:777
+#: ../../../src/uibase.cpp:889
+msgid " &New Address... "
+msgstr " &Nuovo indirizzo... "
+
+#: ../../../src/uibase.cpp:849
+msgid "Sending"
+msgstr "Invio in corso.."
+
+#: ../../../src/uibase.cpp:857
+msgid "These are your Bitcoin addresses for receiving payments. You can give a different one to each sender to keep track of who is paying you. The highlighted address will be displayed in the main window."
+msgstr "Questi sono i tuoi indirizzi Bitcoin per ricevere pagamenti. Potrai darne uno diverso ad ognuno per cosi tenere traccia di chi ti sta pagando. L'indirizzo selezionato sarà quello mostrato nella finestra principale."
+
+#: ../../../src/uibase.cpp:870
+msgid "Receiving"
+msgstr "Ricevendo"
+
+#: ../../../src/uibase.cpp:880
+msgid "&Delete"
+msgstr "&Cancella"
+
+#: ../../../src/init.cpp:147
+msgid "Bitcoin version"
+msgstr "Versione Bitcoin "
+
+#: ../../../src/init.cpp:148
+msgid "Usage:"
+msgstr "Uso:"
+
+#: ../../../src/init.cpp:150
+msgid "Send command to -server or bitcoind\n"
+msgstr "Invia comando a -server o a bitcoin\n"
+
+#: ../../../src/init.cpp:151
+msgid "List commands\n"
+msgstr "Lista comandi\n"
+
+#: ../../../src/init.cpp:152
+msgid "Get help for a command\n"
+msgstr "Chiedi aiuto per i comandi\n"
+
+#: ../../../src/init.cpp:153
+msgid "Options:\n"
+msgstr "Opzioni:\n"
+
+#: ../../../src/init.cpp:154
+msgid "Specify configuration file (default: bitcoin.conf)\n"
+msgstr "Specifica il file di configurazione (normalmente e': bitcoin.conf)\n"
+
+#: ../../../src/init.cpp:155
+msgid "Specify pid file (default: bitcoind.pid)\n"
+msgstr "Specifica il fil pid (normalmente: bitcoin.pid)\n"
+
+#: ../../../src/init.cpp:156
+msgid "Generate coins\n"
+msgstr "Genera monete\n"
+
+#: ../../../src/init.cpp:157
+msgid "Don't generate coins\n"
+msgstr "Non generare monete\n"
+
+#: ../../../src/init.cpp:158
+msgid "Start minimized\n"
+msgstr "Avvia minimizzato\n"
+
+#: ../../../src/init.cpp:159
+msgid "Specify data directory\n"
+msgstr "Indica la cartella per i dati\n"
+
+#: ../../../src/init.cpp:160
+msgid "Connect through socks4 proxy\n"
+msgstr "Connetti attraverso proxy socks4\n"
+
+#: ../../../src/init.cpp:161
+msgid "Allow DNS lookups for addnode and connect\n"
+msgstr "Permetti DNS lookups per aggiungere un nodo e collegarsi\n"
+
+#: ../../../src/init.cpp:162
+msgid "Add a node to connect to\n"
+msgstr "Aggiungi un nodoper la connessione a\n"
+
+#: ../../../src/init.cpp:163
+msgid "Connect only to the specified node\n"
+msgstr "Collegati solo al nodo specificato\n"
+
+#: ../../../src/init.cpp:164
+msgid "Don't accept connections from outside\n"
+msgstr "Non accettare connessioni dall'esterno\n"
+
+#: ../../../src/init.cpp:167
+msgid "Don't attempt to use UPnP to map the listening port\n"
+msgstr "Non provare a usare UPnP per mappare le porte in ascolto\n"
+
+#: ../../../src/init.cpp:169
+msgid "Attempt to use UPnP to map the listening port\n"
+msgstr "Prova ad usare l' UPnP per mappare la porte in ascolto\n"
+
+#: ../../../src/init.cpp:172
+msgid "Fee per KB to add to transactions you send\n"
+msgstr "Tassa per KB da aggiungere alle operazioni di invio\n"
+
+#: ../../../src/init.cpp:174
+msgid "Accept command line and JSON-RPC commands\n"
+msgstr "Accetta linea di comando e i comando JSON-RPC\n"
+
+#: ../../../src/init.cpp:177
+msgid "Run in the background as a daemon and accept commands\n"
+msgstr "Avvia in background come processo e accetta i comandi\n"
+
+#: ../../../src/init.cpp:179
+msgid "Use the test network\n"
+msgstr "Usa il network test\n"
+
+#: ../../../src/init.cpp:180
+msgid "Username for JSON-RPC connections\n"
+msgstr "Username per le connessioni JSON-RPC\n"
+
+#: ../../../src/init.cpp:181
+msgid "Password for JSON-RPC connections\n"
+msgstr "Password per le connessioni JSON-RPC\n"
+
+#: ../../../src/init.cpp:182
+msgid "Listen for JSON-RPC connections on <port> (default: 8332)\n"
+msgstr "In ascolta per connessioni JSON-RPC sulla porta <port> (default: 8332)\n"
+
+#: ../../../src/init.cpp:183
+msgid "Allow JSON-RPC connections from specified IP address\n"
+msgstr "Permetti connessioni JSON-RPC da un indirizzo IP specifico\n"
+
+#: ../../../src/init.cpp:184
+msgid "Send commands to node running on <ip> (default: 127.0.0.1)\n"
+msgstr "Invia comandi al nodo in esecuzione su <ip> (default: 127.0.0.1)\n"
+
+#: ../../../src/init.cpp:185
+msgid "Set key pool size to <n> (default: 100)\n"
+msgstr "Imposta la dimensione della key pool a <n> (default: 100)\n"
+
+#: ../../../src/init.cpp:186
+msgid "Rescan the block chain for missing wallet transactions\n"
+msgstr "Ricontrolla il blocco della catena transazioni del portafoglio mancate\n"
+
+#: ../../../src/init.cpp:190
+msgid ""
+"\n"
+"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"
+msgstr ""
+"\n"
+"opzioni SSL: (Consulta Bitcoin Wiki per le istruzioni di configurazione dell' SSL)\n"
+
+#: ../../../src/init.cpp:191
+msgid "Use OpenSSL (https) for JSON-RPC connections\n"
+msgstr "Usa OpenSSL (https) per connessioni JSON-RPC\n"
+
+#: ../../../src/init.cpp:192
+msgid "Server certificate file (default: server.cert)\n"
+msgstr "File del certificato del server (default: server.cert)\n"
+
+#: ../../../src/init.cpp:193
+msgid "Server private key (default: server.pem)\n"
+msgstr "Chiave del server privata ((default: server.pem)\n"
+
+#: ../../../src/init.cpp:194
+msgid "Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
+msgstr "Cifrari accettati (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
+
+#: ../../../src/init.cpp:198
+msgid "This help message\n"
+msgstr "Questo messaggio di aiuto\n"
+
+#: ../../../src/init.cpp:335
+#, c-format
+msgid "Cannot obtain a lock on data directory %s. Bitcoin is probably already running."
+msgstr "Impossibile ottenere un blocco sulla directory %s. Bitcoin e' probabilmente gia' in esecuzione"
+
+#: ../../../src/init.cpp:361
+msgid "Error loading addr.dat \n"
+msgstr "Errore nel caricamento addr.dat \n"
+
+#: ../../../src/init.cpp:367
+msgid "Error loading blkindex.dat \n"
+msgstr "Errore nel caricamento blkindex.dat \n"
+
+#: ../../../src/init.cpp:374
+msgid "Error loading wallet.dat \n"
+msgstr "Errore nel caricamento wallet.dat \n"
+
+#: ../../../src/init.cpp:454
+msgid "Invalid -proxy address"
+msgstr "Indirizzo proxy non valido"
+
+#: ../../../src/init.cpp:477
+msgid "Invalid amount for -paytxfee=<amount>"
+msgstr "Quantita' non valida per -paytxfee=<amount>"
+
+#: ../../../src/init.cpp:481
+msgid "Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."
+msgstr "Attenzione: -paytxfee e' molto alta. Questo e' la tassa che pagherai se invii la transazione"
+
+#: ../../../src/uibase.h:147
+msgid "Transaction Details"
+msgstr "Dettagli transazione"
+
+#: ../../../src/uibase.h:199
+msgid "Options"
+msgstr "Opzioni"
+
+#: ../../../src/uibase.h:228
+msgid "About Bitcoin"
+msgstr "Info Bitcoin"
+
+#: ../../../src/uibase.h:337
+msgid "Your Bitcoin Addresses"
+msgstr "Il tuo indirizzo Bitcoin"
diff --git a/locale/lt/LC_MESSAGES/bitcoin.mo b/locale/lt/LC_MESSAGES/bitcoin.mo
new file mode 100644
index 0000000000..bba16a857f
--- /dev/null
+++ b/locale/lt/LC_MESSAGES/bitcoin.mo
Binary files differ
diff --git a/locale/lt/LC_MESSAGES/bitcoin.po b/locale/lt/LC_MESSAGES/bitcoin.po
new file mode 100644
index 0000000000..b0decb26cb
--- /dev/null
+++ b/locale/lt/LC_MESSAGES/bitcoin.po
@@ -0,0 +1,971 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-05-17 14:07+0100\n"
+"PO-Revision-Date: 2011-05-17 14:09+0100\n"
+"Last-Translator: Anonymous <anon@none>\n"
+"Language-Team: \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-SearchPath-0: ../../..\n"
+
+#: ../../../src/net.cpp:1503
+#, c-format
+msgid "Unable to bind to port %d on this computer. Bitcoin is probably already running."
+msgstr "Neįmanoma prisijungti prie šio kompiuterio porto %d. Bitcoin programa tikriausiai jau yra paleista"
+
+#: ../../../src/ui.cpp:204
+#, c-format
+msgid "This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?"
+msgstr "Šis pervedimas viršija dydžio limitą. Jūs galite siūsti šią suma sumokėję %s mokestį, kuris bus skirtas nodams už persiuntimą ir padėti tinklui. Ar sutinkate pridėti ši mokestį?"
+
+#: ../../../src/ui.cpp:303
+msgid "Status"
+msgstr "Būklė"
+
+#: ../../../src/ui.cpp:304
+msgid "Date"
+msgstr "Data"
+
+#: ../../../src/ui.cpp:305
+msgid "Description"
+msgstr "Apibūdinimas"
+
+#: ../../../src/ui.cpp:306
+msgid "Debit"
+msgstr "Debetas"
+
+#: ../../../src/ui.cpp:307
+msgid "Credit"
+msgstr "Kreditas"
+
+#: ../../../src/ui.cpp:513
+#, c-format
+msgid "Open for %d blocks"
+msgstr "Atidaryta %d blokams"
+
+#: ../../../src/ui.cpp:515
+#, c-format
+msgid "Open until %s"
+msgstr "Atidaryta iki %s"
+
+#: ../../../src/ui.cpp:521
+#, c-format
+msgid "%d/offline?"
+msgstr "%d/neprisijunges?"
+
+#: ../../../src/ui.cpp:523
+#, c-format
+msgid "%d/unconfirmed"
+msgstr "%d/ nepatvirtinta"
+
+#: ../../../src/ui.cpp:525
+#, c-format
+msgid "%d confirmations"
+msgstr "%d patvirtinta"
+
+#: ../../../src/ui.cpp:610
+msgid "Generated"
+msgstr "Sugeneruota"
+
+#: ../../../src/ui.cpp:618
+#, c-format
+msgid "Generated (%s matures in %d more blocks)"
+msgstr "Sugeneruota (%s bus galima naudoti už %d blokų)"
+
+#: ../../../src/ui.cpp:622
+msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
+msgstr "Sugeneruota - Perspėjimas: Šio bloko negavo kiti nodai ir jis tikriausiai nebus priimtas!"
+
+#: ../../../src/ui.cpp:626
+msgid "Generated (not accepted)"
+msgstr "Sugeneruota (nepriimta)"
+
+#: ../../../src/ui.cpp:636
+msgid "From: "
+msgstr "Nuo: "
+
+#: ../../../src/ui.cpp:660
+msgid "Received with: "
+msgstr "Priimta su: "
+
+#: ../../../src/ui.cpp:706
+msgid "Payment to yourself"
+msgstr "Pervedimas sau"
+
+#: ../../../src/ui.cpp:740
+msgid "To: "
+msgstr "Kam: "
+
+#: ../../../src/ui.cpp:1055
+msgid " Generating"
+msgstr " Generuojama"
+
+#: ../../../src/ui.cpp:1057
+msgid "(not connected)"
+msgstr "(neprijungta)"
+
+#: ../../../src/ui.cpp:1060
+#, c-format
+msgid " %d connections %d blocks %d transactions"
+msgstr " %d Jungtys %d Blokai %d pervedimai"
+
+#: ../../../src/ui.cpp:1165
+#: ../../../src/ui.cpp:2529
+msgid "New Receiving Address"
+msgstr "Naujas priėmimo adresas"
+
+#: ../../../src/ui.cpp:1166
+#: ../../../src/ui.cpp:2530
+msgid ""
+"You should use a new address for each payment you receive.\n"
+"\n"
+"Label"
+msgstr ""
+"Naudokite naują adresas kiekvienam pervedimui.\n"
+"\n"
+"Pavadinimas"
+
+#: ../../../src/ui.cpp:1235
+msgid "<b>Status:</b> "
+msgstr "<b>Būklė:</b> "
+
+#: ../../../src/ui.cpp:1240
+msgid ", has not been successfully broadcast yet"
+msgstr ", dar nėra paskelbta"
+
+#: ../../../src/ui.cpp:1242
+#, c-format
+msgid ", broadcast through %d node"
+msgstr ", paskelbta per %d nodą"
+
+#: ../../../src/ui.cpp:1244
+#, c-format
+msgid ", broadcast through %d nodes"
+msgstr ", paskelbta per %d nodus"
+
+#: ../../../src/ui.cpp:1248
+msgid "<b>Date:</b> "
+msgstr "<b>Data:</b> "
+
+#: ../../../src/ui.cpp:1256
+msgid "<b>Source:</b> Generated<br>"
+msgstr "<b>Iš:</b> Sugeneruota<br>"
+
+#: ../../../src/ui.cpp:1262
+#: ../../../src/ui.cpp:1280
+msgid "<b>From:</b> "
+msgstr "<b>Nuo:</b> "
+
+#: ../../../src/ui.cpp:1280
+msgid "unknown"
+msgstr "nežinomas"
+
+#: ../../../src/ui.cpp:1281
+#: ../../../src/ui.cpp:1305
+#: ../../../src/ui.cpp:1364
+msgid "<b>To:</b> "
+msgstr "<b>Kam:</b> "
+
+#: ../../../src/ui.cpp:1284
+msgid " (yours, label: "
+msgstr " (jūsų, pavadinimas: "
+
+#: ../../../src/ui.cpp:1286
+msgid " (yours)"
+msgstr " (jūsų)"
+
+#: ../../../src/ui.cpp:1323
+#: ../../../src/ui.cpp:1335
+#: ../../../src/ui.cpp:1381
+#: ../../../src/ui.cpp:1398
+msgid "<b>Credit:</b> "
+msgstr "<b>Kreditas:</b> "
+
+#: ../../../src/ui.cpp:1325
+#, c-format
+msgid "(%s matures in %d more blocks)"
+msgstr "(%s bus galima naudoti už %d blokų)"
+
+#: ../../../src/ui.cpp:1327
+msgid "(not accepted)"
+msgstr "(nepriimta)"
+
+#: ../../../src/ui.cpp:1372
+#: ../../../src/ui.cpp:1380
+#: ../../../src/ui.cpp:1395
+msgid "<b>Debit:</b> "
+msgstr "<b>Debetas:</b> "
+
+#: ../../../src/ui.cpp:1386
+msgid "<b>Transaction fee:</b> "
+msgstr "<b>Pervedimo mokestis:</b> "
+
+#: ../../../src/ui.cpp:1402
+msgid "<b>Net amount:</b> "
+msgstr "<b>Neto suma:</b> "
+
+#: ../../../src/ui.cpp:1409
+msgid "Message:"
+msgstr "Žinutė:"
+
+#: ../../../src/ui.cpp:1411
+msgid "Comment:"
+msgstr "Komentaras:"
+
+#: ../../../src/ui.cpp:1414
+msgid "Generated coins must wait 120 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, it will change to \"not accepted\" and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours."
+msgstr "Turite palaukti 120 blokų, kol galėsite išleisti sugeneruotas monetas. Kai sugeneravotė šį blokai, jis buvo paskelbtas tinklui ir bus pridėtas į blokų grandinę. Jei šio bloko tinklas nepriims i grandinė, jis pasikeis į \"nepriimtas\" ir negali būti išleidžiamas. Tai gali kartais nutikti jei kitas nodas sugeneravo bloką keliom sekundėm anksčiau."
+
+#: ../../../src/ui.cpp:1594
+msgid "Cannot write autostart/bitcoin.desktop file"
+msgstr "Nepavyksta įrašyti į autostart/bitcoin.desktop failą"
+
+#: ../../../src/ui.cpp:1630
+msgid "Main"
+msgstr "Pagrindinis"
+
+#: ../../../src/ui.cpp:1638
+msgid "&Start Bitcoin on window system startup"
+msgstr "&Paleisti Bitcoin kai pasileižia operacinė sistema"
+
+#: ../../../src/ui.cpp:1645
+msgid "&Minimize on close"
+msgstr "&Sumažinti kai uždaroma"
+
+#: ../../../src/ui.cpp:1787
+#, c-format
+msgid "version %s"
+msgstr "versija %s"
+
+#: ../../../src/ui.cpp:1899
+msgid "Error in amount "
+msgstr "Klaidinga suma"
+
+#: ../../../src/ui.cpp:1899
+#: ../../../src/ui.cpp:1904
+#: ../../../src/ui.cpp:1909
+#: ../../../src/ui.cpp:1944
+#: ../../../src/uibase.cpp:55
+msgid "Send Coins"
+msgstr "Siūsti monetas"
+
+#: ../../../src/ui.cpp:1904
+msgid "Amount exceeds your balance "
+msgstr "Suma viršija jūsų balasą"
+
+#: ../../../src/ui.cpp:1909
+msgid "Total exceeds your balance when the "
+msgstr "Bendra suma viršija jūsu balansą kai"
+
+#: ../../../src/ui.cpp:1909
+msgid " transaction fee is included "
+msgstr "pervedimo suma įskaičiuota"
+
+#: ../../../src/ui.cpp:1927
+msgid "Payment sent "
+msgstr "Mokestis išsiųstas"
+
+#: ../../../src/ui.cpp:1927
+#: ../../../src/ui.cpp:1932
+#: ../../../src/ui.cpp:2076
+#: ../../../src/ui.cpp:2229
+#: ../../../src/main.cpp:3997
+msgid "Sending..."
+msgstr "Siunčia..."
+
+#: ../../../src/ui.cpp:1944
+msgid "Invalid address "
+msgstr "Klaidingas adresas"
+
+#: ../../../src/ui.cpp:1997
+#, c-format
+msgid "Sending %s to %s"
+msgstr "Siunčia %s į %s"
+
+#: ../../../src/ui.cpp:2070
+#: ../../../src/ui.cpp:2103
+msgid "CANCELLED"
+msgstr "NUTRAUKTA"
+
+#: ../../../src/ui.cpp:2074
+msgid "Cancelled"
+msgstr "Nutraukta"
+
+#: ../../../src/ui.cpp:2076
+msgid "Transfer cancelled "
+msgstr "Siuntimas nutrauktas"
+
+#: ../../../src/ui.cpp:2129
+msgid "Error: "
+msgstr "Klaida:"
+
+#: ../../../src/ui.cpp:2143
+#: ../../../src/ui.cpp:2214
+#: ../../../src/main.cpp:4016
+msgid "Insufficient funds"
+msgstr "Nepakankamai monetų"
+
+#: ../../../src/ui.cpp:2148
+msgid "Connecting..."
+msgstr "Jungiasi..."
+
+#: ../../../src/ui.cpp:2153
+msgid "Unable to connect"
+msgstr "Negali prisijungti"
+
+#: ../../../src/ui.cpp:2158
+msgid "Requesting public key..."
+msgstr "Prašo \"viešojo rakto\"(public key)..."
+
+#: ../../../src/ui.cpp:2170
+msgid "Received public key..."
+msgstr "Gautas \"viešasis raktas\"(public key)..."
+
+#: ../../../src/ui.cpp:2184
+msgid "Recipient is not accepting transactions sent by IP address"
+msgstr "Gavėjas nepriima pervedimų siunčiamų iš IP adresų"
+
+#: ../../../src/ui.cpp:2186
+msgid "Transfer was not accepted"
+msgstr "Persiuntimas nepriimtas"
+
+#: ../../../src/ui.cpp:2195
+msgid "Invalid response received"
+msgstr "Gautas klaidingas atsakymas"
+
+#: ../../../src/ui.cpp:2210
+msgid "Creating transaction..."
+msgstr "Kuriamas pervedimas..."
+
+#: ../../../src/ui.cpp:2222
+#, c-format
+msgid "This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds"
+msgstr "Šis pervedimas reikalauja %s mokesčio dėl jo sumos, sudėtingumo arba dėl to, kad šie pinigai buvo neseniai gauti"
+
+#: ../../../src/ui.cpp:2224
+msgid "Transaction creation failed"
+msgstr "Pervedimo sukurti nepavyko"
+
+#: ../../../src/ui.cpp:2231
+msgid "Transaction aborted"
+msgstr "Pervedimas nutrauktas"
+
+#: ../../../src/ui.cpp:2239
+msgid "Lost connection, transaction cancelled"
+msgstr "Prarastas ryšys, pervedimas nutrauktas"
+
+#: ../../../src/ui.cpp:2255
+msgid "Sending payment..."
+msgstr "Monetos siunčiamos..."
+
+#: ../../../src/ui.cpp:2261
+msgid "The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "Pervedimas buvo atmestas. Tai galėjo atsitikti jei dalis jūsų monetų jau buvo išleista. Pvz.: Jei nodojote kopija wallet.dat kitame kliente ir monetos buvo išleistos ten, bet nepažymėtos kaip išleistos čia."
+
+#: ../../../src/ui.cpp:2270
+msgid "Waiting for confirmation..."
+msgstr "Laukia patvirtinimo..."
+
+#: ../../../src/ui.cpp:2288
+msgid ""
+"The payment was sent, but the recipient was unable to verify it.\n"
+"The transaction is recorded and will credit to the recipient,\n"
+"but the comment information will be blank."
+msgstr ""
+"Pervedimas išsiūstas, bet gavėjas negalėjo jo patvirtinti.\n"
+"Pervedimas įrašytas ir suma bus kredituojama gavėjui,\n"
+"bet komentaro informacija nebus rodoma."
+
+#: ../../../src/ui.cpp:2297
+msgid "Payment was sent, but an invalid response was received"
+msgstr "Pervedimas išsiūstas, bet klaidingas atsakymas gautas"
+
+#: ../../../src/ui.cpp:2303
+msgid "Payment completed"
+msgstr "Pervedimas pavyko"
+
+#: ../../../src/ui.cpp:2334
+#: ../../../src/ui.cpp:2480
+#: ../../../src/ui.cpp:2517
+msgid "Name"
+msgstr "Vardas"
+
+#: ../../../src/ui.cpp:2335
+#: ../../../src/ui.cpp:2480
+#: ../../../src/ui.cpp:2517
+msgid "Address"
+msgstr "Adresas"
+
+#: ../../../src/ui.cpp:2337
+#: ../../../src/ui.cpp:2492
+msgid "Label"
+msgstr "Pavadinimas"
+
+#: ../../../src/ui.cpp:2338
+#: ../../../src/uibase.cpp:837
+msgid "Bitcoin Address"
+msgstr "Bitcoin Adresas"
+
+#: ../../../src/ui.cpp:2462
+msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
+msgstr "Tai vienas iš jūsų adresų priimti pervedimams ir negali būti įvestas i adresų knygą"
+
+#: ../../../src/ui.cpp:2480
+#: ../../../src/ui.cpp:2486
+msgid "Edit Address"
+msgstr "Pakeisti Adresą"
+
+#: ../../../src/ui.cpp:2492
+msgid "Edit Address Label"
+msgstr "Pakeisti adreso pavadinimą"
+
+#: ../../../src/ui.cpp:2517
+#: ../../../src/ui.cpp:2523
+msgid "Add Address"
+msgstr "Pridėti adresą"
+
+#: ../../../src/ui.cpp:2600
+msgid "Bitcoin"
+msgstr "Bitcoin"
+
+#: ../../../src/ui.cpp:2602
+msgid "Bitcoin - Generating"
+msgstr "Bitcoin - Generuoja"
+
+#: ../../../src/ui.cpp:2604
+msgid "Bitcoin - (not connected)"
+msgstr "Bitcoin - (neprijungta)"
+
+#: ../../../src/ui.cpp:2683
+msgid "&Open Bitcoin"
+msgstr "&Atidaryti Bitcoin"
+
+#: ../../../src/ui.cpp:2684
+#, fuzzy
+msgid "&Send Bitcoins"
+msgstr "&Atidaryti Bitcoin"
+
+#: ../../../src/ui.cpp:2685
+msgid "O&ptions..."
+msgstr "P&arametrai..."
+
+#: ../../../src/ui.cpp:2688
+#: ../../../src/uibase.cpp:25
+msgid "E&xit"
+msgstr "&Išeiti"
+
+#: ../../../src/ui.cpp:2904
+msgid "Program has crashed and will terminate. "
+msgstr "Programa neveikia ir bus uždaryta"
+
+#: ../../../src/main.cpp:1866
+msgid "Warning: Disk space is low "
+msgstr "Perspėjimas: Diske trūksta vietos"
+
+#: ../../../src/main.cpp:3990
+#, c-format
+msgid "Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds "
+msgstr "Klaida: Šis pervedimas reikalauja %s mokesčio dėl jo sumos, sudėtingumo arba dėl to, kad šie pinigai buvo neseniai gauti "
+
+#: ../../../src/main.cpp:3992
+msgid "Error: Transaction creation failed "
+msgstr "Klaida: Pervedimo sukurti nepavyko "
+
+#: ../../../src/main.cpp:4001
+msgid "Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "Klaida: Pervedimas nepavyko. Tai galėjo atsitikti jei dalis jūsų monetų jau buvo išleista. Pvz.: Jei nodojote kopija wallet.dat kitame kliente ir monetos buvo išleistos ten, bet nepažymėtos kaip išleistos čia."
+
+#: ../../../src/main.cpp:4014
+msgid "Invalid amount"
+msgstr "Neteisinga suma"
+
+#: ../../../src/main.cpp:4021
+msgid "Invalid bitcoin address"
+msgstr "Klaidingas bitcoin adresas"
+
+#: ../../../src/rpc.cpp:1802
+#: ../../../src/rpc.cpp:1804
+#, c-format
+msgid "To use the %s option"
+msgstr "Kad naudoti %s parametrą"
+
+#: ../../../src/rpc.cpp:1806
+#, c-format
+msgid ""
+"Warning: %s, you must set rpcpassword=<password>\n"
+"in the configuration file: %s\n"
+"If the file does not exist, create it with owner-readable-only file permissions.\n"
+msgstr ""
+"Perspėjimas: %s, jūs privalote nustatyti rpcpassword=<slaptažodis>\n"
+"Konfiguracijos faile: %s\n"
+"Jei failas neegzistuoja, sukurkite jį su owner-readable-only failo teisėmis.\n"
+
+#: ../../../src/rpc.cpp:1974
+#, c-format
+msgid ""
+"You must set rpcpassword=<password> in the configuration file:\n"
+"%s\n"
+"If the file does not exist, create it with owner-readable-only file permissions."
+msgstr ""
+"Jūs privalote nustatyti rpcpassword=<slaptažodis> Konfiguracijos faile:\n"
+"%s\n"
+"Jei failas neegzistuoja, sukurkite jį su owner-readable-only failo teisėm."
+
+#: ../../../src/util.cpp:866
+msgid "Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly."
+msgstr "Perspėjimas: Prašome patikrinti kompiuterio laiką ir datą. Jei laikas neteisingai nustatytas, Bitcoin neveiks."
+
+#: ../../../src/util.cpp:899
+msgid "beta"
+msgstr "beta"
+
+#: ../../../src/uibase.cpp:28
+msgid "&File"
+msgstr "&Byla"
+
+#: ../../../src/uibase.cpp:32
+msgid "&Your Receiving Addresses..."
+msgstr "&Jūsų priimantys adresai..."
+
+#: ../../../src/uibase.cpp:36
+msgid "&Options..."
+msgstr "&Parametrai"
+
+#: ../../../src/uibase.cpp:39
+msgid "&Settings"
+msgstr "N&ustatymai"
+
+#: ../../../src/uibase.cpp:43
+msgid "&About..."
+msgstr "&О Apie..."
+
+#: ../../../src/uibase.cpp:46
+msgid "&Help"
+msgstr "&Pagalba"
+
+#: ../../../src/uibase.cpp:56
+msgid "Address Book"
+msgstr "Adresų knyga"
+
+#: ../../../src/uibase.cpp:69
+msgid "Your Bitcoin Address:"
+msgstr "Jūsų Bitcoin Adresas:"
+
+#: ../../../src/uibase.cpp:76
+msgid " &New... "
+msgstr " &Naujas... "
+
+#: ../../../src/uibase.cpp:79
+#: ../../../src/uibase.cpp:780
+#: ../../../src/uibase.cpp:883
+msgid " &Copy to Clipboard "
+msgstr "&Kopijuoti"
+
+#: ../../../src/uibase.cpp:93
+msgid "Balance:"
+msgstr "Balansas:"
+
+#: ../../../src/uibase.cpp:109
+msgid " All"
+msgstr "Visi"
+
+#: ../../../src/uibase.cpp:109
+msgid " Sent"
+msgstr "Išsiūsta"
+
+#: ../../../src/uibase.cpp:109
+msgid " Received"
+msgstr "Priimta"
+
+#: ../../../src/uibase.cpp:109
+msgid " In Progress"
+msgstr "Progrese"
+
+#: ../../../src/uibase.cpp:130
+msgid "All Transactions"
+msgstr "Visi pervedimai"
+
+#: ../../../src/uibase.cpp:141
+msgid "Sent/Received"
+msgstr "Išsiųsti/Priimti"
+
+#: ../../../src/uibase.cpp:152
+msgid "Sent"
+msgstr "Išsiūsti"
+
+#: ../../../src/uibase.cpp:163
+msgid "Received"
+msgstr "Priimti"
+
+#: ../../../src/uibase.cpp:302
+#: ../../../src/uibase.cpp:443
+#: ../../../src/uibase.cpp:542
+#: ../../../src/uibase.cpp:722
+#: ../../../src/uibase.cpp:783
+#: ../../../src/uibase.cpp:892
+#: ../../../src/uibase.cpp:981
+msgid "OK"
+msgstr "Gerai"
+
+#: ../../../src/uibase.cpp:345
+msgid "&Start Bitcoin on system startup"
+msgstr "&Paleisti Bitcoin kai pasileidžia operacinė sistema"
+
+#: ../../../src/uibase.cpp:348
+msgid "&Minimize to the tray instead of the taskbar"
+msgstr "&Sumažinti į \"tray\" vietoj \"taskbar\""
+
+#: ../../../src/uibase.cpp:351
+msgid "Map port using &UPnP"
+msgstr "Peradresuoti porta naudojant &UPnP"
+
+#: ../../../src/uibase.cpp:354
+msgid "M&inimize to the tray on close"
+msgstr "Su&mažinti į \"tray\" kai uždaroma"
+
+#: ../../../src/uibase.cpp:360
+msgid "&Connect through socks4 proxy: "
+msgstr "&Prisijungti per socks4 proksį: "
+
+#: ../../../src/uibase.cpp:371
+msgid "Proxy &IP:"
+msgstr "P&roksio IP:"
+
+#: ../../../src/uibase.cpp:379
+msgid " &Port:"
+msgstr " &Portas"
+
+#: ../../../src/uibase.cpp:392
+msgid "Optional transaction fee per KB that helps make sure your transactions are processed quickly. Most transactions are 1KB. Fee 0.01 recommended."
+msgstr "Pasirintinis pervedimo mokestis per KB, kuris padeda jį ivykdyti greičiau. Dauguma pervedimų yra 1KB. Rekomencuojamas mokestis 0.01."
+
+#: ../../../src/uibase.cpp:399
+#, fuzzy
+msgid "Pay transaction fee:"
+msgstr "Pervedimo mokestis:"
+
+#: ../../../src/uibase.cpp:420
+msgid "// [don't translate] Test panel 2 for future expansion"
+msgstr ""
+
+#: ../../../src/uibase.cpp:424
+msgid "// [don't translate] Let's not start multiple pages until the first page is filled up"
+msgstr ""
+
+#: ../../../src/uibase.cpp:446
+#: ../../../src/uibase.cpp:668
+#: ../../../src/uibase.cpp:727
+#: ../../../src/uibase.cpp:786
+#: ../../../src/uibase.cpp:895
+#: ../../../src/uibase.cpp:984
+msgid "Cancel"
+msgstr "Nutraukti"
+
+#: ../../../src/uibase.cpp:449
+msgid "&Apply"
+msgstr "&Nustatyti"
+
+#: ../../../src/uibase.cpp:508
+msgid "Bitcoin "
+msgstr "Bitcoin "
+
+#: ../../../src/uibase.cpp:514
+msgid "version"
+msgstr "versija"
+
+#: ../../../src/uibase.cpp:525
+#, fuzzy
+msgid ""
+"Copyright (c) 2009-2011 Bitcoin Developers\n"
+"\n"
+"This is experimental software.\n"
+"\n"
+"Distributed under the MIT/X11 software license, see the accompanying file \n"
+"license.txt or http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"This product includes software developed by the OpenSSL Project for use in the \n"
+"OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
+msgstr ""
+"Autorinė teisė (c) 2009-2010 Bitcoin Developers\n"
+"\n"
+"Ši programa yra eksperimentinė.\n"
+"\n"
+"Išleista ir teisės saugomos pagal MIT/X11 programų licenziją, kuri detaliau aprašyra faile \n"
+"license.txt ir http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"Šis produktas turi programą iš OpenSSL projekto, kuri naudojamas \n"
+"OpenSSL Toolkit (http://www.openssl.org/), kriptografinę programą parašyta \n"
+"Eric Young (eay@cryptsoft.com) ir UPnP programą parašyta Thomas Bernard."
+
+#: ../../../src/uibase.cpp:581
+msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+msgstr "Įveskite Bitcoin adresą (pvz.: 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+
+#: ../../../src/uibase.cpp:595
+msgid "Pay &To:"
+msgstr "&Kam:"
+
+#: ../../../src/uibase.cpp:610
+msgid "&Paste"
+msgstr "&Įrašyti"
+
+#: ../../../src/uibase.cpp:613
+msgid " Address &Book..."
+msgstr " &Adresų knyga..."
+
+#: ../../../src/uibase.cpp:620
+msgid "&Amount:"
+msgstr "S&uma:"
+
+#: ../../../src/uibase.cpp:630
+msgid "T&ransfer:"
+msgstr "&Pervedimas:"
+
+#: ../../../src/uibase.cpp:636
+msgid " Standard"
+msgstr "Standartinis"
+
+#: ../../../src/uibase.cpp:663
+msgid "&Send"
+msgstr "&Siūsti"
+
+#: ../../../src/uibase.cpp:711
+msgid ""
+"\n"
+"\n"
+"Connecting..."
+msgstr ""
+"\n"
+"\n"
+"Jungiasi..."
+
+#: ../../../src/uibase.cpp:761
+msgid "These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. The highlighted address is displayed in the main window."
+msgstr "Tai yra jūsų Bitcoin adresai priimti pervedimus. Galite duoti skirtinga adresa kiekvienam siuntėjui, kad žinotumėte kas jums moka. Pažymėtas adresas bus rodomas pagrindiniame lange."
+
+#: ../../../src/uibase.cpp:774
+#: ../../../src/uibase.cpp:886
+msgid "&Edit..."
+msgstr "&Pakeisti..."
+
+#: ../../../src/uibase.cpp:777
+#: ../../../src/uibase.cpp:889
+msgid " &New Address... "
+msgstr " &Naujas Adresas... "
+
+#: ../../../src/uibase.cpp:849
+msgid "Sending"
+msgstr "Siunčiama"
+
+#: ../../../src/uibase.cpp:857
+msgid "These are your Bitcoin addresses for receiving payments. You can give a different one to each sender to keep track of who is paying you. The highlighted address will be displayed in the main window."
+msgstr "Tai yra jūsų Bitcoin adresai priimti pervedimus. Galite duoti skirtinga adresa kiekvienam siuntėjui, kad žinotumėte kas jums moka. Pažymėtas adresas bus rodomas pagrindiniame lange."
+
+#: ../../../src/uibase.cpp:870
+msgid "Receiving"
+msgstr "Priėmimo"
+
+#: ../../../src/uibase.cpp:880
+msgid "&Delete"
+msgstr "&Ištrinti"
+
+#: ../../../src/init.cpp:142
+msgid "Bitcoin version"
+msgstr "Bitcoin version"
+
+#: ../../../src/init.cpp:143
+msgid "Usage:"
+msgstr "Komandų vartojimas:"
+
+#: ../../../src/init.cpp:145
+msgid "Send command to -server or bitcoind\n"
+msgstr "Siūsti komandą i -server arba bitcoind\n"
+
+#: ../../../src/init.cpp:146
+msgid "List commands\n"
+msgstr "Parodyti visas komandas\n"
+
+#: ../../../src/init.cpp:147
+msgid "Get help for a command\n"
+msgstr "Komandos paaiškinimas\n"
+
+#: ../../../src/init.cpp:148
+msgid "Options:\n"
+msgstr "Parametrai\n"
+
+#: ../../../src/init.cpp:149
+msgid "Specify configuration file (default: bitcoin.conf)\n"
+msgstr "Nurodyti konfiguracijos failą (pagal nutylėjimą: bitcoin.conf)\n"
+
+#: ../../../src/init.cpp:150
+#, fuzzy
+msgid "Specify pid file (default: bitcoind.pid)\n"
+msgstr "Nurodyti konfiguracijos failą (pagal nutylėjimą: bitcoin.conf)\n"
+
+#: ../../../src/init.cpp:151
+msgid "Generate coins\n"
+msgstr "Generuoti monetas\n"
+
+#: ../../../src/init.cpp:152
+msgid "Don't generate coins\n"
+msgstr "Negeneruoti monetų\n"
+
+#: ../../../src/init.cpp:153
+msgid "Start minimized\n"
+msgstr "Paleisti minimizuotą klientą\n"
+
+#: ../../../src/init.cpp:154
+msgid "Specify data directory\n"
+msgstr "Nurodyti duomenų direktoriją\n"
+
+#: ../../../src/init.cpp:155
+msgid "Connect through socks4 proxy\n"
+msgstr "Prisijungti per socks4 proksį\n"
+
+#: ../../../src/init.cpp:156
+msgid "Allow DNS lookups for addnode and connect\n"
+msgstr "Leisti DNS lookups addnode ir connect komandoms\n"
+
+#: ../../../src/init.cpp:157
+msgid "Add a node to connect to\n"
+msgstr "Pridėti nodą prie kurio bus jungiamasi\n"
+
+#: ../../../src/init.cpp:158
+msgid "Connect only to the specified node\n"
+msgstr "Prisijungti tik prie šio nodo\n"
+
+#: ../../../src/init.cpp:159
+msgid "Don't accept connections from outside\n"
+msgstr "Neleisti prisijungti iš išorės\n"
+
+#: ../../../src/init.cpp:162
+msgid "Don't attempt to use UPnP to map the listening port\n"
+msgstr "Nenaudoti UPnP klausančio porto peradresavimui\n"
+
+#: ../../../src/init.cpp:164
+msgid "Attempt to use UPnP to map the listening port\n"
+msgstr "Pamėginti naudoti UPnP klausančio porto peradresavimui\n"
+
+#: ../../../src/init.cpp:167
+msgid "Fee per KB to add to transactions you send\n"
+msgstr "Mokestis per KB pridedamas prie siunčiamo pervedimo\n"
+
+#: ../../../src/init.cpp:169
+msgid "Accept command line and JSON-RPC commands\n"
+msgstr "Priimti komandas iš terminalo ir JSON-RPC\n"
+
+#: ../../../src/init.cpp:172
+msgid "Run in the background as a daemon and accept commands\n"
+msgstr "Paleisti daemon\n"
+
+#: ../../../src/init.cpp:174
+msgid "Use the test network\n"
+msgstr "Naudoti bandomajį tinklą\n"
+
+#: ../../../src/init.cpp:175
+msgid "Username for JSON-RPC connections\n"
+msgstr "Naudotojo vardas JSON-RPC prisijungimui\n"
+
+#: ../../../src/init.cpp:176
+msgid "Password for JSON-RPC connections\n"
+msgstr "Slaptažodis JSON-RPC prisijungimui\n"
+
+#: ../../../src/init.cpp:177
+msgid "Listen for JSON-RPC connections on <port> (default: 8332)\n"
+msgstr "Klausyti JSON-RPC prisijungimų ant <port> (pagal nutylėjimą: 8332)\n"
+
+#: ../../../src/init.cpp:178
+msgid "Allow JSON-RPC connections from specified IP address\n"
+msgstr "Leisti JSON-RPC prisijungimą iš tam tikrų IP adresų\n"
+
+#: ../../../src/init.cpp:179
+msgid "Send commands to node running on <ip> (default: 127.0.0.1)\n"
+msgstr "Siūsti komandas į nodą kuris yra <ip> (pagal nutylėjimą: 127.0.0.1)\n"
+
+#: ../../../src/init.cpp:180
+msgid "Set key pool size to <n> (default: 100)\n"
+msgstr "Nustatyti kiek raktų skaičių <n> (pagal nutylėjimą: 100)\n"
+
+#: ../../../src/init.cpp:181
+msgid "Rescan the block chain for missing wallet transactions\n"
+msgstr "Perskanuoti blokų grandinę dėl trūkstamų pervedimų\n"
+
+#: ../../../src/init.cpp:185
+msgid ""
+"\n"
+"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"
+msgstr ""
+"\n"
+"SSL parametrai: (aplankykite Bitcoin Wiki dėl SSL nustatymų)\n"
+
+#: ../../../src/init.cpp:186
+msgid "Use OpenSSL (https) for JSON-RPC connections\n"
+msgstr "Naudoti OpenSSL (https) JSON-RPC prisijungimui\n"
+
+#: ../../../src/init.cpp:187
+msgid "Server certificate file (default: server.cert)\n"
+msgstr "Serverio sertifikato failas (pagal nutylėjimą: server.cert)\n"
+
+#: ../../../src/init.cpp:188
+msgid "Server private key (default: server.pem)\n"
+msgstr "Serverio privatus raktas (pagal nutylėjimą: server.pem)\n"
+
+#: ../../../src/init.cpp:189
+msgid "Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
+msgstr "Priimtinas šifras (pagal nutylėjimą: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
+
+#: ../../../src/init.cpp:193
+msgid "This help message\n"
+msgstr "Ši pagalbos žinutė\n"
+
+#: ../../../src/init.cpp:330
+#, c-format
+msgid "Cannot obtain a lock on data directory %s. Bitcoin is probably already running."
+msgstr "Neranda duomenų directorijos %s. Bitcoin programa tikriausiai jau paleista."
+
+#: ../../../src/init.cpp:356
+msgid "Error loading addr.dat \n"
+msgstr "Klaida nuskaitant addr.dat \n"
+
+#: ../../../src/init.cpp:362
+msgid "Error loading blkindex.dat \n"
+msgstr "Klaida nuskaitant blkindex.dat \n"
+
+#: ../../../src/init.cpp:369
+msgid "Error loading wallet.dat \n"
+msgstr "Klaida nuskaitant wallet.dat \n"
+
+#: ../../../src/init.cpp:449
+msgid "Invalid -proxy address"
+msgstr "Klaidingas -proxy adresas"
+
+#: ../../../src/init.cpp:472
+msgid "Invalid amount for -paytxfee=<amount>"
+msgstr "Klaidinga suma -paytxfee=<amount>"
+
+#: ../../../src/init.cpp:476
+msgid "Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."
+msgstr "Perspėjimas: -paytxfee yra nustatyta labai aukšta suma. Ši suma bus nuskaičiuota kaip mokestis darant pervedimą"
+
+#: ../../../src/uibase.h:147
+msgid "Transaction Details"
+msgstr "Pervedimų detalės"
+
+#: ../../../src/uibase.h:199
+msgid "Options"
+msgstr "Parametrai"
+
+#: ../../../src/uibase.h:228
+msgid "About Bitcoin"
+msgstr "Apie Bitcoin"
+
+#: ../../../src/uibase.h:337
+msgid "Your Bitcoin Addresses"
+msgstr "Jūsų Bitcoin Adresas"
diff --git a/locale/nl/LC_MESSAGES/bitcoin.mo b/locale/nl/LC_MESSAGES/bitcoin.mo
new file mode 100644
index 0000000000..c5ae8489fb
--- /dev/null
+++ b/locale/nl/LC_MESSAGES/bitcoin.mo
Binary files differ
diff --git a/locale/nl/LC_MESSAGES/bitcoin.po b/locale/nl/LC_MESSAGES/bitcoin.po
new file mode 100644
index 0000000000..97216add99
--- /dev/null
+++ b/locale/nl/LC_MESSAGES/bitcoin.po
@@ -0,0 +1,973 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-05-15 18:23+0100\n"
+"PO-Revision-Date: 2011-05-15 18:23+0100\n"
+"Last-Translator: Pieter Wuille <sipa@ulyssis.org>\n"
+"Language-Team: \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-SearchPath-0: ../../..\n"
+
+#: ../../../src/net.cpp:1499
+#, c-format
+msgid "Unable to bind to port %d on this computer. Bitcoin is probably already running."
+msgstr "Kan niet binden met poort %d op deze computer. Bitcoin draait vermoedelijk reeds."
+
+#: ../../../src/ui.cpp:202
+#, c-format
+msgid "This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?"
+msgstr "Deze transactie overschrijdt de limiet. Om de transactie alsnog te verwerken kun je een fooi betalen van %s. Deze zal betaald worden aan de node die uw transactie verwerkt. Wil je doorgaan en deze fooi betalen?"
+
+#: ../../../src/ui.cpp:301
+msgid "Status"
+msgstr "Status"
+
+#: ../../../src/ui.cpp:302
+msgid "Date"
+msgstr "Datum"
+
+#: ../../../src/ui.cpp:303
+msgid "Description"
+msgstr "Beschrijving"
+
+#: ../../../src/ui.cpp:304
+msgid "Debit"
+msgstr "Debet"
+
+#: ../../../src/ui.cpp:305
+msgid "Credit"
+msgstr "Credit"
+
+#: ../../../src/ui.cpp:511
+#, c-format
+msgid "Open for %d blocks"
+msgstr "Open gedurende %d blokken"
+
+#: ../../../src/ui.cpp:513
+#, c-format
+msgid "Open until %s"
+msgstr "Open tot %s"
+
+#: ../../../src/ui.cpp:519
+#, c-format
+msgid "%d/offline?"
+msgstr "%d/offline?"
+
+#: ../../../src/ui.cpp:521
+#, c-format
+msgid "%d/unconfirmed"
+msgstr "%d/niet bevestigd"
+
+#: ../../../src/ui.cpp:523
+#, c-format
+msgid "%d confirmations"
+msgstr "%d bevestigingen"
+
+#: ../../../src/ui.cpp:608
+msgid "Generated"
+msgstr "Gegenereerd"
+
+#: ../../../src/ui.cpp:616
+#, c-format
+msgid "Generated (%s matures in %d more blocks)"
+msgstr "Gegenereerd (%s wordt volwassen over %d blokken)"
+
+#: ../../../src/ui.cpp:620
+msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
+msgstr "Gegenereerd - Waarschuwing: Dit blok is niet ontvangen door andere nodes en zal waarschijnlijk niet geaccepteerd worden!"
+
+#: ../../../src/ui.cpp:624
+msgid "Generated (not accepted)"
+msgstr "Gegenereerd (niet geaccepteerd)"
+
+#: ../../../src/ui.cpp:634
+msgid "From: "
+msgstr "Van: "
+
+#: ../../../src/ui.cpp:658
+msgid "Received with: "
+msgstr "Ontvangen op: "
+
+#: ../../../src/ui.cpp:704
+msgid "Payment to yourself"
+msgstr "Betaling aan uzelf"
+
+#: ../../../src/ui.cpp:738
+msgid "To: "
+msgstr "Naar: "
+
+#: ../../../src/ui.cpp:1053
+msgid " Generating"
+msgstr " Genereren..."
+
+#: ../../../src/ui.cpp:1055
+msgid "(not connected)"
+msgstr "(niet verbonden)"
+
+#: ../../../src/ui.cpp:1058
+#, c-format
+msgid " %d connections %d blocks %d transactions"
+msgstr " %d verbindingen %d blokken %d transacties"
+
+#: ../../../src/ui.cpp:1163
+#: ../../../src/ui.cpp:2527
+msgid "New Receiving Address"
+msgstr "Nieuw Ontvangstadres"
+
+#: ../../../src/ui.cpp:1164
+#: ../../../src/ui.cpp:2528
+msgid ""
+"You should use a new address for each payment you receive.\n"
+"\n"
+"Label"
+msgstr ""
+"Het is een goede gewoonte om voor iedere betaling die je ontvangt een nieuw adres te gebruiken.\n"
+"\n"
+"Label"
+
+#: ../../../src/ui.cpp:1233
+msgid "<b>Status:</b> "
+msgstr "<b>Status:</b> "
+
+#: ../../../src/ui.cpp:1238
+msgid ", has not been successfully broadcast yet"
+msgstr ", is nog niet succesvol verstuurd naar het netwerk"
+
+#: ../../../src/ui.cpp:1240
+#, c-format
+msgid ", broadcast through %d node"
+msgstr ", verstuurd via %d node"
+
+#: ../../../src/ui.cpp:1242
+#, c-format
+msgid ", broadcast through %d nodes"
+msgstr ", verstuurd via %d nodes"
+
+#: ../../../src/ui.cpp:1246
+msgid "<b>Date:</b> "
+msgstr "<b>Datum:</b> "
+
+#: ../../../src/ui.cpp:1254
+msgid "<b>Source:</b> Generated<br>"
+msgstr "<b>Bron:</b> Gegenereerd<br>"
+
+#: ../../../src/ui.cpp:1260
+#: ../../../src/ui.cpp:1278
+msgid "<b>From:</b> "
+msgstr "<b>Van:</b> "
+
+#: ../../../src/ui.cpp:1278
+msgid "unknown"
+msgstr "onbekend"
+
+#: ../../../src/ui.cpp:1279
+#: ../../../src/ui.cpp:1303
+#: ../../../src/ui.cpp:1362
+msgid "<b>To:</b> "
+msgstr "<b>Naar:</b> "
+
+#: ../../../src/ui.cpp:1282
+msgid " (yours, label: "
+msgstr " (van jou, label: "
+
+#: ../../../src/ui.cpp:1284
+msgid " (yours)"
+msgstr " (van jou)"
+
+#: ../../../src/ui.cpp:1321
+#: ../../../src/ui.cpp:1333
+#: ../../../src/ui.cpp:1379
+#: ../../../src/ui.cpp:1396
+msgid "<b>Credit:</b> "
+msgstr "<b>Credit:</b>"
+
+#: ../../../src/ui.cpp:1323
+#, c-format
+msgid "(%s matures in %d more blocks)"
+msgstr "(%s wordt volwassen over %d blokken)"
+
+#: ../../../src/ui.cpp:1325
+msgid "(not accepted)"
+msgstr "(niet geaccepteerd)"
+
+#: ../../../src/ui.cpp:1370
+#: ../../../src/ui.cpp:1378
+#: ../../../src/ui.cpp:1393
+msgid "<b>Debit:</b> "
+msgstr "<b>Debet:</b>"
+
+#: ../../../src/ui.cpp:1384
+msgid "<b>Transaction fee:</b> "
+msgstr "<b>Transactiefooi:</b> "
+
+#: ../../../src/ui.cpp:1400
+msgid "<b>Net amount:</b> "
+msgstr "<b>Nettobedrag:</b> "
+
+#: ../../../src/ui.cpp:1407
+msgid "Message:"
+msgstr "Mededeling:"
+
+#: ../../../src/ui.cpp:1409
+msgid "Comment:"
+msgstr "Commentaar:"
+
+#: ../../../src/ui.cpp:1412
+msgid "Generated coins must wait 120 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, it will change to \"not accepted\" and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours."
+msgstr "Gegenereerde coins mogen pas na een wachttijd van 120 blokken uitgegeven worden. Op het moment dat dit blok gegenereerd werd, is het naar het netwerk verzonden om aan de blokkenreeks toegevoegd te worden. Als het niet succesvol in de blokkenreeks opgenomen kan worden verandert de status in \"niet geaccepteerd\" en kan het niet uitegegeven worden. Dit kan soms gebeuren als een andere node op ongeveer hetzelfde moment een blok genereert."
+
+#: ../../../src/ui.cpp:1592
+msgid "Cannot write autostart/bitcoin.desktop file"
+msgstr "Kan niet schrijven naar het bestand autostart/bitcoin.desktop"
+
+#: ../../../src/ui.cpp:1628
+msgid "Main"
+msgstr "Algemeen"
+
+#: ../../../src/ui.cpp:1636
+msgid "&Start Bitcoin on window system startup"
+msgstr "&Start Bitcoin wanneer het systeem opstart"
+
+#: ../../../src/ui.cpp:1643
+msgid "&Minimize on close"
+msgstr "&Minimaliseer bij sluiten van het venster"
+
+#: ../../../src/ui.cpp:1785
+#, c-format
+msgid "version %s"
+msgstr "versie %s"
+
+#: ../../../src/ui.cpp:1897
+msgid "Error in amount "
+msgstr "Fout in hoeveelheid "
+
+#: ../../../src/ui.cpp:1897
+#: ../../../src/ui.cpp:1902
+#: ../../../src/ui.cpp:1907
+#: ../../../src/ui.cpp:1942
+#: ../../../src/uibase.cpp:55
+msgid "Send Coins"
+msgstr "Verstuur coins"
+
+#: ../../../src/ui.cpp:1902
+msgid "Amount exceeds your balance "
+msgstr "Hoeveelheid overschrijdt uw huidige balans "
+
+#: ../../../src/ui.cpp:1907
+msgid "Total exceeds your balance when the "
+msgstr "Totaal overschrijdt uw huidige balans wanneer de "
+
+#: ../../../src/ui.cpp:1907
+msgid " transaction fee is included "
+msgstr " transactiefooi is meegerekend "
+
+#: ../../../src/ui.cpp:1925
+msgid "Payment sent "
+msgstr "Betaling verzonden "
+
+#: ../../../src/ui.cpp:1925
+#: ../../../src/ui.cpp:1930
+#: ../../../src/ui.cpp:2074
+#: ../../../src/ui.cpp:2227
+#: ../../../src/main.cpp:3999
+msgid "Sending..."
+msgstr "Versturen..."
+
+#: ../../../src/ui.cpp:1942
+msgid "Invalid address "
+msgstr "Foutief adres "
+
+#: ../../../src/ui.cpp:1995
+#, c-format
+msgid "Sending %s to %s"
+msgstr "%s versturen naar %s"
+
+#: ../../../src/ui.cpp:2068
+#: ../../../src/ui.cpp:2101
+msgid "CANCELLED"
+msgstr "GEANNULEERD"
+
+#: ../../../src/ui.cpp:2072
+msgid "Cancelled"
+msgstr "Geannuleerd"
+
+#: ../../../src/ui.cpp:2074
+msgid "Transfer cancelled "
+msgstr "Transactie geannuleerd "
+
+#: ../../../src/ui.cpp:2127
+msgid "Error: "
+msgstr "Fout: "
+
+#: ../../../src/ui.cpp:2141
+#: ../../../src/ui.cpp:2212
+#: ../../../src/main.cpp:4018
+msgid "Insufficient funds"
+msgstr "Onvoldoende saldo"
+
+#: ../../../src/ui.cpp:2146
+msgid "Connecting..."
+msgstr "Verbinden..."
+
+#: ../../../src/ui.cpp:2151
+msgid "Unable to connect"
+msgstr "Kan niet verbinden"
+
+#: ../../../src/ui.cpp:2156
+msgid "Requesting public key..."
+msgstr "Aanvragen van publieke sleutel..."
+
+#: ../../../src/ui.cpp:2168
+msgid "Received public key..."
+msgstr "Publieke sleutel ontvangen..."
+
+#: ../../../src/ui.cpp:2182
+msgid "Recipient is not accepting transactions sent by IP address"
+msgstr "Ontvanger aanvaardt geen transacties via IP adres"
+
+#: ../../../src/ui.cpp:2184
+msgid "Transfer was not accepted"
+msgstr "Transactie niet geaccepteerd"
+
+#: ../../../src/ui.cpp:2193
+msgid "Invalid response received"
+msgstr "Foutief antwoord ontvangen"
+
+#: ../../../src/ui.cpp:2208
+msgid "Creating transaction..."
+msgstr "Transactie aanmaken..."
+
+#: ../../../src/ui.cpp:2220
+#, c-format
+msgid "This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds"
+msgstr "Deze transactie vergt een fooi van ten minste %s omwille van zijn bedrag, complexiteit, of gebruik van recent ontvangen fonden"
+
+#: ../../../src/ui.cpp:2222
+msgid "Transaction creation failed"
+msgstr "Aanmaken van transactie mislukt"
+
+#: ../../../src/ui.cpp:2229
+msgid "Transaction aborted"
+msgstr "Transactie geannuleerd"
+
+#: ../../../src/ui.cpp:2237
+msgid "Lost connection, transaction cancelled"
+msgstr "Verbinding verloren, transactie geannuleerd"
+
+#: ../../../src/ui.cpp:2253
+msgid "Sending payment..."
+msgstr "Betaling versturen..."
+
+#: ../../../src/ui.cpp:2259
+msgid "The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "Fout: De transactie is afgekeurd. Dit kan gebeuren als bepaalde coins in je Portefeuille al zijn uitgegeven. Dit kan veroorzaakt worden doordat je een kopie van wallet.dat gebruikt hebt en enkel daar je uitgave geregistreerd is."
+
+#: ../../../src/ui.cpp:2268
+msgid "Waiting for confirmation..."
+msgstr "Wachten op bevestiging..."
+
+#: ../../../src/ui.cpp:2286
+msgid ""
+"The payment was sent, but the recipient was unable to verify it.\n"
+"The transaction is recorded and will credit to the recipient,\n"
+"but the comment information will be blank."
+msgstr ""
+"De betaling is verstuurd, maar de ontvanger kon hem niet verifiëren.\n"
+"De transactie is opgenomen en wordt uitbetaald aan de ontvanger,\n"
+"maar het mededelings-veld blijft blanco."
+
+#: ../../../src/ui.cpp:2295
+msgid "Payment was sent, but an invalid response was received"
+msgstr "Betaling is verstuurd, maar een foutief antword is ontvangen."
+
+#: ../../../src/ui.cpp:2301
+msgid "Payment completed"
+msgstr "Betaling voltooid"
+
+#: ../../../src/ui.cpp:2332
+#: ../../../src/ui.cpp:2478
+#: ../../../src/ui.cpp:2515
+msgid "Name"
+msgstr "Naam"
+
+#: ../../../src/ui.cpp:2333
+#: ../../../src/ui.cpp:2478
+#: ../../../src/ui.cpp:2515
+msgid "Address"
+msgstr "Adres"
+
+#: ../../../src/ui.cpp:2335
+#: ../../../src/ui.cpp:2490
+msgid "Label"
+msgstr "Label"
+
+#: ../../../src/ui.cpp:2336
+#: ../../../src/uibase.cpp:837
+msgid "Bitcoin Address"
+msgstr "Bitcoin-adres"
+
+#: ../../../src/ui.cpp:2460
+msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
+msgstr "Dit is een van uw eigen adressen voor het ontvangen van betalingen, en kan niet worden toegevoegd aan uw adresboek. "
+
+#: ../../../src/ui.cpp:2478
+#: ../../../src/ui.cpp:2484
+msgid "Edit Address"
+msgstr "Bewerk adres"
+
+#: ../../../src/ui.cpp:2490
+msgid "Edit Address Label"
+msgstr "Bewerk adreslabel"
+
+#: ../../../src/ui.cpp:2515
+#: ../../../src/ui.cpp:2521
+msgid "Add Address"
+msgstr "Adres toevoegen"
+
+#: ../../../src/ui.cpp:2598
+msgid "Bitcoin"
+msgstr "Bitcoin"
+
+#: ../../../src/ui.cpp:2600
+msgid "Bitcoin - Generating"
+msgstr "Bitcoin - Genereren..."
+
+#: ../../../src/ui.cpp:2602
+msgid "Bitcoin - (not connected)"
+msgstr "Bitcoin - (niet verbonden)"
+
+#: ../../../src/ui.cpp:2681
+msgid "&Open Bitcoin"
+msgstr "&Open Bitcoin"
+
+#: ../../../src/ui.cpp:2682
+msgid "&Send Bitcoins"
+msgstr "&Open Bitcoin"
+
+#: ../../../src/ui.cpp:2683
+msgid "O&ptions..."
+msgstr "O&pties"
+
+#: ../../../src/ui.cpp:2686
+#: ../../../src/uibase.cpp:25
+msgid "E&xit"
+msgstr "A&fsluiten"
+
+#: ../../../src/ui.cpp:2902
+msgid "Program has crashed and will terminate. "
+msgstr "Het programma is gecrasht en wordt afgesloten. "
+
+#: ../../../src/main.cpp:1868
+msgid "Warning: Disk space is low "
+msgstr "Waarschuwing: Weinig schijfruimte over "
+
+#: ../../../src/main.cpp:3992
+#, c-format
+msgid "Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds "
+msgstr "Fout: Deze transactie vergt een fooi van ten minste %s omwille van zijn bedrag, complexiteit, of gebruik van recent ontvangen fonden "
+
+#: ../../../src/main.cpp:3994
+msgid "Error: Transaction creation failed "
+msgstr "Fout: Aanmaken van transactie mislukt "
+
+#: ../../../src/main.cpp:4003
+msgid "Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "Fout: De transactie is afgekeurd. Dit kan gebeuren als bepaalde coins in je Portefeuille al zijn uitgegeven. Dit kan veroorzaakt worden doordat je een kopie van wallet.dat gebruikt hebt en enkel daar je uitgave geregistreerd is."
+
+#: ../../../src/main.cpp:4016
+msgid "Invalid amount"
+msgstr "Foutieve hoeveelheid"
+
+#: ../../../src/main.cpp:4023
+msgid "Invalid bitcoin address"
+msgstr "Foutief bitcoin-adres"
+
+#: ../../../src/rpc.cpp:1800
+#: ../../../src/rpc.cpp:1802
+#, c-format
+msgid "To use the %s option"
+msgstr "Om de %s optie te gebruiken"
+
+#: ../../../src/rpc.cpp:1804
+#, c-format
+msgid ""
+"Warning: %s, you must set rpcpassword=<password>\n"
+"in the configuration file: %s\n"
+"If the file does not exist, create it with owner-readable-only file permissions.\n"
+msgstr ""
+"Waarschuwing: %s, rpcpassword=<password> moet ingesteld zijn\n"
+"in het configuratie bestand: %s\n"
+"Als het bestand nog niet bestaat, maak het dan aan met enkel-leesbaar-door-eigenaar rechten.\n"
+
+
+#: ../../../src/rpc.cpp:1972
+#, c-format
+msgid ""
+"You must set rpcpassword=<password> in the configuration file:\n"
+"%s\n"
+"If the file does not exist, create it with owner-readable-only file permissions."
+msgstr ""
+"rpcpassword=<password> moet ingesteld in het configuratie bestand:\n"
+"%s\n"
+"Als het bestand nog niet bestaat, maak het dan aan met enkel-leesbaar-door-eigenaar rechten."
+
+#: ../../../src/util.cpp:865
+msgid "Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly."
+msgstr "Waarschuwing: Controleer of uw computers datum en tijd correct ingesteld zijn. Als uw klok fout staat zal Bitcoin niet correct werken."
+
+#: ../../../src/util.cpp:898
+msgid "beta"
+msgstr "beta"
+
+#: ../../../src/uibase.cpp:28
+msgid "&File"
+msgstr "&Bestand"
+
+#: ../../../src/uibase.cpp:32
+msgid "&Your Receiving Addresses..."
+msgstr "&Uw ontvangstadressen..."
+
+#: ../../../src/uibase.cpp:36
+msgid "&Options..."
+msgstr "&Opties..."
+
+#: ../../../src/uibase.cpp:39
+msgid "&Settings"
+msgstr "&Eigenschappen"
+
+#: ../../../src/uibase.cpp:43
+msgid "&About..."
+msgstr "&Over..."
+
+#: ../../../src/uibase.cpp:46
+msgid "&Help"
+msgstr "&Help"
+
+#: ../../../src/uibase.cpp:56
+msgid "Address Book"
+msgstr "Adresboek"
+
+#: ../../../src/uibase.cpp:69
+msgid "Your Bitcoin Address:"
+msgstr "Uw bitcoin-adres:"
+
+#: ../../../src/uibase.cpp:76
+msgid " &New... "
+msgstr " &Nieuw... "
+
+#: ../../../src/uibase.cpp:79
+#: ../../../src/uibase.cpp:780
+#: ../../../src/uibase.cpp:883
+msgid " &Copy to Clipboard "
+msgstr " &Kopieer naar plakbord "
+
+#: ../../../src/uibase.cpp:93
+msgid "Balance:"
+msgstr "Balans:"
+
+#: ../../../src/uibase.cpp:109
+msgid " All"
+msgstr " Alles"
+
+#: ../../../src/uibase.cpp:109
+msgid " Sent"
+msgstr " Verstuurd"
+
+#: ../../../src/uibase.cpp:109
+msgid " Received"
+msgstr " Ontvangen"
+
+#: ../../../src/uibase.cpp:109
+msgid " In Progress"
+msgstr " Wordt verwerkt"
+
+#: ../../../src/uibase.cpp:130
+msgid "All Transactions"
+msgstr "Alle transacties"
+
+#: ../../../src/uibase.cpp:141
+msgid "Sent/Received"
+msgstr "Verstuurd/Ontvangen"
+
+#: ../../../src/uibase.cpp:152
+msgid "Sent"
+msgstr "Verstuurd"
+
+#: ../../../src/uibase.cpp:163
+msgid "Received"
+msgstr "Ontvangen"
+
+#: ../../../src/uibase.cpp:302
+#: ../../../src/uibase.cpp:443
+#: ../../../src/uibase.cpp:542
+#: ../../../src/uibase.cpp:722
+#: ../../../src/uibase.cpp:783
+#: ../../../src/uibase.cpp:892
+#: ../../../src/uibase.cpp:981
+msgid "OK"
+msgstr "OK"
+
+#: ../../../src/uibase.cpp:345
+msgid "&Start Bitcoin on system startup"
+msgstr "&Start Bitcoin wanneer het systeem opstart"
+
+#: ../../../src/uibase.cpp:348
+msgid "&Minimize to the tray instead of the taskbar"
+msgstr "&Minimaliseer tot systeemvak in plaats van de taakbalk"
+
+#: ../../../src/uibase.cpp:351
+msgid "Map port using &UPnP"
+msgstr "Portmapping via &UPnP"
+
+#: ../../../src/uibase.cpp:354
+msgid "M&inimize to the tray on close"
+msgstr "M&inimaliseer tot taakbalk bij sluiten"
+
+#: ../../../src/uibase.cpp:360
+msgid "&Connect through socks4 proxy: "
+msgstr "&Verbind via socks4 proxy: "
+
+#: ../../../src/uibase.cpp:371
+msgid "Proxy &IP:"
+msgstr "Proxy &IP:"
+
+#: ../../../src/uibase.cpp:379
+msgid " &Port:"
+msgstr " &Poort:"
+
+#: ../../../src/uibase.cpp:392
+msgid "Optional transaction fee per KB that helps make sure your transactions are processed quickly. Most transactions are 1KB. Fee 0.01 recommended."
+msgstr "Optionele transactiefooi per KB die helpt ervoor zorgen dat uw transacties snel verwerkt worden. De meeste transacties zijn 1KB. Fooi 0.01 is aangeraden."
+
+#: ../../../src/uibase.cpp:399
+msgid "Pay transaction fee:"
+msgstr "Transactiefooi:"
+
+#: ../../../src/uibase.cpp:420
+msgid "// [don't translate] Test panel 2 for future expansion"
+msgstr ""
+
+#: ../../../src/uibase.cpp:424
+msgid "// [don't translate] Let's not start multiple pages until the first page is filled up"
+msgstr ""
+
+#: ../../../src/uibase.cpp:446
+#: ../../../src/uibase.cpp:668
+#: ../../../src/uibase.cpp:727
+#: ../../../src/uibase.cpp:786
+#: ../../../src/uibase.cpp:895
+#: ../../../src/uibase.cpp:984
+msgid "Cancel"
+msgstr "Annuleren"
+
+#: ../../../src/uibase.cpp:449
+msgid "&Apply"
+msgstr "&Toepassen"
+
+#: ../../../src/uibase.cpp:508
+msgid "Bitcoin "
+msgstr "Bitcoin "
+
+#: ../../../src/uibase.cpp:514
+msgid "version"
+msgstr "versie"
+
+#: ../../../src/uibase.cpp:525
+msgid ""
+"Copyright (c) 2009-2011 Bitcoin Developers\n"
+"\n"
+"This is experimental software.\n"
+"\n"
+"Distributed under the MIT/X11 software license, see the accompanying file \n"
+"license.txt or http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"This product includes software developed by the OpenSSL Project for use in the \n"
+"OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
+msgstr ""
+"Copyright (c) 2009-2011 Bitcoin-ontwikkelaars\n"
+"\n"
+"Dit is experimentele software.\n"
+"\n"
+"Gedistributeerd onder de MIT/X11 software licentie, zie het bijgevoegde bestand \n"
+"license.txt of kijk op http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"Dit product bevat software ontwikkeld door het OpenSSL project for gebruik \n"
+"in de OpenSSL Toolkit (http://www.openssl.org/), en cryptografische \n"
+"software geschreven door Eric Young (eay@cryptsoft.com)) en UPnP software geschreven\n"
+"door Thomas Bernard."
+
+#: ../../../src/uibase.cpp:581
+msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+msgstr "Voer een bitcoin-adres (bijvoorbeeld: 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+
+#: ../../../src/uibase.cpp:595
+msgid "Pay &To:"
+msgstr "Betaal &aan:"
+
+#: ../../../src/uibase.cpp:610
+msgid "&Paste"
+msgstr "&Plakken"
+
+#: ../../../src/uibase.cpp:613
+msgid " Address &Book..."
+msgstr " Adres&boek..."
+
+#: ../../../src/uibase.cpp:620
+msgid "&Amount:"
+msgstr "&Hoeveelheid:"
+
+#: ../../../src/uibase.cpp:630
+msgid "T&ransfer:"
+msgstr "O&verdracht:"
+
+#: ../../../src/uibase.cpp:636
+msgid " Standard"
+msgstr " Standaard"
+
+#: ../../../src/uibase.cpp:663
+msgid "&Send"
+msgstr "&Versturen"
+
+#: ../../../src/uibase.cpp:711
+msgid ""
+"\n"
+"\n"
+"Connecting..."
+msgstr ""
+"\n"
+"\n"
+"Verbinden..."
+
+#: ../../../src/uibase.cpp:761
+msgid "These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. The highlighted address is displayed in the main window."
+msgstr "Dit zijn je bitcoin-adressen voor het ontvangen van betalingen. Het is een goed idee iedere afzender een ander adres te geven zodat je bij kunt houden wie je een betaling stuurt. Het geselecteerde adres is zichtbaar in het hoofdscherm."
+
+#: ../../../src/uibase.cpp:774
+#: ../../../src/uibase.cpp:886
+msgid "&Edit..."
+msgstr "&Bewerken..."
+
+#: ../../../src/uibase.cpp:777
+#: ../../../src/uibase.cpp:889
+msgid " &New Address... "
+msgstr " &Nieuw adres... "
+
+#: ../../../src/uibase.cpp:849
+msgid "Sending"
+msgstr "Versturen..."
+
+#: ../../../src/uibase.cpp:857
+msgid "These are your Bitcoin addresses for receiving payments. You can give a different one to each sender to keep track of who is paying you. The highlighted address will be displayed in the main window."
+msgstr "Dit zijn je bitcoin-adressen voor het ontvangen van betalingen. Het is een goed idee iedere afzender een ander adres te geven zodat je bij kunt houden wie je een betaling stuurt. Het geselecteerde adres is zichtbaar in het hoofdscherm."
+
+#: ../../../src/uibase.cpp:870
+msgid "Receiving"
+msgstr "Ontvangen..."
+
+#: ../../../src/uibase.cpp:880
+msgid "&Delete"
+msgstr "&Verwijderen"
+
+#: ../../../src/init.cpp:147
+msgid "Bitcoin version"
+msgstr "Bitcoin "
+
+#: ../../../src/init.cpp:148
+msgid "Usage:"
+msgstr "Mededeling:"
+
+#: ../../../src/init.cpp:150
+msgid "Send command to -server or bitcoind\n"
+msgstr "Zend commando naar -server of bitcoind\n"
+
+#: ../../../src/init.cpp:151
+msgid "List commands\n"
+msgstr "List van commando's\n"
+
+#: ../../../src/init.cpp:152
+msgid "Get help for a command\n"
+msgstr "Toon hulp voor een commando\n"
+
+#: ../../../src/init.cpp:153
+msgid "Options:\n"
+msgstr "Opties:\n"
+
+#: ../../../src/init.cpp:154
+msgid "Specify configuration file (default: bitcoin.conf)\n"
+msgstr "Specifieer configuratiebestand (standaard: bitcoin.conf)\n"
+
+#: ../../../src/init.cpp:155
+msgid "Specify pid file (default: bitcoind.pid)\n"
+msgstr "Specifieer pid-bestand (standaard: bitcoind.pid)\n"
+
+#: ../../../src/init.cpp:156
+msgid "Generate coins\n"
+msgstr "Genereer coins\n"
+
+#: ../../../src/init.cpp:157
+msgid "Don't generate coins\n"
+msgstr "Genereer geen coins\n"
+
+#: ../../../src/init.cpp:158
+msgid "Start minimized\n"
+msgstr "Geminimaliseerd starten\n"
+
+#: ../../../src/init.cpp:159
+msgid "Specify data directory\n"
+msgstr "Stel datamap in\n"
+
+#: ../../../src/init.cpp:161
+msgid "Specify connection timeout (in milliseconds)\n"
+msgstr "Gelieve de time-out tijd te specifieren (in milliseconden)\n"
+
+#: ../../../src/init.cpp:160
+msgid "Connect through socks4 proxy\n"
+msgstr "Verbind via socks4 proxy\n"
+
+#: ../../../src/init.cpp:161
+msgid "Allow DNS lookups for addnode and connect\n"
+msgstr "Sta DNS-opzoeking toe voor addnode en connect\n"
+
+#: ../../../src/init.cpp:162
+msgid "Add a node to connect to\n"
+msgstr "Voeg een node toe om mee te verbinden\n"
+
+#: ../../../src/init.cpp:163
+msgid "Connect only to the specified node\n"
+msgstr "Verbind alleen met deze node\n"
+
+#: ../../../src/init.cpp:164
+msgid "Don't accept connections from outside\n"
+msgstr "Sta geen verbindingen van buitenaf toe\n"
+
+#: ../../../src/init.cpp:167
+msgid "Don't attempt to use UPnP to map the listening port\n"
+msgstr "Probeer geen UPnP te gebruiken om de poort waarop geluisterd wordt te mappen\n"
+
+#: ../../../src/init.cpp:169
+msgid "Attempt to use UPnP to map the listening port\n"
+msgstr "Probeer UPnP te gebruiken om de poort waarop geluisterd wordt te mappen\n"
+
+#: ../../../src/init.cpp:172
+msgid "Fee per KB to add to transactions you send\n"
+msgstr "Fooi per KB om aan transacties die gezonden worden toe te voegen\n"
+
+#: ../../../src/init.cpp:174
+msgid "Accept command line and JSON-RPC commands\n"
+msgstr "Aanvaard commandolijn en JSON-RPC commando's\n"
+
+#: ../../../src/init.cpp:177
+msgid "Run in the background as a daemon and accept commands\n"
+msgstr "Draai in de achtergrond als daemon en aanvaard commando's\n"
+
+#: ../../../src/init.cpp:179
+msgid "Use the test network\n"
+msgstr "Gebruik het test-netwerk\n"
+
+#: ../../../src/init.cpp:180
+msgid "Username for JSON-RPC connections\n"
+msgstr "Gebruikersnaam voor JSON-RPC verbindingen\n"
+
+#: ../../../src/init.cpp:181
+msgid "Password for JSON-RPC connections\n"
+msgstr "Wachtwoord voor JSON-RPC verbindingen\n"
+
+#: ../../../src/init.cpp:182
+msgid "Listen for JSON-RPC connections on <port> (default: 8332)\n"
+msgstr "Luister voor JSON-RPC verbindingen op <poort> (standaard: 8332)\n"
+
+#: ../../../src/init.cpp:183
+msgid "Allow JSON-RPC connections from specified IP address\n"
+msgstr "Enkel JSON-RPC verbindingen van opgegeven IP adres toestaan\n"
+
+#: ../../../src/init.cpp:184
+msgid "Send commands to node running on <ip> (default: 127.0.0.1)\n"
+msgstr "Zend commando's naar proces dat op <ip> draait (standaard: 127.0.0.1)\n"
+
+#: ../../../src/init.cpp:185
+msgid "Set key pool size to <n> (default: 100)\n"
+msgstr "Stel sleutelpoelgrootte in op <n> (standaard: 100)\n"
+
+#: ../../../src/init.cpp:186
+msgid "Rescan the block chain for missing wallet transactions\n"
+msgstr "Doorzoek de blokken database voor ontbrekende portefeuille-transacties\n"
+
+#: ../../../src/init.cpp:190
+msgid ""
+"\n"
+"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"
+msgstr ""
+"\n"
+"SSL opties: (zie de Bitcoin wiki voor SSL instructies)\n"
+
+#: ../../../src/init.cpp:191
+msgid "Use OpenSSL (https) for JSON-RPC connections\n"
+msgstr "Gebruik OpenSSL (https) voor JSON-RPC verbindingen\n"
+
+#: ../../../src/init.cpp:192
+msgid "Server certificate file (default: server.cert)\n"
+msgstr "Certificaat-bestand voor server (standaard: server.cert)\n"
+
+#: ../../../src/init.cpp:193
+msgid "Server private key (default: server.pem)\n"
+msgstr "Geheime sleutel voor server (standaard: server.pem)\n"
+
+#: ../../../src/init.cpp:194
+msgid "Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
+msgstr "Aanvaardbare ciphers (standaard: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
+
+#: ../../../src/init.cpp:198
+msgid "This help message\n"
+msgstr "Dit helpbericht\n"
+
+#: ../../../src/init.cpp:335
+#, c-format
+msgid "Cannot obtain a lock on data directory %s. Bitcoin is probably already running."
+msgstr "Kan geen lock op de gegevensdirectory %s verkrijgen. Bitcoin draait vermoedelijk reeds."
+
+#: ../../../src/init.cpp:361
+msgid "Error loading addr.dat \n"
+msgstr "Fout bij laden van bestand addr.dat \n"
+
+#: ../../../src/init.cpp:367
+msgid "Error loading blkindex.dat \n"
+msgstr "Fout bij laden van bestand blkindex.dat \n"
+
+#: ../../../src/init.cpp:374
+msgid "Error loading wallet.dat \n"
+msgstr "Fout bij laden van bestand wallet.dat \n"
+
+#: ../../../src/init.cpp:454
+msgid "Invalid -proxy address"
+msgstr "Foutief -proxy adres"
+
+#: ../../../src/init.cpp:477
+msgid "Invalid amount for -paytxfee=<amount>"
+msgstr "Ongeldig bedrag voor -paytxfee=<bedrag>"
+
+#: ../../../src/init.cpp:481
+msgid "Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."
+msgstr "Waarschuwing: -paytxfee is zeer hoog ingesteld. Dit is de fooi die betaald wordt bij het zenden van een transactie."
+
+#: ../../../src/uibase.h:147
+msgid "Transaction Details"
+msgstr "Transactiedetails"
+
+#: ../../../src/uibase.h:199
+msgid "Options"
+msgstr "Opties"
+
+#: ../../../src/uibase.h:228
+msgid "About Bitcoin"
+msgstr "Over Bitcoin"
+
+#: ../../../src/uibase.h:337
+msgid "Your Bitcoin Addresses"
+msgstr "Uw bitcoin-adressen"
diff --git a/locale/pl/LC_MESSAGES/bitcoin.po b/locale/pl/LC_MESSAGES/bitcoin.po
new file mode 100644
index 0000000000..ef6be0d9da
--- /dev/null
+++ b/locale/pl/LC_MESSAGES/bitcoin.po
@@ -0,0 +1,976 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: Bitcoin\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-06-28 20:11+0100\n"
+"PO-Revision-Date: \n"
+"Last-Translator: Dawid Spiechowicz <spiechu@gmail.com>\n"
+"Language-Team: Spiechu <spiechu@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: \n"
+"X-Poedit-Language: Polish\n"
+"X-Poedit-Country: POLAND\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
+"X-Poedit-Basepath: .\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+"X-Poedit-SearchPath-0: ../../..\n"
+
+#: ../../../src/net.cpp:1590
+#, c-format
+msgid "Unable to bind to port %d on this computer. Bitcoin is probably already running."
+msgstr "Nie można powiązać z portem %d tego komputera. Prawdopodobnie program Bitcoin jest już uruchomiony."
+
+#: ../../../src/init.cpp:162
+msgid "Bitcoin version"
+msgstr "Wersja Bitcoin"
+
+#: ../../../src/init.cpp:163
+msgid "Usage:"
+msgstr "Użycie:"
+
+#: ../../../src/init.cpp:165
+msgid "Send command to -server or bitcoind\n"
+msgstr "Wyślij polecenie do -server lub bitcoind\n"
+
+#: ../../../src/init.cpp:166
+msgid "List commands\n"
+msgstr "Wyświetl komendy\n"
+
+#: ../../../src/init.cpp:167
+msgid "Get help for a command\n"
+msgstr "Wyświetl pomoc dla komendy\n"
+
+#: ../../../src/init.cpp:168
+msgid "Options:\n"
+msgstr "Opcje:\n"
+
+#: ../../../src/init.cpp:169
+msgid "Specify configuration file (default: bitcoin.conf)\n"
+msgstr "Określ plik konfiguracyjny (domyślnie: bitcoin.conf)\n"
+
+#: ../../../src/init.cpp:170
+msgid "Specify pid file (default: bitcoind.pid)\n"
+msgstr "Wybierz plik pid (domyślnie: bitcoind.pid)\n"
+
+#: ../../../src/init.cpp:171
+msgid "Generate coins\n"
+msgstr "Generuj monety\n"
+
+#: ../../../src/init.cpp:172
+msgid "Don't generate coins\n"
+msgstr "Nie generuj monet\n"
+
+#: ../../../src/init.cpp:173
+msgid "Start minimized\n"
+msgstr "Uruchom zminimalizowany\n"
+
+#: ../../../src/init.cpp:174
+msgid "Specify data directory\n"
+msgstr "Wybierz katalog z danymi\n"
+
+#: ../../../src/init.cpp:175
+msgid "Specify connection timeout (in milliseconds)\n"
+msgstr "Ustaw czas upływu połączenia (w milisekundach)\n"
+
+#: ../../../src/init.cpp:176
+msgid "Connect through socks4 proxy\n"
+msgstr "Połącz przez socks4 proxy\n"
+
+#: ../../../src/init.cpp:177
+msgid "Allow DNS lookups for addnode and connect\n"
+msgstr "Umożliwiaj wyszukiwanie DNS dla dodania węzła i połączenia\n"
+
+#: ../../../src/init.cpp:178
+msgid "Add a node to connect to\n"
+msgstr "Dodaj węzeł do którego połączyć\n"
+
+#: ../../../src/init.cpp:179
+msgid "Connect only to the specified node\n"
+msgstr "Łącz tylko z wybranym węzłem\n"
+
+#: ../../../src/init.cpp:180
+msgid "Don't accept connections from outside\n"
+msgstr "Nie akceptuj połączeń z zewnątrz\n"
+
+#: ../../../src/init.cpp:183
+msgid "Don't attempt to use UPnP to map the listening port\n"
+msgstr "Nie próbuj użyć UPnP dla mapowania portu nasłuchu\n"
+
+#: ../../../src/init.cpp:185
+msgid "Attempt to use UPnP to map the listening port\n"
+msgstr "Próbuj użyć UPnP dla mapowania portu nasłuchu\n"
+
+#: ../../../src/init.cpp:188
+msgid "Fee per KB to add to transactions you send\n"
+msgstr "Prowizja na KB dodawana do transakcji, które wysyłasz\n"
+
+#: ../../../src/init.cpp:190
+msgid "Accept command line and JSON-RPC commands\n"
+msgstr "Akceptuj polecenia linii poleceń i JSON-RPC\n"
+
+#: ../../../src/init.cpp:193
+msgid "Run in the background as a daemon and accept commands\n"
+msgstr "Uruchom w tle (daemon) i akceptuj komendy\n"
+
+#: ../../../src/init.cpp:195
+msgid "Use the test network\n"
+msgstr "Użyj sieci testowej\n"
+
+#: ../../../src/init.cpp:196
+msgid "Username for JSON-RPC connections\n"
+msgstr "Nazwa użytkownika dla połączeń JSON-RPC\n"
+
+#: ../../../src/init.cpp:197
+msgid "Password for JSON-RPC connections\n"
+msgstr "Hasło dla połączeń JSON-RPC\n"
+
+#: ../../../src/init.cpp:198
+msgid "Listen for JSON-RPC connections on <port> (default: 8332)\n"
+msgstr "Nasłuch dla połączeń JSON-RPC na porcie <port> (domyślnie: 8332)\n"
+
+#: ../../../src/init.cpp:199
+msgid "Allow JSON-RPC connections from specified IP address\n"
+msgstr "Zezwól na połączenia JSON-RPC z adresu IP\n"
+
+#: ../../../src/init.cpp:200
+msgid "Send commands to node running on <ip> (default: 127.0.0.1)\n"
+msgstr "Wysyłaj polecenia do węzła działającego na <ip> (domyślnie: 127.0.0.1)\n"
+
+#: ../../../src/init.cpp:201
+msgid "Set key pool size to <n> (default: 100)\n"
+msgstr "Ustaw pulę kluczy na <n> (domyślnie: 100)\n"
+
+#: ../../../src/init.cpp:202
+msgid "Rescan the block chain for missing wallet transactions\n"
+msgstr "Przeszukaj łańcuch bloków w poszukiwaniu zaginionych transakcji\n"
+
+#: ../../../src/init.cpp:206
+msgid ""
+"\n"
+"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"
+msgstr ""
+"\n"
+"Opcje SSL: (zobacz instrukcje na Bitcoin Wiki dla ustawień SSL)\n"
+
+#: ../../../src/init.cpp:207
+msgid "Use OpenSSL (https) for JSON-RPC connections\n"
+msgstr "Użyj OpenSSL (https) dla połączeń JSON-RPC\n"
+
+#: ../../../src/init.cpp:208
+msgid "Server certificate file (default: server.cert)\n"
+msgstr "Plik certyfikacji serwera (domyślnie: server.cert)\n"
+
+#: ../../../src/init.cpp:209
+msgid "Server private key (default: server.pem)\n"
+msgstr "Klucz prywatny serwera (domyślnie: server.pem)\n"
+
+#: ../../../src/init.cpp:210
+msgid "Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
+msgstr "Akceptowalne szyfry (domyślnie: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
+
+#: ../../../src/init.cpp:214
+msgid "This help message\n"
+msgstr "Ta wiadomość pomocy\n"
+
+#: ../../../src/init.cpp:351
+#, c-format
+msgid "Cannot obtain a lock on data directory %s. Bitcoin is probably already running."
+msgstr "Nie można korzystać z katalogu %s z danymi. Bitcoin prawdopodobnie już jest uruchomiony."
+
+#: ../../../src/init.cpp:377
+msgid "Error loading addr.dat \n"
+msgstr "Błąd ładowania addr.dat \n"
+
+#: ../../../src/init.cpp:383
+msgid "Error loading blkindex.dat \n"
+msgstr "Błąd ładowania blkindex.dat \n"
+
+#: ../../../src/init.cpp:391
+msgid "Error loading wallet.dat \n"
+msgstr "Błąd ładowania wallet.dat \n"
+
+#: ../../../src/init.cpp:481
+msgid "Invalid -proxy address"
+msgstr "Niewłaściwy adres -proxy"
+
+#: ../../../src/init.cpp:504
+msgid "Invalid amount for -paytxfee=<amount>"
+msgstr "Nieprawidłowa kwota w -paytxfee=<amount>"
+
+#: ../../../src/init.cpp:508
+msgid "Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."
+msgstr "Ostrzeżenie: ustawienie -paytxfee jest bardzo wysokie. To jest prowizja transakcji, którą zapłacisz jeżeli wyślesz transakcję."
+
+#: ../../../src/rpc.cpp:1822
+#: ../../../src/rpc.cpp:1824
+#, c-format
+msgid "To use the %s option"
+msgstr "Użycie opcji %s"
+
+#: ../../../src/rpc.cpp:1826
+#, c-format
+msgid ""
+"Warning: %s, you must set rpcpassword=<password>\n"
+"in the configuration file: %s\n"
+"If the file does not exist, create it with owner-readable-only file permissions.\n"
+msgstr ""
+"Ostrzeżenie: %s, musisz ustawić rpcpassword=<password>\n"
+"w pliku konfiguracyjnym: %s\n"
+"Jeżeli plik nie istnieje, utwórz go z uprawnieniami tylko do odczytu dla właściciela.\n"
+
+#: ../../../src/rpc.cpp:1994
+#, c-format
+msgid ""
+"You must set rpcpassword=<password> in the configuration file:\n"
+"%s\n"
+"If the file does not exist, create it with owner-readable-only file permissions."
+msgstr ""
+"Musisz ustawić rpcpassword=<password> w pliku konfiguracyjnym:\n"
+"%s\n"
+"Jeżeli plik nie istnieje, utwórz go z uprawnieniami tylko do odczytu dla właściciela."
+
+#: ../../../src/util.cpp:874
+msgid "Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly."
+msgstr "Ostrzeżenie: Sprawdź czy ustawienia daty i czasu komputera są prawidłowe. Jeżeli zegar jest źle ustawiony, Bitcoin nie będzie poprawnie działał."
+
+#: ../../../src/util.cpp:908
+msgid "beta"
+msgstr "beta"
+
+#: ../../../src/ui.cpp:216
+#, c-format
+msgid "This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?"
+msgstr "Ta transakcja jest poza limitem wielkości. W dalszym ciągu możesz wysłać ją z prowizją %s, która dotrze do węzłów przetwarzających twoją transakcję i pomoże utrzymać sieć. Chcesz zapłacić prowizję?"
+
+#: ../../../src/ui.cpp:316
+msgid "Status"
+msgstr "Status"
+
+#: ../../../src/ui.cpp:317
+msgid "Date"
+msgstr "Data"
+
+#: ../../../src/ui.cpp:318
+msgid "Description"
+msgstr "Opis"
+
+#: ../../../src/ui.cpp:319
+msgid "Debit"
+msgstr "Obciążenie"
+
+#: ../../../src/ui.cpp:320
+msgid "Credit"
+msgstr "Suma"
+
+#: ../../../src/ui.cpp:526
+#, c-format
+msgid "Open for %d blocks"
+msgstr "Otwórz na %d bloków"
+
+#: ../../../src/ui.cpp:528
+#, c-format
+msgid "Open until %s"
+msgstr "Otwarte dopóki %s"
+
+#: ../../../src/ui.cpp:534
+#, c-format
+msgid "%d/offline?"
+msgstr "%d/offline?"
+
+#: ../../../src/ui.cpp:536
+#, c-format
+msgid "%d/unconfirmed"
+msgstr "%d/niepotwierdzono"
+
+#: ../../../src/ui.cpp:538
+#, c-format
+msgid "%d confirmations"
+msgstr "%d potwierdzeń"
+
+#: ../../../src/ui.cpp:623
+msgid "Generated"
+msgstr "Wygenerowano"
+
+#: ../../../src/ui.cpp:631
+#, c-format
+msgid "Generated (%s matures in %d more blocks)"
+msgstr "Wygenerowano (%s dojrzałych w %d więcej bloków)"
+
+#: ../../../src/ui.cpp:635
+msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
+msgstr "Wygenerowano - Ostrzeżenie: Ten blok nie został otrzymany przez żaden inny węzeł i prawdopodobnie nie zostanie zaakceptowany!"
+
+#: ../../../src/ui.cpp:639
+msgid "Generated (not accepted)"
+msgstr "Wygenerowano (nie zaakceptowano)"
+
+#: ../../../src/ui.cpp:649
+msgid "From: "
+msgstr "Od:"
+
+#: ../../../src/ui.cpp:673
+msgid "Received with: "
+msgstr "Otrzymano z:"
+
+#: ../../../src/ui.cpp:719
+msgid "Payment to yourself"
+msgstr "Płatność dla siebie samego"
+
+#: ../../../src/ui.cpp:753
+msgid "To: "
+msgstr "Do:"
+
+#: ../../../src/ui.cpp:1068
+msgid " Generating"
+msgstr " Generowanie"
+
+#: ../../../src/ui.cpp:1070
+msgid "(not connected)"
+msgstr "(nie połączony)"
+
+#: ../../../src/ui.cpp:1073
+#, c-format
+msgid " %d connections %d blocks %d transactions"
+msgstr " %d połączeń %d bloków %d transakcji"
+
+#: ../../../src/ui.cpp:1178
+#: ../../../src/ui.cpp:2571
+msgid "New Receiving Address"
+msgstr "Nowy Adres Odbiorczy"
+
+#: ../../../src/ui.cpp:1179
+#: ../../../src/ui.cpp:2572
+msgid ""
+"You should use a new address for each payment you receive.\n"
+"\n"
+"Label"
+msgstr ""
+"Powinieneś użyć nowego adresu dla każdej płatności, którą otrzymasz.\n"
+"\n"
+"Etykieta"
+
+#: ../../../src/ui.cpp:1251
+msgid "<b>Status:</b> "
+msgstr "<b>Status:</b>"
+
+#: ../../../src/ui.cpp:1256
+msgid ", has not been successfully broadcast yet"
+msgstr ", nie został jeszcze prawidłowo rozgłoszony"
+
+#: ../../../src/ui.cpp:1258
+#, c-format
+msgid ", broadcast through %d node"
+msgstr ", rozgłasza przez %d węzeł"
+
+#: ../../../src/ui.cpp:1260
+#, c-format
+msgid ", broadcast through %d nodes"
+msgstr ", rozgłasza przez %d węzłów"
+
+#: ../../../src/ui.cpp:1264
+msgid "<b>Date:</b> "
+msgstr "<b>Data:</b>"
+
+#: ../../../src/ui.cpp:1272
+msgid "<b>Source:</b> Generated<br>"
+msgstr "<b>Źródło:</b> Wygenerowano<br>"
+
+#: ../../../src/ui.cpp:1278
+#: ../../../src/ui.cpp:1296
+msgid "<b>From:</b> "
+msgstr "<b>Od:</b>"
+
+#: ../../../src/ui.cpp:1296
+msgid "unknown"
+msgstr "nieznany"
+
+#: ../../../src/ui.cpp:1297
+#: ../../../src/ui.cpp:1321
+#: ../../../src/ui.cpp:1380
+msgid "<b>To:</b> "
+msgstr "<b>Do:</b>"
+
+#: ../../../src/ui.cpp:1300
+msgid " (yours, label: "
+msgstr " (twoja, etykieta: "
+
+#: ../../../src/ui.cpp:1302
+msgid " (yours)"
+msgstr " (twoja)"
+
+#: ../../../src/ui.cpp:1339
+#: ../../../src/ui.cpp:1351
+#: ../../../src/ui.cpp:1397
+#: ../../../src/ui.cpp:1414
+msgid "<b>Credit:</b> "
+msgstr "<b>Suma:</b>"
+
+#: ../../../src/ui.cpp:1341
+#, c-format
+msgid "(%s matures in %d more blocks)"
+msgstr "(%s dojrzałych w %d więcej bloków)"
+
+#: ../../../src/ui.cpp:1343
+msgid "(not accepted)"
+msgstr "(nie zaakceptowano)"
+
+#: ../../../src/ui.cpp:1388
+#: ../../../src/ui.cpp:1396
+#: ../../../src/ui.cpp:1411
+msgid "<b>Debit:</b> "
+msgstr "<b>Obciążenie:</b>"
+
+#: ../../../src/ui.cpp:1402
+msgid "<b>Transaction fee:</b> "
+msgstr "<b>Prowizja transakcji:</b>"
+
+#: ../../../src/ui.cpp:1418
+msgid "<b>Net amount:</b> "
+msgstr "<b>Kwota netto:</b>"
+
+#: ../../../src/ui.cpp:1425
+msgid "Message:"
+msgstr "Wiadomość:"
+
+#: ../../../src/ui.cpp:1427
+msgid "Comment:"
+msgstr "Komentarz:"
+
+#: ../../../src/ui.cpp:1430
+msgid "Generated coins must wait 120 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, it will change to \"not accepted\" and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours."
+msgstr "Wygenerowane monety muszą poczekać 120 bloków zanim mogą zostać wydane. Gdy wygenerowałeś ten blok, został rozgłoszony do sieci z przeznaczeniem do dodania do łańcucha bloków. Jeżeli nie uda się dodać bloku do łańcucha, zostanie oznaczony jako \"nie zaakceptowany\" i nie będzie mógł zostać wydany. Sporadycznie dzieje się tak jeżeli inny węzeł wygeneruje blok nie dalej niż kilka sekund od ciebie."
+
+#: ../../../src/ui.cpp:1610
+msgid "Cannot write autostart/bitcoin.desktop file"
+msgstr "Nie mogę zapisać pliku autostart/bitcoin.desktop"
+
+#: ../../../src/ui.cpp:1646
+msgid "Main"
+msgstr "Główne"
+
+#: ../../../src/ui.cpp:1656
+msgid "&Start Bitcoin on window system startup"
+msgstr "&Uruchom Bitcoin przy starcie systemu"
+
+#: ../../../src/ui.cpp:1663
+msgid "&Minimize on close"
+msgstr "&Minimalizuj przy zamknięciu"
+
+#: ../../../src/ui.cpp:1805
+#, c-format
+msgid "version %s"
+msgstr "wersja %s"
+
+#: ../../../src/ui.cpp:1928
+msgid "Error in amount "
+msgstr "Nieprawidłowa kwota"
+
+#: ../../../src/ui.cpp:1928
+#: ../../../src/ui.cpp:1933
+#: ../../../src/ui.cpp:1938
+#: ../../../src/ui.cpp:1973
+#: ../../../src/uibase.cpp:55
+msgid "Send Coins"
+msgstr "Wyślij Monety"
+
+#: ../../../src/ui.cpp:1933
+msgid "Amount exceeds your balance "
+msgstr "Kwota przekracza twój stan konta"
+
+#: ../../../src/ui.cpp:1938
+msgid "Total exceeds your balance when the "
+msgstr "Przekroczenie twojego stanu konta gdy"
+
+#: ../../../src/ui.cpp:1938
+msgid " transaction fee is included "
+msgstr " prowizja jest wliczona"
+
+#: ../../../src/ui.cpp:1956
+msgid "Payment sent "
+msgstr "Wysłano płatność"
+
+#: ../../../src/ui.cpp:1956
+#: ../../../src/ui.cpp:1961
+#: ../../../src/ui.cpp:2107
+#: ../../../src/ui.cpp:2260
+#: ../../../src/wallet.cpp:924
+msgid "Sending..."
+msgstr "Wysyłanie..."
+
+#: ../../../src/ui.cpp:1973
+msgid "Invalid address "
+msgstr "Nieprawidłowy adres"
+
+#: ../../../src/ui.cpp:2028
+#, c-format
+msgid "Sending %s to %s"
+msgstr "Wysyłanie %s do %s"
+
+#: ../../../src/ui.cpp:2101
+#: ../../../src/ui.cpp:2134
+msgid "CANCELLED"
+msgstr "ANULOWANO"
+
+#: ../../../src/ui.cpp:2105
+msgid "Cancelled"
+msgstr "Anulowano"
+
+#: ../../../src/ui.cpp:2107
+msgid "Transfer cancelled "
+msgstr "Transfer anulowano"
+
+#: ../../../src/ui.cpp:2160
+msgid "Error: "
+msgstr "Błąd:"
+
+#: ../../../src/ui.cpp:2174
+#: ../../../src/ui.cpp:2245
+#: ../../../src/wallet.cpp:943
+msgid "Insufficient funds"
+msgstr "Niewystarczające fundusze"
+
+#: ../../../src/ui.cpp:2179
+msgid "Connecting..."
+msgstr "Łączenie..."
+
+#: ../../../src/ui.cpp:2184
+msgid "Unable to connect"
+msgstr "Nie można połączyć"
+
+#: ../../../src/ui.cpp:2189
+msgid "Requesting public key..."
+msgstr "Żądanie klucza publicznego..."
+
+#: ../../../src/ui.cpp:2201
+msgid "Received public key..."
+msgstr "Otrzymano klucz publiczny..."
+
+#: ../../../src/ui.cpp:2215
+msgid "Recipient is not accepting transactions sent by IP address"
+msgstr "Adresat nie akceptuje transakcji wysyłanych przez adres IP"
+
+#: ../../../src/ui.cpp:2217
+msgid "Transfer was not accepted"
+msgstr "Transfer nie został zaakceptowany"
+
+#: ../../../src/ui.cpp:2226
+msgid "Invalid response received"
+msgstr "Otrzymano niepoprawną odpowiedź"
+
+#: ../../../src/ui.cpp:2241
+msgid "Creating transaction..."
+msgstr "Tworzenie transakcji..."
+
+#: ../../../src/ui.cpp:2253
+#, c-format
+msgid "This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds"
+msgstr "Ta transakcja wymaga prowizji co najmniej %s z uwagi na kwotę, złożoność lub użycie niedawno otrzymanych funduszy"
+
+#: ../../../src/ui.cpp:2255
+msgid "Transaction creation failed"
+msgstr "Błąd tworzenia transakcji "
+
+#: ../../../src/ui.cpp:2262
+msgid "Transaction aborted"
+msgstr "Transakcję przerwano"
+
+#: ../../../src/ui.cpp:2270
+msgid "Lost connection, transaction cancelled"
+msgstr "Utracono połączenie, transakcja anulowana"
+
+#: ../../../src/ui.cpp:2286
+msgid "Sending payment..."
+msgstr "Wysyłanie płatności..."
+
+#: ../../../src/ui.cpp:2292
+msgid "The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "Transakcja została odrzucona. Może się tak zdarzyć jeżeli część monet w twoim portfelu zostało wydanych, np. gdy użyto kopii pliku wallet.dat i monety zostały wydane w kopii, a tutaj nie zostały oznaczone jako wydane."
+
+#: ../../../src/ui.cpp:2301
+msgid "Waiting for confirmation..."
+msgstr "Oczekiwanie na potwierdzenie..."
+
+#: ../../../src/ui.cpp:2319
+msgid ""
+"The payment was sent, but the recipient was unable to verify it.\n"
+"The transaction is recorded and will credit to the recipient,\n"
+"but the comment information will be blank."
+msgstr ""
+"Płatność została wysłana, ale odbiorca nie mógł jej zweryfikować.\n"
+"Transakcja została zarejestrowana i zostanie przypisana do odbiorcy,\n"
+"ale informacja w komentarzu będzie pusta."
+
+#: ../../../src/ui.cpp:2328
+msgid "Payment was sent, but an invalid response was received"
+msgstr "Płatność została wysłana, ale otrzymano nieprawidłową odpowiedź"
+
+#: ../../../src/ui.cpp:2334
+msgid "Payment completed"
+msgstr "Płatność zakończona"
+
+#: ../../../src/ui.cpp:2376
+#: ../../../src/ui.cpp:2522
+#: ../../../src/ui.cpp:2559
+msgid "Name"
+msgstr "Nazwa"
+
+#: ../../../src/ui.cpp:2377
+#: ../../../src/ui.cpp:2522
+#: ../../../src/ui.cpp:2559
+msgid "Address"
+msgstr "Adres"
+
+#: ../../../src/ui.cpp:2379
+#: ../../../src/ui.cpp:2534
+msgid "Label"
+msgstr "Etykieta"
+
+#: ../../../src/ui.cpp:2380
+#: ../../../src/uibase.cpp:837
+msgid "Bitcoin Address"
+msgstr "Adres Bitcoin"
+
+#: ../../../src/ui.cpp:2504
+msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
+msgstr "To jest jeden z twoich adresów na otrzymywane płatności i nie może zostać wpisany do księgi adresowej."
+
+#: ../../../src/ui.cpp:2522
+#: ../../../src/ui.cpp:2528
+msgid "Edit Address"
+msgstr "Edytuj Adres"
+
+#: ../../../src/ui.cpp:2534
+msgid "Edit Address Label"
+msgstr "Edytuj Etykietę Adresu"
+
+#: ../../../src/ui.cpp:2559
+#: ../../../src/ui.cpp:2565
+msgid "Add Address"
+msgstr "Dodaj Adres"
+
+#: ../../../src/ui.cpp:2642
+msgid "Bitcoin"
+msgstr "Bitcoin"
+
+#: ../../../src/ui.cpp:2644
+msgid "Bitcoin - Generating"
+msgstr "Bitcoin - Generowanie"
+
+#: ../../../src/ui.cpp:2646
+msgid "Bitcoin - (not connected)"
+msgstr "Bitcoin - (nie połączony)"
+
+#: ../../../src/ui.cpp:2725
+msgid "&Open Bitcoin"
+msgstr "&Otwórz Bitcoin"
+
+#: ../../../src/ui.cpp:2726
+msgid "&Send Bitcoins"
+msgstr "&Wyślij Bitcoiny"
+
+#: ../../../src/ui.cpp:2727
+msgid "O&ptions..."
+msgstr "O&pcje..."
+
+#: ../../../src/ui.cpp:2730
+#: ../../../src/uibase.cpp:25
+msgid "E&xit"
+msgstr "W&yjście"
+
+#: ../../../src/ui.cpp:2956
+msgid "Program has crashed and will terminate. "
+msgstr "Program uległ awarii i zostanie przerwany."
+
+#: ../../../src/main.cpp:1430
+msgid "Warning: Disk space is low "
+msgstr "Ostrzeżenie: Mało miejsca na dysku"
+
+#: ../../../src/uibase.cpp:28
+msgid "&File"
+msgstr "&Plik"
+
+#: ../../../src/uibase.cpp:32
+msgid "&Your Receiving Addresses..."
+msgstr "&Twój Adres Odbiorczy..."
+
+#: ../../../src/uibase.cpp:36
+msgid "&Options..."
+msgstr "&Opcje..."
+
+#: ../../../src/uibase.cpp:39
+msgid "&Settings"
+msgstr "&Ustawienia"
+
+#: ../../../src/uibase.cpp:43
+msgid "&About..."
+msgstr "&O programie..."
+
+#: ../../../src/uibase.cpp:46
+msgid "&Help"
+msgstr "&Pomoc"
+
+#: ../../../src/uibase.cpp:56
+msgid "Address Book"
+msgstr "Księga Adresowa"
+
+#: ../../../src/uibase.cpp:69
+msgid "Your Bitcoin Address:"
+msgstr "Twój Adres Bitcoin:"
+
+#: ../../../src/uibase.cpp:76
+msgid " &New... "
+msgstr " &Nowy..."
+
+#: ../../../src/uibase.cpp:79
+#: ../../../src/uibase.cpp:780
+#: ../../../src/uibase.cpp:883
+msgid " &Copy to Clipboard "
+msgstr " &Kopiuj do schowka "
+
+#: ../../../src/uibase.cpp:93
+msgid "Balance:"
+msgstr "Saldo:"
+
+#: ../../../src/uibase.cpp:109
+msgid " All"
+msgstr " Wszystko"
+
+#: ../../../src/uibase.cpp:109
+msgid " Sent"
+msgstr "Wysłano"
+
+#: ../../../src/uibase.cpp:109
+msgid " Received"
+msgstr "Otrzymano"
+
+#: ../../../src/uibase.cpp:109
+msgid " In Progress"
+msgstr "W Trakcie"
+
+#: ../../../src/uibase.cpp:130
+msgid "All Transactions"
+msgstr "Wszystkie Transakcje"
+
+#: ../../../src/uibase.cpp:141
+msgid "Sent/Received"
+msgstr "Wysłano/Otrzymano"
+
+#: ../../../src/uibase.cpp:152
+msgid "Sent"
+msgstr "Wysłano"
+
+#: ../../../src/uibase.cpp:163
+msgid "Received"
+msgstr "Otrzymano"
+
+#: ../../../src/uibase.cpp:302
+#: ../../../src/uibase.cpp:443
+#: ../../../src/uibase.cpp:542
+#: ../../../src/uibase.cpp:722
+#: ../../../src/uibase.cpp:783
+#: ../../../src/uibase.cpp:892
+#: ../../../src/uibase.cpp:981
+msgid "OK"
+msgstr "OK"
+
+#: ../../../src/uibase.cpp:345
+msgid "&Start Bitcoin on system startup"
+msgstr "&Uruchom Bitcoin wraz ze startem systemu"
+
+#: ../../../src/uibase.cpp:348
+msgid "&Minimize to the tray instead of the taskbar"
+msgstr "&Zminimalizuj do traya zamiast do paska zadań"
+
+#: ../../../src/uibase.cpp:351
+msgid "Map port using &UPnP"
+msgstr "Mapuj port używając &UPnP"
+
+#: ../../../src/uibase.cpp:354
+msgid "M&inimize to the tray on close"
+msgstr "Zm&inimalizuj do traya przy zamknięciu"
+
+#: ../../../src/uibase.cpp:360
+msgid "&Connect through socks4 proxy: "
+msgstr "&Połącz przez socks4 proxy:"
+
+#: ../../../src/uibase.cpp:371
+msgid "Proxy &IP:"
+msgstr "Proxy &IP:"
+
+#: ../../../src/uibase.cpp:379
+msgid " &Port:"
+msgstr " &Port:"
+
+#: ../../../src/uibase.cpp:392
+msgid "Optional transaction fee per KB that helps make sure your transactions are processed quickly. Most transactions are 1KB. Fee 0.01 recommended."
+msgstr "Opcjonalna prowizja określona dla KB transakcji, która zapewni, że twoje transakcje będą szybko przetworzone. Większość transakcji to 1KB. Rekomendowana prowizja to 0.01."
+
+#: ../../../src/uibase.cpp:399
+msgid "Pay transaction fee:"
+msgstr "Płać prowizję transakcji:"
+
+#: ../../../src/uibase.cpp:420
+msgid "// [don't translate] Test panel 2 for future expansion"
+msgstr ""
+
+#: ../../../src/uibase.cpp:424
+msgid "// [don't translate] Let's not start multiple pages until the first page is filled up"
+msgstr ""
+
+#: ../../../src/uibase.cpp:446
+#: ../../../src/uibase.cpp:668
+#: ../../../src/uibase.cpp:727
+#: ../../../src/uibase.cpp:786
+#: ../../../src/uibase.cpp:895
+#: ../../../src/uibase.cpp:984
+msgid "Cancel"
+msgstr "Anuluj"
+
+#: ../../../src/uibase.cpp:449
+msgid "&Apply"
+msgstr "&Zastosuj"
+
+#: ../../../src/uibase.cpp:508
+msgid "Bitcoin "
+msgstr "Bitcoin"
+
+#: ../../../src/uibase.cpp:514
+msgid "version"
+msgstr "wersja"
+
+#: ../../../src/uibase.cpp:525
+msgid ""
+"Copyright (c) 2009-2011 Bitcoin Developers\n"
+"\n"
+"This is experimental software.\n"
+"\n"
+"Distributed under the MIT/X11 software license, see the accompanying file \n"
+"license.txt or http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"This product includes software developed by the OpenSSL Project for use in the \n"
+"OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
+msgstr ""
+"Copyright (c) 2009-2011 Bitcoin Developers\n"
+"\n"
+"To oprogramowanie jest eksperymentalne.\n"
+"\n"
+"Dystrybuowane na licencji MIT/X11, zobacz towarzyszący plik \n"
+"license.txt lub http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"Ten produkt zawiera oprogramowanie rozwijane przez OpenSSL Project w \n"
+"OpenSSL Toolkit (http://www.openssl.org/) i oprogramowanie kryptograficzne napisane przez \n"
+"Erica Younga (eay@cryptsoft.com) oraz oprogramowanie UPnP napisane przez Thomasa Bernarda."
+
+#: ../../../src/uibase.cpp:581
+msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+msgstr "Wprowadź adres Bitcoin (np. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+
+#: ../../../src/uibase.cpp:595
+msgid "Pay &To:"
+msgstr "Wpłać &Dla:"
+
+#: ../../../src/uibase.cpp:610
+msgid "&Paste"
+msgstr "&Wklej"
+
+#: ../../../src/uibase.cpp:613
+msgid " Address &Book..."
+msgstr " Księga &Adresowa..."
+
+#: ../../../src/uibase.cpp:620
+msgid "&Amount:"
+msgstr "&Kwota:"
+
+#: ../../../src/uibase.cpp:630
+msgid "T&ransfer:"
+msgstr "T&ransfer:"
+
+#: ../../../src/uibase.cpp:636
+msgid " Standard"
+msgstr " Standard"
+
+#: ../../../src/uibase.cpp:663
+msgid "&Send"
+msgstr "&Wyślij"
+
+#: ../../../src/uibase.cpp:711
+msgid ""
+"\n"
+"\n"
+"Connecting..."
+msgstr ""
+"\n"
+"\n"
+"Łączenie..."
+
+#: ../../../src/uibase.cpp:761
+msgid "These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. The highlighted address is displayed in the main window."
+msgstr "To są twoje adresy Bitcoin dla otrzymywania płatności. Możesz chcieć podać różne dla każdego płacącego aby kontrolować kto ci płaci. Wyróżniony adres będzie wyświetlany w oknie głównym."
+
+#: ../../../src/uibase.cpp:774
+#: ../../../src/uibase.cpp:886
+msgid "&Edit..."
+msgstr "&Edytuj..."
+
+#: ../../../src/uibase.cpp:777
+#: ../../../src/uibase.cpp:889
+msgid " &New Address... "
+msgstr " &Nowy Adres..."
+
+#: ../../../src/uibase.cpp:849
+msgid "Sending"
+msgstr "Wysyłanie"
+
+#: ../../../src/uibase.cpp:857
+msgid "These are your Bitcoin addresses for receiving payments. You can give a different one to each sender to keep track of who is paying you. The highlighted address will be displayed in the main window."
+msgstr "To są twoje adresy Bitcoin dla otrzymywania płatności. Możesz podać różne dla każdego płacącego aby kontrolować kto ci płaci. Wyróżniony adres będzie wyświetlany w oknie głównym."
+
+#: ../../../src/uibase.cpp:870
+msgid "Receiving"
+msgstr "Otrzymywanie"
+
+#: ../../../src/uibase.cpp:880
+msgid "&Delete"
+msgstr "&Usuń"
+
+#: ../../../src/wallet.cpp:917
+#, c-format
+msgid "Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds "
+msgstr "Błąd: Ta transakcja wymaga prowizji co najmniej %s z uwagi na kwotę, złożoność lub użycie niedawno otrzymanych funduszy"
+
+#: ../../../src/wallet.cpp:919
+msgid "Error: Transaction creation failed "
+msgstr "Błąd: Nie udało się utworzyć transakcji"
+
+#: ../../../src/wallet.cpp:928
+msgid "Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "Błąd: Transakcja została odrzucona. Może się tak zdarzyć jeżeli część monet w twoim portfelu zostało wydanych, np. gdy użyto kopii pliku wallet.dat i monety zostały wydane w kopii, a tutaj nie zostały oznaczone jako wydane."
+
+#: ../../../src/wallet.cpp:941
+msgid "Invalid amount"
+msgstr "Niewłaściwa kwota"
+
+#: ../../../src/wallet.cpp:948
+msgid "Invalid bitcoin address"
+msgstr "Niewłaściwy adres bitcoin"
+
+#: ../../../src/uibase.h:147
+msgid "Transaction Details"
+msgstr "Szczegóły Transakcji"
+
+#: ../../../src/uibase.h:199
+msgid "Options"
+msgstr "Opcje"
+
+#: ../../../src/uibase.h:228
+msgid "About Bitcoin"
+msgstr "O Bitcoin"
+
+#: ../../../src/uibase.h:337
+msgid "Your Bitcoin Addresses"
+msgstr "Twoje Adresy Bitcoin"
+
diff --git a/locale/pt/LC_MESSAGES/bitcoin.mo b/locale/pt/LC_MESSAGES/bitcoin.mo
new file mode 100644
index 0000000000..20e100f578
--- /dev/null
+++ b/locale/pt/LC_MESSAGES/bitcoin.mo
Binary files differ
diff --git a/locale/pt/LC_MESSAGES/bitcoin.po b/locale/pt/LC_MESSAGES/bitcoin.po
new file mode 100644
index 0000000000..040fb1da68
--- /dev/null
+++ b/locale/pt/LC_MESSAGES/bitcoin.po
@@ -0,0 +1,811 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-05-26 22:02-0000\n"
+"PO-Revision-Date: 2010-07-05 09:06+0100\n"
+"Last-Translator: Tiago Faria\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-SearchPath-0: ../../..\n"
+
+#: ../../../init.cpp:342
+msgid "Usage: bitcoin [options]"
+msgstr "Utilização Bitcoin [opções]"
+
+#: ../../../init.cpp:343
+msgid "Options:\n"
+msgstr "Opções:\n"
+
+#: ../../../init.cpp:344
+msgid "Generate coins\n"
+msgstr "Gerar moedas\n"
+
+#: ../../../init.cpp:345
+msgid "Don't generate coins\n"
+msgstr "Não gerar moedas\n"
+
+#: ../../../init.cpp:346
+msgid "Start minimized\n"
+msgstr "Iniciar minimizado\n"
+
+#: ../../../init.cpp:347
+msgid "Specify data directory\n"
+msgstr "Especificar localização dos dados\n"
+
+#: ../../../init.cpp:348
+msgid "Connect through socks4 proxy\n"
+msgstr "Ligar através de um proxy socks4\n"
+
+#: ../../../init.cpp:349
+msgid "Add a node to connect to\n"
+msgstr "Adicionar um nó para efectuar ligação\n"
+
+#: ../../../init.cpp:350
+msgid "Connect only to the specified node\n"
+msgstr "Ligar apenas ao nó especificado\n"
+
+#: ../../../init.cpp:351
+msgid "This help message\n"
+msgstr "Esta mensagem de ajuda\n"
+
+#: ../../../init.cpp:455
+msgid "Error loading addr.dat \n"
+msgstr "Erro ao carregar addr.dat \n"
+
+#: ../../../init.cpp:461
+msgid "Error loading blkindex.dat \n"
+msgstr "Erro ao carregar blkindex.dat \n"
+
+#: ../../../init.cpp:468
+msgid "Error loading wallet.dat \n"
+msgstr "Erro ao carregar wallet.dat \n"
+
+#: ../../../init.cpp:536
+msgid "Invalid -proxy address"
+msgstr "Endereço -proxy inválido"
+
+#: ../../../init.cpp:629
+msgid "Program has crashed and will terminate. "
+msgstr "A aplicação bloqueou e vai terminar. "
+
+#: ../../../main.cpp:1465
+msgid "Warning: Disk space is low "
+msgstr "Aviso: Espaço em disco limitado "
+
+#: ../../../main.cpp:2994
+#, c-format
+msgid "Error: This is an oversized transaction that requires a transaction fee of %s "
+msgstr "Erro: Esta transacção necessita de uma percentagem de transferência no valor de %s "
+
+#: ../../../main.cpp:2996
+msgid "Error: Transaction creation failed "
+msgstr "Erro: Criação da transacção falhou "
+
+#: ../../../main.cpp:3001
+#: ../../../ui.cpp:1761
+#: ../../../ui.cpp:1763
+#: ../../../ui.cpp:1904
+#: ../../../ui.cpp:2053
+msgid "Sending..."
+msgstr "A enviar ..."
+
+#: ../../../main.cpp:3005
+msgid "Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "Erro: A transacção foi rejeitada. Isto pode acontecer se algumas das moedas na sua carteira já tenham sido gastas, como por exemplo na utilização de uma cópia do wallet.dat onde as moedas foram gastas na cópia mas não aqui."
+
+#: ../../../main.cpp:3017
+msgid "Invalid amount"
+msgstr "Montante inválido"
+
+#: ../../../main.cpp:3019
+#: ../../../ui.cpp:1971
+#: ../../../ui.cpp:2038
+msgid "Insufficient funds"
+msgstr "Fundos insuficientes"
+
+#: ../../../main.cpp:3024
+msgid "Invalid bitcoin address"
+msgstr "Endereço Bitcoin inválido"
+
+#: ../../../ui.cpp:189
+#, c-format
+msgid "This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?"
+msgstr "Esta transacção ultrapassa o limite. Pode, mesmo assim, efectuá-la, no entanto, uma percentagem de %s será enviada para os nós da rede que processam este pagamento. Quer pagar a percentagem?"
+
+#: ../../../ui.cpp:285
+msgid "Status"
+msgstr "Estado"
+
+#: ../../../ui.cpp:286
+msgid "Date"
+msgstr "Data"
+
+#: ../../../ui.cpp:287
+msgid "Description"
+msgstr "Descrição"
+
+#: ../../../ui.cpp:288
+msgid "Debit"
+msgstr "Débito"
+
+#: ../../../ui.cpp:289
+msgid "Credit"
+msgstr "Crédito"
+
+#: ../../../ui.cpp:489
+#, c-format
+msgid "Open for %d blocks"
+msgstr "Aberto para %d blocos"
+
+#: ../../../ui.cpp:491
+#, c-format
+msgid "Open until %s"
+msgstr "Aberto até %s"
+
+#: ../../../ui.cpp:497
+#, c-format
+msgid "%d/offline?"
+msgstr "%d/offline?"
+
+#: ../../../ui.cpp:499
+#, c-format
+msgid "%d/unconfirmed"
+msgstr "%d/não confirmado"
+
+#: ../../../ui.cpp:501
+#, c-format
+msgid "%d confirmations"
+msgstr "%d confirmados"
+
+#: ../../../ui.cpp:584
+msgid "Generated"
+msgstr "Gerado"
+
+#: ../../../ui.cpp:592
+#, c-format
+msgid "Generated (%s matures in %d more blocks)"
+msgstr "Gerado (%s maduras em mais %d blocos)"
+
+#: ../../../ui.cpp:596
+msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
+msgstr "Gerado - Aviso: Este bloco não foi recebido por mais nenhum nó da rede e provavelmente não será aceite."
+
+#: ../../../ui.cpp:600
+msgid "Generated (not accepted)"
+msgstr "Gerado (não aceite)"
+
+#: ../../../ui.cpp:610
+msgid "From: "
+msgstr "Remetente: "
+
+#: ../../../ui.cpp:634
+msgid "Received with: "
+msgstr "Recebido por: "
+
+#: ../../../ui.cpp:676
+msgid "Payment to yourself"
+msgstr "Pagamento ao próprio"
+
+#: ../../../ui.cpp:713
+msgid "To: "
+msgstr "Destinatário: "
+
+#: ../../../ui.cpp:1009
+msgid " Generating"
+msgstr " A gerar"
+
+#: ../../../ui.cpp:1011
+msgid "(not connected)"
+msgstr "(sem ligação)"
+
+#: ../../../ui.cpp:1014
+#, c-format
+msgid " %d connections %d blocks %d transactions"
+msgstr " %d ligações %d blocos %d transacções"
+
+#: ../../../ui.cpp:1123
+#: ../../../ui.cpp:2351
+msgid "New Receiving Address"
+msgstr "Novo Endereço de Recepção"
+
+#: ../../../ui.cpp:1124
+#: ../../../ui.cpp:2352
+msgid ""
+"You should use a new address for each payment you receive.\n"
+"\n"
+"Label"
+msgstr ""
+"É uma boa política utilizar um endereço diferente para cada pagamento que recebe.\n"
+"\n"
+"Etiqueta"
+
+#: ../../../ui.cpp:1193
+msgid "<b>Status:</b> "
+msgstr "<b>Estado:</b> "
+
+#: ../../../ui.cpp:1198
+msgid ", has not been successfully broadcast yet"
+msgstr ", ainda não foram anunciadas com sucesso"
+
+#: ../../../ui.cpp:1200
+#, c-format
+msgid ", broadcast through %d node"
+msgstr ", anunciar por %d nó"
+
+#: ../../../ui.cpp:1202
+#, c-format
+msgid ", broadcast through %d nodes"
+msgstr ", anunciar por %d nós"
+
+#: ../../../ui.cpp:1206
+msgid "<b>Date:</b> "
+msgstr "<b>Data:</b> "
+
+#: ../../../ui.cpp:1214
+msgid "<b>Source:</b> Generated<br>"
+msgstr "<b>Fonte:</b> Gerado<br>"
+
+#: ../../../ui.cpp:1220
+#: ../../../ui.cpp:1238
+msgid "<b>From:</b> "
+msgstr "<b>Remetente:</b> "
+
+#: ../../../ui.cpp:1238
+msgid "unknown"
+msgstr "desconhecido"
+
+#: ../../../ui.cpp:1239
+#: ../../../ui.cpp:1263
+#: ../../../ui.cpp:1322
+msgid "<b>To:</b> "
+msgstr "<b>Destinatário:</b> "
+
+#: ../../../ui.cpp:1242
+msgid " (yours, label: "
+msgstr " (seu, etiqueta: "
+
+#: ../../../ui.cpp:1244
+msgid " (yours)"
+msgstr " (seu)"
+
+#: ../../../ui.cpp:1281
+#: ../../../ui.cpp:1293
+#: ../../../ui.cpp:1356
+msgid "<b>Credit:</b> "
+msgstr "<b>Crédito:</b> "
+
+#: ../../../ui.cpp:1283
+#, c-format
+msgid "(%s matures in %d more blocks)"
+msgstr "(%s maduras em mais %d blocos)"
+
+#: ../../../ui.cpp:1285
+msgid "(not accepted)"
+msgstr "(não aceite)"
+
+#: ../../../ui.cpp:1330
+#: ../../../ui.cpp:1353
+msgid "<b>Debit:</b> "
+msgstr "<b>Débito:</b> "
+
+#: ../../../ui.cpp:1344
+msgid "<b>Transaction fee:</b> "
+msgstr "<b>Percentagem da transacção:</b> "
+
+#: ../../../ui.cpp:1360
+msgid "<b>Net amount:</b> "
+msgstr "<b>Quantia Net:</b> "
+
+#: ../../../ui.cpp:1367
+msgid "Message:"
+msgstr "Mensagem:"
+
+#: ../../../ui.cpp:1370
+msgid "Generated coins must wait 120 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, it will change to \"not accepted\" and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours."
+msgstr "As moedas geradas necessitam de 120 blocos para que possam ser gastas. Quando gera um bloco, ele será anunciado pela rede para ser adicionado à cadeia de blocos. Se falhar, mudará para \"não aceite\" e não será possível utilizá-lo. Isto pode acontecer se um nó gerar outro bloco após alguns segundos do seu."
+
+#: ../../../ui.cpp:1437
+msgid "Main"
+msgstr "Principal"
+
+#: ../../../ui.cpp:1442
+msgid "&Minimize on close"
+msgstr "&Minimizar ao fechar"
+
+#: ../../../ui.cpp:1595
+#, c-format
+msgid "version %s%s BETA"
+msgstr "versão %s%s BETA"
+
+#: ../../../ui.cpp:1681
+msgid "Will appear as \"From: Unknown\""
+msgstr "Irá aparecer como \"De: Desconhecido\""
+
+#: ../../../ui.cpp:1681
+msgid "n/a"
+msgstr "Desconhecido"
+
+#: ../../../ui.cpp:1681
+msgid "Unknown"
+msgstr "Desconhecido"
+
+#: ../../../ui.cpp:1682
+msgid "Can't include a message when sending to a Bitcoin address"
+msgstr "Não é possível incluir uma mensagem ao enviar para um endereço Bitcoin"
+
+#: ../../../ui.cpp:1735
+msgid "Error in amount "
+msgstr "Erro na quantia "
+
+#: ../../../ui.cpp:1735
+#: ../../../ui.cpp:1740
+#: ../../../ui.cpp:1745
+#: ../../../ui.cpp:1771
+#: ../../../uibase.cpp:61
+msgid "Send Coins"
+msgstr "Enviar Moedas"
+
+#: ../../../ui.cpp:1740
+msgid "Amount exceeds your balance "
+msgstr "A quantia excede o seu saldo "
+
+#: ../../../ui.cpp:1745
+msgid "Total exceeds your balance when the "
+msgstr "O total excede o seu saldo quando a "
+
+#: ../../../ui.cpp:1745
+msgid " transaction fee is included "
+msgstr " taxa de transacção for incluída "
+
+#: ../../../ui.cpp:1761
+msgid "Payment sent "
+msgstr "Pagamento enviado "
+
+#: ../../../ui.cpp:1771
+msgid "Invalid address "
+msgstr "Endereço inválido "
+
+#: ../../../ui.cpp:1825
+#, c-format
+msgid "Sending %s to %s"
+msgstr "A enviar %s para %s"
+
+#: ../../../ui.cpp:1898
+#: ../../../ui.cpp:1931
+msgid "CANCELLED"
+msgstr "CANCELADO"
+
+#: ../../../ui.cpp:1902
+msgid "Cancelled"
+msgstr "Cancelado"
+
+#: ../../../ui.cpp:1904
+msgid "Transfer cancelled "
+msgstr "Transferência cancelada "
+
+#: ../../../ui.cpp:1957
+msgid "Error: "
+msgstr "Erro: "
+
+#: ../../../ui.cpp:1976
+msgid "Connecting..."
+msgstr "A estabelecer ligação ..."
+
+#: ../../../ui.cpp:1981
+msgid "Unable to connect"
+msgstr "Impossível estabelecer ligação"
+
+#: ../../../ui.cpp:1986
+msgid "Requesting public key..."
+msgstr "A requisitar a chave pública ..."
+
+#: ../../../ui.cpp:1998
+msgid "Received public key..."
+msgstr "Chave pública recebida"
+
+#: ../../../ui.cpp:2010
+msgid "Transfer was not accepted"
+msgstr "A transferência não foi aceite"
+
+#: ../../../ui.cpp:2019
+msgid "Invalid response received"
+msgstr "Resposta inválida recebida"
+
+#: ../../../ui.cpp:2034
+msgid "Creating transaction..."
+msgstr "A criar a transacção ..."
+
+#: ../../../ui.cpp:2046
+#, c-format
+msgid "This is an oversized transaction that requires a transaction fee of %s"
+msgstr "Esta transferência requer o pagamento de uma taxa de transacção de %s"
+
+#: ../../../ui.cpp:2048
+msgid "Transaction creation failed"
+msgstr "A criação da transacção falhou"
+
+#: ../../../ui.cpp:2055
+msgid "Transaction aborted"
+msgstr "Transacção cancelada"
+
+#: ../../../ui.cpp:2063
+msgid "Lost connection, transaction cancelled"
+msgstr "Perca de ligação, transacção cancelada"
+
+#: ../../../ui.cpp:2079
+msgid "Sending payment..."
+msgstr "A enviar pagamento ..."
+
+#: ../../../ui.cpp:2085
+msgid "The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "A transacção foi rejeitada. Isto pode acontecer se algumas das moedas na sua carteira já foram utilizadas, como na utilização de uma cópia do wallet.dat, onde as moedas foram utilizadas na cópia do ficheiro e essas alterações não reflectem o estado desta carteira."
+
+#: ../../../ui.cpp:2092
+msgid "Waiting for confirmation..."
+msgstr "A aguardar confirmação ..."
+
+#: ../../../ui.cpp:2110
+msgid ""
+"The payment was sent, but the recipient was unable to verify it.\n"
+"The transaction is recorded and will credit to the recipient,\n"
+"but the comment information will be blank."
+msgstr ""
+"O pagamento foi enviado, mas o remetente não consegiu verificar o seu pagamento.\n"
+"A transacção foi entregue, e o remetente receberá as modeas,\n"
+"no entanto, o comentário de transacção estará vazio."
+
+#: ../../../ui.cpp:2119
+msgid "Payment was sent, but an invalid response was received"
+msgstr "O pagamento foi enviado, mas foi recebida uma resposta inválida"
+
+#: ../../../ui.cpp:2125
+msgid "Payment completed"
+msgstr "Pagamento completo"
+
+#: ../../../ui.cpp:2156
+#: ../../../ui.cpp:2302
+#: ../../../ui.cpp:2339
+msgid "Name"
+msgstr "Nome"
+
+#: ../../../ui.cpp:2157
+#: ../../../ui.cpp:2302
+#: ../../../ui.cpp:2339
+msgid "Address"
+msgstr "Endereço"
+
+#: ../../../ui.cpp:2159
+#: ../../../ui.cpp:2314
+msgid "Label"
+msgstr "Nota"
+
+#: ../../../ui.cpp:2160
+#: ../../../uibase.cpp:908
+msgid "Bitcoin Address"
+msgstr "Endereço Bitcoin"
+
+#: ../../../ui.cpp:2284
+msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
+msgstr "Este endereço é seu (onde recebe pagamentos) e não pode ser introduzido no seu livros de endereços. "
+
+#: ../../../ui.cpp:2302
+#: ../../../ui.cpp:2308
+msgid "Edit Address"
+msgstr "Editar endereço"
+
+#: ../../../ui.cpp:2314
+msgid "Edit Address Label"
+msgstr "Editar nota de endereço"
+
+#: ../../../ui.cpp:2339
+#: ../../../ui.cpp:2345
+msgid "Add Address"
+msgstr "Adicionar endereço"
+
+#: ../../../ui.cpp:2421
+msgid "Bitcoin"
+msgstr "Bitcoin"
+
+#: ../../../ui.cpp:2423
+msgid "Bitcoin - Generating"
+msgstr "Bitcoin - A gerar"
+
+#: ../../../ui.cpp:2425
+msgid "Bitcoin - (not connected)"
+msgstr "Bitcoin - (sem ligação)"
+
+#: ../../../ui.cpp:2500
+msgid "&Open Bitcoin"
+msgstr "&Abrir Bitcoin"
+
+#: ../../../ui.cpp:2501
+msgid "O&ptions..."
+msgstr "O&pções"
+
+#: ../../../ui.cpp:2505
+#: ../../../uibase.cpp:27
+msgid "E&xit"
+msgstr "S&air"
+
+#: ../../../uibase.cpp:30
+msgid "&File"
+msgstr "&Ficheiro"
+
+#: ../../../uibase.cpp:38
+msgid "&Your Receiving Addresses..."
+msgstr "&Os seus endereços"
+
+#: ../../../uibase.cpp:42
+msgid "&Options..."
+msgstr "&Opções ..."
+
+#: ../../../uibase.cpp:45
+msgid "&Settings"
+msgstr "&Definições"
+
+#: ../../../uibase.cpp:49
+msgid "&About..."
+msgstr "&Sobre ..."
+
+#: ../../../uibase.cpp:52
+msgid "&Help"
+msgstr "&Ajuda"
+
+#: ../../../uibase.cpp:62
+msgid "Address Book"
+msgstr "Livro de Endereços"
+
+#: ../../../uibase.cpp:77
+msgid "Your Bitcoin Address:"
+msgstr "O seu endereço Bitcoin:"
+
+#: ../../../uibase.cpp:84
+msgid " &New... "
+msgstr " &Novo ... "
+
+#: ../../../uibase.cpp:87
+#: ../../../uibase.cpp:851
+#: ../../../uibase.cpp:954
+msgid " &Copy to Clipboard "
+msgstr " &Copiar para o Clipboard "
+
+#: ../../../uibase.cpp:102
+msgid "Balance:"
+msgstr "Saldo:"
+
+#: ../../../uibase.cpp:121
+msgid " All"
+msgstr " Todos"
+
+#: ../../../uibase.cpp:121
+msgid " Sent"
+msgstr " Enviado"
+
+#: ../../../uibase.cpp:121
+msgid " Received"
+msgstr " Recebido"
+
+#: ../../../uibase.cpp:121
+msgid " In Progress"
+msgstr " Em progresso"
+
+#: ../../../uibase.cpp:142
+msgid "All Transactions"
+msgstr "Todas as transacções"
+
+#: ../../../uibase.cpp:153
+msgid "Sent/Received"
+msgstr "Enviadas/Recebidas"
+
+#: ../../../uibase.cpp:164
+msgid "Sent"
+msgstr "Enviado"
+
+#: ../../../uibase.cpp:175
+msgid "Received"
+msgstr "Recebido"
+
+#: ../../../uibase.cpp:318
+#: ../../../uibase.cpp:479
+#: ../../../uibase.cpp:580
+#: ../../../uibase.cpp:793
+#: ../../../uibase.cpp:854
+#: ../../../uibase.cpp:963
+#: ../../../uibase.cpp:1052
+msgid "OK"
+msgstr "OK"
+
+#: ../../../uibase.cpp:361
+msgid "Optional transaction fee you give to the nodes that process your transactions."
+msgstr "Pagamento de taxa de transacção opcional que é entregue aos nós que ajudam a processar o seu pagamento"
+
+#: ../../../uibase.cpp:370
+msgid "Transaction fee:"
+msgstr "Taxa de transacção:"
+
+#: ../../../uibase.cpp:386
+msgid "&Limit coin generation to"
+msgstr "&Limitar a geração de moedas a"
+
+#: ../../../uibase.cpp:393
+msgid "processors"
+msgstr "processadores"
+
+#: ../../../uibase.cpp:399
+msgid "&Start Bitcoin on system startup"
+msgstr "&Iniciar o Bitcoin no arranque do sistema"
+
+#: ../../../uibase.cpp:403
+msgid "&Minimize to the tray instead of the taskbar"
+msgstr "&Minimizar para a zona do relógio em vez da barra de janelas"
+
+#: ../../../uibase.cpp:407
+msgid "M&inimize to the tray on close"
+msgstr "M&inimizar para a zona do relógio ao fechar"
+
+#: ../../../uibase.cpp:414
+msgid "&Connect through socks4 proxy: "
+msgstr "&Ligar através de um prozy socks4: "
+
+#: ../../../uibase.cpp:426
+msgid "Proxy &IP:"
+msgstr "Proxy &IP:"
+
+#: ../../../uibase.cpp:434
+msgid " &Port:"
+msgstr " &Porto:"
+
+#: ../../../uibase.cpp:456
+msgid "// [don't translate] Test panel 2 for future expansion"
+msgstr ""
+
+#: ../../../uibase.cpp:460
+msgid "// [don't translate] Let's not start multiple pages until the first page is filled up"
+msgstr ""
+
+#: ../../../uibase.cpp:482
+#: ../../../uibase.cpp:735
+#: ../../../uibase.cpp:798
+#: ../../../uibase.cpp:857
+#: ../../../uibase.cpp:966
+#: ../../../uibase.cpp:1055
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: ../../../uibase.cpp:485
+msgid "&Apply"
+msgstr "&Aplicar"
+
+#: ../../../uibase.cpp:546
+msgid "Bitcoin "
+msgstr "Bitcoin "
+
+#: ../../../uibase.cpp:552
+msgid "version"
+msgstr "versão"
+
+#: ../../../uibase.cpp:563
+msgid ""
+"Copyright (c) 2009-2010 Bitcoin Developers\n"
+"\n"
+"This is experimental software.\n"
+"\n"
+"Distributed under the MIT/X11 software license, see the accompanying file \n"
+"license.txt or http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"This product includes software developed by the OpenSSL Project for use in the \n"
+"OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
+msgstr ""
+"Copyright (c) 2009-2010 Bitcoin Developers\n"
+"\n"
+"Este software é experimental.\n"
+"\n"
+"Distribuído sob a licença de software MIT/X11. Veja os seguintes ficheiros \n"
+"para mais informações license.txt ou \n"
+"http://www.opensource.org/licenses/mit-license.php.\n"
+"Este producto inclui software desenvolvido pelo projecto OpenSSL, para \n"
+"ser utilizado no OpenSSL Toolkit (http://www.openssl.org) e software de \n"
+"criptografia desenvolvido por Eric Young (eay@cryptsoft.com)\n"
+"e UPnP software escrito por Thomas Bernard."
+
+#: ../../../uibase.cpp:619
+msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) or IP address (e.g. 123.45.6.7)"
+msgstr "Introduza um endereço Bitcoin (exemplo: 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) ou um endereço de IP (exemplo: 123.45.6.7)"
+
+#: ../../../uibase.cpp:633
+msgid "Pay &To:"
+msgstr "Pagar &a:"
+
+#: ../../../uibase.cpp:648
+msgid "&Paste"
+msgstr "&Colar"
+
+#: ../../../uibase.cpp:651
+msgid " Address &Book..."
+msgstr " Livro de endereços ..."
+
+#: ../../../uibase.cpp:658
+msgid "&Amount:"
+msgstr "&Quantia:"
+
+#: ../../../uibase.cpp:668
+msgid "T&ransfer:"
+msgstr "T&ransferência:"
+
+#: ../../../uibase.cpp:674
+msgid " Standard"
+msgstr " Standard"
+
+#: ../../../uibase.cpp:696
+msgid "&From:"
+msgstr "&De:"
+
+#: ../../../uibase.cpp:713
+msgid "&Message:"
+msgstr "&Mensagem:"
+
+#: ../../../uibase.cpp:730
+msgid "&Send"
+msgstr "&Enviar"
+
+#: ../../../uibase.cpp:782
+msgid ""
+"\n"
+"\n"
+"Connecting..."
+msgstr ""
+"\n"
+"\n"
+"A estabelecer ligação ..."
+
+#: ../../../uibase.cpp:832
+msgid "These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. The highlighted address is displayed in the main window."
+msgstr "Estes são os seus endereços de Bitcoin onde poderá receber os seus pagamentos. Pode dar um endereço diferente a cada pessoa ou identidade para ter uma melhor ideia sobre quem o está a pagar. O endereço seleccionado será o que aparecerá na janela principal."
+
+#: ../../../uibase.cpp:845
+#: ../../../uibase.cpp:957
+msgid "&Edit..."
+msgstr "&Editar ..."
+
+#: ../../../uibase.cpp:848
+#: ../../../uibase.cpp:960
+msgid " &New Address... "
+msgstr " &Novo endereço ... "
+
+#: ../../../uibase.cpp:920
+msgid "Sending"
+msgstr "A enviar"
+
+#: ../../../uibase.cpp:928
+msgid "These are your Bitcoin addresses for receiving payments. You can give a different one to each sender to keep track of who is paying you. The highlighted address will be displayed in the main window."
+msgstr "Estes são os seus endereços de Bitcoin onde poderá receber os seus pagamentos. Pode dar um endereço diferente a cada pessoa ou identidade para ter uma melhor ideia sobre quem o está a pagar. O endereço seleccionado será o que aparecerá na janela principal."
+
+#: ../../../uibase.cpp:941
+msgid "Receiving"
+msgstr "A receber"
+
+#: ../../../uibase.cpp:951
+msgid "&Delete"
+msgstr "&Remover"
+
+#: ../../../uibase.h:150
+msgid "Transaction Details"
+msgstr "Detalhes da transacção"
+
+#: ../../../uibase.h:203
+msgid "Options"
+msgstr "Opções"
+
+#: ../../../uibase.h:231
+msgid "About Bitcoin"
+msgstr "Sobre o Bitcoin"
+
+#: ../../../uibase.h:341
+msgid "Your Bitcoin Addresses"
+msgstr "O seu endereço de Bitcoin"
diff --git a/locale/readme.txt b/locale/readme.txt
new file mode 100644
index 0000000000..9fca3ce657
--- /dev/null
+++ b/locale/readme.txt
@@ -0,0 +1,5 @@
+put bitcoin.po and bitcoin.mo files at:
+locale/<langcode>/LC_MESSAGES/bitcoin.mo and .po
+
+.po is the sourcefile
+.mo is the compiled translation
diff --git a/locale/ru/LC_MESSAGES/bitcoin.mo b/locale/ru/LC_MESSAGES/bitcoin.mo
new file mode 100644
index 0000000000..92bb888fe9
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/bitcoin.mo
Binary files differ
diff --git a/locale/ru/LC_MESSAGES/bitcoin.po b/locale/ru/LC_MESSAGES/bitcoin.po
new file mode 100644
index 0000000000..d53b08d46c
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/bitcoin.po
@@ -0,0 +1,1021 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: m0Ray <m0ray@nm.ru>\n"
+"POT-Creation-Date: 2011-05-15 18:24+0100\n"
+"PO-Revision-Date: 2011-05-23 07:06+0500\n"
+"Last-Translator: m0Ray <m0ray@nm.ru>\n"
+"Language-Team: \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-SearchPath-0: ../../..\n"
+
+#: ../../../src/net.cpp:1499
+#, c-format
+msgid "Unable to bind to port %d on this computer. Bitcoin is probably already running."
+msgstr "Не могу открыть порт %d. Возможно, Bitcoin уже запущен."
+
+#: ../../../src/ui.cpp:202
+#, c-format
+msgid "This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?"
+msgstr "Этот перевод превышает допустимый лимит. Вы можете провести его с комиссией %s, которую получат узлы, обрабатывающие перевод, и поможет поддерживать сеть. Вы хотите заплатить комиссию?"
+
+#: ../../../src/ui.cpp:301
+msgid "Status"
+msgstr "Статус"
+
+#: ../../../src/ui.cpp:302
+msgid "Date"
+msgstr "Дата"
+
+#: ../../../src/ui.cpp:303
+msgid "Description"
+msgstr "Описание"
+
+#: ../../../src/ui.cpp:304
+msgid "Debit"
+msgstr "Расход"
+
+#: ../../../src/ui.cpp:305
+msgid "Credit"
+msgstr "Приход"
+
+#: ../../../src/ui.cpp:511
+#, c-format
+msgid "Open for %d blocks"
+msgstr "Открыто на %d блоков"
+
+#: ../../../src/ui.cpp:513
+#, c-format
+msgid "Open until %s"
+msgstr "Открыто до %s"
+
+#: ../../../src/ui.cpp:519
+#, c-format
+msgid "%d/offline?"
+msgstr "%d/оффлайн?"
+
+#: ../../../src/ui.cpp:521
+#, c-format
+msgid "%d/unconfirmed"
+msgstr "%d/не подтверждено"
+
+#: ../../../src/ui.cpp:523
+#, c-format
+msgid "%d confirmations"
+msgstr "%d подтверждений"
+
+#: ../../../src/ui.cpp:608
+msgid "Generated"
+msgstr "Сгенерировано"
+
+#: ../../../src/ui.cpp:616
+#, c-format
+msgid "Generated (%s matures in %d more blocks)"
+msgstr "Сгенерировано (%s станет доступно через %d блоков)"
+
+#: ../../../src/ui.cpp:620
+msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
+msgstr "Сгенерировано - Внимание: этот блок не был получен ни одним узлом и, скорее всего, не будет принят!"
+
+#: ../../../src/ui.cpp:624
+msgid "Generated (not accepted)"
+msgstr "Сгенерировано (не принято)"
+
+#: ../../../src/ui.cpp:634
+msgid "From: "
+msgstr "От: "
+
+#: ../../../src/ui.cpp:658
+msgid "Received with: "
+msgstr "Получено для: "
+
+#: ../../../src/ui.cpp:704
+msgid "Payment to yourself"
+msgstr "Платёж самому себе"
+
+#: ../../../src/ui.cpp:738
+msgid "To: "
+msgstr "Кому: "
+
+#: ../../../src/ui.cpp:1053
+msgid " Generating"
+msgstr " Генерация"
+
+#: ../../../src/ui.cpp:1055
+msgid "(not connected)"
+msgstr "(не подключен)"
+
+#: ../../../src/ui.cpp:1058
+#, c-format
+msgid " %d connections %d blocks %d transactions"
+msgstr " %d подключений %d блоков %d переводов"
+
+#: ../../../src/ui.cpp:1163
+#: ../../../src/ui.cpp:2527
+msgid "New Receiving Address"
+msgstr "Новый адрес получения"
+
+#: ../../../src/ui.cpp:1164
+#: ../../../src/ui.cpp:2528
+msgid ""
+"You should use a new address for each payment you receive.\n"
+"\n"
+"Label"
+msgstr ""
+"Рекомендуется использовать новый адрес для каждого получаемого платежа.\n"
+"\n"
+"Метка"
+
+#: ../../../src/ui.cpp:1233
+msgid "<b>Status:</b> "
+msgstr "<b>Статус:</b> "
+
+#: ../../../src/ui.cpp:1238
+msgid ", has not been successfully broadcast yet"
+msgstr ", ещё не был успешно разослан"
+
+#: ../../../src/ui.cpp:1240
+#, c-format
+msgid ", broadcast through %d node"
+msgstr ", рассылка через %d узел"
+
+#: ../../../src/ui.cpp:1242
+#, c-format
+msgid ", broadcast through %d nodes"
+msgstr ", рассылка через %d узлов"
+
+#: ../../../src/ui.cpp:1246
+msgid "<b>Date:</b> "
+msgstr "<b>Дата:</b> "
+
+#: ../../../src/ui.cpp:1254
+msgid "<b>Source:</b> Generated<br>"
+msgstr "<b>Источник:</b> Сгенерировано<br>"
+
+#: ../../../src/ui.cpp:1260
+#: ../../../src/ui.cpp:1278
+msgid "<b>From:</b> "
+msgstr "<b>От:</b> "
+
+#: ../../../src/ui.cpp:1278
+msgid "unknown"
+msgstr "аноним"
+
+#: ../../../src/ui.cpp:1279
+#: ../../../src/ui.cpp:1303
+#: ../../../src/ui.cpp:1362
+msgid "<b>To:</b> "
+msgstr "<b>Кому:</b> "
+
+#: ../../../src/ui.cpp:1282
+msgid " (yours, label: "
+msgstr " (ваш, метка: "
+
+#: ../../../src/ui.cpp:1284
+msgid " (yours)"
+msgstr " (ваш)"
+
+#: ../../../src/ui.cpp:1321
+#: ../../../src/ui.cpp:1333
+#: ../../../src/ui.cpp:1379
+#: ../../../src/ui.cpp:1396
+msgid "<b>Credit:</b> "
+msgstr "<b>Приход:</b> "
+
+#: ../../../src/ui.cpp:1323
+#, c-format
+msgid "(%s matures in %d more blocks)"
+msgstr "(%s станет доступно через %d блоков)"
+
+#: ../../../src/ui.cpp:1325
+msgid "(not accepted)"
+msgstr "(не принято)"
+
+#: ../../../src/ui.cpp:1370
+#: ../../../src/ui.cpp:1378
+#: ../../../src/ui.cpp:1393
+msgid "<b>Debit:</b> "
+msgstr "<b>Расход:</b> "
+
+#: ../../../src/ui.cpp:1384
+msgid "<b>Transaction fee:</b> "
+msgstr "<b>Комиссия:</b> "
+
+#: ../../../src/ui.cpp:1400
+msgid "<b>Net amount:</b> "
+msgstr "<b>Чистая сумма:</b> "
+
+#: ../../../src/ui.cpp:1407
+msgid "Message:"
+msgstr "Сообщение:"
+
+#: ../../../src/ui.cpp:1409
+msgid "Comment:"
+msgstr "Комментарий:"
+
+#: ../../../src/ui.cpp:1412
+msgid "Generated coins must wait 120 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, it will change to \"not accepted\" and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours."
+msgstr "Сгенерированные монеты должны ждать 120 блоков, прежде чем они могут быть потрачены. Когда вы сгенерировали этот блок, он был разослан в сети для добавления в цепь блоков. Если не удалось добавить этот блок в цепь, он будет обозначен как \"не принятый\" и не может быть потрачен. Такое может случиться, если другой узел сгенерировал блок примерно в то же время, что и вы."
+
+#: ../../../src/ui.cpp:1592
+msgid "Cannot write autostart/bitcoin.desktop file"
+msgstr "Не удаётся записать файл autostart/bitcoin.desktop"
+
+#: ../../../src/ui.cpp:1628
+msgid "Main"
+msgstr "Основные"
+
+#: ../../../src/ui.cpp:1636
+msgid "&Start Bitcoin on window system startup"
+msgstr "&Запускать Bitcoin при запуске оконной системы"
+
+#: ../../../src/ui.cpp:1643
+msgid "&Minimize on close"
+msgstr "&Сворачивать при закрытии"
+
+#: ../../../src/ui.cpp:1785
+#, c-format
+msgid "version %s"
+msgstr "версия %s"
+
+#: ../../../src/ui.cpp:1897
+msgid "Error in amount "
+msgstr "Ошибка в количестве "
+
+#: ../../../src/ui.cpp:1897
+#: ../../../src/ui.cpp:1902
+#: ../../../src/ui.cpp:1907
+#: ../../../src/ui.cpp:1942
+#: ../../../src/uibase.cpp:55
+msgid "Send Coins"
+msgstr "Отправить монеты"
+
+#: ../../../src/ui.cpp:1902
+msgid "Amount exceeds your balance "
+msgstr "Количество превышает ваш баланс "
+
+#: ../../../src/ui.cpp:1907
+msgid "Total exceeds your balance when the "
+msgstr "Общая сумма превышает ваш баланс, когда "
+
+#: ../../../src/ui.cpp:1907
+msgid " transaction fee is included "
+msgstr " комиссия включена "
+
+#: ../../../src/ui.cpp:1925
+msgid "Payment sent "
+msgstr "Платёж отправлен "
+
+#: ../../../src/ui.cpp:1925
+#: ../../../src/ui.cpp:1930
+#: ../../../src/ui.cpp:2074
+#: ../../../src/ui.cpp:2227
+#: ../../../src/main.cpp:3999
+msgid "Sending..."
+msgstr "Отправка..."
+
+#: ../../../src/ui.cpp:1942
+msgid "Invalid address "
+msgstr "Неверный адрес "
+
+#: ../../../src/ui.cpp:1995
+#, c-format
+msgid "Sending %s to %s"
+msgstr "Отправка %s для %s"
+
+#: ../../../src/ui.cpp:2068
+#: ../../../src/ui.cpp:2101
+msgid "CANCELLED"
+msgstr "ОТМЕНЕНО"
+
+#: ../../../src/ui.cpp:2072
+msgid "Cancelled"
+msgstr "Отменено"
+
+#: ../../../src/ui.cpp:2074
+msgid "Transfer cancelled "
+msgstr "Передача отменена "
+
+#: ../../../src/ui.cpp:2127
+msgid "Error: "
+msgstr "Ошибка: "
+
+#: ../../../src/ui.cpp:2141
+#: ../../../src/ui.cpp:2212
+#: ../../../src/main.cpp:4018
+msgid "Insufficient funds"
+msgstr "Недостаточно средств"
+
+#: ../../../src/ui.cpp:2146
+msgid "Connecting..."
+msgstr "Подключение..."
+
+#: ../../../src/ui.cpp:2151
+msgid "Unable to connect"
+msgstr "Невозможно подключиться"
+
+#: ../../../src/ui.cpp:2156
+msgid "Requesting public key..."
+msgstr "Запрос публичного ключа..."
+
+#: ../../../src/ui.cpp:2168
+msgid "Received public key..."
+msgstr "Получен публичный ключ..."
+
+#: ../../../src/ui.cpp:2182
+msgid "Recipient is not accepting transactions sent by IP address"
+msgstr "Получатель не принимает переводы на IP-адрес"
+
+#: ../../../src/ui.cpp:2184
+msgid "Transfer was not accepted"
+msgstr "Передача не принята"
+
+#: ../../../src/ui.cpp:2193
+msgid "Invalid response received"
+msgstr "Получен неверный отклик"
+
+#: ../../../src/ui.cpp:2208
+msgid "Creating transaction..."
+msgstr "Создание перевода..."
+
+#: ../../../src/ui.cpp:2220
+#, c-format
+msgid "This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds"
+msgstr "Этот перевод требует уплаты комиссии минимум в %s, так как имеет большой объём, сложность или использует недавно полученные средства"
+
+#: ../../../src/ui.cpp:2222
+msgid "Transaction creation failed"
+msgstr "Не удалось создать перевод"
+
+#: ../../../src/ui.cpp:2229
+msgid "Transaction aborted"
+msgstr "Перевод прерван"
+
+#: ../../../src/ui.cpp:2237
+msgid "Lost connection, transaction cancelled"
+msgstr "Соединение разорвано, перевод отменён"
+
+#: ../../../src/ui.cpp:2253
+msgid "Sending payment..."
+msgstr "Отправка платежа..."
+
+#: ../../../src/ui.cpp:2259
+msgid "The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "Перевод был отклонён. Это могло произойти, если некоторые из монет в вашем кошельке уже были потрачены, например, если вы использовали копию wallet.dat, и монеты были потрачены в копии, но не отмечены израсходованными здесь."
+
+#: ../../../src/ui.cpp:2268
+msgid "Waiting for confirmation..."
+msgstr "Ожидание подтверждения..."
+
+#: ../../../src/ui.cpp:2286
+msgid ""
+"The payment was sent, but the recipient was unable to verify it.\n"
+"The transaction is recorded and will credit to the recipient,\n"
+"but the comment information will be blank."
+msgstr ""
+"Платёж был отправлен, но получатель не смог проверить его.\n"
+"Перевод был записан и будет начислен получателю,\n"
+"но поле комментария будет пустое."
+
+#: ../../../src/ui.cpp:2295
+msgid "Payment was sent, but an invalid response was received"
+msgstr "Платёж отправлен, но был получен неверный отклик"
+
+#: ../../../src/ui.cpp:2301
+msgid "Payment completed"
+msgstr "Платёж проведён"
+
+#: ../../../src/ui.cpp:2332
+#: ../../../src/ui.cpp:2478
+#: ../../../src/ui.cpp:2515
+msgid "Name"
+msgstr "Имя"
+
+#: ../../../src/ui.cpp:2333
+#: ../../../src/ui.cpp:2478
+#: ../../../src/ui.cpp:2515
+msgid "Address"
+msgstr "Адрес"
+
+#: ../../../src/ui.cpp:2335
+#: ../../../src/ui.cpp:2490
+msgid "Label"
+msgstr "Метка"
+
+#: ../../../src/ui.cpp:2336
+#: ../../../src/uibase.cpp:837
+msgid "Bitcoin Address"
+msgstr "Адрес Bitcoin"
+
+#: ../../../src/ui.cpp:2460
+msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
+msgstr "Это один из ваших собственных адресов для получения платежей, он не может быть внесён в адресную книгу. "
+
+#: ../../../src/ui.cpp:2478
+#: ../../../src/ui.cpp:2484
+msgid "Edit Address"
+msgstr "Правка адреса"
+
+#: ../../../src/ui.cpp:2490
+msgid "Edit Address Label"
+msgstr "Правка метки адреса"
+
+#: ../../../src/ui.cpp:2515
+#: ../../../src/ui.cpp:2521
+msgid "Add Address"
+msgstr "Добавить адрес"
+
+#: ../../../src/ui.cpp:2598
+msgid "Bitcoin"
+msgstr "Bitcoin"
+
+#: ../../../src/ui.cpp:2600
+msgid "Bitcoin - Generating"
+msgstr "Bitcoin - Генерация"
+
+#: ../../../src/ui.cpp:2602
+msgid "Bitcoin - (not connected)"
+msgstr "Bitcoin - (не подключен)"
+
+#: ../../../src/ui.cpp:2681
+msgid "&Open Bitcoin"
+msgstr "&Открыть Bitcoin"
+
+#: ../../../src/ui.cpp:2682
+msgid "&Send Bitcoins"
+msgstr "&Открыть Bitcoin"
+
+#: ../../../src/ui.cpp:2683
+msgid "O&ptions..."
+msgstr "О&пции..."
+
+#: ../../../src/ui.cpp:2686
+#: ../../../src/uibase.cpp:25
+msgid "E&xit"
+msgstr "&Выход"
+
+#: ../../../src/ui.cpp:2902
+msgid "Program has crashed and will terminate. "
+msgstr "Сбой программы, завершение. "
+
+#: ../../../src/main.cpp:1868
+msgid "Warning: Disk space is low "
+msgstr "Внимание: мало места на диске "
+
+#: ../../../src/main.cpp:3992
+#, c-format
+msgid "Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds "
+msgstr "Ошибка: Этот перевод требует уплаты комиссии минимум в %s, так как имеет большой объём, сложность или использует недавно полученные средства "
+
+#: ../../../src/main.cpp:3994
+msgid "Error: Transaction creation failed "
+msgstr "Ошибка: не удалось создать перевод "
+
+#: ../../../src/main.cpp:4003
+msgid "Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "Перевод был отклонен. Это могло произойти, если некоторые из монет в вашем кошельке уже были потрачены, например, если вы использовали копию wallet.dat, и монеты были потрачены в копии, но не отмечены израсходованными здесь."
+
+#: ../../../src/main.cpp:4016
+msgid "Invalid amount"
+msgstr "Неверное количество"
+
+#: ../../../src/main.cpp:4023
+msgid "Invalid bitcoin address"
+msgstr "Неверный адрес bitcoin"
+
+#: ../../../src/rpc.cpp:1800
+#: ../../../src/rpc.cpp:1802
+#, c-format
+msgid "To use the %s option"
+msgstr "Чтобы использовать опцию %s"
+
+#: ../../../src/rpc.cpp:1804
+#, c-format
+msgid ""
+"Warning: %s, you must set rpcpassword=<password>\n"
+"in the configuration file: %s\n"
+"If the file does not exist, create it with owner-readable-only file permissions.\n"
+msgstr ""
+"Внимание: %s, вы должны установить rpcpassword=<пароль>\n"
+"в конфигурационном файле: %s\n"
+"Если файл не существует, создайте его с правами \"чтение только владельцем\".\n"
+
+#: ../../../src/rpc.cpp:1972
+#, c-format
+msgid ""
+"You must set rpcpassword=<password> in the configuration file:\n"
+"%s\n"
+"If the file does not exist, create it with owner-readable-only file permissions."
+msgstr ""
+"Вы должны установить rpcpassword=<пароль> в конфигурационном файле:\n"
+"%s\n"
+"Если файл не существует, создайте его с правами \"чтение только владельцем\"."
+
+#: ../../../src/util.cpp:865
+msgid "Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly."
+msgstr "Внимание: пожалуйста, проверьте дату и время на вашем компьютере. Если часы идут неверно, Bitcoin не будет работать правильно."
+
+#: ../../../src/util.cpp:898
+msgid "beta"
+msgstr "beta"
+
+#: ../../../src/uibase.cpp:28
+msgid "&File"
+msgstr "&Файл"
+
+#: ../../../src/uibase.cpp:32
+msgid "&Your Receiving Addresses..."
+msgstr "&Ваши адреса получения..."
+
+#: ../../../src/uibase.cpp:36
+msgid "&Options..."
+msgstr "&Опции"
+
+#: ../../../src/uibase.cpp:39
+msgid "&Settings"
+msgstr "&Настройки"
+
+#: ../../../src/uibase.cpp:43
+msgid "&About..."
+msgstr "&О программе..."
+
+#: ../../../src/uibase.cpp:46
+msgid "&Help"
+msgstr "&Справка"
+
+#: ../../../src/uibase.cpp:56
+msgid "Address Book"
+msgstr "Адресная книга"
+
+#: ../../../src/uibase.cpp:69
+msgid "Your Bitcoin Address:"
+msgstr "Ваш адрес Bitcoin:"
+
+#: ../../../src/uibase.cpp:76
+msgid " &New... "
+msgstr " &Новый... "
+
+#: ../../../src/uibase.cpp:79
+#: ../../../src/uibase.cpp:780
+#: ../../../src/uibase.cpp:883
+msgid " &Copy to Clipboard "
+msgstr " &Копировать в буфер обмена "
+
+#: ../../../src/uibase.cpp:93
+msgid "Balance:"
+msgstr "Баланс:"
+
+#: ../../../src/uibase.cpp:109
+msgid " All"
+msgstr " Все"
+
+#: ../../../src/uibase.cpp:109
+msgid " Sent"
+msgstr " Отправленные"
+
+#: ../../../src/uibase.cpp:109
+msgid " Received"
+msgstr " Полученные"
+
+#: ../../../src/uibase.cpp:109
+msgid " In Progress"
+msgstr " В процессе"
+
+#: ../../../src/uibase.cpp:130
+msgid "All Transactions"
+msgstr "Все переводы"
+
+#: ../../../src/uibase.cpp:141
+msgid "Sent/Received"
+msgstr "Отправленные/Полученные"
+
+#: ../../../src/uibase.cpp:152
+msgid "Sent"
+msgstr "Отправленные"
+
+#: ../../../src/uibase.cpp:163
+msgid "Received"
+msgstr "Полученные"
+
+#: ../../../src/uibase.cpp:302
+#: ../../../src/uibase.cpp:443
+#: ../../../src/uibase.cpp:542
+#: ../../../src/uibase.cpp:722
+#: ../../../src/uibase.cpp:783
+#: ../../../src/uibase.cpp:892
+#: ../../../src/uibase.cpp:981
+msgid "OK"
+msgstr "ОК"
+
+#: ../../../src/uibase.cpp:345
+msgid "&Start Bitcoin on system startup"
+msgstr "&Запускать Bitcoin при старте системы"
+
+#: ../../../src/uibase.cpp:348
+msgid "&Minimize to the tray instead of the taskbar"
+msgstr "&Сворачивать в трей вместо панели задач"
+
+#: ../../../src/uibase.cpp:351
+msgid "Map port using &UPnP"
+msgstr "Использовать &UPnP"
+
+#: ../../../src/uibase.cpp:354
+msgid "M&inimize to the tray on close"
+msgstr "С&ворачивать в трей при закрытии"
+
+#: ../../../src/uibase.cpp:360
+msgid "&Connect through socks4 proxy: "
+msgstr "&Подключаться через socks4 прокси: "
+
+#: ../../../src/uibase.cpp:371
+msgid "Proxy &IP:"
+msgstr "IP п&рокси-сервера:"
+
+#: ../../../src/uibase.cpp:379
+msgid " &Port:"
+msgstr " &Порт"
+
+#: ../../../src/uibase.cpp:392
+msgid "Optional transaction fee per KB that helps make sure your transactions are processed quickly. Most transactions are 1KB. Fee 0.01 recommended."
+msgstr "Необязательная комиссия за килобайт обеспечивает приоритет обработки перевода. Большинство транзакций имеют размер в 1КБ. Рекомендуется значение в 0.01."
+
+#: ../../../src/uibase.cpp:399
+msgid "Pay transaction fee:"
+msgstr "Комиссия:"
+
+#: ../../../src/uibase.cpp:420
+msgid "// [don't translate] Test panel 2 for future expansion"
+msgstr ""
+
+#: ../../../src/uibase.cpp:424
+msgid "// [don't translate] Let's not start multiple pages until the first page is filled up"
+msgstr ""
+
+#: ../../../src/uibase.cpp:446
+#: ../../../src/uibase.cpp:668
+#: ../../../src/uibase.cpp:727
+#: ../../../src/uibase.cpp:786
+#: ../../../src/uibase.cpp:895
+#: ../../../src/uibase.cpp:984
+msgid "Cancel"
+msgstr "Отмена"
+
+#: ../../../src/uibase.cpp:449
+msgid "&Apply"
+msgstr "&Применить"
+
+#: ../../../src/uibase.cpp:508
+msgid "Bitcoin "
+msgstr "Bitcoin "
+
+#: ../../../src/uibase.cpp:514
+msgid "version"
+msgstr "версия"
+
+#: ../../../src/uibase.cpp:525
+msgid ""
+"Copyright (c) 2009-2011 Bitcoin Developers\n"
+"\n"
+"This is experimental software.\n"
+"\n"
+"Distributed under the MIT/X11 software license, see the accompanying file \n"
+"license.txt or http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"This product includes software developed by the OpenSSL Project for use in the \n"
+"OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
+msgstr ""
+"Все права защищены (c) 2009-2010 Bitcoin Developers\n"
+"\n"
+"Это экспериментальное ПО.\n"
+"\n"
+"Распространяется под лицензией MIT/X11, см. файл\n"
+"license.txt или http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"Этот продукт включает ПО, разработанное проектом OpenSSL для использования в\n"
+"OpenSSL Toolkit (http://www.openssl.org/), и криптографическое ПО, написанное\n"
+"Eric Young (eay@cryptsoft.com) и UPnP программного обеспечения, написанного Thomas Bernard."
+
+#: ../../../src/uibase.cpp:581
+msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+msgstr "Введите адрес Bitcoin (напр. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+
+#: ../../../src/uibase.cpp:595
+msgid "Pay &To:"
+msgstr "&Кому:"
+
+#: ../../../src/uibase.cpp:610
+msgid "&Paste"
+msgstr "&Вставить"
+
+#: ../../../src/uibase.cpp:613
+msgid " Address &Book..."
+msgstr " А&дресная книга..."
+
+#: ../../../src/uibase.cpp:620
+msgid "&Amount:"
+msgstr "К&оличество:"
+
+#: ../../../src/uibase.cpp:630
+msgid "T&ransfer:"
+msgstr "&Передача:"
+
+#: ../../../src/uibase.cpp:636
+msgid " Standard"
+msgstr " Стандарт"
+
+#: ../../../src/uibase.cpp:663
+msgid "&Send"
+msgstr "Отп&равить"
+
+#: ../../../src/uibase.cpp:711
+msgid ""
+"\n"
+"\n"
+"Connecting..."
+msgstr ""
+"\n"
+"\n"
+"Подключение..."
+
+#: ../../../src/uibase.cpp:761
+msgid "These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. The highlighted address is displayed in the main window."
+msgstr "Это ваши адреса для получения платежей. Вы можете использовать разные для каждого отправителя, чтобы отслеживать, кто вам платит. Выделенный адрес отображается в главном окне."
+
+#: ../../../src/uibase.cpp:774
+#: ../../../src/uibase.cpp:886
+msgid "&Edit..."
+msgstr "&Правка..."
+
+#: ../../../src/uibase.cpp:777
+#: ../../../src/uibase.cpp:889
+msgid " &New Address... "
+msgstr " &Новый адрес... "
+
+#: ../../../src/uibase.cpp:849
+msgid "Sending"
+msgstr "Отправка"
+
+#: ../../../src/uibase.cpp:857
+msgid "These are your Bitcoin addresses for receiving payments. You can give a different one to each sender to keep track of who is paying you. The highlighted address will be displayed in the main window."
+msgstr "Это ваши адреса для получения платежей. Вы можете использовать разные для каждого отправителя, чтобы отслеживать, кто вам платит. Выделенный адрес отображается в главном окне."
+
+#: ../../../src/uibase.cpp:870
+msgid "Receiving"
+msgstr "Получение"
+
+#: ../../../src/uibase.cpp:880
+msgid "&Delete"
+msgstr "&Удалить"
+
+#: ../../../src/init.cpp:147
+msgid "Bitcoin version"
+msgstr "Bitcoin версия"
+
+#: ../../../src/init.cpp:148
+msgid "Usage:"
+msgstr "Использование"
+
+#: ../../../src/init.cpp:150
+msgid "Send command to -server or bitcoind\n"
+msgstr "Отправить команду bitcoin, запущенному с -server\n"
+
+#: ../../../src/init.cpp:151
+msgid "List commands\n"
+msgstr "Список команд\n"
+
+#: ../../../src/init.cpp:152
+msgid "Get help for a command\n"
+msgstr "Получить помощь для команды\n"
+
+#: ../../../src/init.cpp:153
+msgid "Options:\n"
+msgstr "Параметры:\n"
+
+#: ../../../src/init.cpp:154
+msgid "Specify configuration file (default: bitcoin.conf)\n"
+msgstr "Укажите конфигурационный файл (по умолчанию: bitcoin.conf)\n"
+
+#: ../../../src/init.cpp:155
+msgid "Specify pid file (default: bitcoind.pid)\n"
+msgstr "Укажите конфигурационный файл (по умолчанию: bitcoin.conf)\n"
+
+#: ../../../src/init.cpp:156
+msgid "Generate coins\n"
+msgstr "Генерировать монеты\n"
+
+#: ../../../src/init.cpp:157
+msgid "Don't generate coins\n"
+msgstr "Не генерировать монеты\n"
+
+#: ../../../src/init.cpp:158
+msgid "Start minimized\n"
+msgstr "Запускать свёрнутым\n"
+
+#: ../../../src/init.cpp:159
+msgid "Specify data directory\n"
+msgstr "Указать каталог данных\n"
+
+#: ../../../src/init.cpp:160
+msgid "Connect through socks4 proxy\n"
+msgstr "Подключаться через socks4 прокси\n"
+
+#: ../../../src/init.cpp:161
+msgid "Allow DNS lookups for addnode and connect\n"
+msgstr "Использовать DNS для добавления узлов и соединения\n"
+
+#: ../../../src/init.cpp:162
+msgid "Add a node to connect to\n"
+msgstr "Добавить узел для подключения\n"
+
+#: ../../../src/init.cpp:163
+msgid "Connect only to the specified node\n"
+msgstr "Подключаться только к указанному узлу\n"
+
+#: ../../../src/init.cpp:164
+msgid "Don't accept connections from outside\n"
+msgstr "Не принимать входящие соединения\n"
+
+#: ../../../src/init.cpp:167
+msgid "Don't attempt to use UPnP to map the listening port\n"
+msgstr "Не использовать UPnP для отображения порта входящих соединений\n"
+
+#: ../../../src/init.cpp:169
+msgid "Attempt to use UPnP to map the listening port\n"
+msgstr "Использовать UPnP для отображения порта входящих соединений\n"
+
+#: ../../../src/init.cpp:172
+msgid "Fee per KB to add to transactions you send\n"
+msgstr "Комиссия за 1 килобайт отправляемых транзакций\n"
+
+#: ../../../src/init.cpp:174
+msgid "Accept command line and JSON-RPC commands\n"
+msgstr "Принимать команды из командной строки и через JSON-RPC\n"
+
+#: ../../../src/init.cpp:177
+msgid "Run in the background as a daemon and accept commands\n"
+msgstr "Запустить в фоне как демон и принимать команды\n"
+
+#: ../../../src/init.cpp:179
+msgid "Use the test network\n"
+msgstr "Использовать тестовую сеть (testnet)\n"
+
+#: ../../../src/init.cpp:180
+msgid "Username for JSON-RPC connections\n"
+msgstr "Имя пользователя для JSON-RPC\n"
+
+#: ../../../src/init.cpp:181
+msgid "Password for JSON-RPC connections\n"
+msgstr "Пароль для JSON-RPC\n"
+
+#: ../../../src/init.cpp:182
+msgid "Listen for JSON-RPC connections on <port> (default: 8332)\n"
+msgstr "Порт входящих соединений JSON-RPC (по умолчанию 8332)\n"
+
+#: ../../../src/init.cpp:183
+msgid "Allow JSON-RPC connections from specified IP address\n"
+msgstr "Разрешить соединения JSON-RPC со следующих IP-адресов\n"
+
+#: ../../../src/init.cpp:184
+msgid "Send commands to node running on <ip> (default: 127.0.0.1)\n"
+msgstr "Посылать команды узлу с указанным адресом (по умолчанию 127.0.0.1)\n"
+
+#: ../../../src/init.cpp:185
+msgid "Set key pool size to <n> (default: 100)\n"
+msgstr "Установить размер пула адресов (по умолчанию 100)\n"
+
+#: ../../../src/init.cpp:181
+msgid "Rescan the block chain for missing wallet transactions\n"
+msgstr "Просканировать цепочку блоков в поисках утерянных переводов\n"
+
+#: ../../../src/init.cpp:182
+msgid "Purge all transactions from wallet and rescan\n"
+msgstr "Удалить все транзакции из кошелька и пересканировать цепочку блоков в поисках транзакций\n"
+
+#: ../../../src/init.cpp:190
+msgid ""
+"\n"
+"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"
+msgstr ""
+"\n"
+"Опции SSL: (прочтите документацию для правильной настройки)\n"
+
+#: ../../../src/init.cpp:191
+msgid "Use OpenSSL (https) for JSON-RPC connections\n"
+msgstr "Использовать OpenSSL (протокол https) для соединений JSON-RPC\n"
+
+#: ../../../src/init.cpp:192
+msgid "Server certificate file (default: server.cert)\n"
+msgstr "Файл сертификата сервера (по умолчанию server.cert)\n"
+
+#: ../../../src/init.cpp:193
+msgid "Server private key (default: server.pem)\n"
+msgstr "Приватный ключ сервера (по умолчанию server.pem)\n"
+
+#: ../../../src/init.cpp:194
+msgid "Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
+msgstr "Приемлемые шифры (по умолчанию TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
+
+#: ../../../src/init.cpp:198
+msgid "This help message\n"
+msgstr "Эта справка\n"
+
+#: ../../../src/init.cpp:335
+#, c-format
+msgid "Cannot obtain a lock on data directory %s. Bitcoin is probably already running."
+msgstr "Не удаётся получить блокировку каталога с данными %s. Возможно, Bitcoin уже запущен."
+
+#: ../../../src/init.cpp:361
+msgid "Error loading addr.dat \n"
+msgstr "Ошибка загрузки addr.dat \n"
+
+#: ../../../src/init.cpp:367
+msgid "Error loading blkindex.dat \n"
+msgstr "Ошибка загрузки blkindex.dat \n"
+
+#: ../../../src/init.cpp:374
+msgid "Error loading wallet.dat \n"
+msgstr "Ошибка загрузки wallet.dat \n"
+
+#: ../../../src/init.cpp:454
+msgid "Invalid -proxy address"
+msgstr "Неверный адрес -proxy"
+
+#: ../../../src/init.cpp:477
+msgid "Invalid amount for -paytxfee=<amount>"
+msgstr "Неверное значение для -paytxfee=<amount>"
+
+#: ../../../src/init.cpp:481
+msgid "Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."
+msgstr "Внимание: -paytxfee установлено в очень большое значение. Это комиссия, которую вы будете платить при переводе."
+
+#: ../../../src/uibase.h:147
+msgid "Transaction Details"
+msgstr "Подробности транзакции"
+
+#: ../../../src/uibase.h:199
+msgid "Options"
+msgstr "Опции"
+
+#: ../../../src/uibase.h:228
+msgid "About Bitcoin"
+msgstr "О Bitcoin"
+
+#: ../../../src/uibase.h:337
+msgid "Your Bitcoin Addresses"
+msgstr "Ваш адрес Bitcoin"
+
+#~ msgid ""
+#~ "Error: This is an oversized transaction that requires a transaction fee "
+#~ "of %s "
+#~ msgstr ""
+#~ "Ошибка: этот перевод слишком большого размера, который требует комиссию "
+#~ "%s "
+
+#~ msgid "version %s%s BETA"
+#~ msgstr "версия %s%s бета"
+
+#~ msgid "n/a"
+#~ msgstr "н/д"
+
+#~ msgid "Can't include a message when sending to a Bitcoin address"
+#~ msgstr "Не удаётся включить сообщение при отправке на адрес Bitcoin"
+
+#~ msgid ""
+#~ "This is an oversized transaction that requires a transaction fee of %s"
+#~ msgstr "Это слишком большой перевод, который требует комиссию в размере %s"
+
+#~ msgid ""
+#~ "Optional transaction fee you give to the nodes that process your "
+#~ "transactions."
+#~ msgstr ""
+#~ "Необязательная комиссия, которую вы даёте узлам, проводящим ваш перевод."
+
+#~ msgid "&Limit coin generation to"
+#~ msgstr "&Ограничить генерацию монет до"
+
+#~ msgid "processors"
+#~ msgstr "процессоров"
+
+#~ msgid "&From:"
+#~ msgstr "О&т:"
+
+#~ msgid "&Message:"
+#~ msgstr "&Сообщение:"
+
+#~ msgid ""
+#~ "It's good policy to use a new address for each payment you receive.\n"
+#~ "\n"
+#~ "Label"
+#~ msgstr ""
+#~ "Неплохо будет использовать новый адрес для каждого получаемого платежа.\n"
+#~ "\n"
+#~ "Метка"
+
+#~ msgid "Will appear as \"From: Unknown\""
+#~ msgstr "Будет отображаться как \"От: Аноним\""
diff --git a/locale/sv/LC_MESSAGES/bitcoin.po b/locale/sv/LC_MESSAGES/bitcoin.po
new file mode 100644
index 0000000000..fb46e15426
--- /dev/null
+++ b/locale/sv/LC_MESSAGES/bitcoin.po
@@ -0,0 +1,978 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-06-11 21:58+0100\n"
+"PO-Revision-Date: 2011-06-14 09:01+0100\n"
+"Last-Translator: Codler <github>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-Bookmarks: 35,145,-1,-1,-1,-1,-1,-1,-1,-1\n"
+"X-Poedit-SearchPath-0: ../../..\n"
+
+#: ../../../init.cpp:141
+msgid "Bitcoin version"
+msgstr "Bitcoin version"
+
+#: ../../../init.cpp:142
+msgid "Usage:"
+msgstr "Användning:"
+
+#: ../../../init.cpp:144
+msgid "Send command to -server or bitcoind\n"
+msgstr "Skicka kommando till -server eller bitcoind\n"
+
+#: ../../../init.cpp:145
+msgid "List commands\n"
+msgstr "Lista kommandon\n"
+
+#: ../../../init.cpp:146
+msgid "Get help for a command\n"
+msgstr "Få hjälp om kommandon\n"
+
+#: ../../../init.cpp:147
+msgid "Options:\n"
+msgstr "Val:\n"
+
+#: ../../../init.cpp:148
+msgid "Specify configuration file (default: bitcoin.conf)\n"
+msgstr "Ange konfigurationsfil (standard: bitcoin.conf)\n"
+
+#: ../../../init.cpp:149
+msgid "Specify pid file (default: bitcoind.pid)\n"
+msgstr "Ange pid-fil (standard: bitcoind.pid)\n"
+
+#: ../../../init.cpp:150
+msgid "Generate coins\n"
+msgstr "Generera mynt\n"
+
+#: ../../../init.cpp:151
+msgid "Don't generate coins\n"
+msgstr "Generera inte mynt\n"
+
+#: ../../../init.cpp:152
+msgid "Start minimized\n"
+msgstr "Starta minimerad\n"
+
+#: ../../../init.cpp:153
+msgid "Specify data directory\n"
+msgstr "Ange data mappen\n"
+
+#: ../../../init.cpp:154
+msgid "Connect through socks4 proxy\n"
+msgstr "Anslut via socks4 proxy\n"
+
+#: ../../../init.cpp:155
+msgid "Allow DNS lookups for addnode and connect\n"
+msgstr "Tillåt DNS uppslagningar för addnode och connect\n"
+
+#: ../../../init.cpp:156
+msgid "Add a node to connect to\n"
+msgstr "Lägg till en nod att ansluta till\n"
+
+#: ../../../init.cpp:157
+msgid "Connect only to the specified node\n"
+msgstr "Anslut endast till specifik nod\n"
+
+#: ../../../init.cpp:158
+msgid "Don't accept connections from outside\n"
+msgstr "Acceptera ej anslutningar från utsidan\n"
+
+#: ../../../init.cpp:161
+msgid "Don't attempt to use UPnP to map the listening port\n"
+msgstr "Försöker inte använda UPnP till avslyssningsport\n"
+
+#: ../../../init.cpp:163
+msgid "Attempt to use UPnP to map the listening port\n"
+msgstr "Försöker använda UPnP till avlyssningsport\n"
+
+#: ../../../init.cpp:166
+msgid "Fee per KB to add to transactions you send\n"
+msgstr "Avgift per KB som läggs på transaktionen när du sänder\n"
+
+#: ../../../init.cpp:168
+msgid "Accept command line and JSON-RPC commands\n"
+msgstr "Accepterar kommandorad och JSON-RPC kommando\n"
+
+#: ../../../init.cpp:171
+msgid "Run in the background as a daemon and accept commands\n"
+msgstr "Kör i bakgrund som daemon och accepterar kommando\n"
+
+#: ../../../init.cpp:173
+msgid "Use the test network\n"
+msgstr "Använd test nätverk\n"
+
+#: ../../../init.cpp:174
+msgid "Username for JSON-RPC connections\n"
+msgstr "Användarnamn till JSON-RPC anslutning\n"
+
+#: ../../../init.cpp:175
+msgid "Password for JSON-RPC connections\n"
+msgstr "Lösenord till JSON-RPC anslutning\n"
+
+#: ../../../init.cpp:176
+msgid "Listen for JSON-RPC connections on <port> (default: 8332)\n"
+msgstr "Lyssnar på JSON-RPC anslutningar på <port> (standard: 8332)\n"
+
+#: ../../../init.cpp:177
+msgid "Allow JSON-RPC connections from specified IP address\n"
+msgstr "Tillåt JSON-RPC anslutningar från specifik IP-adress\n"
+
+#: ../../../init.cpp:178
+msgid "Send commands to node running on <ip> (default: 127.0.0.1)\n"
+msgstr "Skicka kommando till noden som körs på <ip> (standard: 127.0.0.1)\n"
+
+#: ../../../init.cpp:179
+msgid "Set key pool size to <n> (default: 100)\n"
+msgstr "Sätt nyckel pool storlek till <n> (standard: 100)\n"
+
+#: ../../../init.cpp:180
+msgid "Rescan the block chain for missing wallet transactions\n"
+msgstr "Scanna om block kedja efter saknade plånbokstransaktioner\n"
+
+#: ../../../init.cpp:184
+msgid ""
+"\n"
+"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"
+msgstr ""
+"\n"
+"SSL val: (Se på Bitcoin Wiki för SSL installation instruktioner)\n"
+
+#: ../../../init.cpp:185
+msgid "Use OpenSSL (https) for JSON-RPC connections\n"
+msgstr "Använd OpenSSL (https) till JSON-RPC anslutningar\n"
+
+#: ../../../init.cpp:186
+msgid "Server certificate file (default: server.cert)\n"
+msgstr "Server certifikatfil (standard: server.cert)\n"
+
+#: ../../../init.cpp:187
+msgid "Server private key (default: server.pem)\n"
+msgstr "Server privat nyckel (standard: server.pem)\n"
+
+#: ../../../init.cpp:188
+msgid "Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
+msgstr "Acceptabla krypteringar (standard: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
+
+#: ../../../init.cpp:192
+msgid "This help message\n"
+msgstr "Detta hjälpmeddelande\n"
+
+#: ../../../init.cpp:329
+#, c-format
+msgid "Cannot obtain a lock on data directory %s. Bitcoin is probably already running."
+msgstr "Kan inte sätta lås på data mappen %s. Bitcoin körs troligen redan."
+
+#: ../../../init.cpp:355
+msgid "Error loading addr.dat \n"
+msgstr "Fel vid laddning av addr.dat \n"
+
+#: ../../../init.cpp:361
+msgid "Error loading blkindex.dat \n"
+msgstr "Fel vid laddning av blkindex.dat \n"
+
+#: ../../../init.cpp:368
+msgid "Error loading wallet.dat \n"
+msgstr "Fel vid laddning av wallet.dat \n"
+
+#: ../../../init.cpp:448
+msgid "Invalid -proxy address"
+msgstr "Ogiltig -proxy adress"
+
+#: ../../../init.cpp:471
+msgid "Invalid amount for -paytxfee=<amount>"
+msgstr "Ogiltig belopp på -paytxfee=<belopp>"
+
+#: ../../../init.cpp:475
+msgid "Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."
+msgstr "Varning: -paytxfee är satt väldigt högt. Denna är transaktionsavgiften som du kommer att betala om du skickar en transaktion."
+
+#: ../../../main.cpp:1866
+msgid "Warning: Disk space is low "
+msgstr "Varning: Diskutrymme är låg "
+
+#: ../../../main.cpp:3999
+#, c-format
+msgid "Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds "
+msgstr "Fel: Denna transaktion kräver en transaktionsavgift minst %s för dess belopp, komplexitet, eller användning av nyligen mottagna pengar "
+
+#: ../../../main.cpp:4001
+msgid "Error: Transaction creation failed "
+msgstr "Fel: Misslyckades att skapa transaktion "
+
+#: ../../../main.cpp:4006
+#: ../../../ui.cpp:1951
+#: ../../../ui.cpp:1956
+#: ../../../ui.cpp:2102
+#: ../../../ui.cpp:2255
+msgid "Sending..."
+msgstr "Skickar..."
+
+#: ../../../main.cpp:4010
+msgid "Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "Fel: Transaktionen blev nekad. Detta kan hända om några av dina mynt i din plånbok var redan spenderad. Till exempel om du använde en kopia av wallet.dat och mynten var redan spenderad i kopian, men som inte var markerad som spenderad här."
+
+#: ../../../main.cpp:4023
+msgid "Invalid amount"
+msgstr "Ogiltig belopp"
+
+#: ../../../main.cpp:4025
+#: ../../../ui.cpp:2169
+#: ../../../ui.cpp:2240
+msgid "Insufficient funds"
+msgstr "Otillräckligt med pengar"
+
+#: ../../../main.cpp:4030
+msgid "Invalid bitcoin address"
+msgstr "Ogiltig bitcoin adress"
+
+#: ../../../net.cpp:1505
+#, c-format
+msgid "Unable to bind to port %d on this computer. Bitcoin is probably already running."
+msgstr "Det gick inte att binda till port %d på denna dator. Bitcoin körs troligen redan."
+
+#: ../../../rpc.cpp:1816
+#: ../../../rpc.cpp:1818
+#, c-format
+msgid "To use the %s option"
+msgstr "För att använda %s val"
+
+#: ../../../rpc.cpp:1820
+#, c-format
+msgid ""
+"Warning: %s, you must set rpcpassword=<password>\n"
+"in the configuration file: %s\n"
+"If the file does not exist, create it with owner-readable-only file permissions.\n"
+msgstr ""
+"Varning: %s, du måste sätta rpcpassword=<lösenord>\n"
+"i konfigurationsfilen: %s\n"
+"Om filen inte existerar, skapa med ägare med filbehörigheten -readable-only.\n"
+
+#: ../../../rpc.cpp:1988
+#, c-format
+msgid ""
+"You must set rpcpassword=<password> in the configuration file:\n"
+"%s\n"
+"If the file does not exist, create it with owner-readable-only file permissions."
+msgstr ""
+"Du måste sätta rpcpassword=<lösenord> i konfigurationsfilen:\n"
+"%s\n"
+"Om filen inte existerar, skapa med ägare med filbehörighete -readable-only."
+
+#: ../../../ui.cpp:211
+#, c-format
+msgid "This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?"
+msgstr "Denna transaktion är över storleksbegränsningen. Du kan fortfarande skicka mot en avgift på %s, som går till noderna som bearbetar din transaktion och hjälper att stödja nätverket. Vill du fortfarande betala avgiften?"
+
+#: ../../../ui.cpp:311
+msgid "Status"
+msgstr "Status"
+
+#: ../../../ui.cpp:312
+msgid "Date"
+msgstr "Datum"
+
+#: ../../../ui.cpp:313
+msgid "Description"
+msgstr "Beskrivning"
+
+#: ../../../ui.cpp:314
+msgid "Debit"
+msgstr "Debitera"
+
+#: ../../../ui.cpp:315
+msgid "Credit"
+msgstr "Kreditera"
+
+#: ../../../ui.cpp:521
+#, c-format
+msgid "Open for %d blocks"
+msgstr "Öppna för %d blocks"
+
+#: ../../../ui.cpp:523
+#, c-format
+msgid "Open until %s"
+msgstr "Öppen tills %s"
+
+#: ../../../ui.cpp:529
+#, c-format
+msgid "%d/offline?"
+msgstr "%d/offline?"
+
+#: ../../../ui.cpp:531
+#, c-format
+msgid "%d/unconfirmed"
+msgstr "%d/obekräftade"
+
+#: ../../../ui.cpp:533
+#, c-format
+msgid "%d confirmations"
+msgstr "%d bekräftelser"
+
+#: ../../../ui.cpp:618
+msgid "Generated"
+msgstr "Genererad"
+
+#: ../../../ui.cpp:626
+#, fuzzy, c-format
+msgid "Generated (%s matures in %d more blocks)"
+msgstr "Genererad (%s mogna i %d fler block)"
+
+#: ../../../ui.cpp:630
+msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
+msgstr "Genererad - Varning: Denna block har inte blivit mottagen av någon annan nod och kommer troligtvis inte bli accepterad"
+
+#: ../../../ui.cpp:634
+msgid "Generated (not accepted)"
+msgstr "Genererad (ej accepterad)"
+
+#: ../../../ui.cpp:644
+msgid "From: "
+msgstr "Från: "
+
+#: ../../../ui.cpp:668
+msgid "Received with: "
+msgstr "Mottagen med: "
+
+#: ../../../ui.cpp:714
+msgid "Payment to yourself"
+msgstr "Betalning till dig själv"
+
+#: ../../../ui.cpp:748
+msgid "To: "
+msgstr "Till: "
+
+#: ../../../ui.cpp:1063
+msgid " Generating"
+msgstr " Generering"
+
+#: ../../../ui.cpp:1065
+msgid "(not connected)"
+msgstr "(inte ansluten)"
+
+#: ../../../ui.cpp:1068
+#, c-format
+msgid " %d connections %d blocks %d transactions"
+msgstr " %d anslutningar %d block %d transaktioner"
+
+#: ../../../ui.cpp:1173
+#: ../../../ui.cpp:2566
+msgid "New Receiving Address"
+msgstr "Ny Mottagningsadress"
+
+#: ../../../ui.cpp:1174
+#: ../../../ui.cpp:2567
+msgid ""
+"You should use a new address for each payment you receive.\n"
+"\n"
+"Label"
+msgstr ""
+"Du borde använda en ny adress för varje betalning som du mottar.\n"
+"\n"
+"Etikett"
+
+#: ../../../ui.cpp:1246
+msgid "<b>Status:</b> "
+msgstr "<b>Status:</b> "
+
+#: ../../../ui.cpp:1251
+msgid ", has not been successfully broadcast yet"
+msgstr ", has not been successfully broadcast yet"
+
+#: ../../../ui.cpp:1253
+#, c-format
+msgid ", broadcast through %d node"
+msgstr ", broadcast genom %d nod"
+
+#: ../../../ui.cpp:1255
+#, c-format
+msgid ", broadcast through %d nodes"
+msgstr ", broadcast genom %d noder"
+
+#: ../../../ui.cpp:1259
+msgid "<b>Date:</b> "
+msgstr "<b>Datum:</b> "
+
+#: ../../../ui.cpp:1267
+msgid "<b>Source:</b> Generated<br>"
+msgstr "<b>Källa:</b> Genererad<br>"
+
+#: ../../../ui.cpp:1273
+#: ../../../ui.cpp:1291
+msgid "<b>From:</b> "
+msgstr "<b>Från:</b> "
+
+#: ../../../ui.cpp:1291
+msgid "unknown"
+msgstr "okänd"
+
+#: ../../../ui.cpp:1292
+#: ../../../ui.cpp:1316
+#: ../../../ui.cpp:1375
+msgid "<b>To:</b> "
+msgstr "<b>Till:</b> "
+
+#: ../../../ui.cpp:1295
+msgid " (yours, label: "
+msgstr " (din, etikett: "
+
+#: ../../../ui.cpp:1297
+msgid " (yours)"
+msgstr " (ditt)"
+
+#: ../../../ui.cpp:1334
+#: ../../../ui.cpp:1346
+#: ../../../ui.cpp:1392
+#: ../../../ui.cpp:1409
+msgid "<b>Credit:</b> "
+msgstr "<b>Kredit:</b> "
+
+#: ../../../ui.cpp:1336
+#, fuzzy, c-format
+msgid "(%s matures in %d more blocks)"
+msgstr "(%s matures in %d more blocks)"
+
+#: ../../../ui.cpp:1338
+msgid "(not accepted)"
+msgstr "(ej accepterad)"
+
+#: ../../../ui.cpp:1383
+#: ../../../ui.cpp:1391
+#: ../../../ui.cpp:1406
+msgid "<b>Debit:</b> "
+msgstr "<b>Debit:</b> "
+
+#: ../../../ui.cpp:1397
+msgid "<b>Transaction fee:</b> "
+msgstr "<b>Transaktionsavgift:</b> "
+
+#: ../../../ui.cpp:1413
+#, fuzzy
+msgid "<b>Net amount:</b> "
+msgstr "<b>Nät belopp:</b> "
+
+#: ../../../ui.cpp:1420
+msgid "Message:"
+msgstr "Meddelande:"
+
+#: ../../../ui.cpp:1422
+msgid "Comment:"
+msgstr "Kommentar:"
+
+#: ../../../ui.cpp:1425
+msgid "Generated coins must wait 120 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, it will change to \"not accepted\" and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours."
+msgstr "Genererad mynt måste vänta 120 block innan dem kan användas.När du genererat denna block, skickades en broadcast till nätet och lades till block kedjan. Om den misslyckas att lägga till kedjan så kommer det ändras till \"not accepted\" och är icke brukbar. Detta kan hända om en annan nod genererat en block några sekunder efter din."
+
+#: ../../../ui.cpp:1605
+msgid "Cannot write autostart/bitcoin.desktop file"
+msgstr "Kan inte skriva autostart/bitcoin.desktop fil"
+
+#: ../../../ui.cpp:1641
+msgid "Main"
+msgstr "Huvud"
+
+#: ../../../ui.cpp:1651
+msgid "&Start Bitcoin on window system startup"
+msgstr "&Starta Bitcoin vid uppstart i windows"
+
+#: ../../../ui.cpp:1658
+msgid "&Minimize on close"
+msgstr "&Minimera vid stängning"
+
+#: ../../../ui.cpp:1800
+#, c-format
+msgid "version %s"
+msgstr "version %s"
+
+#: ../../../ui.cpp:1923
+msgid "Error in amount "
+msgstr "Fel i belopp "
+
+#: ../../../ui.cpp:1923
+#: ../../../ui.cpp:1928
+#: ../../../ui.cpp:1933
+#: ../../../ui.cpp:1968
+#: ../../../uibase.cpp:55
+msgid "Send Coins"
+msgstr "Skicka mynt"
+
+#: ../../../ui.cpp:1928
+msgid "Amount exceeds your balance "
+msgstr "Belopp överskrider din balans "
+
+#: ../../../ui.cpp:1933
+msgid "Total exceeds your balance when the "
+msgstr "Totals överskrider din balans när "
+
+#: ../../../ui.cpp:1933
+msgid " transaction fee is included "
+msgstr " transaktionsavgift är inkluderad "
+
+#: ../../../ui.cpp:1951
+msgid "Payment sent "
+msgstr "Betalning skickad "
+
+#: ../../../ui.cpp:1968
+msgid "Invalid address "
+msgstr "Ogiltig adress "
+
+#: ../../../ui.cpp:2023
+#, c-format
+msgid "Sending %s to %s"
+msgstr "Skickar %s till %s"
+
+#: ../../../ui.cpp:2096
+#: ../../../ui.cpp:2129
+msgid "CANCELLED"
+msgstr "AVBRUTEN"
+
+#: ../../../ui.cpp:2100
+msgid "Cancelled"
+msgstr "Avbruten"
+
+#: ../../../ui.cpp:2102
+msgid "Transfer cancelled "
+msgstr "Överföring avbruten "
+
+#: ../../../ui.cpp:2155
+msgid "Error: "
+msgstr "Fel: "
+
+#: ../../../ui.cpp:2174
+msgid "Connecting..."
+msgstr "Ansluter..."
+
+#: ../../../ui.cpp:2179
+msgid "Unable to connect"
+msgstr "Det gick inte att ansluta"
+
+#: ../../../ui.cpp:2184
+msgid "Requesting public key..."
+msgstr "Efterfrågar publik nyckel..."
+
+#: ../../../ui.cpp:2196
+msgid "Received public key..."
+msgstr "Mottagen publik nyckel..."
+
+#: ../../../ui.cpp:2210
+msgid "Recipient is not accepting transactions sent by IP address"
+msgstr "Mottagaren accepterar inte transaktioner skickat från IP adress"
+
+#: ../../../ui.cpp:2212
+msgid "Transfer was not accepted"
+msgstr "Överföringen var inte accepterad"
+
+#: ../../../ui.cpp:2221
+msgid "Invalid response received"
+msgstr "Ogiltig respons mottagen"
+
+#: ../../../ui.cpp:2236
+msgid "Creating transaction..."
+msgstr "Skapar transation..."
+
+#: ../../../ui.cpp:2248
+#, c-format
+msgid "This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds"
+msgstr "Denna transaktion kräver en transaktionsavgift minst %s för dess belopp, komplexitet, eller användning av nyligen mottagna pengar"
+
+#: ../../../ui.cpp:2250
+msgid "Transaction creation failed"
+msgstr "Misslyckades skapa transaktion"
+
+#: ../../../ui.cpp:2257
+msgid "Transaction aborted"
+msgstr "Transaktion avbruten"
+
+#: ../../../ui.cpp:2265
+msgid "Lost connection, transaction cancelled"
+msgstr "Förlorad anslutning, transaktionen avbruten"
+
+#: ../../../ui.cpp:2281
+msgid "Sending payment..."
+msgstr "Skickar betalning..."
+
+#: ../../../ui.cpp:2287
+msgid "The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "Transaktionen blev nekad. Detta kan hända om några av dina mynt i din plånbok var redan spenderad. Till exempel om du använde en kopia av wallet.dat och mynten var redan spenderad i kopian, men som inte var markerad som spenderad här."
+
+#: ../../../ui.cpp:2296
+msgid "Waiting for confirmation..."
+msgstr "Väntar på bekräftelse..."
+
+#: ../../../ui.cpp:2314
+msgid ""
+"The payment was sent, but the recipient was unable to verify it.\n"
+"The transaction is recorded and will credit to the recipient,\n"
+"but the comment information will be blank."
+msgstr ""
+"Betalning var skickat, men mottagaren kunde inte verifiera det.\n"
+"Transaktionen är registrerad och kommer att kreditera mottagaren,\n"
+"men kommentar informationen kommer att vara tom."
+
+#: ../../../ui.cpp:2323
+msgid "Payment was sent, but an invalid response was received"
+msgstr "Betalning var skickad, men en ogiltig respons var mottagen"
+
+#: ../../../ui.cpp:2329
+msgid "Payment completed"
+msgstr "Betalning slutförd"
+
+#: ../../../ui.cpp:2371
+#: ../../../ui.cpp:2517
+#: ../../../ui.cpp:2554
+msgid "Name"
+msgstr "Namn"
+
+#: ../../../ui.cpp:2372
+#: ../../../ui.cpp:2517
+#: ../../../ui.cpp:2554
+msgid "Address"
+msgstr "Adress"
+
+#: ../../../ui.cpp:2374
+#: ../../../ui.cpp:2529
+msgid "Label"
+msgstr "Etikett"
+
+#: ../../../ui.cpp:2375
+#: ../../../uibase.cpp:837
+msgid "Bitcoin Address"
+msgstr "Bitcoin Adress"
+
+#: ../../../ui.cpp:2499
+msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
+msgstr "Denna är en av dina egna adresser för mottagning av betalningar och kan inte slås in i adressboken. "
+
+#: ../../../ui.cpp:2517
+#: ../../../ui.cpp:2523
+msgid "Edit Address"
+msgstr "Ändra Adress"
+
+#: ../../../ui.cpp:2529
+msgid "Edit Address Label"
+msgstr "Ändra Address Etikett"
+
+#: ../../../ui.cpp:2554
+#: ../../../ui.cpp:2560
+msgid "Add Address"
+msgstr "Lägg till Adress"
+
+#: ../../../ui.cpp:2637
+msgid "Bitcoin"
+msgstr "Bitcoin"
+
+#: ../../../ui.cpp:2639
+msgid "Bitcoin - Generating"
+msgstr "Bitcoin - Genererar"
+
+#: ../../../ui.cpp:2641
+msgid "Bitcoin - (not connected)"
+msgstr "Bitcoin - (ej ansluten)"
+
+#: ../../../ui.cpp:2720
+msgid "&Open Bitcoin"
+msgstr "&Öppna Bitcoin"
+
+#: ../../../ui.cpp:2721
+msgid "&Send Bitcoins"
+msgstr "&Skicka Bitcoins"
+
+#: ../../../ui.cpp:2722
+msgid "O&ptions..."
+msgstr "&Inställningar..."
+
+#: ../../../ui.cpp:2725
+#: ../../../uibase.cpp:25
+msgid "E&xit"
+msgstr "&Avsluta"
+
+#: ../../../ui.cpp:2951
+msgid "Program has crashed and will terminate. "
+msgstr "Programmet har krachat och kommer att avslutas. "
+
+#: ../../../uibase.cpp:28
+msgid "&File"
+msgstr "&Fil"
+
+#: ../../../uibase.cpp:32
+msgid "&Your Receiving Addresses..."
+msgstr "&Dina Mottagningsadresser..."
+
+#: ../../../uibase.cpp:36
+msgid "&Options..."
+msgstr "&Inställningar..."
+
+#: ../../../uibase.cpp:39
+msgid "&Settings"
+msgstr "&Inställningar"
+
+#: ../../../uibase.cpp:43
+msgid "&About..."
+msgstr "&Om..."
+
+#: ../../../uibase.cpp:46
+msgid "&Help"
+msgstr "&Hjälp"
+
+#: ../../../uibase.cpp:56
+msgid "Address Book"
+msgstr "Adressbok"
+
+#: ../../../uibase.cpp:69
+msgid "Your Bitcoin Address:"
+msgstr "Din Bitcoin Adress:"
+
+#: ../../../uibase.cpp:76
+msgid " &New... "
+msgstr " &Nytt... "
+
+#: ../../../uibase.cpp:79
+#: ../../../uibase.cpp:780
+#: ../../../uibase.cpp:883
+msgid " &Copy to Clipboard "
+msgstr " &Kopiera till Urklipp "
+
+#: ../../../uibase.cpp:93
+msgid "Balance:"
+msgstr "Balans:"
+
+#: ../../../uibase.cpp:109
+msgid " All"
+msgstr " Alla"
+
+#: ../../../uibase.cpp:109
+msgid " Sent"
+msgstr " Skickat"
+
+#: ../../../uibase.cpp:109
+msgid " Received"
+msgstr " Mottagen"
+
+#: ../../../uibase.cpp:109
+msgid " In Progress"
+msgstr " Pågående"
+
+#: ../../../uibase.cpp:130
+msgid "All Transactions"
+msgstr "Alla Transaktioner"
+
+#: ../../../uibase.cpp:141
+msgid "Sent/Received"
+msgstr "Skickat/Mottagen"
+
+#: ../../../uibase.cpp:152
+msgid "Sent"
+msgstr "Skickat"
+
+#: ../../../uibase.cpp:163
+msgid "Received"
+msgstr "Mottagen"
+
+#: ../../../uibase.cpp:302
+#: ../../../uibase.cpp:443
+#: ../../../uibase.cpp:542
+#: ../../../uibase.cpp:722
+#: ../../../uibase.cpp:783
+#: ../../../uibase.cpp:892
+#: ../../../uibase.cpp:981
+msgid "OK"
+msgstr "OK"
+
+#: ../../../uibase.cpp:345
+msgid "&Start Bitcoin on system startup"
+msgstr "&Starta Bitcoin vid system uppstart"
+
+#: ../../../uibase.cpp:348
+msgid "&Minimize to the tray instead of the taskbar"
+msgstr "&Minimerar till systemfältet istället för aktivitetsfält"
+
+#: ../../../uibase.cpp:351
+#, fuzzy
+msgid "Map port using &UPnP"
+msgstr "Mapp port använder &UPnP"
+
+#: ../../../uibase.cpp:354
+msgid "M&inimize to the tray on close"
+msgstr "M&inimera till systemfältet vid stängning"
+
+#: ../../../uibase.cpp:360
+msgid "&Connect through socks4 proxy: "
+msgstr "&Anslut via socks4 proxy: "
+
+#: ../../../uibase.cpp:371
+msgid "Proxy &IP:"
+msgstr "Proxy &IP:"
+
+#: ../../../uibase.cpp:379
+msgid " &Port:"
+msgstr " &Port:"
+
+#: ../../../uibase.cpp:392
+#, fuzzy
+msgid "Optional transaction fee per KB that helps make sure your transactions are processed quickly. Most transactions are 1KB. Fee 0.01 recommended."
+msgstr "Frivillig transaktionsavgift per KB som garanterar att din transaktion bearbetas snabbt. Flesta transaktioner är 1KB. Most transactions are 1KB. Avgift 0.01 rekommenderas."
+
+#: ../../../uibase.cpp:399
+msgid "Pay transaction fee:"
+msgstr "Betala transaktionsavgift:"
+
+#: ../../../uibase.cpp:420
+msgid "// [don't translate] Test panel 2 for future expansion"
+msgstr ""
+
+#: ../../../uibase.cpp:424
+msgid "// [don't translate] Let's not start multiple pages until the first page is filled up"
+msgstr ""
+
+#: ../../../uibase.cpp:446
+#: ../../../uibase.cpp:668
+#: ../../../uibase.cpp:727
+#: ../../../uibase.cpp:786
+#: ../../../uibase.cpp:895
+#: ../../../uibase.cpp:984
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: ../../../uibase.cpp:449
+msgid "&Apply"
+msgstr "&Använd"
+
+#: ../../../uibase.cpp:508
+msgid "Bitcoin "
+msgstr "Bitcoin "
+
+#: ../../../uibase.cpp:514
+msgid "version"
+msgstr "version"
+
+#: ../../../uibase.cpp:525
+#, fuzzy
+msgid ""
+"Copyright (c) 2009-2011 Bitcoin Developers\n"
+"\n"
+"This is experimental software.\n"
+"\n"
+"Distributed under the MIT/X11 software license, see the accompanying file \n"
+"license.txt or http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"This product includes software developed by the OpenSSL Project for use in the \n"
+"OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
+msgstr ""
+"Copyright (c) 2009-2011 Bitcoin Developers\n"
+"\n"
+"This is experimental software.\n"
+"\n"
+"Distributed under the MIT/X11 software license, see the accompanying file \n"
+"license.txt or http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"This product includes software developed by the OpenSSL Project for use in the \n"
+"OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
+
+#: ../../../uibase.cpp:581
+msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+msgstr "Ange en Bitcoin adress (t.ex. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+
+#: ../../../uibase.cpp:595
+msgid "Pay &To:"
+msgstr "Betala &Till:"
+
+#: ../../../uibase.cpp:610
+msgid "&Paste"
+msgstr "&Klistra in"
+
+#: ../../../uibase.cpp:613
+msgid " Address &Book..."
+msgstr " Adress&bok..."
+
+#: ../../../uibase.cpp:620
+msgid "&Amount:"
+msgstr "&Belopp:"
+
+#: ../../../uibase.cpp:630
+#, fuzzy
+msgid "T&ransfer:"
+msgstr "T&ransfer:"
+
+#: ../../../uibase.cpp:636
+msgid " Standard"
+msgstr " Standard"
+
+#: ../../../uibase.cpp:663
+msgid "&Send"
+msgstr "&Skicka"
+
+#: ../../../uibase.cpp:711
+msgid ""
+"\n"
+"\n"
+"Connecting..."
+msgstr ""
+"\n"
+"\n"
+"Ansluter..."
+
+#: ../../../uibase.cpp:761
+#, fuzzy
+msgid "These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. The highlighted address is displayed in the main window."
+msgstr "Dessa är dina Bitcoin adresser för mottagning av betalningar. Du rekommenderas att ge olika till varje avsändare så du kan ha koll på vem som betalar dig. Den markerade adressen är visar i huvudfönstret."
+
+#: ../../../uibase.cpp:774
+#: ../../../uibase.cpp:886
+msgid "&Edit..."
+msgstr "&Redigera..."
+
+#: ../../../uibase.cpp:777
+#: ../../../uibase.cpp:889
+msgid " &New Address... "
+msgstr " &Ny Adress... "
+
+#: ../../../uibase.cpp:849
+msgid "Sending"
+msgstr "Skickar"
+
+#: ../../../uibase.cpp:857
+#, fuzzy
+msgid "These are your Bitcoin addresses for receiving payments. You can give a different one to each sender to keep track of who is paying you. The highlighted address will be displayed in the main window."
+msgstr "Dessa är dina Bitcoin adresser för mottagning av betalningar. Du kan ge olika till varje avsändare så du kan ha koll på vem som betalar dig. Den markerade adressen är visar i huvudfönstret."
+
+#: ../../../uibase.cpp:870
+msgid "Receiving"
+msgstr "Mottagning"
+
+#: ../../../uibase.cpp:880
+msgid "&Delete"
+msgstr "&Ta bort"
+
+#: ../../../util.cpp:866
+#, fuzzy
+msgid "Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly."
+msgstr "Varning: Var god och kolla att din dator har rätt datum och klockslag. Om din klocka är fel så kommer Bitcoin inte att fungera."
+
+#: ../../../util.cpp:899
+msgid "beta"
+msgstr "beta"
+
+#: ../../../uibase.h:147
+msgid "Transaction Details"
+msgstr "Transaktion detaljer"
+
+#: ../../../uibase.h:199
+msgid "Options"
+msgstr "Inställningar"
+
+#: ../../../uibase.h:228
+msgid "About Bitcoin"
+msgstr "Om Bitcoin"
+
+#: ../../../uibase.h:337
+msgid "Your Bitcoin Addresses"
+msgstr "Dina Bitcoin Adresser"
+
+#~ msgid " beta"
+#~ msgstr " beta"
diff --git a/locale/zh_cn/LC_MESSAGES/bitcoin.mo b/locale/zh_cn/LC_MESSAGES/bitcoin.mo
new file mode 100644
index 0000000000..87538f01df
--- /dev/null
+++ b/locale/zh_cn/LC_MESSAGES/bitcoin.mo
Binary files differ
diff --git a/locale/zh_cn/LC_MESSAGES/bitcoin.po b/locale/zh_cn/LC_MESSAGES/bitcoin.po
new file mode 100644
index 0000000000..e870a16400
--- /dev/null
+++ b/locale/zh_cn/LC_MESSAGES/bitcoin.po
@@ -0,0 +1,967 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-05-21 14:19+0800\n"
+"PO-Revision-Date: 2011-05-28 17:08+0800\n"
+"Last-Translator: Dean Lee <xslidian@gmail.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
+"X-Poedit-Basepath: .\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Language: zh_CN\n"
+"X-Source-Language: C\n"
+"X-Poedit-Bookmarks: 77,-1,-1,-1,-1,-1,-1,-1,-1,-1\n"
+"X-Poedit-SearchPath-0: ../../..\n"
+
+#: ../../../src/init.cpp:142
+msgid "Bitcoin version"
+msgstr "Bitcoin 版本"
+
+#: ../../../src/init.cpp:143
+msgid "Usage:"
+msgstr "用法:"
+
+#: ../../../src/init.cpp:145
+msgid "Send command to -server or bitcoind\n"
+msgstr "发送命令给 -server 或 bitcoin\n"
+
+#: ../../../src/init.cpp:146
+msgid "List commands\n"
+msgstr "列出命令\n"
+
+#: ../../../src/init.cpp:147
+msgid "Get help for a command\n"
+msgstr "获取命令的帮助\n"
+
+#: ../../../src/init.cpp:148
+msgid "Options:\n"
+msgstr "选项:\n"
+
+#: ../../../src/init.cpp:149
+msgid "Specify configuration file (default: bitcoin.conf)\n"
+msgstr "指定配置文件 (默认: bitcoin.conf)\n"
+
+#: ../../../src/init.cpp:150
+msgid "Specify pid file (default: bitcoind.pid)\n"
+msgstr "指定 pid 文件 (默认: bitcoin.pid)\n"
+
+#: ../../../src/init.cpp:151
+msgid "Generate coins\n"
+msgstr "生成货币\n"
+
+#: ../../../src/init.cpp:152
+msgid "Don't generate coins\n"
+msgstr "不要生成货币\n"
+
+#: ../../../src/init.cpp:153
+msgid "Start minimized\n"
+msgstr "启动时最小化\n"
+
+#: ../../../src/init.cpp:154
+msgid "Specify data directory\n"
+msgstr "指定数据目录\n"
+
+#: ../../../src/init.cpp:155
+msgid "Connect through socks4 proxy\n"
+msgstr "通过 socks4 代理连接\n"
+
+#: ../../../src/init.cpp:156
+msgid "Allow DNS lookups for addnode and connect\n"
+msgstr "允许 DNS 查找新增结点和连接\n"
+
+#: ../../../src/init.cpp:157
+msgid "Add a node to connect to\n"
+msgstr "添加一个连接结点\n"
+
+#: ../../../src/init.cpp:158
+msgid "Connect only to the specified node\n"
+msgstr "只连接特定结点\n"
+
+#: ../../../src/init.cpp:159
+msgid "Don't accept connections from outside\n"
+msgstr "不要接受外部传来的连接\n"
+
+#: ../../../src/init.cpp:162
+msgid "Don't attempt to use UPnP to map the listening port\n"
+msgstr "不要尝试使用 UPnP 映射监听端口\n"
+
+#: ../../../src/init.cpp:164
+msgid "Attempt to use UPnP to map the listening port\n"
+msgstr "尝试使用 UPnP 映射监听端口\n"
+
+#: ../../../src/init.cpp:167
+msgid "Fee per KB to add to transactions you send\n"
+msgstr "您为每 KB 支付所增加的交易佣金\n"
+
+#: ../../../src/init.cpp:169
+msgid "Accept command line and JSON-RPC commands\n"
+msgstr "允许命令行和 JSON-RPC 控制\n"
+
+#: ../../../src/init.cpp:172
+msgid "Run in the background as a daemon and accept commands\n"
+msgstr "在后台运行并接收命令\n"
+
+#: ../../../src/init.cpp:174
+msgid "Use the test network\n"
+msgstr "使用测试网络\n"
+
+#: ../../../src/init.cpp:175
+msgid "Username for JSON-RPC connections\n"
+msgstr "JSON-RPC 连接的用户名\n"
+
+#: ../../../src/init.cpp:176
+msgid "Password for JSON-RPC connections\n"
+msgstr "JSON-RPC 连接的密码\n"
+
+#: ../../../src/init.cpp:177
+msgid "Listen for JSON-RPC connections on <port> (default: 8332)\n"
+msgstr "在端口 <port> 监听 JSON-RPC 连接 (默认: 8332)\n"
+
+#: ../../../src/init.cpp:178
+msgid "Allow JSON-RPC connections from specified IP address\n"
+msgstr "允许来自特定 IP 地址的 JSON-RPC 连接\n"
+
+#: ../../../src/init.cpp:179
+msgid "Send commands to node running on <ip> (default: 127.0.0.1)\n"
+msgstr "发送命令给运行的结点,IP 地址 <ip> (默认: 127.0.0.1)\n"
+
+#: ../../../src/init.cpp:180
+msgid "Set key pool size to <n> (default: 100)\n"
+msgstr "设置密钥池大小为 <n> (默认: 100)\n"
+
+#: ../../../src/init.cpp:181
+msgid "Rescan the block chain for missing wallet transactions\n"
+msgstr "重新扫描货币包链来检测丢失的货币交易\n"
+
+#: ../../../src/init.cpp:185
+msgid ""
+"\n"
+"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n"
+msgstr ""
+"\n"
+"SSL 选项: (SSL 设置步骤请参见 Bitcoin Wiki)\n"
+
+#: ../../../src/init.cpp:186
+msgid "Use OpenSSL (https) for JSON-RPC connections\n"
+msgstr "使用 OpenSSL (https) 进行 JSON-RPC 连接\n"
+
+#: ../../../src/init.cpp:187
+msgid "Server certificate file (default: server.cert)\n"
+msgstr "服务器证书 (默认: server.cert)\n"
+
+#: ../../../src/init.cpp:188
+msgid "Server private key (default: server.pem)\n"
+msgstr "服务器私有密钥 (默认: server.pem)\n"
+
+#: ../../../src/init.cpp:189
+msgid "Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
+msgstr "许可密码 (默认: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n"
+
+#: ../../../src/init.cpp:193
+msgid "This help message\n"
+msgstr "本帮助信息\n"
+
+#: ../../../src/init.cpp:330
+#, c-format
+msgid "Cannot obtain a lock on data directory %s. Bitcoin is probably already running."
+msgstr "无法获取数据目录 %s 的锁。 Bitcoin 可能已经启动。"
+
+#: ../../../src/init.cpp:356
+msgid "Error loading addr.dat \n"
+msgstr "加载 addr.dat 出错 \n"
+
+#: ../../../src/init.cpp:362
+msgid "Error loading blkindex.dat \n"
+msgstr "加载 blkindex.dat 出错 \n"
+
+#: ../../../src/init.cpp:369
+msgid "Error loading wallet.dat \n"
+msgstr "加载 wallet.dat 出错 \n"
+
+#: ../../../src/init.cpp:449
+msgid "Invalid -proxy address"
+msgstr "无效 -proxy 地址"
+
+#: ../../../src/init.cpp:472
+msgid "Invalid amount for -paytxfee=<amount>"
+msgstr "无效的金额 -paytxfee=<amount>"
+
+#: ../../../src/init.cpp:476
+msgid "Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."
+msgstr "警告: -paytxfee 设置得过高。 这个参数是您发送一笔交易要支付的佣金。"
+
+#: ../../../src/main.cpp:1866
+msgid "Warning: Disk space is low "
+msgstr "警告: 磁盘空间不足"
+
+#: ../../../src/main.cpp:3990
+#, c-format
+msgid "Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds "
+msgstr "错误: 这个交易因为近期收到支付的数量,难度或者使用而需要支付至少 %s 交易佣金 "
+
+#: ../../../src/main.cpp:3992
+msgid "Error: Transaction creation failed "
+msgstr "错误: 交易创建失败"
+
+#: ../../../src/main.cpp:3997
+#: ../../../src/ui.cpp:1927
+#: ../../../src/ui.cpp:1932
+#: ../../../src/ui.cpp:2076
+#: ../../../src/ui.cpp:2229
+msgid "Sending..."
+msgstr "正在发送..."
+
+#: ../../../src/main.cpp:4001
+msgid "Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "错误: 交易被拒绝。 这可能是因为您账户里的一些货币应经被使用,比如您使用了一个复制的 wallet.dat 文件,一些货币在另一个复件里支付了但是没有在这里更新。"
+
+#: ../../../src/main.cpp:4014
+msgid "Invalid amount"
+msgstr "无效金额"
+
+#: ../../../src/main.cpp:4016
+#: ../../../src/ui.cpp:2143
+#: ../../../src/ui.cpp:2214
+msgid "Insufficient funds"
+msgstr "余额不足"
+
+#: ../../../src/main.cpp:4021
+msgid "Invalid bitcoin address"
+msgstr "无效 bitcoin 地址"
+
+#: ../../../src/net.cpp:1503
+#, c-format
+msgid "Unable to bind to port %d on this computer. Bitcoin is probably already running."
+msgstr "无法在这台电脑上绑定 %d 端口。 Bitcoin 可能已经在运行。"
+
+#: ../../../src/rpc.cpp:1802
+#: ../../../src/rpc.cpp:1804
+#, c-format
+msgid "To use the %s option"
+msgstr "使用 %s 选项"
+
+#: ../../../src/rpc.cpp:1806
+#, c-format
+msgid ""
+"Warning: %s, you must set rpcpassword=<password>\n"
+"in the configuration file: %s\n"
+"If the file does not exist, create it with owner-readable-only file permissions.\n"
+msgstr ""
+"警告: %s,您必须在配置文件中设置 rpcpassword=<password>\n"
+"配置文件为: %s\n"
+"如果文件不存在,请创建文件并只给创建者提供只读访问权限。\n"
+
+#: ../../../src/rpc.cpp:1974
+#, c-format
+msgid ""
+"You must set rpcpassword=<password> in the configuration file:\n"
+"%s\n"
+"If the file does not exist, create it with owner-readable-only file permissions."
+msgstr ""
+"您必须在配置文件中设置 rpcpassword=<password> :\n"
+"%s\n"
+"如果文件不存在,请创建文件并只给创建者提供只读访问权限。"
+
+#: ../../../src/ui.cpp:204
+#, c-format
+msgid "This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?"
+msgstr "这笔交易超过了大小限制。 您依然可以通过支付 %s 的佣金来进行,佣金用来支付为您的交易计算的结点来帮助支撑网络。 您是否要支付佣金?"
+
+#: ../../../src/ui.cpp:303
+msgid "Status"
+msgstr "状态"
+
+#: ../../../src/ui.cpp:304
+msgid "Date"
+msgstr "日期"
+
+#: ../../../src/ui.cpp:305
+msgid "Description"
+msgstr "描述"
+
+#: ../../../src/ui.cpp:306
+msgid "Debit"
+msgstr "付款人"
+
+#: ../../../src/ui.cpp:307
+msgid "Credit"
+msgstr "信用"
+
+#: ../../../src/ui.cpp:513
+#, c-format
+msgid "Open for %d blocks"
+msgstr "%d 个货币包开放"
+
+#: ../../../src/ui.cpp:515
+#, c-format
+msgid "Open until %s"
+msgstr "开放直到 %s"
+
+#: ../../../src/ui.cpp:521
+#, c-format
+msgid "%d/offline?"
+msgstr "%d/离线?"
+
+#: ../../../src/ui.cpp:523
+#, c-format
+msgid "%d/unconfirmed"
+msgstr "%d/未确认"
+
+#: ../../../src/ui.cpp:525
+#, c-format
+msgid "%d confirmations"
+msgstr "%d 确认"
+
+#: ../../../src/ui.cpp:610
+msgid "Generated"
+msgstr "已生成"
+
+#: ../../../src/ui.cpp:618
+#, c-format
+msgid "Generated (%s matures in %d more blocks)"
+msgstr "已生成 (%s 成熟 %d 新增货币包)"
+
+#: ../../../src/ui.cpp:622
+msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!"
+msgstr "已生成 - 警告: 这个货币包没有被任何其他结点收到,因此很可能不会被接受!"
+
+#: ../../../src/ui.cpp:626
+msgid "Generated (not accepted)"
+msgstr "已生成 (未被接受)"
+
+#: ../../../src/ui.cpp:636
+msgid "From: "
+msgstr "来自: "
+
+#: ../../../src/ui.cpp:660
+msgid "Received with: "
+msgstr "伴随接收: "
+
+#: ../../../src/ui.cpp:706
+msgid "Payment to yourself"
+msgstr "支付给您自己"
+
+#: ../../../src/ui.cpp:740
+msgid "To: "
+msgstr "到: "
+
+#: ../../../src/ui.cpp:1055
+msgid " Generating"
+msgstr " 生成中"
+
+#: ../../../src/ui.cpp:1057
+msgid "(not connected)"
+msgstr "(未连接)"
+
+#: ../../../src/ui.cpp:1060
+#, c-format
+msgid " %d connections %d blocks %d transactions"
+msgstr " %d 个连接 %d 个货币包 %d 个交易 "
+
+#: ../../../src/ui.cpp:1165
+#: ../../../src/ui.cpp:2529
+msgid "New Receiving Address"
+msgstr "新建接收地址"
+
+#: ../../../src/ui.cpp:1166
+#: ../../../src/ui.cpp:2530
+msgid ""
+"You should use a new address for each payment you receive.\n"
+"\n"
+"Label"
+msgstr ""
+"您应该为您收到的每次付款使用不同的地址。\n"
+"\n"
+"标签"
+
+#: ../../../src/ui.cpp:1235
+msgid "<b>Status:</b> "
+msgstr "<b>状态:</b> "
+
+#: ../../../src/ui.cpp:1240
+msgid ", has not been successfully broadcast yet"
+msgstr ",尚未被成功广播"
+
+#: ../../../src/ui.cpp:1242
+#, c-format
+msgid ", broadcast through %d node"
+msgstr ",通过 %d 个结点广播"
+
+#: ../../../src/ui.cpp:1244
+#, c-format
+msgid ", broadcast through %d nodes"
+msgstr ",通过 %d 个结点广播"
+
+#: ../../../src/ui.cpp:1248
+msgid "<b>Date:</b> "
+msgstr "<b>日期:</b>"
+
+#: ../../../src/ui.cpp:1256
+msgid "<b>Source:</b> Generated<br>"
+msgstr "<b>来源:</b> 生成<br>"
+
+#: ../../../src/ui.cpp:1262
+#: ../../../src/ui.cpp:1280
+msgid "<b>From:</b> "
+msgstr "<b>从:</b> "
+
+#: ../../../src/ui.cpp:1280
+msgid "unknown"
+msgstr "未知"
+
+#: ../../../src/ui.cpp:1281
+#: ../../../src/ui.cpp:1305
+#: ../../../src/ui.cpp:1364
+msgid "<b>To:</b> "
+msgstr "<b>到:</b> "
+
+#: ../../../src/ui.cpp:1284
+msgid " (yours, label: "
+msgstr " (您的标签: "
+
+#: ../../../src/ui.cpp:1286
+msgid " (yours)"
+msgstr " (您的)"
+
+#: ../../../src/ui.cpp:1323
+#: ../../../src/ui.cpp:1335
+#: ../../../src/ui.cpp:1381
+#: ../../../src/ui.cpp:1398
+msgid "<b>Credit:</b> "
+msgstr "<b>信用:</b> "
+
+#: ../../../src/ui.cpp:1325
+#, c-format
+msgid "(%s matures in %d more blocks)"
+msgstr "(%s 收获在 %d 更多的货币包)"
+
+#: ../../../src/ui.cpp:1327
+msgid "(not accepted)"
+msgstr "(未被接受)"
+
+#: ../../../src/ui.cpp:1372
+#: ../../../src/ui.cpp:1380
+#: ../../../src/ui.cpp:1395
+msgid "<b>Debit:</b> "
+msgstr "<b>付款人:</b> "
+
+#: ../../../src/ui.cpp:1386
+msgid "<b>Transaction fee:</b> "
+msgstr "<b>交易佣金:</b> "
+
+#: ../../../src/ui.cpp:1402
+msgid "<b>Net amount:</b> "
+msgstr "<b>网络金额:</b> "
+
+#: ../../../src/ui.cpp:1409
+msgid "Message:"
+msgstr "消息:"
+
+#: ../../../src/ui.cpp:1411
+msgid "Comment:"
+msgstr "评论"
+
+#: ../../../src/ui.cpp:1414
+msgid "Generated coins must wait 120 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, it will change to \"not accepted\" and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours."
+msgstr "生成的货币必须等待 120 个货币包之后才能够使用。 当您生成了一个货币包后,它被广播给网络来加入货币包链中。 如果它无法加入货币包链中,他将会标记为\"不被接受\"且不能被支付。 这种情况可能因为在您生成这个货币包之后的几秒钟内有别人也生成了货币包而发生。"
+
+#: ../../../src/ui.cpp:1594
+msgid "Cannot write autostart/bitcoin.desktop file"
+msgstr "无法写入 autostart/bitcoin.desktop 文件"
+
+#: ../../../src/ui.cpp:1630
+msgid "Main"
+msgstr "主要"
+
+#: ../../../src/ui.cpp:1638
+msgid "&Start Bitcoin on window system startup"
+msgstr "开机自动启动 Bitcoin(&S)"
+
+#: ../../../src/ui.cpp:1645
+msgid "&Minimize on close"
+msgstr "关闭时最小化(&M)"
+
+#: ../../../src/ui.cpp:1787
+#, c-format
+msgid "version %s"
+msgstr "版本 %s"
+
+#: ../../../src/ui.cpp:1899
+msgid "Error in amount "
+msgstr "金额有误 "
+
+#: ../../../src/ui.cpp:1899
+#: ../../../src/ui.cpp:1904
+#: ../../../src/ui.cpp:1909
+#: ../../../src/ui.cpp:1944
+#: ../../../src/uibase.cpp:55
+msgid "Send Coins"
+msgstr "发送货币"
+
+#: ../../../src/ui.cpp:1904
+msgid "Amount exceeds your balance "
+msgstr "金额超出您的账户余额"
+
+#: ../../../src/ui.cpp:1909
+msgid "Total exceeds your balance when the "
+msgstr "总费用超出您的账户余额当 "
+
+#: ../../../src/ui.cpp:1909
+msgid " transaction fee is included "
+msgstr " 交易佣金已包括"
+
+#: ../../../src/ui.cpp:1927
+msgid "Payment sent "
+msgstr "付款已发送"
+
+#: ../../../src/ui.cpp:1944
+msgid "Invalid address "
+msgstr "无效地址 "
+
+#: ../../../src/ui.cpp:1997
+#, c-format
+msgid "Sending %s to %s"
+msgstr "发送 %s 给 %s"
+
+#: ../../../src/ui.cpp:2070
+#: ../../../src/ui.cpp:2103
+msgid "CANCELLED"
+msgstr "已取消"
+
+#: ../../../src/ui.cpp:2074
+msgid "Cancelled"
+msgstr "已取消"
+
+#: ../../../src/ui.cpp:2076
+msgid "Transfer cancelled "
+msgstr "传输已取消 "
+
+#: ../../../src/ui.cpp:2129
+msgid "Error: "
+msgstr "错误: "
+
+#: ../../../src/ui.cpp:2148
+msgid "Connecting..."
+msgstr "正在连接..."
+
+#: ../../../src/ui.cpp:2153
+msgid "Unable to connect"
+msgstr "无法连接"
+
+#: ../../../src/ui.cpp:2158
+msgid "Requesting public key..."
+msgstr "正在请求公共密钥..."
+
+#: ../../../src/ui.cpp:2170
+msgid "Received public key..."
+msgstr "收到公共密钥..."
+
+#: ../../../src/ui.cpp:2184
+msgid "Recipient is not accepting transactions sent by IP address"
+msgstr "收款人不接受来自 IP 地址的交易"
+
+#: ../../../src/ui.cpp:2186
+msgid "Transfer was not accepted"
+msgstr "传输没有被接受"
+
+#: ../../../src/ui.cpp:2195
+msgid "Invalid response received"
+msgstr "接收到无效回复"
+
+#: ../../../src/ui.cpp:2210
+msgid "Creating transaction..."
+msgstr "正在创建交易..."
+
+#: ../../../src/ui.cpp:2222
+#, c-format
+msgid "This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds"
+msgstr "这笔交易因为它最近收到的付款的数量,交易难度或者使用情况,需要至少 %s 交易佣金"
+
+#: ../../../src/ui.cpp:2224
+msgid "Transaction creation failed"
+msgstr "交易创建失败"
+
+#: ../../../src/ui.cpp:2231
+msgid "Transaction aborted"
+msgstr "交易中止"
+
+#: ../../../src/ui.cpp:2239
+msgid "Lost connection, transaction cancelled"
+msgstr "失去连接,交易已取消"
+
+#: ../../../src/ui.cpp:2255
+msgid "Sending payment..."
+msgstr "正在发送付款..."
+
+#: ../../../src/ui.cpp:2261
+msgid "The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."
+msgstr "交易被拒绝。 这可能是因为您账户中的一部分货币已经被使用,比如您使用了一个复制的 wallet.dat 文件,而且货币在另一个副本里使用但没有在这里标记。"
+
+#: ../../../src/ui.cpp:2270
+msgid "Waiting for confirmation..."
+msgstr "正在等待确认..."
+
+#: ../../../src/ui.cpp:2288
+msgid ""
+"The payment was sent, but the recipient was unable to verify it.\n"
+"The transaction is recorded and will credit to the recipient,\n"
+"but the comment information will be blank."
+msgstr ""
+"付款已发送,但是收款人无法进行确认。\n"
+"交易已经被记录,并且支付给收款人,\n"
+"但是评论信息可能是空的。"
+
+#: ../../../src/ui.cpp:2297
+msgid "Payment was sent, but an invalid response was received"
+msgstr "支付已发送,但是收到无效回复"
+
+#: ../../../src/ui.cpp:2303
+msgid "Payment completed"
+msgstr "付款完成"
+
+#: ../../../src/ui.cpp:2334
+#: ../../../src/ui.cpp:2480
+#: ../../../src/ui.cpp:2517
+msgid "Name"
+msgstr "姓名"
+
+#: ../../../src/ui.cpp:2335
+#: ../../../src/ui.cpp:2480
+#: ../../../src/ui.cpp:2517
+msgid "Address"
+msgstr "地址"
+
+#: ../../../src/ui.cpp:2337
+#: ../../../src/ui.cpp:2492
+msgid "Label"
+msgstr "标签"
+
+#: ../../../src/ui.cpp:2338
+#: ../../../src/uibase.cpp:837
+msgid "Bitcoin Address"
+msgstr "Bitcoin 地址"
+
+#: ../../../src/ui.cpp:2462
+msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. "
+msgstr "这是您拥有的接收付款的地址之一,它不能够进入这个地址簿。 "
+
+#: ../../../src/ui.cpp:2480
+#: ../../../src/ui.cpp:2486
+msgid "Edit Address"
+msgstr "编辑地址"
+
+#: ../../../src/ui.cpp:2492
+msgid "Edit Address Label"
+msgstr "编辑地址标签"
+
+#: ../../../src/ui.cpp:2517
+#: ../../../src/ui.cpp:2523
+msgid "Add Address"
+msgstr "添加地址"
+
+#: ../../../src/ui.cpp:2600
+msgid "Bitcoin"
+msgstr "Bitcoin"
+
+#: ../../../src/ui.cpp:2602
+msgid "Bitcoin - Generating"
+msgstr "Bitcoin - 生成中"
+
+#: ../../../src/ui.cpp:2604
+msgid "Bitcoin - (not connected)"
+msgstr "Bitcoin - (未连接)"
+
+#: ../../../src/ui.cpp:2683
+msgid "&Open Bitcoin"
+msgstr "打开 Bitcoin(&O)"
+
+#: ../../../src/ui.cpp:2684
+msgid "&Send Bitcoins"
+msgstr "发送 Bitcoins(&S)"
+
+#: ../../../src/ui.cpp:2685
+msgid "O&ptions..."
+msgstr "选项(&P)..."
+
+#: ../../../src/ui.cpp:2688
+#: ../../../src/uibase.cpp:25
+msgid "E&xit"
+msgstr "退出(&X)"
+
+#: ../../../src/ui.cpp:2904
+msgid "Program has crashed and will terminate. "
+msgstr "程序崩溃,即将关闭。 "
+
+#: ../../../src/uibase.cpp:28
+msgid "&File"
+msgstr "文件(&F)"
+
+#: ../../../src/uibase.cpp:32
+msgid "&Your Receiving Addresses..."
+msgstr "您的接收地址(&Y)..."
+
+#: ../../../src/uibase.cpp:36
+msgid "&Options..."
+msgstr "选项(&O)..."
+
+#: ../../../src/uibase.cpp:39
+msgid "&Settings"
+msgstr "设置(&S)"
+
+#: ../../../src/uibase.cpp:43
+msgid "&About..."
+msgstr "关于(&A)..."
+
+#: ../../../src/uibase.cpp:46
+msgid "&Help"
+msgstr "帮助(&H)"
+
+#: ../../../src/uibase.cpp:56
+msgid "Address Book"
+msgstr "地址簿"
+
+#: ../../../src/uibase.cpp:69
+msgid "Your Bitcoin Address:"
+msgstr "您的 Bitcoin 地址:"
+
+#: ../../../src/uibase.cpp:76
+msgid " &New... "
+msgstr " 新建(&N)... "
+
+#: ../../../src/uibase.cpp:79
+#: ../../../src/uibase.cpp:780
+#: ../../../src/uibase.cpp:883
+msgid " &Copy to Clipboard "
+msgstr " 复制到剪贴板(&C)"
+
+#: ../../../src/uibase.cpp:93
+msgid "Balance:"
+msgstr "账户余额:"
+
+#: ../../../src/uibase.cpp:109
+msgid " All"
+msgstr "全部"
+
+#: ../../../src/uibase.cpp:109
+msgid " Sent"
+msgstr " 已发送"
+
+#: ../../../src/uibase.cpp:109
+msgid " Received"
+msgstr " 已接收"
+
+#: ../../../src/uibase.cpp:109
+msgid " In Progress"
+msgstr "处理中"
+
+#: ../../../src/uibase.cpp:130
+msgid "All Transactions"
+msgstr "所有交易"
+
+#: ../../../src/uibase.cpp:141
+msgid "Sent/Received"
+msgstr "已发送/已接收"
+
+#: ../../../src/uibase.cpp:152
+msgid "Sent"
+msgstr "已发送"
+
+#: ../../../src/uibase.cpp:163
+msgid "Received"
+msgstr "已接收"
+
+#: ../../../src/uibase.cpp:302
+#: ../../../src/uibase.cpp:443
+#: ../../../src/uibase.cpp:542
+#: ../../../src/uibase.cpp:722
+#: ../../../src/uibase.cpp:783
+#: ../../../src/uibase.cpp:892
+#: ../../../src/uibase.cpp:981
+msgid "OK"
+msgstr "确定"
+
+#: ../../../src/uibase.cpp:345
+msgid "&Start Bitcoin on system startup"
+msgstr "开机自动启动(&S)"
+
+#: ../../../src/uibase.cpp:348
+msgid "&Minimize to the tray instead of the taskbar"
+msgstr "最小化到系统托盘(&M)"
+
+#: ../../../src/uibase.cpp:351
+msgid "Map port using &UPnP"
+msgstr "使用 &UPnP 映射端口"
+
+#: ../../../src/uibase.cpp:354
+msgid "M&inimize to the tray on close"
+msgstr "关闭时最小化到托盘(&I)"
+
+#: ../../../src/uibase.cpp:360
+msgid "&Connect through socks4 proxy: "
+msgstr "通过 socks4 代理连接(&C): "
+
+#: ../../../src/uibase.cpp:371
+msgid "Proxy &IP:"
+msgstr "代理服务器(&I):"
+
+#: ../../../src/uibase.cpp:379
+msgid " &Port:"
+msgstr " 端口(&P):"
+
+#: ../../../src/uibase.cpp:392
+msgid "Optional transaction fee per KB that helps make sure your transactions are processed quickly. Most transactions are 1KB. Fee 0.01 recommended."
+msgstr "可以选择按照KB支付交易佣金来确保您的交易得到迅速处理。 大多数交易需要 1KB。 建议支付 0.01。"
+
+#: ../../../src/uibase.cpp:399
+msgid "Pay transaction fee:"
+msgstr "支付交易佣金:"
+
+#: ../../../src/uibase.cpp:420
+msgid "// [don't translate] Test panel 2 for future expansion"
+msgstr ""
+
+#: ../../../src/uibase.cpp:424
+msgid "// [don't translate] Let's not start multiple pages until the first page is filled up"
+msgstr ""
+
+#: ../../../src/uibase.cpp:446
+#: ../../../src/uibase.cpp:668
+#: ../../../src/uibase.cpp:727
+#: ../../../src/uibase.cpp:786
+#: ../../../src/uibase.cpp:895
+#: ../../../src/uibase.cpp:984
+msgid "Cancel"
+msgstr "取消"
+
+#: ../../../src/uibase.cpp:449
+msgid "&Apply"
+msgstr "应用(&A)"
+
+#: ../../../src/uibase.cpp:508
+msgid "Bitcoin "
+msgstr "Bitcoin "
+
+#: ../../../src/uibase.cpp:514
+msgid "version"
+msgstr "版本"
+
+#: ../../../src/uibase.cpp:525
+msgid ""
+"Copyright (c) 2009-2011 Bitcoin Developers\n"
+"\n"
+"This is experimental software.\n"
+"\n"
+"Distributed under the MIT/X11 software license, see the accompanying file \n"
+"license.txt or http://www.opensource.org/licenses/mit-license.php.\n"
+"\n"
+"This product includes software developed by the OpenSSL Project for use in the \n"
+"OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n"
+"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."
+msgstr ""
+"版权所有 (c) 2009-2010 Bitcoin 开发人员\n"
+"这是一个实验软件。\n"
+"分发遵循 MIT/X11 软件许可协议,请参见附带的 license.txt 文件或访问\n"
+"http://www.opensource.org/licenses/mit-license.php。\n"
+"本产品使用了 OpenSSL Project 开发的 OpenSSL Toolkit\n"
+"(http://www.openssl.org/),以及 Eric Young(eay@cryptsoft.com)\n"
+"编写的加密软件和 Thomas Bernard 编写的 UPnP 软件。"
+
+#: ../../../src/uibase.cpp:581
+msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+msgstr "输入 Bitcoin 地址 (比如 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"
+
+#: ../../../src/uibase.cpp:595
+msgid "Pay &To:"
+msgstr "付款给(&T):"
+
+#: ../../../src/uibase.cpp:610
+msgid "&Paste"
+msgstr "粘贴(&P)"
+
+#: ../../../src/uibase.cpp:613
+msgid " Address &Book..."
+msgstr " 地址簿(&B)..."
+
+#: ../../../src/uibase.cpp:620
+msgid "&Amount:"
+msgstr "数量(&A):"
+
+#: ../../../src/uibase.cpp:630
+msgid "T&ransfer:"
+msgstr "传输(&R):"
+
+#: ../../../src/uibase.cpp:636
+msgid " Standard"
+msgstr "标准"
+
+#: ../../../src/uibase.cpp:663
+msgid "&Send"
+msgstr "发送(&S)"
+
+#: ../../../src/uibase.cpp:711
+msgid ""
+"\n"
+"\n"
+"Connecting..."
+msgstr ""
+"\n"
+"\n"
+"正在连接..."
+
+#: ../../../src/uibase.cpp:761
+msgid "These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. The highlighted address is displayed in the main window."
+msgstr "这些是您用来接收付款的 Bitcoin 地址。 您可能需要给每一个付款人一个不同的地址从而可以最终每一笔交易是谁支付的。 下面高亮的地址是您的主窗口正在使用的地址。"
+
+#: ../../../src/uibase.cpp:774
+#: ../../../src/uibase.cpp:886
+msgid "&Edit..."
+msgstr "编辑(&E)..."
+
+#: ../../../src/uibase.cpp:777
+#: ../../../src/uibase.cpp:889
+msgid " &New Address... "
+msgstr " 新建地址(&N)..."
+
+#: ../../../src/uibase.cpp:849
+msgid "Sending"
+msgstr "发送人地址"
+
+#: ../../../src/uibase.cpp:857
+msgid "These are your Bitcoin addresses for receiving payments. You can give a different one to each sender to keep track of who is paying you. The highlighted address will be displayed in the main window."
+msgstr "这些是您用来接收付款的 Bitcoin 地址。 您可以给每一个付款人一个不同的地址从而可以最终每一笔交易是谁支付的。 下面高亮的地址是您的主窗口正在使用的地址。"
+
+#: ../../../src/uibase.cpp:870
+msgid "Receiving"
+msgstr "我的接收地址"
+
+#: ../../../src/uibase.cpp:880
+msgid "&Delete"
+msgstr "删除(&D)"
+
+#: ../../../src/util.cpp:866
+msgid "Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly."
+msgstr "警告: 请检查您的电脑日期和时间是否正确。 如果您的时钟不正确 Bitcoin 将无法正常工作。"
+
+#: ../../../src/util.cpp:899
+msgid "beta"
+msgstr "测试版"
+
+#: ../../../src/uibase.h:147
+msgid "Transaction Details"
+msgstr "交易详情"
+
+#: ../../../src/uibase.h:199
+msgid "Options"
+msgstr "选项"
+
+#: ../../../src/uibase.h:228
+msgid "About Bitcoin"
+msgstr "关于 Bitcoin"
+
+#: ../../../src/uibase.h:337
+msgid "Your Bitcoin Addresses"
+msgstr "您的 Bitcoin 地址"
diff --git a/share/pixmaps/addressbook16.bmp b/share/pixmaps/addressbook16.bmp
new file mode 100644
index 0000000000..c5576910b1
--- /dev/null
+++ b/share/pixmaps/addressbook16.bmp
Binary files differ
diff --git a/share/pixmaps/addressbook16mask.bmp b/share/pixmaps/addressbook16mask.bmp
new file mode 100644
index 0000000000..d3a478d1ad
--- /dev/null
+++ b/share/pixmaps/addressbook16mask.bmp
Binary files differ
diff --git a/share/pixmaps/addressbook20.bmp b/share/pixmaps/addressbook20.bmp
new file mode 100644
index 0000000000..2b33b228aa
--- /dev/null
+++ b/share/pixmaps/addressbook20.bmp
Binary files differ
diff --git a/share/pixmaps/addressbook20mask.bmp b/share/pixmaps/addressbook20mask.bmp
new file mode 100644
index 0000000000..56ce6125db
--- /dev/null
+++ b/share/pixmaps/addressbook20mask.bmp
Binary files differ
diff --git a/share/pixmaps/bitcoin-bc.ico b/share/pixmaps/bitcoin-bc.ico
new file mode 100644
index 0000000000..88cc240e2d
--- /dev/null
+++ b/share/pixmaps/bitcoin-bc.ico
Binary files differ
diff --git a/share/pixmaps/bitcoin.ico b/share/pixmaps/bitcoin.ico
new file mode 100644
index 0000000000..cdec9a037b
--- /dev/null
+++ b/share/pixmaps/bitcoin.ico
Binary files differ
diff --git a/share/pixmaps/check.ico b/share/pixmaps/check.ico
new file mode 100644
index 0000000000..0c4e6e8147
--- /dev/null
+++ b/share/pixmaps/check.ico
Binary files differ
diff --git a/share/pixmaps/favicon.ico b/share/pixmaps/favicon.ico
new file mode 100644
index 0000000000..d249e41feb
--- /dev/null
+++ b/share/pixmaps/favicon.ico
Binary files differ
diff --git a/share/pixmaps/send16.bmp b/share/pixmaps/send16.bmp
new file mode 100644
index 0000000000..676b5c4b49
--- /dev/null
+++ b/share/pixmaps/send16.bmp
Binary files differ
diff --git a/share/pixmaps/send16mask.bmp b/share/pixmaps/send16mask.bmp
new file mode 100644
index 0000000000..06c747f934
--- /dev/null
+++ b/share/pixmaps/send16mask.bmp
Binary files differ
diff --git a/share/pixmaps/send16masknoshadow.bmp b/share/pixmaps/send16masknoshadow.bmp
new file mode 100644
index 0000000000..faf24e0d8a
--- /dev/null
+++ b/share/pixmaps/send16masknoshadow.bmp
Binary files differ
diff --git a/share/pixmaps/send20.bmp b/share/pixmaps/send20.bmp
new file mode 100644
index 0000000000..2b90422b38
--- /dev/null
+++ b/share/pixmaps/send20.bmp
Binary files differ
diff --git a/share/pixmaps/send20mask.bmp b/share/pixmaps/send20mask.bmp
new file mode 100644
index 0000000000..f124d0da08
--- /dev/null
+++ b/share/pixmaps/send20mask.bmp
Binary files differ
diff --git a/share/setup.nsi b/share/setup.nsi
new file mode 100644
index 0000000000..8677d334e2
--- /dev/null
+++ b/share/setup.nsi
@@ -0,0 +1,149 @@
+Name Bitcoin
+
+RequestExecutionLevel highest
+
+# General Symbol Definitions
+!define REGKEY "SOFTWARE\$(^Name)"
+!define VERSION 0.3.24
+!define COMPANY "Bitcoin project"
+!define URL http://www.bitcoin.org/
+
+# MUI Symbol Definitions
+!define MUI_ICON "../share/pixmaps/bitcoin.ico"
+!define MUI_FINISHPAGE_NOAUTOCLOSE
+!define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM
+!define MUI_STARTMENUPAGE_REGISTRY_KEY ${REGKEY}
+!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME StartMenuGroup
+!define MUI_STARTMENUPAGE_DEFAULTFOLDER Bitcoin
+!define MUI_FINISHPAGE_RUN $INSTDIR\bitcoin.exe
+!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
+!define MUI_UNFINISHPAGE_NOAUTOCLOSE
+
+# Included files
+!include Sections.nsh
+!include MUI2.nsh
+
+# Variables
+Var StartMenuGroup
+
+# Installer pages
+!insertmacro MUI_PAGE_WELCOME
+!insertmacro MUI_PAGE_DIRECTORY
+!insertmacro MUI_PAGE_STARTMENU Application $StartMenuGroup
+!insertmacro MUI_PAGE_INSTFILES
+!insertmacro MUI_PAGE_FINISH
+!insertmacro MUI_UNPAGE_CONFIRM
+!insertmacro MUI_UNPAGE_INSTFILES
+
+# Installer languages
+!insertmacro MUI_LANGUAGE English
+
+# Installer attributes
+OutFile bitcoin-0.3.24-win32-setup.exe
+InstallDir $PROGRAMFILES\Bitcoin
+CRCCheck on
+XPStyle on
+ShowInstDetails show
+VIProductVersion 0.3.24.0
+VIAddVersionKey ProductName Bitcoin
+VIAddVersionKey ProductVersion "${VERSION}"
+VIAddVersionKey CompanyName "${COMPANY}"
+VIAddVersionKey CompanyWebsite "${URL}"
+VIAddVersionKey FileVersion "${VERSION}"
+VIAddVersionKey FileDescription ""
+VIAddVersionKey LegalCopyright ""
+InstallDirRegKey HKCU "${REGKEY}" Path
+ShowUninstDetails show
+
+# Installer sections
+Section -Main SEC0000
+ SetOutPath $INSTDIR
+ SetOverwrite on
+ File ../src/bitcoin.exe
+ File /oname=license.txt ../COPYING
+ File /oname=readme.txt ../doc/README_windows.txt
+ SetOutPath $INSTDIR\daemon
+ File ../src/bitcoind.exe
+ SetOutPath $INSTDIR\locale
+ File /r ../locale/*.*
+ SetOutPath $INSTDIR\src
+ File /r /x *.exe /x *.o ../src\*.*
+ SetOutPath $INSTDIR
+ WriteRegStr HKCU "${REGKEY}\Components" Main 1
+SectionEnd
+
+Section -post SEC0001
+ WriteRegStr HKCU "${REGKEY}" Path $INSTDIR
+ SetOutPath $INSTDIR
+ WriteUninstaller $INSTDIR\uninstall.exe
+ !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
+ CreateDirectory $SMPROGRAMS\$StartMenuGroup
+ CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Bitcoin.lnk" $INSTDIR\bitcoin.exe
+ CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Uninstall Bitcoin.lnk" $INSTDIR\uninstall.exe
+ !insertmacro MUI_STARTMENU_WRITE_END
+ WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayName "$(^Name)"
+ WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayVersion "${VERSION}"
+ WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" Publisher "${COMPANY}"
+ WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" URLInfoAbout "${URL}"
+ WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayIcon $INSTDIR\uninstall.exe
+ WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" UninstallString $INSTDIR\uninstall.exe
+ WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1
+ WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1
+SectionEnd
+
+# Macro for selecting uninstaller sections
+!macro SELECT_UNSECTION SECTION_NAME UNSECTION_ID
+ Push $R0
+ ReadRegStr $R0 HKCU "${REGKEY}\Components" "${SECTION_NAME}"
+ StrCmp $R0 1 0 next${UNSECTION_ID}
+ !insertmacro SelectSection "${UNSECTION_ID}"
+ GoTo done${UNSECTION_ID}
+next${UNSECTION_ID}:
+ !insertmacro UnselectSection "${UNSECTION_ID}"
+done${UNSECTION_ID}:
+ Pop $R0
+!macroend
+
+# Uninstaller sections
+Section /o -un.Main UNSEC0000
+ Delete /REBOOTOK $INSTDIR\bitcoin.exe
+ Delete /REBOOTOK $INSTDIR\license.txt
+ Delete /REBOOTOK $INSTDIR\readme.txt
+ RMDir /r /REBOOTOK $INSTDIR\daemon
+ RMDir /r /REBOOTOK $INSTDIR\locale
+ RMDir /r /REBOOTOK $INSTDIR\src
+ DeleteRegValue HKCU "${REGKEY}\Components" Main
+SectionEnd
+
+Section -un.post UNSEC0001
+ DeleteRegKey HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"
+ Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall Bitcoin.lnk"
+ Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Bitcoin.lnk"
+ Delete /REBOOTOK "$SMSTARTUP\Bitcoin.lnk"
+ Delete /REBOOTOK $INSTDIR\uninstall.exe
+ Delete /REBOOTOK $INSTDIR\debug.log
+ Delete /REBOOTOK $INSTDIR\db.log
+ DeleteRegValue HKCU "${REGKEY}" StartMenuGroup
+ DeleteRegValue HKCU "${REGKEY}" Path
+ DeleteRegKey /IfEmpty HKCU "${REGKEY}\Components"
+ DeleteRegKey /IfEmpty HKCU "${REGKEY}"
+ RmDir /REBOOTOK $SMPROGRAMS\$StartMenuGroup
+ RmDir /REBOOTOK $INSTDIR
+ Push $R0
+ StrCpy $R0 $StartMenuGroup 1
+ StrCmp $R0 ">" no_smgroup
+no_smgroup:
+ Pop $R0
+SectionEnd
+
+# Installer functions
+Function .onInit
+ InitPluginsDir
+FunctionEnd
+
+# Uninstaller functions
+Function un.onInit
+ ReadRegStr $INSTDIR HKCU "${REGKEY}" Path
+ !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuGroup
+ !insertmacro SELECT_UNSECTION Main ${UNSEC0000}
+FunctionEnd
diff --git a/share/ui.rc b/share/ui.rc
new file mode 100644
index 0000000000..063641cba2
--- /dev/null
+++ b/share/ui.rc
@@ -0,0 +1,15 @@
+bitcoin ICON "pixmaps/bitcoin.ico"
+
+#include "wx/msw/wx.rc"
+
+check ICON "pixmaps/check.ico"
+send16 BITMAP "pixmaps/send16.bmp"
+send16mask BITMAP "pixmaps/send16mask.bmp"
+send16masknoshadow BITMAP "pixmaps/send16masknoshadow.bmp"
+send20 BITMAP "pixmaps/send20.bmp"
+send20mask BITMAP "pixmaps/send20mask.bmp"
+addressbook16 BITMAP "pixmaps/addressbook16.bmp"
+addressbook16mask BITMAP "pixmaps/addressbook16mask.bmp"
+addressbook20 BITMAP "pixmaps/addressbook20.bmp"
+addressbook20mask BITMAP "pixmaps/addressbook20mask.bmp"
+favicon ICON "pixmaps/favicon.ico"
diff --git a/share/uiproject.fbp b/share/uiproject.fbp
new file mode 100644
index 0000000000..d9d46382d3
--- /dev/null
+++ b/share/uiproject.fbp
@@ -0,0 +1,6358 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<wxFormBuilder_Project>
+ <FileVersion major="1" minor="9" />
+ <object class="Project" expanded="1">
+ <property name="class_decoration"></property>
+ <property name="code_generation">C++</property>
+ <property name="disconnect_events">1</property>
+ <property name="encoding">UTF-8</property>
+ <property name="event_generation">connect</property>
+ <property name="event_handler">impl_virtual</property>
+ <property name="file">uibase</property>
+ <property name="first_id">1000</property>
+ <property name="help_provider">none</property>
+ <property name="internationalize">1</property>
+ <property name="name"></property>
+ <property name="namespace"></property>
+ <property name="path">.</property>
+ <property name="precompiled_header"></property>
+ <property name="relative_path">1</property>
+ <property name="use_enum">0</property>
+ <property name="use_microsoft_bom">0</property>
+ <object class="Frame" expanded="0">
+ <property name="bg">wxSYS_COLOUR_BTNFACE</property>
+ <property name="center"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="extra_style"></property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_MAINFRAME</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">CMainFrameBase</property>
+ <property name="pos"></property>
+ <property name="size">723,484</property>
+ <property name="style">wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER</property>
+ <property name="subclass"></property>
+ <property name="title">Bitcoin</property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style">wxTAB_TRAVERSAL</property>
+ <property name="xrc_skip_sizer">1</property>
+ <event name="OnActivate"></event>
+ <event name="OnActivateApp"></event>
+ <event name="OnChar"></event>
+ <event name="OnClose">OnClose</event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnHibernate"></event>
+ <event name="OnIconize">OnIconize</event>
+ <event name="OnIdle">OnIdle</event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents">OnMouseEvents</event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint">OnPaint</event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxMenuBar" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">MyMenuBar</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_menubar</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxMenu" expanded="1">
+ <property name="label">&amp;File</property>
+ <property name="name">m_menuFile</property>
+ <property name="permission">protected</property>
+ <object class="wxMenuItem" expanded="1">
+ <property name="bitmap"></property>
+ <property name="checked">0</property>
+ <property name="enabled">1</property>
+ <property name="help"></property>
+ <property name="id">wxID_EXIT</property>
+ <property name="kind">wxITEM_NORMAL</property>
+ <property name="label">E&amp;xit</property>
+ <property name="name">m_menuFileExit</property>
+ <property name="permission">none</property>
+ <property name="shortcut"></property>
+ <property name="unchecked_bitmap"></property>
+ <event name="OnMenuSelection">OnMenuFileExit</event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="wxMenu" expanded="1">
+ <property name="label">&amp;Settings</property>
+ <property name="name">m_menuOptions</property>
+ <property name="permission">public</property>
+ <object class="wxMenuItem" expanded="1">
+ <property name="bitmap"></property>
+ <property name="checked">0</property>
+ <property name="enabled">1</property>
+ <property name="help"></property>
+ <property name="id">wxID_ANY</property>
+ <property name="kind">wxITEM_NORMAL</property>
+ <property name="label">&amp;Your Receiving Addresses...</property>
+ <property name="name">m_menuOptionsChangeYourAddress</property>
+ <property name="permission">none</property>
+ <property name="shortcut"></property>
+ <property name="unchecked_bitmap"></property>
+ <event name="OnMenuSelection">OnMenuOptionsChangeYourAddress</event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ <object class="wxMenuItem" expanded="1">
+ <property name="bitmap"></property>
+ <property name="checked">0</property>
+ <property name="enabled">1</property>
+ <property name="help"></property>
+ <property name="id">wxID_PREFERENCES</property>
+ <property name="kind">wxITEM_NORMAL</property>
+ <property name="label">&amp;Options...</property>
+ <property name="name">m_menuOptionsOptions</property>
+ <property name="permission">none</property>
+ <property name="shortcut"></property>
+ <property name="unchecked_bitmap"></property>
+ <event name="OnMenuSelection">OnMenuOptionsOptions</event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="wxMenu" expanded="1">
+ <property name="label">&amp;Help</property>
+ <property name="name">m_menuHelp</property>
+ <property name="permission">protected</property>
+ <object class="wxMenuItem" expanded="1">
+ <property name="bitmap"></property>
+ <property name="checked">0</property>
+ <property name="enabled">1</property>
+ <property name="help"></property>
+ <property name="id">wxID_ABOUT</property>
+ <property name="kind">wxITEM_NORMAL</property>
+ <property name="label">&amp;About...</property>
+ <property name="name">m_menuHelpAbout</property>
+ <property name="permission">none</property>
+ <property name="shortcut"></property>
+ <property name="unchecked_bitmap"></property>
+ <event name="OnMenuSelection">OnMenuHelpAbout</event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ <object class="wxToolBar" expanded="1">
+ <property name="bg"></property>
+ <property name="bitmapsize">20,20</property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font">,90,90,-1,70,0</property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="margins"></property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_toolBar</property>
+ <property name="packing">1</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="separation">1</property>
+ <property name="size">-1,-1</property>
+ <property name="style">wxTB_FLAT|wxTB_HORZ_TEXT</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="tool" expanded="1">
+ <property name="bitmap">xpm/send20.xpm; Load From File</property>
+ <property name="id">wxID_BUTTONSEND</property>
+ <property name="kind">wxITEM_NORMAL</property>
+ <property name="label">Send Coins</property>
+ <property name="name">m_tool1</property>
+ <property name="statusbar"></property>
+ <property name="tooltip"></property>
+ <event name="OnMenuSelection"></event>
+ <event name="OnToolClicked">OnButtonSend</event>
+ <event name="OnToolEnter"></event>
+ <event name="OnToolRClicked"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ <object class="tool" expanded="1">
+ <property name="bitmap">xpm/addressbook20.xpm; Load From File</property>
+ <property name="id">wxID_BUTTONRECEIVE</property>
+ <property name="kind">wxITEM_NORMAL</property>
+ <property name="label">Address Book</property>
+ <property name="name">m_tool2</property>
+ <property name="statusbar"></property>
+ <property name="tooltip"></property>
+ <event name="OnMenuSelection"></event>
+ <event name="OnToolClicked">OnButtonAddressBook</event>
+ <event name="OnToolEnter"></event>
+ <event name="OnToolRClicked"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="wxStatusBar" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="fields">1</property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_statusBar</property>
+ <property name="permission">public</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style">wxST_SIZEGRIP</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer2</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="spacer" expanded="1">
+ <property name="height">2</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer85</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Your Bitcoin Address:</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticText32</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxTextCtrl" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_TEXTCTRLADDRESS</property>
+ <property name="maximum_size">-1,-1</property>
+ <property name="maxlength">0</property>
+ <property name="minimum_size">-1,-1</property>
+ <property name="name">m_textCtrlAddress</property>
+ <property name="permission">public</property>
+ <property name="pos"></property>
+ <property name="size">340,-1</property>
+ <property name="style">wxTE_READONLY</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="value"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown">OnKeyDown</event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents">OnMouseEventsAddress</event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus">OnSetFocusAddress</event>
+ <event name="OnSize"></event>
+ <event name="OnText"></event>
+ <event name="OnTextEnter"></event>
+ <event name="OnTextMaxLen"></event>
+ <event name="OnTextURL"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxRIGHT|wxALIGN_CENTER_VERTICAL</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_BUTTONNEW</property>
+ <property name="label"> &amp;New... </property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_buttonNew</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,-1</property>
+ <property name="style">wxBU_EXACTFIT</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonNew</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_BUTTONCOPY</property>
+ <property name="label"> &amp;Copy to Clipboard </property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_buttonCopy</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style">wxBU_EXACTFIT</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonCopy</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="spacer" expanded="1">
+ <property name="height">0</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer3</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND|wxALL</property>
+ <property name="proportion">1</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer66</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Balance:</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticText41</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,15</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg">255,255,255</property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font">,90,90,8,70,0</property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label"></property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticTextBalance</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">120,15</property>
+ <property name="style">wxALIGN_RIGHT|wxST_NO_AUTORESIZE</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="spacer" expanded="1">
+ <property name="height">0</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_BOTTOM|wxTOP|wxRIGHT|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxChoice" expanded="1">
+ <property name="bg"></property>
+ <property name="choices">&quot; All&quot; &quot; Sent&quot; &quot; Received&quot; &quot; In Progress&quot;</property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">1</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_choiceFilter</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="selection">0</property>
+ <property name="size">110,-1</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnChoice"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxNotebook" expanded="1">
+ <property name="bg"></property>
+ <property name="bitmapsize"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_notebook</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnNotebookPageChanged">OnNotebookPageChanged</event>
+ <event name="OnNotebookPageChanging"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="notebookpage" expanded="1">
+ <property name="bitmap"></property>
+ <property name="label">All Transactions</property>
+ <property name="select">1</property>
+ <object class="wxPanel" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_panel9</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style">wxTAB_TRAVERSAL</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer11</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxListCtrl" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_listCtrlAll</property>
+ <property name="permission">public</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style">wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_DESCENDING</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnListBeginDrag"></event>
+ <event name="OnListBeginLabelEdit"></event>
+ <event name="OnListBeginRDrag"></event>
+ <event name="OnListCacheHint"></event>
+ <event name="OnListColBeginDrag">OnListColBeginDrag</event>
+ <event name="OnListColClick"></event>
+ <event name="OnListColDragging"></event>
+ <event name="OnListColEndDrag"></event>
+ <event name="OnListColRightClick"></event>
+ <event name="OnListDeleteAllItems"></event>
+ <event name="OnListDeleteItem"></event>
+ <event name="OnListEndLabelEdit"></event>
+ <event name="OnListInsertItem"></event>
+ <event name="OnListItemActivated">OnListItemActivated</event>
+ <event name="OnListItemDeselected"></event>
+ <event name="OnListItemFocused"></event>
+ <event name="OnListItemMiddleClick"></event>
+ <event name="OnListItemRightClick"></event>
+ <event name="OnListItemSelected"></event>
+ <event name="OnListKeyDown"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint">OnPaintListCtrl</event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="notebookpage" expanded="1">
+ <property name="bitmap"></property>
+ <property name="label">Sent/Received</property>
+ <property name="select">0</property>
+ <object class="wxPanel" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_panel91</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style">wxTAB_TRAVERSAL</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer111</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxListCtrl" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_listCtrlSentReceived</property>
+ <property name="permission">public</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style">wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_DESCENDING</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnListBeginDrag"></event>
+ <event name="OnListBeginLabelEdit"></event>
+ <event name="OnListBeginRDrag"></event>
+ <event name="OnListCacheHint"></event>
+ <event name="OnListColBeginDrag">OnListColBeginDrag</event>
+ <event name="OnListColClick"></event>
+ <event name="OnListColDragging"></event>
+ <event name="OnListColEndDrag"></event>
+ <event name="OnListColRightClick"></event>
+ <event name="OnListDeleteAllItems"></event>
+ <event name="OnListDeleteItem"></event>
+ <event name="OnListEndLabelEdit"></event>
+ <event name="OnListInsertItem"></event>
+ <event name="OnListItemActivated">OnListItemActivated</event>
+ <event name="OnListItemDeselected"></event>
+ <event name="OnListItemFocused"></event>
+ <event name="OnListItemMiddleClick"></event>
+ <event name="OnListItemRightClick"></event>
+ <event name="OnListItemSelected"></event>
+ <event name="OnListKeyDown"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint">OnPaintListCtrl</event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="notebookpage" expanded="1">
+ <property name="bitmap"></property>
+ <property name="label">Sent</property>
+ <property name="select">0</property>
+ <object class="wxPanel" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_panel92</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style">wxTAB_TRAVERSAL</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer112</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxListCtrl" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_listCtrlSent</property>
+ <property name="permission">public</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style">wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_DESCENDING</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnListBeginDrag"></event>
+ <event name="OnListBeginLabelEdit"></event>
+ <event name="OnListBeginRDrag"></event>
+ <event name="OnListCacheHint"></event>
+ <event name="OnListColBeginDrag">OnListColBeginDrag</event>
+ <event name="OnListColClick"></event>
+ <event name="OnListColDragging"></event>
+ <event name="OnListColEndDrag"></event>
+ <event name="OnListColRightClick"></event>
+ <event name="OnListDeleteAllItems"></event>
+ <event name="OnListDeleteItem"></event>
+ <event name="OnListEndLabelEdit"></event>
+ <event name="OnListInsertItem"></event>
+ <event name="OnListItemActivated">OnListItemActivated</event>
+ <event name="OnListItemDeselected"></event>
+ <event name="OnListItemFocused"></event>
+ <event name="OnListItemMiddleClick"></event>
+ <event name="OnListItemRightClick"></event>
+ <event name="OnListItemSelected"></event>
+ <event name="OnListKeyDown"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint">OnPaintListCtrl</event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="notebookpage" expanded="1">
+ <property name="bitmap"></property>
+ <property name="label">Received</property>
+ <property name="select">0</property>
+ <object class="wxPanel" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_panel93</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style">wxTAB_TRAVERSAL</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer113</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxListCtrl" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_listCtrlReceived</property>
+ <property name="permission">public</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style">wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_DESCENDING</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnListBeginDrag"></event>
+ <event name="OnListBeginLabelEdit"></event>
+ <event name="OnListBeginRDrag"></event>
+ <event name="OnListCacheHint"></event>
+ <event name="OnListColBeginDrag">OnListColBeginDrag</event>
+ <event name="OnListColClick"></event>
+ <event name="OnListColDragging"></event>
+ <event name="OnListColEndDrag"></event>
+ <event name="OnListColRightClick"></event>
+ <event name="OnListDeleteAllItems"></event>
+ <event name="OnListDeleteItem"></event>
+ <event name="OnListEndLabelEdit"></event>
+ <event name="OnListInsertItem"></event>
+ <event name="OnListItemActivated">OnListItemActivated</event>
+ <event name="OnListItemDeselected"></event>
+ <event name="OnListItemFocused"></event>
+ <event name="OnListItemMiddleClick"></event>
+ <event name="OnListItemRightClick"></event>
+ <event name="OnListItemSelected"></event>
+ <event name="OnListKeyDown"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint">OnPaintListCtrl</event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="Dialog" expanded="0">
+ <property name="bg"></property>
+ <property name="center"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="extra_style"></property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">CTxDetailsDialogBase</property>
+ <property name="pos"></property>
+ <property name="size">620,450</property>
+ <property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
+ <property name="subclass"></property>
+ <property name="title">Transaction Details</property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnActivate"></event>
+ <event name="OnActivateApp"></event>
+ <event name="OnChar"></event>
+ <event name="OnClose"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnHibernate"></event>
+ <event name="OnIconize"></event>
+ <event name="OnIdle"></event>
+ <event name="OnInitDialog"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer64</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer66</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxHtmlWindow" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_htmlWin</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style">wxHW_SCROLLBAR_AUTO</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnHtmlCellClicked"></event>
+ <event name="OnHtmlCellHover"></event>
+ <event name="OnHtmlLinkClicked"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_RIGHT</property>
+ <property name="proportion">0</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer65</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_OK</property>
+ <property name="label">OK</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_buttonOK</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,-1</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonOK</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="Dialog" expanded="0">
+ <property name="bg"></property>
+ <property name="center"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="extra_style"></property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">COptionsDialogBase</property>
+ <property name="pos"></property>
+ <property name="size">540,360</property>
+ <property name="style">wxDEFAULT_DIALOG_STYLE</property>
+ <property name="subclass"></property>
+ <property name="title">Options</property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnActivate"></event>
+ <event name="OnActivateApp"></event>
+ <event name="OnChar"></event>
+ <event name="OnClose"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnHibernate"></event>
+ <event name="OnIconize"></event>
+ <event name="OnIdle"></event>
+ <event name="OnInitDialog"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer55</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">9</property>
+ <property name="flag">wxEXPAND|wxALL</property>
+ <property name="proportion">1</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer66</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND|wxRIGHT</property>
+ <property name="proportion">0</property>
+ <object class="wxListBox" expanded="1">
+ <property name="bg"></property>
+ <property name="choices"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_listBox</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">110,-1</property>
+ <property name="style">wxLB_NEEDED_SB|wxLB_SINGLE</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnListBox">OnListBox</event>
+ <event name="OnListBoxDClick"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND|wxLEFT</property>
+ <property name="proportion">1</property>
+ <object class="wxScrolledWindow" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_scrolledWindow</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="scroll_rate_x">5</property>
+ <property name="scroll_rate_y">5</property>
+ <property name="size"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer63</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxPanel" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_panelMain</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style">wxTAB_TRAVERSAL</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer69</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="spacer" expanded="1">
+ <property name="height">16</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL</property>
+ <property name="proportion">0</property>
+ <object class="wxCheckBox" expanded="1">
+ <property name="bg"></property>
+ <property name="checked">0</property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">&amp;Start Bitcoin on system startup</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_checkBoxStartOnSystemStartup</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnCheckBox"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL</property>
+ <property name="proportion">0</property>
+ <object class="wxCheckBox" expanded="1">
+ <property name="bg"></property>
+ <property name="checked">0</property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">&amp;Minimize to the tray instead of the taskbar</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_checkBoxMinimizeToTray</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnCheckBox">OnCheckBoxMinimizeToTray</event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL</property>
+ <property name="proportion">0</property>
+ <object class="wxCheckBox" expanded="1">
+ <property name="bg"></property>
+ <property name="checked">0</property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Map port using &amp;UPnP</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_checkBoxUseUPnP</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnCheckBox"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+ <property name="proportion">0</property>
+ <object class="wxCheckBox" expanded="1">
+ <property name="bg"></property>
+ <property name="checked">0</property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">M&amp;inimize to the tray on close</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_checkBoxMinimizeOnClose</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnCheckBox"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer102</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+ <property name="proportion">0</property>
+ <object class="wxCheckBox" expanded="1">
+ <property name="bg"></property>
+ <property name="checked">0</property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">&amp;Connect through socks4 proxy: </property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_checkBoxUseProxy</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnCheckBox">OnCheckBoxUseProxy</event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer103</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag"></property>
+ <property name="proportion">0</property>
+ <object class="spacer" expanded="1">
+ <property name="height">0</property>
+ <property name="permission">protected</property>
+ <property name="width">18</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Proxy &amp;IP:</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticTextProxyIP</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL</property>
+ <property name="proportion">0</property>
+ <object class="wxTextCtrl" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_PROXYIP</property>
+ <property name="maximum_size"></property>
+ <property name="maxlength">15</property>
+ <property name="minimum_size"></property>
+ <property name="name">m_textCtrlProxyIP</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">140,-1</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="value"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus">OnKillFocusProxy</event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnText"></event>
+ <event name="OnTextEnter"></event>
+ <event name="OnTextMaxLen"></event>
+ <event name="OnTextURL"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label"> &amp;Port:</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticTextProxyPort</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL</property>
+ <property name="proportion">0</property>
+ <object class="wxTextCtrl" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_PROXYPORT</property>
+ <property name="maximum_size"></property>
+ <property name="maxlength">5</property>
+ <property name="minimum_size"></property>
+ <property name="name">m_textCtrlProxyPort</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">55,-1</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="value"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus">OnKillFocusProxy</event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnText"></event>
+ <event name="OnTextEnter"></event>
+ <event name="OnTextMaxLen"></event>
+ <event name="OnTextURL"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag"></property>
+ <property name="proportion">0</property>
+ <object class="spacer" expanded="1">
+ <property name="height">1</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Optional transaction fee per KB that helps make sure your transactions are processed quickly. Most transactions are 1KB. Fee 0.01 recommended.</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticText32</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">365</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer56</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Pay transaction fee:</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticText31</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
+ <property name="proportion">0</property>
+ <object class="wxTextCtrl" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_TRANSACTIONFEE</property>
+ <property name="maximum_size"></property>
+ <property name="maxlength">0</property>
+ <property name="minimum_size"></property>
+ <property name="name">m_textCtrlTransactionFee</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">70,-1</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="value"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus">OnKillFocusTransactionFee</event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnText"></event>
+ <event name="OnTextEnter"></event>
+ <event name="OnTextMaxLen"></event>
+ <event name="OnTextURL"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxPanel" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_panelTest2</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style">wxTAB_TRAVERSAL</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer64</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="spacer" expanded="1">
+ <property name="height">16</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">// [don&apos;t translate] Test panel 2 for future expansion</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticText321</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">// [don&apos;t translate] Let&apos;s not start multiple pages until the first page is filled up</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticText69</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_RIGHT</property>
+ <property name="proportion">0</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer58</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_OK</property>
+ <property name="label">OK</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_buttonOK</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,-1</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonOK</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_CANCEL</property>
+ <property name="label">Cancel</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size">-1,-1</property>
+ <property name="name">m_buttonCancel</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,-1</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonCancel</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_APPLY</property>
+ <property name="label">&amp;Apply</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size">-1,-1</property>
+ <property name="name">m_buttonApply</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,-1</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonApply</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="Dialog" expanded="0">
+ <property name="bg"></property>
+ <property name="center"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="extra_style"></property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">CAboutDialogBase</property>
+ <property name="pos"></property>
+ <property name="size">532,333</property>
+ <property name="style">wxDEFAULT_DIALOG_STYLE</property>
+ <property name="subclass"></property>
+ <property name="title">About Bitcoin</property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnActivate"></event>
+ <event name="OnActivateApp"></event>
+ <event name="OnChar"></event>
+ <event name="OnClose"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnHibernate"></event>
+ <event name="OnIconize"></event>
+ <event name="OnIdle"></event>
+ <event name="OnInitDialog"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer63</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag"></property>
+ <property name="proportion">0</property>
+ <object class="wxStaticBitmap" expanded="1">
+ <property name="bg"></property>
+ <property name="bitmap">xpm/about.xpm; Load From File</property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_bitmap</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND|wxLEFT</property>
+ <property name="proportion">1</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer60</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer62</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer631</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="spacer" expanded="1">
+ <property name="height">65</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer64</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_BOTTOM|wxTOP|wxBOTTOM|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font">Tahoma,90,92,10,74,0</property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Bitcoin </property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticText40</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_BOTTOM|wxTOP|wxBOTTOM|wxRIGHT</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font">Tahoma,90,90,10,74,0</property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">version</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticTextVersion</property>
+ <property name="permission">public</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="spacer" expanded="1">
+ <property name="height">4</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Copyright (c) 2009-2011 Bitcoin Developers&#x0A;&#x0A;This is experimental software.&#x0A;&#x0A;Distributed under the MIT/X11 software license, see the accompanying file &#x0A;license.txt or http://www.opensource.org/licenses/mit-license.php.&#x0A;&#x0A;This product includes software developed by the OpenSSL Project for use in the &#x0A;OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by &#x0A;Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard.</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticTextMain</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="spacer" expanded="1">
+ <property name="height">0</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">2</property>
+ <property name="flag">wxALIGN_RIGHT|wxEXPAND|wxRIGHT</property>
+ <property name="proportion">0</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer61</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="spacer" expanded="1">
+ <property name="height">0</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">6</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_OK</property>
+ <property name="label">OK</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_buttonOK</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,-1</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonOK</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="Dialog" expanded="1">
+ <property name="bg"></property>
+ <property name="center"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="extra_style"></property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">CSendDialogBase</property>
+ <property name="pos"></property>
+ <property name="size">498,157</property>
+ <property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
+ <property name="subclass"></property>
+ <property name="title">Send Coins</property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnActivate"></event>
+ <event name="OnActivateApp"></event>
+ <event name="OnChar"></event>
+ <event name="OnClose"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnHibernate"></event>
+ <event name="OnIconize"></event>
+ <event name="OnIdle"></event>
+ <event name="OnInitDialog"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer21</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="spacer" expanded="1">
+ <property name="height">5</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxFlexGridSizer" expanded="1">
+ <property name="cols">2</property>
+ <property name="flexible_direction">wxBOTH</property>
+ <property name="growablecols">1</property>
+ <property name="growablerows"></property>
+ <property name="hgap">0</property>
+ <property name="minimum_size"></property>
+ <property name="name">fgSizer1</property>
+ <property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
+ <property name="permission">none</property>
+ <property name="rows">0</property>
+ <property name="vgap">0</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="spacer" expanded="1">
+ <property name="height">0</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticTextInstructions</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND|wxLEFT</property>
+ <property name="proportion">1</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size">70,-1</property>
+ <property name="name">bSizer47</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="spacer" expanded="1">
+ <property name="height">0</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticBitmap" expanded="1">
+ <property name="bg"></property>
+ <property name="bitmap">xpm/check.xpm; Load From File</property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_bitmapCheckMark</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">16,16</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Pay &amp;To:</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticText36</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,-1</property>
+ <property name="style">wxALIGN_RIGHT</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND|wxRIGHT</property>
+ <property name="proportion">1</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer19</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
+ <property name="proportion">1</property>
+ <object class="wxTextCtrl" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_TEXTCTRLPAYTO</property>
+ <property name="maximum_size"></property>
+ <property name="maxlength">0</property>
+ <property name="minimum_size"></property>
+ <property name="name">m_textCtrlAddress</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="value"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown">OnKeyDown</event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnText">OnTextAddress</event>
+ <event name="OnTextEnter"></event>
+ <event name="OnTextMaxLen"></event>
+ <event name="OnTextURL"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL</property>
+ <property name="proportion">0</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer66</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_BUTTONPASTE</property>
+ <property name="label">&amp;Paste</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_buttonPaste</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,-1</property>
+ <property name="style">wxBU_EXACTFIT</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonPaste</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_BUTTONADDRESSBOOK</property>
+ <property name="label"> Address &amp;Book...</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_buttonAddress</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonAddressBook</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">&amp;Amount:</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticText19</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,-1</property>
+ <property name="style">wxALIGN_RIGHT</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
+ <property name="proportion">0</property>
+ <object class="wxTextCtrl" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font">,90,90,-1,70,0</property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_TEXTCTRLAMOUNT</property>
+ <property name="maximum_size"></property>
+ <property name="maxlength">20</property>
+ <property name="minimum_size"></property>
+ <property name="name">m_textCtrlAmount</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">145,-1</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="value"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown">OnKeyDown</event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus">OnKillFocusAmount</event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnText"></event>
+ <event name="OnTextEnter"></event>
+ <event name="OnTextMaxLen"></event>
+ <event name="OnTextURL"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">1</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">T&amp;ransfer:</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticText20</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,-1</property>
+ <property name="style">wxALIGN_RIGHT</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
+ <property name="proportion">0</property>
+ <object class="wxChoice" expanded="1">
+ <property name="bg"></property>
+ <property name="choices">&quot; Standard&quot;</property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">1</property>
+ <property name="id">wxID_CHOICETRANSFERTYPE</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_choiceTransferType</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="selection">0</property>
+ <property name="size"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnChoice"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="spacer" expanded="1">
+ <property name="height">3</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="spacer" expanded="1">
+ <property name="height">0</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxBoxSizer" expanded="0">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer672</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxBoxSizer" expanded="0">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer23</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="spacer" expanded="1">
+ <property name="height">0</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font">,90,90,-1,70,0</property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_BUTTONSEND</property>
+ <property name="label">&amp;Send</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size">-1,-1</property>
+ <property name="name">m_buttonSend</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,-1</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonSend</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_CANCEL</property>
+ <property name="label">Cancel</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size">-1,-1</property>
+ <property name="name">m_buttonCancel</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,-1</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonCancel</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="Dialog" expanded="0">
+ <property name="bg"></property>
+ <property name="center"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="extra_style"></property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">CSendingDialogBase</property>
+ <property name="pos"></property>
+ <property name="size">442,151</property>
+ <property name="style">wxDEFAULT_DIALOG_STYLE</property>
+ <property name="subclass"></property>
+ <property name="title">Sending...</property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnActivate"></event>
+ <event name="OnActivateApp"></event>
+ <event name="OnChar"></event>
+ <event name="OnClose">OnClose</event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnHibernate"></event>
+ <event name="OnIconize"></event>
+ <event name="OnIdle"></event>
+ <event name="OnInitDialog"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint">OnPaint</event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer68</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">8</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxRIGHT|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label"></property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticTextSending</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,14</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">10</property>
+ <property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property>
+ <property name="proportion">1</property>
+ <object class="wxTextCtrl" expanded="1">
+ <property name="bg">wxSYS_COLOUR_BTNFACE</property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="maxlength">0</property>
+ <property name="minimum_size"></property>
+ <property name="name">m_textCtrlStatus</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style">wxTE_CENTRE|wxTE_MULTILINE|wxTE_NO_VSCROLL|wxTE_READONLY</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="value">&#x0A;&#x0A;Connecting...</property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style">wxNO_BORDER</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnText"></event>
+ <event name="OnTextEnter"></event>
+ <event name="OnTextMaxLen"></event>
+ <event name="OnTextURL"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer69</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="spacer" expanded="1">
+ <property name="height">0</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">0</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">OK</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size">-1,-1</property>
+ <property name="name">m_buttonOK</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonOK</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_CANCEL</property>
+ <property name="label">Cancel</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size">-1,-1</property>
+ <property name="name">m_buttonCancel</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,-1</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonCancel</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="Dialog" expanded="0">
+ <property name="bg"></property>
+ <property name="center"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="extra_style"></property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">CYourAddressDialogBase</property>
+ <property name="pos"></property>
+ <property name="size">610,390</property>
+ <property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
+ <property name="subclass"></property>
+ <property name="title">Your Bitcoin Addresses</property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnActivate"></event>
+ <event name="OnActivateApp"></event>
+ <event name="OnChar"></event>
+ <event name="OnClose">OnClose</event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnHibernate"></event>
+ <event name="OnIconize"></event>
+ <event name="OnIdle"></event>
+ <event name="OnInitDialog"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer68</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="spacer" expanded="1">
+ <property name="height">5</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. The highlighted address is displayed in the main window.</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticText45</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">590</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxListCtrl" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_LISTCTRL</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_listCtrl</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style">wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_ASCENDING</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnListBeginDrag"></event>
+ <event name="OnListBeginLabelEdit"></event>
+ <event name="OnListBeginRDrag"></event>
+ <event name="OnListCacheHint"></event>
+ <event name="OnListColBeginDrag"></event>
+ <event name="OnListColClick"></event>
+ <event name="OnListColDragging"></event>
+ <event name="OnListColEndDrag"></event>
+ <event name="OnListColRightClick"></event>
+ <event name="OnListDeleteAllItems"></event>
+ <event name="OnListDeleteItem"></event>
+ <event name="OnListEndLabelEdit">OnListEndLabelEdit</event>
+ <event name="OnListInsertItem"></event>
+ <event name="OnListItemActivated">OnListItemActivated</event>
+ <event name="OnListItemDeselected"></event>
+ <event name="OnListItemFocused"></event>
+ <event name="OnListItemMiddleClick"></event>
+ <event name="OnListItemRightClick"></event>
+ <event name="OnListItemSelected">OnListItemSelected</event>
+ <event name="OnListKeyDown"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer69</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="spacer" expanded="1">
+ <property name="height">0</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_BUTTONRENAME</property>
+ <property name="label">&amp;Edit...</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size">-1,-1</property>
+ <property name="name">m_buttonRename</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonRename</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_BUTTONNEW</property>
+ <property name="label"> &amp;New Address... </property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size">-1,-1</property>
+ <property name="name">m_buttonNew</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,-1</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonNew</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_BUTTONCOPY</property>
+ <property name="label"> &amp;Copy to Clipboard </property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size">-1,-1</property>
+ <property name="name">m_buttonCopy</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,-1</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonCopy</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_OK</property>
+ <property name="label">OK</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size">-1,-1</property>
+ <property name="name">m_buttonOK</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonOK</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">1</property>
+ <property name="id">wxID_CANCEL</property>
+ <property name="label">Cancel</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size">-1,-1</property>
+ <property name="name">m_buttonCancel</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,-1</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonCancel</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="Dialog" expanded="0">
+ <property name="bg"></property>
+ <property name="center"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="extra_style"></property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">CAddressBookDialogBase</property>
+ <property name="pos"></property>
+ <property name="size">610,390</property>
+ <property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
+ <property name="subclass"></property>
+ <property name="title">Address Book</property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnActivate"></event>
+ <event name="OnActivateApp"></event>
+ <event name="OnChar"></event>
+ <event name="OnClose">OnClose</event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnHibernate"></event>
+ <event name="OnIconize"></event>
+ <event name="OnIdle"></event>
+ <event name="OnInitDialog"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer58</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND|wxTOP|wxRIGHT|wxLEFT</property>
+ <property name="proportion">1</property>
+ <object class="wxNotebook" expanded="1">
+ <property name="bg"></property>
+ <property name="bitmapsize"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_notebook</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnNotebookPageChanged">OnNotebookPageChanged</event>
+ <event name="OnNotebookPageChanging"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="notebookpage" expanded="1">
+ <property name="bitmap"></property>
+ <property name="label">Sending</property>
+ <property name="select">0</property>
+ <object class="wxPanel" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_PANELSENDING</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_panelSending</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style">wxTAB_TRAVERSAL</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer68</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="spacer" expanded="1">
+ <property name="height">0</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">1</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Bitcoin Address</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticText55</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxListCtrl" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_LISTCTRLSENDING</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_listCtrlSending</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style">wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_ASCENDING</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnListBeginDrag"></event>
+ <event name="OnListBeginLabelEdit"></event>
+ <event name="OnListBeginRDrag"></event>
+ <event name="OnListCacheHint"></event>
+ <event name="OnListColBeginDrag"></event>
+ <event name="OnListColClick"></event>
+ <event name="OnListColDragging"></event>
+ <event name="OnListColEndDrag"></event>
+ <event name="OnListColRightClick"></event>
+ <event name="OnListDeleteAllItems"></event>
+ <event name="OnListDeleteItem"></event>
+ <event name="OnListEndLabelEdit">OnListEndLabelEdit</event>
+ <event name="OnListInsertItem"></event>
+ <event name="OnListItemActivated">OnListItemActivated</event>
+ <event name="OnListItemDeselected"></event>
+ <event name="OnListItemFocused"></event>
+ <event name="OnListItemMiddleClick"></event>
+ <event name="OnListItemRightClick"></event>
+ <event name="OnListItemSelected">OnListItemSelected</event>
+ <event name="OnListKeyDown"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="notebookpage" expanded="1">
+ <property name="bitmap"></property>
+ <property name="label">Receiving</property>
+ <property name="select">1</property>
+ <object class="wxPanel" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_PANELRECEIVING</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_panelReceiving</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style">wxTAB_TRAVERSAL</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer681</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="spacer" expanded="1">
+ <property name="height">0</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">6</property>
+ <property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">These are your Bitcoin addresses for receiving payments. You can give a different one to each sender to keep track of who is paying you. The highlighted address will be displayed in the main window.</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticText45</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">570</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="spacer" expanded="1">
+ <property name="height">2</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxListCtrl" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_LISTCTRLRECEIVING</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_listCtrlReceiving</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style">wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_ASCENDING</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnListBeginDrag"></event>
+ <event name="OnListBeginLabelEdit"></event>
+ <event name="OnListBeginRDrag"></event>
+ <event name="OnListCacheHint"></event>
+ <event name="OnListColBeginDrag"></event>
+ <event name="OnListColClick"></event>
+ <event name="OnListColDragging"></event>
+ <event name="OnListColEndDrag"></event>
+ <event name="OnListColRightClick"></event>
+ <event name="OnListDeleteAllItems"></event>
+ <event name="OnListDeleteItem"></event>
+ <event name="OnListEndLabelEdit">OnListEndLabelEdit</event>
+ <event name="OnListInsertItem"></event>
+ <event name="OnListItemActivated">OnListItemActivated</event>
+ <event name="OnListItemDeselected"></event>
+ <event name="OnListItemFocused"></event>
+ <event name="OnListItemMiddleClick"></event>
+ <event name="OnListItemRightClick"></event>
+ <event name="OnListItemSelected">OnListItemSelected</event>
+ <event name="OnListKeyDown"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer69</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="spacer" expanded="1">
+ <property name="height">0</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_BUTTONDELETE</property>
+ <property name="label">&amp;Delete</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size">-1,-1</property>
+ <property name="name">m_buttonDelete</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonDelete</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_BUTTONCOPY</property>
+ <property name="label"> &amp;Copy to Clipboard </property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size">-1,-1</property>
+ <property name="name">m_buttonCopy</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,-1</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonCopy</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_BUTTONEDIT</property>
+ <property name="label">&amp;Edit...</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size">-1,-1</property>
+ <property name="name">m_buttonEdit</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonEdit</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_BUTTONNEW</property>
+ <property name="label"> &amp;New Address... </property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size">-1,-1</property>
+ <property name="name">m_buttonNew</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonNew</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_OK</property>
+ <property name="label">OK</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size">-1,-1</property>
+ <property name="name">m_buttonOK</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,-1</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonOK</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_CANCEL</property>
+ <property name="label">Cancel</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size">-1,-1</property>
+ <property name="name">m_buttonCancel</property>
+ <property name="permission">public</property>
+ <property name="pos"></property>
+ <property name="size">-1,-1</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonCancel</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="Dialog" expanded="0">
+ <property name="bg"></property>
+ <property name="center"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="extra_style"></property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">CGetTextFromUserDialogBase</property>
+ <property name="pos"></property>
+ <property name="size">440,138</property>
+ <property name="style">wxDEFAULT_DIALOG_STYLE</property>
+ <property name="subclass"></property>
+ <property name="title"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnActivate"></event>
+ <event name="OnActivateApp"></event>
+ <event name="OnChar"></event>
+ <event name="OnClose">OnClose</event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnHibernate"></event>
+ <event name="OnIconize"></event>
+ <event name="OnIdle"></event>
+ <event name="OnInitDialog"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer79</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">10</property>
+ <property name="flag">wxEXPAND|wxALL</property>
+ <property name="proportion">1</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer81</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="spacer" expanded="1">
+ <property name="height">0</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label"></property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticTextMessage1</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL</property>
+ <property name="proportion">0</property>
+ <object class="wxTextCtrl" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_TEXTCTRL</property>
+ <property name="maximum_size"></property>
+ <property name="maxlength">0</property>
+ <property name="minimum_size"></property>
+ <property name="name">m_textCtrl1</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style">wxTE_PROCESS_ENTER</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="value"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown">OnKeyDown</event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnText"></event>
+ <event name="OnTextEnter"></event>
+ <event name="OnTextMaxLen"></event>
+ <event name="OnTextURL"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">1</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label"></property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">m_staticTextMessage2</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL</property>
+ <property name="proportion">0</property>
+ <object class="wxTextCtrl" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">1</property>
+ <property name="id">wxID_TEXTCTRL</property>
+ <property name="maximum_size"></property>
+ <property name="maxlength">0</property>
+ <property name="minimum_size"></property>
+ <property name="name">m_textCtrl2</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style">wxTE_PROCESS_ENTER</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="value"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown">OnKeyDown</event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnText"></event>
+ <event name="OnTextEnter"></event>
+ <event name="OnTextMaxLen"></event>
+ <event name="OnTextURL"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="spacer" expanded="1">
+ <property name="height">0</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer80</property>
+ <property name="orient">wxHORIZONTAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="spacer" expanded="1">
+ <property name="height">0</property>
+ <property name="permission">protected</property>
+ <property name="width">0</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_OK</property>
+ <property name="label">OK</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size">-1,-1</property>
+ <property name="name">m_buttonOK</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size">-1,-1</property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonOK</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="1">
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="default">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_CANCEL</property>
+ <property name="label">Cancel</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size">-1,-1</property>
+ <property name="name">m_buttonCancel</property>
+ <property name="permission">protected</property>
+ <property name="pos"></property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">OnButtonCancel</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+</wxFormBuilder_Project>
diff --git a/src/cryptopp/License.txt b/src/cryptopp/License.txt
new file mode 100644
index 0000000000..fc3f054693
--- /dev/null
+++ b/src/cryptopp/License.txt
@@ -0,0 +1,67 @@
+Compilation Copyright (c) 1995-2009 by Wei Dai. All rights reserved.
+This copyright applies only to this software distribution package
+as a compilation, and does not imply a copyright on any particular
+file in the package.
+
+The following files are copyrighted by their respective original authors,
+and their use is subject to additional licenses included in these files.
+
+mars.cpp - Copyright 1998 Brian Gladman.
+
+All other files in this compilation are placed in the public domain by
+Wei Dai and other contributors.
+
+I would like to thank the following authors for placing their works into
+the public domain:
+
+Joan Daemen - 3way.cpp
+Leonard Janke - cast.cpp, seal.cpp
+Steve Reid - cast.cpp
+Phil Karn - des.cpp
+Andrew M. Kuchling - md2.cpp, md4.cpp
+Colin Plumb - md5.cpp
+Seal Woods - rc6.cpp
+Chris Morgan - rijndael.cpp
+Paulo Baretto - rijndael.cpp, skipjack.cpp, square.cpp
+Richard De Moliner - safer.cpp
+Matthew Skala - twofish.cpp
+Kevin Springle - camellia.cpp, shacal2.cpp, ttmac.cpp, whrlpool.cpp, ripemd.cpp
+
+Permission to use, copy, modify, and distribute this compilation for
+any purpose, including commercial applications, is hereby granted
+without fee, subject to the following restrictions:
+
+1. Any copy or modification of this compilation in any form, except
+in object code form as part of an application software, must include
+the above copyright notice and this license.
+
+2. Users of this software agree that any modification or extension
+they provide to Wei Dai will be considered public domain and not
+copyrighted unless it includes an explicit copyright notice.
+
+3. Wei Dai makes no warranty or representation that the operation of the
+software in this compilation will be error-free, and Wei Dai is under no
+obligation to provide any services, by way of maintenance, update, or
+otherwise. THE SOFTWARE AND ANY DOCUMENTATION ARE PROVIDED "AS IS"
+WITHOUT EXPRESS OR IMPLIED WARRANTY INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. IN NO EVENT WILL WEI DAI OR ANY OTHER CONTRIBUTOR BE LIABLE FOR
+DIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+4. Users will not use Wei Dai or any other contributor's name in any
+publicity or advertising, without prior written consent in each case.
+
+5. Export of this software from the United States may require a
+specific license from the United States Government. It is the
+responsibility of any person or organization contemplating export
+to obtain such a license before exporting.
+
+6. Certain parts of this software may be protected by patents. It
+is the users' responsibility to obtain the appropriate
+licenses before using those parts.
+
+If this compilation is used in object code form in an application
+software, acknowledgement of the author is not required but would be
+appreciated. The contribution of any useful modifications or extensions
+to Wei Dai is not required but would also be appreciated.
diff --git a/src/cryptopp/Readme.txt b/src/cryptopp/Readme.txt
new file mode 100644
index 0000000000..861c036c68
--- /dev/null
+++ b/src/cryptopp/Readme.txt
@@ -0,0 +1,429 @@
+Crypto++: a C++ Class Library of Cryptographic Schemes
+Version 5.6.0 (3/15/2009)
+
+Crypto++ Library is a free C++ class library of cryptographic schemes.
+Currently the library contains the following algorithms:
+
+ algorithm type name
+
+ authenticated encryption schemes GCM, CCM, EAX
+
+ high speed stream ciphers Panama, Sosemanuk, Salsa20, XSalsa20
+
+ AES and AES candidates AES (Rijndael), RC6, MARS, Twofish, Serpent,
+ CAST-256
+
+ IDEA, Triple-DES (DES-EDE2 and DES-EDE3),
+ other block ciphers Camellia, SEED, RC5, Blowfish, TEA, XTEA,
+ Skipjack, SHACAL-2
+
+ block cipher modes of operation ECB, CBC, CBC ciphertext stealing (CTS),
+ CFB, OFB, counter mode (CTR)
+
+ message authentication codes VMAC, HMAC, CMAC, CBC-MAC, DMAC,
+ Two-Track-MAC
+
+ SHA-1, SHA-2 (SHA-224, SHA-256, SHA-384, and
+ hash functions SHA-512), Tiger, WHIRLPOOL, RIPEMD-128,
+ RIPEMD-256, RIPEMD-160, RIPEMD-320
+
+ RSA, DSA, ElGamal, Nyberg-Rueppel (NR),
+ public-key cryptography Rabin, Rabin-Williams (RW), LUC, LUCELG,
+ DLIES (variants of DHAES), ESIGN
+
+ padding schemes for public-key PKCS#1 v2.0, OAEP, PSS, PSSR, IEEE P1363
+ systems EMSA2 and EMSA5
+
+ Diffie-Hellman (DH), Unified Diffie-Hellman
+ key agreement schemes (DH2), Menezes-Qu-Vanstone (MQV), LUCDIF,
+ XTR-DH
+
+ elliptic curve cryptography ECDSA, ECNR, ECIES, ECDH, ECMQV
+
+ insecure or obsolescent MD2, MD4, MD5, Panama Hash, DES, ARC4, SEAL
+algorithms retained for backwards 3.0, WAKE, WAKE-OFB, DESX (DES-XEX3), RC2,
+ compatibility and historical SAFER, 3-WAY, GOST, SHARK, CAST-128, Square
+ value
+
+Other features include:
+
+ * pseudo random number generators (PRNG): ANSI X9.17 appendix C, RandomPool
+ * password based key derivation functions: PBKDF1 and PBKDF2 from PKCS #5,
+ PBKDF from PKCS #12 appendix B
+ * Shamir's secret sharing scheme and Rabin's information dispersal algorithm
+ (IDA)
+ * fast multi-precision integer (bignum) and polynomial operations
+ * finite field arithmetics, including GF(p) and GF(2^n)
+ * prime number generation and verification
+ * useful non-cryptographic algorithms
+ + DEFLATE (RFC 1951) compression/decompression with gzip (RFC 1952) and
+ zlib (RFC 1950) format support
+ + hex, base-32, and base-64 coding/decoding
+ + 32-bit CRC and Adler32 checksum
+ * class wrappers for these operating system features (optional):
+ + high resolution timers on Windows, Unix, and Mac OS
+ + Berkeley and Windows style sockets
+ + Windows named pipes
+ + /dev/random, /dev/urandom, /dev/srandom
+ + Microsoft's CryptGenRandom on Windows
+ * A high level interface for most of the above, using a filter/pipeline
+ metaphor
+ * benchmarks and validation testing
+ * x86, x86-64 (x64), MMX, and SSE2 assembly code for the most commonly used
+ algorithms, with run-time CPU feature detection and code selection
+ * some versions are available in FIPS 140-2 validated form
+
+You are welcome to use it for any purpose without paying me, but see
+License.txt for the fine print.
+
+The following compilers are supported for this release. Please visit
+http://www.cryptopp.com the most up to date build instructions and porting notes.
+
+ * MSVC 6.0 - 2008
+ * GCC 3.3 - 4.3
+ * C++Builder 2009
+ * Intel C++ Compiler 9 - 11
+ * Sun Studio 12 (CC 5.9)
+
+*** Important Usage Notes ***
+
+1. If a constructor for A takes a pointer to an object B (except primitive
+types such as int and char), then A owns B and will delete B at A's
+destruction. If a constructor for A takes a reference to an object B,
+then the caller retains ownership of B and should not destroy it until
+A no longer needs it.
+
+2. Crypto++ is thread safe at the class level. This means you can use
+Crypto++ safely in a multithreaded application, but you must provide
+synchronization when multiple threads access a common Crypto++ object.
+
+*** MSVC-Specific Information ***
+
+On Windows, Crypto++ can be compiled into 3 forms: a static library
+including all algorithms, a DLL with only FIPS Approved algorithms, and
+a static library with only algorithms not in the DLL.
+(FIPS Approved means Approved according to the FIPS 140-2 standard.)
+The DLL may be used by itself, or it may be used together with the second
+form of the static library. MSVC project files are included to build
+all three forms, and sample applications using each of the three forms
+are also included.
+
+To compile Crypto++ with MSVC, open the "cryptest.dsw" (for MSVC 6 and MSVC .NET
+2003) or "cryptest.sln" (for MSVC .NET 2005) workspace file and build one or
+more of the following projects:
+
+cryptdll - This builds the DLL. Please note that if you wish to use Crypto++
+ as a FIPS validated module, you must use a pre-built DLL that has undergone
+ the FIPS validation process instead of building your own.
+dlltest - This builds a sample application that only uses the DLL.
+cryptest Non-DLL-Import Configuration - This builds the full static library
+ along with a full test driver.
+cryptest DLL-Import Configuration - This builds a static library containing
+ only algorithms not in the DLL, along with a full test driver that uses
+ both the DLL and the static library.
+
+To use the Crypto++ DLL in your application, #include "dll.h" before including
+any other Crypto++ header files, and place the DLL in the same directory as
+your .exe file. dll.h includes the line #pragma comment(lib, "cryptopp")
+so you don't have to explicitly list the import library in your project
+settings. To use a static library form of Crypto++, specify it as
+an additional library to link with in your project settings.
+In either case you should check the compiler options to
+make sure that the library and your application are using the same C++
+run-time libraries and calling conventions.
+
+*** DLL Memory Management ***
+
+Because it's possible for the Crypto++ DLL to delete objects allocated
+by the calling application, they must use the same C++ memory heap. Three
+methods are provided to achieve this.
+1. The calling application can tell Crypto++ what heap to use. This method
+ is required when the calling application uses a non-standard heap.
+2. Crypto++ can tell the calling application what heap to use. This method
+ is required when the calling application uses a statically linked C++ Run
+ Time Library. (Method 1 does not work in this case because the Crypto++ DLL
+ is initialized before the calling application's heap is initialized.)
+3. Crypto++ can automatically use the heap provided by the calling application's
+ dynamically linked C++ Run Time Library. The calling application must
+ make sure that the dynamically linked C++ Run Time Library is initialized
+ before Crypto++ is loaded. (At this time it is not clear if it is possible
+ to control the order in which DLLs are initialized on Windows 9x machines,
+ so it might be best to avoid using this method.)
+
+When Crypto++ attaches to a new process, it searches all modules loaded
+into the process space for exported functions "GetNewAndDeleteForCryptoPP"
+and "SetNewAndDeleteFromCryptoPP". If one of these functions is found,
+Crypto++ uses methods 1 or 2, respectively, by calling the function.
+Otherwise, method 3 is used.
+
+*** GCC-Specific Information ***
+
+A makefile is included for you to compile Crypto++ with GCC. Make sure
+you are using GNU Make and GNU ld. The make process will produce two files,
+libcryptopp.a and cryptest.exe. Run "cryptest.exe v" for the validation
+suite.
+
+*** Documentation and Support ***
+
+Crypto++ is documented through inline comments in header files, which are
+processed through Doxygen to produce an HTML reference manual. You can find
+a link to the manual from http://www.cryptopp.com. Also at that site is
+the Crypto++ FAQ, which you should browse through before attempting to
+use this library, because it will likely answer many of questions that
+may come up.
+
+If you run into any problems, please try the Crypto++ mailing list.
+The subscription information and the list archive are available on
+http://www.cryptopp.com. You can also email me directly by visiting
+http://www.weidai.com, but you will probably get a faster response through
+the mailing list.
+
+*** History ***
+
+1.0 - First public release. Withdrawn at the request of RSA DSI.
+ - included Blowfish, BBS, DES, DH, Diamond, DSA, ElGamal, IDEA,
+ MD5, RC4, RC5, RSA, SHA, WAKE, secret sharing, DEFLATE compression
+ - had a serious bug in the RSA key generation code.
+
+1.1 - Removed RSA, RC4, RC5
+ - Disabled calls to RSAREF's non-public functions
+ - Minor bugs fixed
+
+2.0 - a completely new, faster multiprecision integer class
+ - added MD5-MAC, HAVAL, 3-WAY, TEA, SAFER, LUC, Rabin, BlumGoldwasser,
+ elliptic curve algorithms
+ - added the Lucas strong probable primality test
+ - ElGamal encryption and signature schemes modified to avoid weaknesses
+ - Diamond changed to Diamond2 because of key schedule weakness
+ - fixed bug in WAKE key setup
+ - SHS class renamed to SHA
+ - lots of miscellaneous optimizations
+
+2.1 - added Tiger, HMAC, GOST, RIPE-MD160, LUCELG, LUCDIF, XOR-MAC,
+ OAEP, PSSR, SHARK
+ - added precomputation to DH, ElGamal, DSA, and elliptic curve algorithms
+ - added back RC5 and a new RSA
+ - optimizations in elliptic curves over GF(p)
+ - changed Rabin to use OAEP and PSSR
+ - changed many classes to allow copy constructors to work correctly
+ - improved exception generation and handling
+
+2.2 - added SEAL, CAST-128, Square
+ - fixed bug in HAVAL (padding problem)
+ - fixed bug in triple-DES (decryption order was reversed)
+ - fixed bug in RC5 (couldn't handle key length not a multiple of 4)
+ - changed HMAC to conform to RFC-2104 (which is not compatible
+ with the original HMAC)
+ - changed secret sharing and information dispersal to use GF(2^32)
+ instead of GF(65521)
+ - removed zero knowledge prover/verifier for graph isomorphism
+ - removed several utility classes in favor of the C++ standard library
+
+2.3 - ported to EGCS
+ - fixed incomplete workaround of min/max conflict in MSVC
+
+3.0 - placed all names into the "CryptoPP" namespace
+ - added MD2, RC2, RC6, MARS, RW, DH2, MQV, ECDHC, CBC-CTS
+ - added abstract base classes PK_SimpleKeyAgreementDomain and
+ PK_AuthenticatedKeyAgreementDomain
+ - changed DH and LUCDIF to implement the PK_SimpleKeyAgreementDomain
+ interface and to perform domain parameter and key validation
+ - changed interfaces of PK_Signer and PK_Verifier to sign and verify
+ messages instead of message digests
+ - changed OAEP to conform to PKCS#1 v2.0
+ - changed benchmark code to produce HTML tables as output
+ - changed PSSR to track IEEE P1363a
+ - renamed ElGamalSignature to NR and changed it to track IEEE P1363
+ - renamed ECKEP to ECMQVC and changed it to track IEEE P1363
+ - renamed several other classes for clarity
+ - removed support for calling RSAREF
+ - removed option to compile old SHA (SHA-0)
+ - removed option not to throw exceptions
+
+3.1 - added ARC4, Rijndael, Twofish, Serpent, CBC-MAC, DMAC
+ - added interface for querying supported key lengths of symmetric ciphers
+ and MACs
+ - added sample code for RSA signature and verification
+ - changed CBC-CTS to be compatible with RFC 2040
+ - updated SEAL to version 3.0 of the cipher specification
+ - optimized multiprecision squaring and elliptic curves over GF(p)
+ - fixed bug in MARS key setup
+ - fixed bug with attaching objects to Deflator
+
+3.2 - added DES-XEX3, ECDSA, DefaultEncryptorWithMAC
+ - renamed DES-EDE to DES-EDE2 and TripleDES to DES-EDE3
+ - optimized ARC4
+ - generalized DSA to allow keys longer than 1024 bits
+ - fixed bugs in GF2N and ModularArithmetic that can cause calculation errors
+ - fixed crashing bug in Inflator when given invalid inputs
+ - fixed endian bug in Serpent
+ - fixed padding bug in Tiger
+
+4.0 - added Skipjack, CAST-256, Panama, SHA-2 (SHA-256, SHA-384, and SHA-512),
+ and XTR-DH
+ - added a faster variant of Rabin's Information Dispersal Algorithm (IDA)
+ - added class wrappers for these operating system features:
+ - high resolution timers on Windows, Unix, and MacOS
+ - Berkeley and Windows style sockets
+ - Windows named pipes
+ - /dev/random and /dev/urandom on Linux and FreeBSD
+ - Microsoft's CryptGenRandom on Windows
+ - added support for SEC 1 elliptic curve key format and compressed points
+ - added support for X.509 public key format (subjectPublicKeyInfo) for
+ RSA, DSA, and elliptic curve schemes
+ - added support for DER and OpenPGP signature format for DSA
+ - added support for ZLIB compressed data format (RFC 1950)
+ - changed elliptic curve encryption to use ECIES (as defined in SEC 1)
+ - changed MARS key schedule to reflect the latest specification
+ - changed BufferedTransformation interface to support multiple channels
+ and messages
+ - changed CAST and SHA-1 implementations to use public domain source code
+ - fixed bug in StringSource
+ - optmized multi-precision integer code for better performance
+
+4.1 - added more support for the recommended elliptic curve parameters in SEC 2
+ - added Panama MAC, MARC4
+ - added IV stealing feature to CTS mode
+ - added support for PKCS #8 private key format for RSA, DSA, and elliptic
+ curve schemes
+ - changed Deflate, MD5, Rijndael, and Twofish to use public domain code
+ - fixed a bug with flushing compressed streams
+ - fixed a bug with decompressing stored blocks
+ - fixed a bug with EC point decompression using non-trinomial basis
+ - fixed a bug in NetworkSource::GeneralPump()
+ - fixed a performance issue with EC over GF(p) decryption
+ - fixed syntax to allow GCC to compile without -fpermissive
+ - relaxed some restrictions in the license
+
+4.2 - added support for longer HMAC keys
+ - added MD4 (which is not secure so use for compatibility purposes only)
+ - added compatibility fixes/workarounds for STLport 4.5, GCC 3.0.2,
+ and MSVC 7.0
+ - changed MD2 to use public domain code
+ - fixed a bug with decompressing multiple messages with the same object
+ - fixed a bug in CBC-MAC with MACing multiple messages with the same object
+ - fixed a bug in RC5 and RC6 with zero-length keys
+ - fixed a bug in Adler32 where incorrect checksum may be generated
+
+5.0 - added ESIGN, DLIES, WAKE-OFB, PBKDF1 and PBKDF2 from PKCS #5
+ - added key validation for encryption and signature public/private keys
+ - renamed StreamCipher interface to SymmetricCipher, which is now implemented
+ by both stream ciphers and block cipher modes including ECB and CBC
+ - added keying interfaces to support resetting of keys and IVs without
+ having to destroy and recreate objects
+ - changed filter interface to support non-blocking input/output
+ - changed SocketSource and SocketSink to use overlapped I/O on Microsoft Windows
+ - grouped related classes inside structs to help templates, for example
+ AESEncryption and AESDecryption are now AES::Encryption and AES::Decryption
+ - where possible, typedefs have been added to improve backwards
+ compatibility when the CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY macro is defined
+ - changed Serpent, HAVAL and IDEA to use public domain code
+ - implemented SSE2 optimizations for Integer operations
+ - fixed a bug in HMAC::TruncatedFinal()
+ - fixed SKIPJACK byte ordering following NIST clarification dated 5/9/02
+
+5.01 - added known answer test for X9.17 RNG in FIPS 140 power-up self test
+ - submitted to NIST/CSE, but not publicly released
+
+5.02 - changed EDC test to MAC integrity check using HMAC/SHA1
+ - improved performance of integrity check
+ - added blinding to defend against RSA timing attack
+
+5.03 - created DLL version of Crypto++ for FIPS 140-2 validation
+ - fixed vulnerabilities in GetNextIV for CTR and OFB modes
+
+5.0.4 - Removed DES, SHA-256, SHA-384, SHA-512 from DLL
+
+5.1 - added PSS padding and changed PSSR to track IEEE P1363a draft standard
+ - added blinding for RSA and Rabin to defend against timing attacks
+ on decryption operations
+ - changed signing and decryption APIs to support the above
+ - changed WaitObjectContainer to allow waiting for more than 64
+ objects at a time on Win32 platforms
+ - fixed a bug in CBC and ECB modes with processing non-aligned data
+ - fixed standard conformance bugs in DLIES (DHAES mode) and RW/EMSA2
+ signature scheme (these fixes are not backwards compatible)
+ - fixed a number of compiler warnings, minor bugs, and portability problems
+ - removed Sapphire
+
+5.2 - merged in changes for 5.01 - 5.0.4
+ - added support for using encoding parameters and key derivation parameters
+ with public key encryption (implemented by OAEP and DL/ECIES)
+ - added Camellia, SHACAL-2, Two-Track-MAC, Whirlpool, RIPEMD-320,
+ RIPEMD-128, RIPEMD-256, Base-32 coding, FIPS variant of CFB mode
+ - added ThreadUserTimer for timing thread CPU usage
+ - added option for password-based key derivation functions
+ to iterate until a mimimum elapsed thread CPU time is reached
+ - added option (on by default) for DEFLATE compression to detect
+ uncompressible files and process them more quickly
+ - improved compatibility and performance on 64-bit platforms,
+ including Alpha, IA-64, x86-64, PPC64, Sparc64, and MIPS64
+ - fixed ONE_AND_ZEROS_PADDING to use 0x80 instead 0x01 as padding.
+ - fixed encoding/decoding of PKCS #8 privateKeyInfo to properly
+ handle optional attributes
+
+5.2.1 - fixed bug in the "dlltest" DLL testing program
+ - fixed compiling with STLport using VC .NET
+ - fixed compiling with -fPIC using GCC
+ - fixed compiling with -msse2 on systems without memalign()
+ - fixed inability to instantiate PanamaMAC
+ - fixed problems with inline documentation
+
+5.2.2 - added SHA-224
+ - put SHA-256, SHA-384, SHA-512, RSASSA-PSS into DLL
+
+5.2.3 - fixed issues with FIPS algorithm test vectors
+ - put RSASSA-ISO into DLL
+
+5.3 - ported to MSVC 2005 with support for x86-64
+ - added defense against AES timing attacks, and more AES test vectors
+ - changed StaticAlgorithmName() of Rijndael to "AES", CTR to "CTR"
+
+5.4 - added Salsa20
+ - updated Whirlpool to version 3.0
+ - ported to GCC 4.1, Sun C++ 5.8, and Borland C++Builder 2006
+
+5.5 - added VMAC and Sosemanuk (with x86-64 and SSE2 assembly)
+ - improved speed of integer arithmetic, AES, SHA-512, Tiger, Salsa20,
+ Whirlpool, and PANAMA cipher using assembly (x86-64, MMX, SSE2)
+ - optimized Camellia and added defense against timing attacks
+ - updated benchmarks code to show cycles per byte and to time key/IV setup
+ - started using OpenMP for increased multi-core speed
+ - enabled GCC optimization flags by default in GNUmakefile
+ - added blinding and computational error checking for RW signing
+ - changed RandomPool, X917RNG, GetNextIV, DSA/NR/ECDSA/ECNR to reduce
+ the risk of reusing random numbers and IVs after virtual machine state
+ rollback
+ - changed default FIPS mode RNG from AutoSeededX917RNG<DES_EDE3> to
+ AutoSeededX917RNG<AES>
+ - fixed PANAMA cipher interface to accept 256-bit key and 256-bit IV
+ - moved MD2, MD4, MD5, PanamaHash, ARC4, WAKE_CFB into the namespace "Weak"
+ - removed HAVAL, MD5-MAC, XMAC
+
+5.5.1 - fixed VMAC validation failure on 32-bit big-endian machines
+
+5.5.2 - ported x64 assembly language code for AES, Salsa20, Sosemanuk, and Panama
+ to MSVC 2005 (using MASM since MSVC doesn't support inline assembly on x64)
+ - fixed Salsa20 initialization crash on non-SSE2 machines
+ - fixed Whirlpool crash on Pentium 2 machines
+ - fixed possible branch prediction analysis (BPA) vulnerability in
+ MontgomeryReduce(), which may affect security of RSA, RW, LUC
+ - fixed link error with MSVC 2003 when using "debug DLL" form of runtime library
+ - fixed crash in SSE2_Add on P4 machines when compiled with
+ MSVC 6.0 SP5 with Processor Pack
+ - ported to MSVC 2008, GCC 4.2, Sun CC 5.9, Intel C++ Compiler 10.0,
+ and Borland C++Builder 2007
+
+5.6 - added AuthenticatedSymmetricCipher interface class and Filter wrappers
+ - added CCM, GCM (with SSE2 assembly), EAX, CMAC, XSalsa20, and SEED
+ - added support for variable length IVs
+ - improved AES and SHA-256 speed on x86 and x64
+ - fixed incorrect VMAC computation on message lengths
+ that are >64 mod 128 (x86 assembly version is not affected)
+ - fixed compiler error in vmac.cpp on x86 with GCC -fPIC
+ - fixed run-time validation error on x86-64 with GCC 4.3.2 -O2
+ - fixed HashFilter bug when putMessage=true
+ - removed WORD64_AVAILABLE; compiler support for 64-bit int is now required
+ - ported to GCC 4.3, C++Builder 2009, Sun CC 5.10, Intel C++ Compiler 11
+
+Written by Wei Dai
diff --git a/src/cryptopp/cpu.cpp b/src/cryptopp/cpu.cpp
index d36d3253ae..3e46804212 100644
--- a/src/cryptopp/cpu.cpp
+++ b/src/cryptopp/cpu.cpp
@@ -1,11 +1,11 @@
// cpu.cpp - written and placed in the public domain by Wei Dai
-#include "cryptopp/pch.h"
+#include "pch.h"
#ifndef CRYPTOPP_IMPORTS
-#include "cryptopp/cpu.h"
-#include "cryptopp/misc.h"
+#include "cpu.h"
+#include "misc.h"
#include <algorithm>
#ifdef __GNUC__
diff --git a/src/cryptopp/cpu.h b/src/cryptopp/cpu.h
index 113b8a1f3b..7f01dad852 100644
--- a/src/cryptopp/cpu.h
+++ b/src/cryptopp/cpu.h
@@ -10,7 +10,7 @@
#else
-#include "cryptopp/config.h"
+#include "config.h"
#ifdef CRYPTOPP_MSVC6PP_OR_LATER
#include <emmintrin.h>
diff --git a/src/cryptopp/cryptlib.h b/src/cryptopp/cryptlib.h
index 1461af7b7b..15cd6dad67 100644
--- a/src/cryptopp/cryptlib.h
+++ b/src/cryptopp/cryptlib.h
@@ -79,8 +79,8 @@ and getting me started with this manual.
#ifndef CRYPTOPP_CRYPTLIB_H
#define CRYPTOPP_CRYPTLIB_H
-#include "cryptopp/config.h"
-#include "cryptopp/stdcpp.h"
+#include "config.h"
+#include "stdcpp.h"
NAMESPACE_BEGIN(CryptoPP)
diff --git a/src/cryptopp/iterhash.h b/src/cryptopp/iterhash.h
index 0e2a147728..2f5895e2d3 100644
--- a/src/cryptopp/iterhash.h
+++ b/src/cryptopp/iterhash.h
@@ -1,7 +1,7 @@
#ifndef CRYPTOPP_ITERHASH_H
#define CRYPTOPP_ITERHASH_H
-#include "cryptopp/secblock.h"
+#include "secblock.h"
NAMESPACE_BEGIN(CryptoPP)
diff --git a/src/cryptopp/misc.h b/src/cryptopp/misc.h
index 5258e2abca..de8037bf61 100644
--- a/src/cryptopp/misc.h
+++ b/src/cryptopp/misc.h
@@ -1,8 +1,8 @@
#ifndef CRYPTOPP_MISC_H
#define CRYPTOPP_MISC_H
-#include "cryptopp/cryptlib.h"
-#include "cryptopp/smartptr.h"
+#include "cryptlib.h"
+#include "smartptr.h"
#include <string.h> // for memcpy and memmove
#ifdef _MSC_VER
diff --git a/src/cryptopp/obj/.gitignore b/src/cryptopp/obj/.gitignore
new file mode 100644
index 0000000000..d6b7ef32c8
--- /dev/null
+++ b/src/cryptopp/obj/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/src/cryptopp/secblock.h b/src/cryptopp/secblock.h
index 6433f97349..2025757dbb 100644
--- a/src/cryptopp/secblock.h
+++ b/src/cryptopp/secblock.h
@@ -3,8 +3,8 @@
#ifndef CRYPTOPP_SECBLOCK_H
#define CRYPTOPP_SECBLOCK_H
-#include "cryptopp/config.h"
-#include "cryptopp/misc.h"
+#include "config.h"
+#include "misc.h"
#include <assert.h>
#if defined(CRYPTOPP_MEMALIGN_AVAILABLE) || defined(CRYPTOPP_MM_MALLOC_AVAILABLE) || defined(QNX)
diff --git a/src/cryptopp/sha.cpp b/src/cryptopp/sha.cpp
index 1ff6c0b45c..fd0b0a2596 100644
--- a/src/cryptopp/sha.cpp
+++ b/src/cryptopp/sha.cpp
@@ -5,14 +5,14 @@
// use "cl /EP /P /DCRYPTOPP_GENERATE_X64_MASM sha.cpp" to generate MASM code
-#include "cryptopp/pch.h"
+#include "pch.h"
#ifndef CRYPTOPP_IMPORTS
#ifndef CRYPTOPP_GENERATE_X64_MASM
-#include "cryptopp/sha.h"
-#include "cryptopp/misc.h"
-#include "cryptopp/cpu.h"
+#include "sha.h"
+#include "misc.h"
+#include "cpu.h"
NAMESPACE_BEGIN(CryptoPP)
diff --git a/src/cryptopp/sha.h b/src/cryptopp/sha.h
index 8d0dbfcac7..679081e8fa 100644
--- a/src/cryptopp/sha.h
+++ b/src/cryptopp/sha.h
@@ -1,7 +1,7 @@
#ifndef CRYPTOPP_SHA_H
#define CRYPTOPP_SHA_H
-#include "cryptopp/iterhash.h"
+#include "iterhash.h"
NAMESPACE_BEGIN(CryptoPP)
diff --git a/src/cryptopp/smartptr.h b/src/cryptopp/smartptr.h
index fa0daec3df..6b4040e999 100644
--- a/src/cryptopp/smartptr.h
+++ b/src/cryptopp/smartptr.h
@@ -1,7 +1,7 @@
#ifndef CRYPTOPP_SMARTPTR_H
#define CRYPTOPP_SMARTPTR_H
-#include "cryptopp/config.h"
+#include "config.h"
#include <algorithm>
NAMESPACE_BEGIN(CryptoPP)
diff --git a/src/json/LICENSE.txt b/src/json/LICENSE.txt
new file mode 100644
index 0000000000..797d5363b3
--- /dev/null
+++ b/src/json/LICENSE.txt
@@ -0,0 +1,24 @@
+The MIT License
+
+Copyright (c) 2007 - 2009 John W. Wilkinson
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
diff --git a/src/json/json_spirit_reader.cpp b/src/json/json_spirit_reader.cpp
index 3469bf17af..aa4f637226 100644
--- a/src/json/json_spirit_reader.cpp
+++ b/src/json/json_spirit_reader.cpp
@@ -3,8 +3,8 @@
// json spirit version 4.03
-#include "json/json_spirit_reader.h"
-#include "json/json_spirit_reader_template.h"
+#include "json_spirit_reader.h"
+#include "json_spirit_reader_template.h"
using namespace json_spirit;
diff --git a/src/json/json_spirit_value.cpp b/src/json/json_spirit_value.cpp
index 2d7236855d..44d2f06a01 100644
--- a/src/json/json_spirit_value.cpp
+++ b/src/json/json_spirit_value.cpp
@@ -5,4 +5,4 @@
// json spirit version 2.00
-#include "json/json_spirit_value.h"
+#include "json_spirit_value.h"
diff --git a/src/json/json_spirit_writer.cpp b/src/json/json_spirit_writer.cpp
index 32dfeb2c6c..d24a632cf3 100644
--- a/src/json/json_spirit_writer.cpp
+++ b/src/json/json_spirit_writer.cpp
@@ -3,8 +3,8 @@
// json spirit version 4.03
-#include "json/json_spirit_writer.h"
-#include "json/json_spirit_writer_template.h"
+#include "json_spirit_writer.h"
+#include "json_spirit_writer_template.h"
void json_spirit::write( const Value& value, std::ostream& os )
{
diff --git a/src/makefile.linux-mingw b/src/makefile.linux-mingw
new file mode 100644
index 0000000000..3fb18ff28d
--- /dev/null
+++ b/src/makefile.linux-mingw
@@ -0,0 +1,111 @@
+# Copyright (c) 2009-2010 Satoshi Nakamoto
+# Distributed under the MIT/X11 software license, see the accompanying
+# file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+DEPSDIR:=/usr/i586-mingw32msvc
+
+INCLUDEPATHS= \
+ -I"$(DEPSDIR)/boost_1_43_0" \
+ -I"$(DEPSDIR)/db-4.7.25.NC/build_unix" \
+ -I"$(DEPSDIR)/openssl-1.0.0d/include" \
+ -I"$(DEPSDIR)/wxWidgets-2.9.1/lib/gcc_lib/mswud" \
+ -I"$(DEPSDIR)/wxWidgets-2.9.1/include" \
+ -I"$(DEPSDIR)/wxWidgets-2.9.1/lib/wx/include/i586-mingw32msvc-msw-unicode-static-2.9/" \
+ -I"$(DEPSDIR)"
+
+LIBPATHS= \
+ -L"$(DEPSDIR)/boost_1_43_0/stage/lib" \
+ -L"$(DEPSDIR)/db-4.7.25.NC/build_unix" \
+ -L"$(DEPSDIR)/openssl-1.0.0d" \
+ -L"$(DEPSDIR)/wxWidgets-2.9.1/lib"
+
+WXLIBS= -l wx_mswu-2.9-i586-mingw32msvc
+
+LIBS= \
+ -l boost_system-mt-s \
+ -l boost_filesystem-mt-s \
+ -l boost_program_options-mt-s \
+ -l boost_thread_win32-mt-s \
+ -l db_cxx \
+ -l ssl \
+ -l crypto
+
+DEFS=-D_MT -DWIN32 -D__WXMSW__ -D_WINDOWS -DNOPCH -DUSE_SSL
+DEBUGFLAGS=-g -D__WXDEBUG__
+CFLAGS=-O2 -w -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
+HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
+ script.h db.h net.h irc.h keystore.h main.h wallet.h rpc.h uibase.h ui.h noui.h init.h
+
+bitcoin.exe: USE_UPNP:=1
+ ifdef USE_UPNP
+ INCLUDEPATHS += -I"$(DEPSDIR)/upnpc-exe-win32-20110215"
+ LIBPATHS += -L"$(DEPSDIR)/upnpc-exe-win32-20110215"
+ LIBS += -l miniupnpc -l iphlpapi
+ DEFS += -DSTATICLIB -DUSE_UPNP=$(USE_UPNP)
+ endif
+
+bitcoind.exe: USE_UPNP:=0
+ ifdef USE_UPNP
+ INCLUDEPATHS += -I"$(DEPSDIR)/upnpc-exe-win32-20110215"
+ LIBPATHS += -L"$(DEPSDIR)/upnpc-exe-win32-20110215"
+ LIBS += -l miniupnpc -l iphlpapi
+ DEFS += -DSTATICLIB -DUSE_UPNP=$(USE_UPNP)
+ endif
+
+LIBS += -l mingwthrd -l kernel32 -l user32 -l gdi32 -l comdlg32 -l winspool -l winmm -l shell32 -l comctl32 -l ole32 -l oleaut32 -l uuid -l rpcrt4 -l advapi32 -l ws2_32 -l shlwapi
+
+OBJS= \
+ obj/util.o \
+ obj/script.o \
+ obj/db.o \
+ obj/net.o \
+ obj/irc.o \
+ obj/keystore.o \
+ obj/main.o \
+ obj/wallet.o \
+ obj/rpc.o \
+ obj/init.o \
+ cryptopp/obj/sha.o \
+ cryptopp/obj/cpu.o
+
+
+all: bitcoin.exe
+
+
+obj/%.o: %.cpp $(HEADERS)
+ i586-mingw32msvc-g++ -c $(CFLAGS) -DGUI -o $@ $<
+
+cryptopp/obj/%.o: cryptopp/%.cpp
+ i586-mingw32msvc-g++ -c $(CFLAGS) -O3 -DCRYPTOPP_DISABLE_ASM -o $@ $<
+
+obj/ui_res.o: ../share/ui.rc ../share/pixmaps/bitcoin.ico ../share/pixmaps/check.ico ../share/pixmaps/send16.bmp ../share/pixmaps/send16mask.bmp ../share/pixmaps/send16masknoshadow.bmp ../share/pixmaps/send20.bmp ../share/pixmaps/send20mask.bmp ../share/pixmaps/addressbook16.bmp ../share/pixmaps/addressbook16mask.bmp ../share/pixmaps/addressbook20.bmp ../share/pixmaps/addressbook20mask.bmp
+ i586-mingw32msvc-windres $(DEFS) $(INCLUDEPATHS) -o $@ -i $<
+
+bitcoin.exe: $(OBJS) obj/ui.o obj/uibase.o obj/ui_res.o
+ i586-mingw32msvc-g++ $(CFLAGS) -mwindows -Wl,--subsystem,windows -o $@ $(LIBPATHS) $^ $(WXLIBS) $(LIBS)
+
+
+obj/nogui/%.o: %.cpp $(HEADERS)
+ i586-mingw32msvc-g++ -c $(CFLAGS) -o $@ $<
+
+bitcoind.exe: $(OBJS:obj/%=obj/nogui/%) obj/ui_res.o
+ i586-mingw32msvc-g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
+
+
+obj/test/%.o: obj/test/%.cpp $(HEADERS)
+ i586-mingw32msvc-g++ -c $(CFLAGS) -o $@ $<
+
+test_bitcoin.exe: obj/test/test_bitcoin.o
+ i586-mingw32msvc-g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS) -lboost_unit_test_framework-mt-s
+
+
+clean:
+ -rm -f obj/*.o
+ -rm -f obj/nogui/*.o
+ -rm -f obj/test/*.o
+ -rm -f cryptopp/obj/*.o
+ -rm -f test/*.o
+ -rm -f headers.h.gch
+ -rm -f bitcoin.exe
+ -rm -f bitcoind.exe
+ -rm -f test_bitcoin.exe
diff --git a/src/makefile.mingw b/src/makefile.mingw
new file mode 100644
index 0000000000..507833be48
--- /dev/null
+++ b/src/makefile.mingw
@@ -0,0 +1,97 @@
+# Copyright (c) 2009-2010 Satoshi Nakamoto
+# Distributed under the MIT/X11 software license, see the accompanying
+# file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+USE_UPNP:=0
+
+INCLUDEPATHS= \
+ -I"C:\boost-1.43.0-mgw" \
+ -I"C:\db-4.7.25.NC-mgw\build_unix" \
+ -I"C:\openssl-1.0.0d-mgw\include" \
+ -I"C:\wxWidgets-2.9.1-mgw\lib\gcc_lib\mswud" \
+ -I"C:\wxWidgets-2.9.1-mgw\include"
+
+LIBPATHS= \
+ -L"C:\boost-1.43.0-mgw\stage\lib" \
+ -L"C:\db-4.7.25.NC-mgw\build_unix" \
+ -L"C:\openssl-1.0.0d-mgw" \
+ -L"C:\wxWidgets-2.9.1-mgw\lib\gcc_lib"
+
+WXLIBS= \
+ -l wxmsw29ud_html -l wxmsw29ud_core -l wxmsw29ud_adv -l wxbase29ud -l wxtiffd -l wxjpegd -l wxpngd -l wxzlibd
+
+LIBS= \
+ -l boost_system-mgw45-mt-s-1_43 \
+ -l boost_filesystem-mgw45-mt-s-1_43 \
+ -l boost_program_options-mgw45-mt-s-1_43 \
+ -l boost_thread-mgw45-mt-s-1_43 \
+ -l db_cxx \
+ -l ssl \
+ -l crypto
+
+DEFS=-DWIN32 -D__WXMSW__ -D_WINDOWS -DNOPCH -DUSE_SSL
+DEBUGFLAGS=-g -D__WXDEBUG__
+CFLAGS=-mthreads -O2 -w -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
+HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
+ script.h db.h net.h irc.h keystore.h main.h wallet.h rpc.h uibase.h ui.h noui.h init.h
+
+ifdef USE_UPNP
+ INCLUDEPATHS += -I"C:\upnpc-exe-win32-20110215"
+ LIBPATHS += -L"C:\upnpc-exe-win32-20110215"
+ LIBS += -l miniupnpc -l iphlpapi
+ DEFS += -DSTATICLIB -DUSE_UPNP=$(USE_UPNP)
+endif
+
+LIBS += -l kernel32 -l user32 -l gdi32 -l comdlg32 -l winspool -l winmm -l shell32 -l comctl32 -l ole32 -l oleaut32 -l uuid -l rpcrt4 -l advapi32 -l ws2_32 -l shlwapi
+
+OBJS= \
+ obj/util.o \
+ obj/script.o \
+ obj/db.o \
+ obj/net.o \
+ obj/irc.o \
+ obj/keystore.o \
+ obj/main.o \
+ obj/wallet.o \
+ obj/rpc.o \
+ obj/init.o \
+ cryptopp/obj/sha.o \
+ cryptopp/obj/cpu.o
+
+
+all: bitcoin.exe
+
+
+obj/%.o: %.cpp $(HEADERS)
+ g++ -c $(CFLAGS) -DGUI -o $@ $<
+
+cryptopp/obj/%.o: cryptopp/%.cpp
+ g++ -c $(CFLAGS) -O3 -DCRYPTOPP_X86_ASM_AVAILABLE -o $@ $<
+
+obj/ui_res.o: ../share/ui.rc ../share/pixmaps/bitcoin.ico ../share/pixmaps/check.ico ../share/pixmaps/send16.bmp ../share/pixmaps/send16mask.bmp ../share/pixmaps/send16masknoshadow.bmp ../share/pixmaps/send20.bmp ../share/pixmaps/send20mask.bmp ../share/pixmaps/addressbook16.bmp ../share/pixmaps/addressbook16mask.bmp ../share/pixmaps/addressbook20.bmp ../share/pixmaps/addressbook20mask.bmp
+ windres $(DEFS) $(INCLUDEPATHS) -o $@ -i $<
+
+bitcoin.exe: $(OBJS) obj/ui.o obj/uibase.o obj/ui_res.o
+ g++ $(CFLAGS) -mwindows -Wl,--subsystem,windows -o $@ $(LIBPATHS) $^ $(WXLIBS) $(LIBS)
+
+
+obj/nogui/%.o: %.cpp $(HEADERS)
+ g++ -c $(CFLAGS) -o $@ $<
+
+bitcoind.exe: $(OBJS:obj/%=obj/nogui/%) obj/ui_res.o
+ g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
+
+obj/test/%.o: obj/test/%.cpp $(HEADERS)
+ g++ -c $(CFLAGS) -o $@ $<
+
+test_bitcoin: obj/test/test_bitcoin.o
+ g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
+
+clean:
+ -del /Q bitcoin bitcoind test_bitcoin
+ -del /Q obj\*
+ -del /Q obj\nogui\*
+ -del /Q obj\test\*
+ -del /Q cryptopp\obj\*
+ -del /Q test\*.o
+ -del /Q headers.h.gch
diff --git a/src/makefile.osx b/src/makefile.osx
new file mode 100644
index 0000000000..784596b72d
--- /dev/null
+++ b/src/makefile.osx
@@ -0,0 +1,88 @@
+# Copyright (c) 2010 Laszlo Hanyecz
+# Distributed under the MIT/X11 software license, see the accompanying
+# file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+# Mac OS X makefile for bitcoin
+# Laszlo Hanyecz (solar@heliacal.net)
+
+CXX=llvm-g++
+DEPSDIR=/Users/macosuser/bitcoin/deps
+
+INCLUDEPATHS= \
+ -I"$(DEPSDIR)/include"
+
+LIBPATHS= \
+ -L"$(DEPSDIR)/lib"
+
+WXLIBS=$(shell $(DEPSDIR)/bin/wx-config --libs --static)
+
+USE_UPNP:=0
+
+LIBS= -dead_strip \
+ $(DEPSDIR)/lib/libdb_cxx-4.8.a \
+ $(DEPSDIR)/lib/libboost_system.a \
+ $(DEPSDIR)/lib/libboost_filesystem.a \
+ $(DEPSDIR)/lib/libboost_program_options.a \
+ $(DEPSDIR)/lib/libboost_thread.a \
+ $(DEPSDIR)/lib/libssl.a \
+ $(DEPSDIR)/lib/libcrypto.a
+
+DEFS=$(shell $(DEPSDIR)/bin/wx-config --cxxflags) -D__WXMAC_OSX__ -DNOPCH -DMSG_NOSIGNAL=0 -DUSE_SSL
+
+DEBUGFLAGS=-g -DwxDEBUG_LEVEL=0
+# ppc doesn't work because we don't support big-endian
+CFLAGS=-mmacosx-version-min=10.5 -arch i386 -arch x86_64 -O3 -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
+HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
+ script.h db.h net.h irc.h keystore.h main.h wallet.h rpc.h uibase.h ui.h noui.h init.h
+
+OBJS= \
+ obj/util.o \
+ obj/script.o \
+ obj/db.o \
+ obj/net.o \
+ obj/irc.o \
+ obj/keystore.o \
+ obj/main.o \
+ obj/wallet.o \
+ obj/rpc.o \
+ obj/init.o \
+ cryptopp/obj/sha.o \
+ cryptopp/obj/cpu.o
+
+ifdef USE_UPNP
+ LIBS += $(DEPSDIR)/lib/libminiupnpc.a
+ DEFS += -DUSE_UPNP=$(USE_UPNP)
+endif
+
+
+all: bitcoin
+
+
+obj/%.o: %.cpp $(HEADERS)
+ $(CXX) -c $(CFLAGS) -DGUI -o $@ $<
+
+cryptopp/obj/%.o: cryptopp/%.cpp
+ $(CXX) -c $(CFLAGS) -O3 -DCRYPTOPP_DISABLE_ASM -o $@ $<
+
+bitcoin: $(OBJS) obj/ui.o obj/uibase.o
+ $(CXX) $(CFLAGS) -o $@ $(LIBPATHS) $^ $(WXLIBS) $(LIBS)
+
+
+obj/nogui/%.o: %.cpp $(HEADERS)
+ $(CXX) -c $(CFLAGS) -o $@ $<
+
+bitcoind: $(OBJS:obj/%=obj/nogui/%)
+ $(CXX) $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
+
+obj/test/%.o: test/%.cpp $(HEADERS)
+ $(CXX) -c $(CFLAGS) -o $@ $<
+
+test_bitcoin: obj/test/test_bitcoin.o
+ $(CXX) $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS) -lboost_unit_test_framework
+
+clean:
+ -rm -f bitcoin bitcoind test_bitcoin
+ -rm -f obj/*.o
+ -rm -f obj/nogui/*.o
+ -rm -f obj/test/*.o
+ -rm -f cryptopp/obj/*.o
diff --git a/src/makefile.unix b/src/makefile.unix
new file mode 100644
index 0000000000..bb26bf5edd
--- /dev/null
+++ b/src/makefile.unix
@@ -0,0 +1,90 @@
+# Copyright (c) 2009-2010 Satoshi Nakamoto
+# Distributed under the MIT/X11 software license, see the accompanying
+# file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+CXX=g++
+
+WXINCLUDEPATHS=$(shell wx-config --cxxflags)
+
+WXLIBS=$(shell wx-config --libs)
+
+USE_UPNP:=0
+
+DEFS=-DNOPCH -DFOURWAYSSE2 -DUSE_SSL
+
+# for boost 1.37, add -mt to the boost libraries
+LIBS= \
+ -Wl,-Bstatic \
+ -l boost_system \
+ -l boost_filesystem \
+ -l boost_program_options \
+ -l boost_thread \
+ -l db_cxx \
+ -l ssl \
+ -l crypto
+
+ifdef USE_UPNP
+ LIBS += -l miniupnpc
+ DEFS += -DUSE_UPNP=$(USE_UPNP)
+endif
+
+LIBS+= \
+ -Wl,-Bdynamic \
+ -l gthread-2.0 \
+ -l z \
+ -l dl \
+ -l pthread
+
+
+DEBUGFLAGS=-g -D__WXDEBUG__
+CXXFLAGS=-O2 -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS)
+HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
+ script.h db.h net.h irc.h keystore.h main.h wallet.h rpc.h uibase.h ui.h noui.h init.h
+
+OBJS= \
+ obj/util.o \
+ obj/script.o \
+ obj/db.o \
+ obj/net.o \
+ obj/irc.o \
+ obj/keystore.o \
+ obj/main.o \
+ obj/wallet.o \
+ obj/rpc.o \
+ obj/init.o \
+ cryptopp/obj/sha.o \
+ cryptopp/obj/cpu.o
+
+
+all: bitcoin
+
+
+obj/%.o: %.cpp $(HEADERS)
+ $(CXX) -c $(CXXFLAGS) $(WXINCLUDEPATHS) -DGUI -o $@ $<
+
+cryptopp/obj/%.o: cryptopp/%.cpp
+ $(CXX) -c $(CXXFLAGS) -O3 -o $@ $<
+
+bitcoin: $(OBJS) obj/ui.o obj/uibase.o
+ $(CXX) $(CXXFLAGS) -o $@ $^ $(WXLIBS) $(LIBS)
+
+
+obj/nogui/%.o: %.cpp $(HEADERS)
+ $(CXX) -c $(CXXFLAGS) -o $@ $<
+
+bitcoind: $(OBJS:obj/%=obj/nogui/%)
+ $(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
+
+obj/test/%.o: test/%.cpp $(HEADERS)
+ $(CXX) -c $(CFLAGS) -o $@ $<
+
+test_bitcoin: obj/test/test_bitcoin.o
+ $(CXX) $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS) -lboost_unit_test_framework
+
+clean:
+ -rm -f bitcoin bitcoind test_bitcoin
+ -rm -f obj/*.o
+ -rm -f obj/nogui/*.o
+ -rm -f obj/test/*.o
+ -rm -f cryptopp/obj/*.o
+ -rm -f headers.h.gch
diff --git a/src/makefile.vc b/src/makefile.vc
new file mode 100644
index 0000000000..b25ba60c50
--- /dev/null
+++ b/src/makefile.vc
@@ -0,0 +1,145 @@
+# Copyright (c) 2009-2010 Satoshi Nakamoto
+# Distributed under the MIT/X11 software license, see the accompanying
+# file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+
+INCLUDEPATHS= \
+ /I"/boost" \
+ /I"/db/build_windows" \
+ /I"/openssl/include" \
+ /I"/wxwidgets/lib/vc_lib/mswu" \
+ /I"/wxwidgets/include" /
+ /I"/miniupnpc"
+
+LIBPATHS= \
+ /LIBPATH:"/boost/stage/lib" \
+ /LIBPATH:"/db/build_windows/Release" \
+ /LIBPATH:"/openssl/lib" \
+ /LIBPATH:"/wxwidgets/lib/vc_lib" \
+ /LIBPATH:"/miniupnpc/msvc/Release" \
+ /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib \
+ /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib \
+ /NODEFAULTLIB:msvcrtd.lib
+
+WXLIBS=wxmsw29u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib
+
+USE_UPNP=0
+
+DEFS=/DWIN32 /D__WXMSW__ /D_WINDOWS /DNOPCH /DNOMINMAX
+
+LIBS= \
+ libboost_system-vc100-mt.lib \
+ libboost_filesystem-vc100-mt.lib \
+ libboost_program_options-vc100-mt.lib \
+ libboost_thread-vc100-mt.lib \
+ libdb47s.lib \
+ libeay32.lib
+
+!IFDEF USE_UPNP
+LIBS=$(LIBS) miniupnpc.lib
+DEFS=$(DEFS) /DUSE_UPNP=$(USE_UPNP)
+!ENDIF
+
+LIBS=$(LIBS) \
+ kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib ws2_32.lib shlwapi.lib
+
+DEBUGFLAGS=/Os
+CFLAGS=/MD /c /nologo /EHsc /GR /Zm300 $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
+HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
+ script.h db.h net.h irc.h main.h rpc.h uibase.h ui.h noui.h init.h wallet.h keystore.h
+
+OBJS= \
+ obj\util.obj \
+ obj\script.obj \
+ obj\db.obj \
+ obj\net.obj \
+ obj\irc.obj \
+ obj\keystore.obj \
+ obj\main.obj \
+ obj\wallet.obj \
+ obj\rpc.obj \
+ obj\init.obj
+
+CRYPTOPP_OBJS= \
+ cryptopp\obj\sha.obj \
+ cryptopp\obj\cpu.obj
+
+RC=../share
+
+
+all: bitcoin.exe
+
+
+.cpp{obj}.obj:
+ cl $(CFLAGS) /DGUI /Fo$@ %s
+
+obj\util.obj: $(HEADERS)
+
+obj\script.obj: $(HEADERS)
+
+obj\db.obj: $(HEADERS)
+
+obj\net.obj: $(HEADERS)
+
+obj\irc.obj: $(HEADERS)
+
+obj\keystore.obj: $(HEADERS)
+
+obj\main.obj: $(HEADERS)
+
+obj\wallet.obj: $(HEADERS)
+
+obj\rpc.obj: $(HEADERS)
+
+obj\init.obj: $(HEADERS)
+
+obj\ui.obj: $(HEADERS)
+
+obj\uibase.obj: $(HEADERS)
+
+cryptopp\obj\sha.obj: cryptopp\sha.cpp
+ cl $(CFLAGS) /O2 /DCRYPTOPP_DISABLE_ASM /Fo$@ %s
+
+cryptopp\obj\cpu.obj: cryptopp\cpu.cpp
+ cl $(CFLAGS) /O2 /DCRYPTOPP_DISABLE_ASM /Fo$@ %s
+
+obj\ui.res: $(RC)/ui.rc $(RC)/pixmaps/bitcoin.ico $(RC)/pixmaps/check.ico $(RC)/pixmaps/send16.bmp $(RC)/pixmaps/send16mask.bmp $(RC)/pixmaps/send16masknoshadow.bmp $(RC)/pixmaps/send20.bmp $(RC)/pixmaps/send20mask.bmp $(RC)/pixmaps/addressbook16.bmp $(RC)/pixmaps/addressbook16mask.bmp $(RC)/pixmaps/addressbook20.bmp $(RC)/pixmaps/addressbook20mask.bmp
+ rc $(INCLUDEPATHS) $(DEFS) /Fo$@ %s
+
+bitcoin.exe: $(OBJS) $(CRYPTOPP_OBJS) obj\ui.obj obj\uibase.obj obj\ui.res
+ link /nologo /SUBSYSTEM:WINDOWS /OUT:$@ $(LIBPATHS) $** $(WXLIBS) $(LIBS)
+
+
+.cpp{obj\nogui}.obj:
+ cl $(CFLAGS) /Fo$@ %s
+
+obj\nogui\util.obj: $(HEADERS)
+
+obj\nogui\script.obj: $(HEADERS)
+
+obj\nogui\db.obj: $(HEADERS)
+
+obj\nogui\net.obj: $(HEADERS)
+
+obj\nogui\irc.obj: $(HEADERS)
+
+obj\nogui\keystore.obj: $(HEADERS)
+
+obj\nogui\main.obj: $(HEADERS)
+
+obj\nogui\wallet.obj: $(HEADERS)
+
+obj\nogui\rpc.obj: $(HEADERS)
+
+obj\nogui\init.obj: $(HEADERS)
+
+bitcoind.exe: $(OBJS:obj\=obj\nogui\) $(CRYPTOPP_OBJS) obj\ui.res
+ link /nologo /OUT:$@ $(LIBPATHS) $** $(LIBS)
+
+
+clean:
+ -del /Q obj\*
+ -del /Q obj\nogui\*
+ -del /Q cryptopp\obj\*
+ -del /Q *.ilk
+ -del /Q *.pdb
diff --git a/src/obj/.gitignore b/src/obj/.gitignore
new file mode 100644
index 0000000000..d6b7ef32c8
--- /dev/null
+++ b/src/obj/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/src/obj/nogui/.gitignore b/src/obj/nogui/.gitignore
new file mode 100644
index 0000000000..d6b7ef32c8
--- /dev/null
+++ b/src/obj/nogui/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/src/obj/test/.gitignore b/src/obj/test/.gitignore
new file mode 100644
index 0000000000..d6b7ef32c8
--- /dev/null
+++ b/src/obj/test/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/src/test/README b/src/test/README
new file mode 100644
index 0000000000..77f7faa815
--- /dev/null
+++ b/src/test/README
@@ -0,0 +1,21 @@
+The sources in this directory are unit test cases. Boost includes a
+unit testing framework, and since bitcoin already uses boost, it makes
+sense to simply use this framework rather than require developers to
+configure some other framework (we want as few impediments to creating
+unit tests as possible).
+
+The build system is setup to compile an executable called "test_bitcoin"
+that runs all of the unit tests. The main source file is called
+test_bitcoin.cpp, which simply includes other files that contain the
+actual unit tests (outside of a couple required preprocessor
+directives). The pattern is to create one test file for each class or
+source file for which you want to create unit tests. The file naming
+convention is "<source_filename>_tests.cpp" and such files should wrap
+their tests in a test suite called "<source_filename>_tests". For an
+examples of this pattern, examine uint160_tests.cpp and
+uint256_tests.cpp.
+
+For further reading, I found the following website to be helpful in
+explaining how the boost unit test framework works:
+
+http://www.alittlemadness.com/2009/03/31/c-unit-testing-with-boosttest/
diff --git a/src/test/test_bitcoin.cpp b/src/test/test_bitcoin.cpp
new file mode 100644
index 0000000000..3b7d2d2f2c
--- /dev/null
+++ b/src/test/test_bitcoin.cpp
@@ -0,0 +1,6 @@
+#define BOOST_TEST_MODULE uint160
+#include <boost/test/unit_test.hpp>
+
+#include "uint160_tests.cpp"
+#include "uint256_tests.cpp"
+
diff --git a/src/test/uint160_tests.cpp b/src/test/uint160_tests.cpp
new file mode 100644
index 0000000000..66ffd285b8
--- /dev/null
+++ b/src/test/uint160_tests.cpp
@@ -0,0 +1,16 @@
+#include "../uint256.h"
+
+BOOST_AUTO_TEST_SUITE(uint160_tests)
+
+BOOST_AUTO_TEST_CASE(equality)
+{
+ uint160 num1 = 10;
+ uint160 num2 = 11;
+ BOOST_CHECK(num1+1 == num2);
+
+ uint64 num3 = 10;
+ BOOST_CHECK(num1 == num3);
+ BOOST_CHECK(num1+num2 == num3+num2);
+}
+
+BOOST_AUTO_TEST_SUITE_END()
diff --git a/src/test/uint256_tests.cpp b/src/test/uint256_tests.cpp
new file mode 100644
index 0000000000..cbae9bf6d2
--- /dev/null
+++ b/src/test/uint256_tests.cpp
@@ -0,0 +1,16 @@
+#include "../uint256.h"
+
+BOOST_AUTO_TEST_SUITE(uint256_tests)
+
+BOOST_AUTO_TEST_CASE(equality)
+{
+ uint256 num1 = 10;
+ uint256 num2 = 11;
+ BOOST_CHECK(num1+1 == num2);
+
+ uint64 num3 = 10;
+ BOOST_CHECK(num1 == num3);
+ BOOST_CHECK(num1+num2 == num3+num2);
+}
+
+BOOST_AUTO_TEST_SUITE_END()
diff --git a/src/ui.cpp b/src/ui.cpp
new file mode 100644
index 0000000000..ff0b4afb55
--- /dev/null
+++ b/src/ui.cpp
@@ -0,0 +1,2964 @@
+// Copyright (c) 2009-2010 Satoshi Nakamoto
+// Distributed under the MIT/X11 software license, see the accompanying
+// file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+#include "headers.h"
+#include "db.h"
+#include "init.h"
+#include "strlcpy.h"
+#include <boost/filesystem/fstream.hpp>
+#include <boost/filesystem/convenience.hpp>
+#ifdef _MSC_VER
+#include <crtdbg.h>
+#endif
+
+using namespace std;
+using namespace boost;
+
+
+DEFINE_EVENT_TYPE(wxEVT_UITHREADCALL)
+
+CMainFrame* pframeMain = NULL;
+CMyTaskBarIcon* ptaskbaricon = NULL;
+bool fClosedToTray = false;
+wxLocale g_locale;
+
+#ifdef __WXMSW__
+double nScaleX = 1.0;
+double nScaleY = 1.0;
+#else
+static const double nScaleX = 1.0;
+static const double nScaleY = 1.0;
+#endif
+
+
+
+
+
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// Util
+//
+
+void HandleCtrlA(wxKeyEvent& event)
+{
+ // Ctrl-a select all
+ event.Skip();
+ wxTextCtrl* textCtrl = (wxTextCtrl*)event.GetEventObject();
+ if (event.GetModifiers() == wxMOD_CONTROL && event.GetKeyCode() == 'A')
+ textCtrl->SetSelection(-1, -1);
+}
+
+bool Is24HourTime()
+{
+ //char pszHourFormat[256];
+ //pszHourFormat[0] = '\0';
+ //GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_ITIME, pszHourFormat, 256);
+ //return (pszHourFormat[0] != '0');
+ return true;
+}
+
+string DateStr(int64 nTime)
+{
+ // Can only be used safely here in the UI
+ return (string)wxDateTime((time_t)nTime).FormatDate();
+}
+
+string DateTimeStr(int64 nTime)
+{
+ // Can only be used safely here in the UI
+ wxDateTime datetime((time_t)nTime);
+ if (Is24HourTime())
+ return (string)datetime.Format("%x %H:%M");
+ else
+ return (string)datetime.Format("%x ") + itostr((datetime.GetHour() + 11) % 12 + 1) + (string)datetime.Format(":%M %p");
+}
+
+wxString GetItemText(wxListCtrl* listCtrl, int nIndex, int nColumn)
+{
+ // Helper to simplify access to listctrl
+ wxListItem item;
+ item.m_itemId = nIndex;
+ item.m_col = nColumn;
+ item.m_mask = wxLIST_MASK_TEXT;
+ if (!listCtrl->GetItem(item))
+ return "";
+ return item.GetText();
+}
+
+int InsertLine(wxListCtrl* listCtrl, const wxString& str0, const wxString& str1)
+{
+ int nIndex = listCtrl->InsertItem(listCtrl->GetItemCount(), str0);
+ listCtrl->SetItem(nIndex, 1, str1);
+ return nIndex;
+}
+
+int InsertLine(wxListCtrl* listCtrl, const wxString& str0, const wxString& str1, const wxString& str2, const wxString& str3, const wxString& str4)
+{
+ int nIndex = listCtrl->InsertItem(listCtrl->GetItemCount(), str0);
+ listCtrl->SetItem(nIndex, 1, str1);
+ listCtrl->SetItem(nIndex, 2, str2);
+ listCtrl->SetItem(nIndex, 3, str3);
+ listCtrl->SetItem(nIndex, 4, str4);
+ return nIndex;
+}
+
+int InsertLine(wxListCtrl* listCtrl, void* pdata, const wxString& str0, const wxString& str1, const wxString& str2, const wxString& str3, const wxString& str4)
+{
+ int nIndex = listCtrl->InsertItem(listCtrl->GetItemCount(), str0);
+ listCtrl->SetItemPtrData(nIndex, (wxUIntPtr)pdata);
+ listCtrl->SetItem(nIndex, 1, str1);
+ listCtrl->SetItem(nIndex, 2, str2);
+ listCtrl->SetItem(nIndex, 3, str3);
+ listCtrl->SetItem(nIndex, 4, str4);
+ return nIndex;
+}
+
+void SetItemTextColour(wxListCtrl* listCtrl, int nIndex, const wxColour& colour)
+{
+ // Repaint on Windows is more flickery if the colour has ever been set,
+ // so don't want to set it unless it's different. Default colour has
+ // alpha 0 transparent, so our colours don't match using operator==.
+ wxColour c1 = listCtrl->GetItemTextColour(nIndex);
+ if (!c1.IsOk())
+ c1 = wxColour(0,0,0);
+ if (colour.Red() != c1.Red() || colour.Green() != c1.Green() || colour.Blue() != c1.Blue())
+ listCtrl->SetItemTextColour(nIndex, colour);
+}
+
+void SetSelection(wxListCtrl* listCtrl, int nIndex)
+{
+ int nSize = listCtrl->GetItemCount();
+ long nState = (wxLIST_STATE_SELECTED|wxLIST_STATE_FOCUSED);
+ for (int i = 0; i < nSize; i++)
+ listCtrl->SetItemState(i, (i == nIndex ? nState : 0), nState);
+}
+
+int GetSelection(wxListCtrl* listCtrl)
+{
+ int nSize = listCtrl->GetItemCount();
+ for (int i = 0; i < nSize; i++)
+ if (listCtrl->GetItemState(i, wxLIST_STATE_FOCUSED))
+ return i;
+ return -1;
+}
+
+string HtmlEscape(const char* psz, bool fMultiLine=false)
+{
+ int len = 0;
+ for (const char* p = psz; *p; p++)
+ {
+ if (*p == '<') len += 4;
+ else if (*p == '>') len += 4;
+ else if (*p == '&') len += 5;
+ else if (*p == '"') len += 6;
+ else if (*p == ' ' && p > psz && p[-1] == ' ' && p[1] == ' ') len += 6;
+ else if (*p == '\n' && fMultiLine) len += 5;
+ else
+ len++;
+ }
+ string str;
+ str.reserve(len);
+ for (const char* p = psz; *p; p++)
+ {
+ if (*p == '<') str += "&lt;";
+ else if (*p == '>') str += "&gt;";
+ else if (*p == '&') str += "&amp;";
+ else if (*p == '"') str += "&quot;";
+ else if (*p == ' ' && p > psz && p[-1] == ' ' && p[1] == ' ') str += "&nbsp;";
+ else if (*p == '\n' && fMultiLine) str += "<br>\n";
+ else
+ str += *p;
+ }
+ return str;
+}
+
+string HtmlEscape(const string& str, bool fMultiLine=false)
+{
+ return HtmlEscape(str.c_str(), fMultiLine);
+}
+
+void CalledMessageBox(const string& message, const string& caption, int style, wxWindow* parent, int x, int y, int* pnRet, bool* pfDone)
+{
+ *pnRet = wxMessageBox(message, caption, style, parent, x, y);
+ *pfDone = true;
+}
+
+int ThreadSafeMessageBox(const string& message, const string& caption, int style, wxWindow* parent, int x, int y)
+{
+#ifdef __WXMSW__
+ return wxMessageBox(message, caption, style, parent, x, y);
+#else
+ if (wxThread::IsMain() || fDaemon)
+ {
+ return wxMessageBox(message, caption, style, parent, x, y);
+ }
+ else
+ {
+ int nRet = 0;
+ bool fDone = false;
+ UIThreadCall(bind(CalledMessageBox, message, caption, style, parent, x, y, &nRet, &fDone));
+ while (!fDone)
+ Sleep(100);
+ return nRet;
+ }
+#endif
+}
+
+bool ThreadSafeAskFee(int64 nFeeRequired, const string& strCaption, wxWindow* parent)
+{
+ if (nFeeRequired < MIN_TX_FEE || nFeeRequired <= nTransactionFee || fDaemon)
+ return true;
+ string strMessage = strprintf(
+ _("This transaction is over the size limit. You can still send it for a fee of %s, "
+ "which goes to the nodes that process your transaction and helps to support the network. "
+ "Do you want to pay the fee?"),
+ FormatMoney(nFeeRequired).c_str());
+ return (ThreadSafeMessageBox(strMessage, strCaption, wxYES_NO, parent) == wxYES);
+}
+
+void CalledSetStatusBar(const string& strText, int nField)
+{
+ if (nField == 0 && GetWarnings("statusbar") != "")
+ return;
+ if (pframeMain && pframeMain->m_statusBar)
+ pframeMain->m_statusBar->SetStatusText(strText, nField);
+}
+
+void SetDefaultReceivingAddress(const string& strAddress)
+{
+ // Update main window address and database
+ if (pframeMain == NULL)
+ return;
+ if (strAddress != pframeMain->m_textCtrlAddress->GetValue())
+ {
+ uint160 hash160;
+ if (!AddressToHash160(strAddress, hash160))
+ return;
+ if (!mapPubKeys.count(hash160))
+ return;
+ pwalletMain->SetDefaultKey(mapPubKeys[hash160]);
+ pframeMain->m_textCtrlAddress->SetValue(strAddress);
+ }
+}
+
+
+
+
+
+
+
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// CMainFrame
+//
+
+CMainFrame::CMainFrame(wxWindow* parent) : CMainFrameBase(parent)
+{
+ Connect(wxEVT_UITHREADCALL, wxCommandEventHandler(CMainFrame::OnUIThreadCall), NULL, this);
+
+ // Set initially selected page
+ wxNotebookEvent event;
+ event.SetSelection(0);
+ OnNotebookPageChanged(event);
+ m_notebook->ChangeSelection(0);
+
+ // Init
+ fRefreshListCtrl = false;
+ fRefreshListCtrlRunning = false;
+ fOnSetFocusAddress = false;
+ fRefresh = false;
+ m_choiceFilter->SetSelection(0);
+ double dResize = nScaleX;
+#ifdef __WXMSW__
+ SetIcon(wxICON(bitcoin));
+ SetSize(dResize * GetSize().GetWidth(), nScaleY * GetSize().GetHeight());
+#else
+ SetIcon(bitcoin80_xpm);
+ SetBackgroundColour(m_toolBar->GetBackgroundColour());
+ wxFont fontTmp = m_staticText41->GetFont();
+ fontTmp.SetFamily(wxFONTFAMILY_TELETYPE);
+ m_staticTextBalance->SetFont(fontTmp);
+ m_staticTextBalance->SetSize(140, 17);
+ // resize to fit ubuntu's huge default font
+ dResize = 1.22;
+ SetSize(dResize * GetSize().GetWidth(), 1.15 * GetSize().GetHeight());
+#endif
+ m_staticTextBalance->SetLabel(FormatMoney(pwalletMain->GetBalance()) + " ");
+ m_listCtrl->SetFocus();
+ ptaskbaricon = new CMyTaskBarIcon();
+#ifdef __WXMAC_OSX__
+ // Mac automatically moves wxID_EXIT, wxID_PREFERENCES and wxID_ABOUT
+ // to their standard places, leaving these menus empty.
+ GetMenuBar()->Remove(2); // remove Help menu
+ GetMenuBar()->Remove(0); // remove File menu
+#endif
+
+ // Init column headers
+ int nDateWidth = DateTimeStr(1229413914).size() * 6 + 8;
+ if (!strstr(DateTimeStr(1229413914).c_str(), "2008"))
+ nDateWidth += 12;
+#ifdef __WXMAC_OSX__
+ nDateWidth += 5;
+ dResize -= 0.01;
+#endif
+ wxListCtrl* pplistCtrl[] = {m_listCtrlAll, m_listCtrlSentReceived, m_listCtrlSent, m_listCtrlReceived};
+ BOOST_FOREACH(wxListCtrl* p, pplistCtrl)
+ {
+ p->InsertColumn(0, "", wxLIST_FORMAT_LEFT, dResize * 0);
+ p->InsertColumn(1, "", wxLIST_FORMAT_LEFT, dResize * 0);
+ p->InsertColumn(2, _("Status"), wxLIST_FORMAT_LEFT, dResize * 112);
+ p->InsertColumn(3, _("Date"), wxLIST_FORMAT_LEFT, dResize * nDateWidth);
+ p->InsertColumn(4, _("Description"), wxLIST_FORMAT_LEFT, dResize * 409 - nDateWidth);
+ p->InsertColumn(5, _("Debit"), wxLIST_FORMAT_RIGHT, dResize * 79);
+ p->InsertColumn(6, _("Credit"), wxLIST_FORMAT_RIGHT, dResize * 79);
+ }
+
+ // Init status bar
+ int pnWidths[3] = { -100, 88, 300 };
+#ifndef __WXMSW__
+ pnWidths[1] = pnWidths[1] * 1.1 * dResize;
+ pnWidths[2] = pnWidths[2] * 1.1 * dResize;
+#endif
+ m_statusBar->SetFieldsCount(3, pnWidths);
+
+ // Fill your address text box
+ vector<unsigned char> vchPubKey;
+ if (CWalletDB(pwalletMain->strWalletFile,"r").ReadDefaultKey(vchPubKey))
+ m_textCtrlAddress->SetValue(PubKeyToAddress(vchPubKey));
+
+ // Fill listctrl with wallet transactions
+ RefreshListCtrl();
+}
+
+CMainFrame::~CMainFrame()
+{
+ pframeMain = NULL;
+ delete ptaskbaricon;
+ ptaskbaricon = NULL;
+}
+
+void CMainFrame::OnNotebookPageChanged(wxNotebookEvent& event)
+{
+ event.Skip();
+ nPage = event.GetSelection();
+ if (nPage == ALL)
+ {
+ m_listCtrl = m_listCtrlAll;
+ fShowGenerated = true;
+ fShowSent = true;
+ fShowReceived = true;
+ }
+ else if (nPage == SENTRECEIVED)
+ {
+ m_listCtrl = m_listCtrlSentReceived;
+ fShowGenerated = false;
+ fShowSent = true;
+ fShowReceived = true;
+ }
+ else if (nPage == SENT)
+ {
+ m_listCtrl = m_listCtrlSent;
+ fShowGenerated = false;
+ fShowSent = true;
+ fShowReceived = false;
+ }
+ else if (nPage == RECEIVED)
+ {
+ m_listCtrl = m_listCtrlReceived;
+ fShowGenerated = false;
+ fShowSent = false;
+ fShowReceived = true;
+ }
+ RefreshListCtrl();
+ m_listCtrl->SetFocus();
+}
+
+void CMainFrame::OnClose(wxCloseEvent& event)
+{
+ if (fMinimizeOnClose && event.CanVeto() && !IsIconized())
+ {
+ // Divert close to minimize
+ event.Veto();
+ fClosedToTray = true;
+ Iconize(true);
+ }
+ else
+ {
+ Destroy();
+ CreateThread(Shutdown, NULL);
+ }
+}
+
+void CMainFrame::OnIconize(wxIconizeEvent& event)
+{
+ event.Skip();
+ // Hide the task bar button when minimized.
+ // Event is sent when the frame is minimized or restored.
+ // wxWidgets 2.8.9 doesn't have IsIconized() so there's no way
+ // to get rid of the deprecated warning. Just ignore it.
+ if (!event.Iconized())
+ fClosedToTray = false;
+#if defined(__WXGTK__) || defined(__WXMAC_OSX__)
+ if (GetBoolArg("-minimizetotray")) {
+#endif
+ // The tray icon sometimes disappears on ubuntu karmic
+ // Hiding the taskbar button doesn't work cleanly on ubuntu lucid
+ // Reports of CPU peg on 64-bit linux
+ if (fMinimizeToTray && event.Iconized())
+ fClosedToTray = true;
+ Show(!fClosedToTray);
+ ptaskbaricon->Show(fMinimizeToTray || fClosedToTray);
+#if defined(__WXGTK__) || defined(__WXMAC_OSX__)
+ }
+#endif
+}
+
+void CMainFrame::OnMouseEvents(wxMouseEvent& event)
+{
+ event.Skip();
+ RandAddSeed();
+ RAND_add(&event.m_x, sizeof(event.m_x), 0.25);
+ RAND_add(&event.m_y, sizeof(event.m_y), 0.25);
+}
+
+void CMainFrame::OnListColBeginDrag(wxListEvent& event)
+{
+ // Hidden columns not resizeable
+ if (event.GetColumn() <= 1 && !fDebug)
+ event.Veto();
+ else
+ event.Skip();
+}
+
+int CMainFrame::GetSortIndex(const string& strSort)
+{
+#ifdef __WXMSW__
+ return 0;
+#else
+ // The wx generic listctrl implementation used on GTK doesn't sort,
+ // so we have to do it ourselves. Remember, we sort in reverse order.
+ // In the wx generic implementation, they store the list of items
+ // in a vector, so indexed lookups are fast, but inserts are slower
+ // the closer they are to the top.
+ int low = 0;
+ int high = m_listCtrl->GetItemCount();
+ while (low < high)
+ {
+ int mid = low + ((high - low) / 2);
+ if (strSort.compare(m_listCtrl->GetItemText(mid).c_str()) >= 0)
+ high = mid;
+ else
+ low = mid + 1;
+ }
+ return low;
+#endif
+}
+
+void CMainFrame::InsertLine(bool fNew, int nIndex, uint256 hashKey, string strSort, const wxColour& colour, const wxString& str2, const wxString& str3, const wxString& str4, const wxString& str5, const wxString& str6)
+{
+ strSort = " " + strSort; // leading space to workaround wx2.9.0 ubuntu 9.10 bug
+ long nData = *(long*)&hashKey; // where first char of hidden column is displayed
+
+ // Find item
+ if (!fNew && nIndex == -1)
+ {
+ string strHash = " " + hashKey.ToString();
+ while ((nIndex = m_listCtrl->FindItem(nIndex, nData)) != -1)
+ if (GetItemText(m_listCtrl, nIndex, 1) == strHash)
+ break;
+ }
+
+ // fNew is for blind insert, only use if you're sure it's new
+ if (fNew || nIndex == -1)
+ {
+ nIndex = m_listCtrl->InsertItem(GetSortIndex(strSort), strSort);
+ }
+ else
+ {
+ // If sort key changed, must delete and reinsert to make it relocate
+ if (GetItemText(m_listCtrl, nIndex, 0) != strSort)
+ {
+ m_listCtrl->DeleteItem(nIndex);
+ nIndex = m_listCtrl->InsertItem(GetSortIndex(strSort), strSort);
+ }
+ }
+
+ m_listCtrl->SetItem(nIndex, 1, " " + hashKey.ToString());
+ m_listCtrl->SetItem(nIndex, 2, str2);
+ m_listCtrl->SetItem(nIndex, 3, str3);
+ m_listCtrl->SetItem(nIndex, 4, str4);
+ m_listCtrl->SetItem(nIndex, 5, str5);
+ m_listCtrl->SetItem(nIndex, 6, str6);
+ m_listCtrl->SetItemData(nIndex, nData);
+ SetItemTextColour(m_listCtrl, nIndex, colour);
+}
+
+bool CMainFrame::DeleteLine(uint256 hashKey)
+{
+ long nData = *(long*)&hashKey;
+
+ // Find item
+ int nIndex = -1;
+ string strHash = " " + hashKey.ToString();
+ while ((nIndex = m_listCtrl->FindItem(nIndex, nData)) != -1)
+ if (GetItemText(m_listCtrl, nIndex, 1) == strHash)
+ break;
+
+ if (nIndex != -1)
+ m_listCtrl->DeleteItem(nIndex);
+
+ return nIndex != -1;
+}
+
+string FormatTxStatus(const CWalletTx& wtx)
+{
+ // Status
+ if (!wtx.IsFinal())
+ {
+ if (wtx.nLockTime < LOCKTIME_THRESHOLD)
+ return strprintf(_("Open for %d blocks"), nBestHeight - wtx.nLockTime);
+ else
+ return strprintf(_("Open until %s"), DateTimeStr(wtx.nLockTime).c_str());
+ }
+ else
+ {
+ int nDepth = wtx.GetDepthInMainChain();
+ if (GetAdjustedTime() - wtx.nTimeReceived > 2 * 60 && wtx.GetRequestCount() == 0)
+ return strprintf(_("%d/offline?"), nDepth);
+ else if (nDepth < 6)
+ return strprintf(_("%d/unconfirmed"), nDepth);
+ else
+ return strprintf(_("%d confirmations"), nDepth);
+ }
+}
+
+string SingleLine(const string& strIn)
+{
+ string strOut;
+ bool fOneSpace = false;
+ BOOST_FOREACH(unsigned char c, strIn)
+ {
+ if (isspace(c))
+ {
+ fOneSpace = true;
+ }
+ else if (c > ' ')
+ {
+ if (fOneSpace && !strOut.empty())
+ strOut += ' ';
+ strOut += c;
+ fOneSpace = false;
+ }
+ }
+ return strOut;
+}
+
+bool CMainFrame::InsertTransaction(const CWalletTx& wtx, bool fNew, int nIndex)
+{
+ int64 nTime = wtx.nTimeDisplayed = wtx.GetTxTime();
+ int64 nCredit = wtx.GetCredit(true);
+ int64 nDebit = wtx.GetDebit();
+ int64 nNet = nCredit - nDebit;
+ uint256 hash = wtx.GetHash();
+ string strStatus = FormatTxStatus(wtx);
+ bool fConfirmed = wtx.fConfirmedDisplayed = wtx.IsConfirmed();
+ wxColour colour = (fConfirmed ? wxColour(0,0,0) : wxColour(128,128,128));
+ map<string, string> mapValue = wtx.mapValue;
+ wtx.nLinesDisplayed = 1;
+ nListViewUpdated++;
+
+ // Filter
+ if (wtx.IsCoinBase())
+ {
+ // Don't show generated coin until confirmed by at least one block after it
+ // so we don't get the user's hopes up until it looks like it's probably accepted.
+ //
+ // It is not an error when generated blocks are not accepted. By design,
+ // some percentage of blocks, like 10% or more, will end up not accepted.
+ // This is the normal mechanism by which the network copes with latency.
+ //
+ // We display regular transactions right away before any confirmation
+ // because they can always get into some block eventually. Generated coins
+ // are special because if their block is not accepted, they are not valid.
+ //
+ if (wtx.GetDepthInMainChain() < 2)
+ {
+ wtx.nLinesDisplayed = 0;
+ return false;
+ }
+
+ if (!fShowGenerated)
+ return false;
+ }
+
+ // Find the block the tx is in
+ CBlockIndex* pindex = NULL;
+ map<uint256, CBlockIndex*>::iterator mi = mapBlockIndex.find(wtx.hashBlock);
+ if (mi != mapBlockIndex.end())
+ pindex = (*mi).second;
+
+ // Sort order, unrecorded transactions sort to the top
+ string strSort = strprintf("%010d-%01d-%010u",
+ (pindex ? pindex->nHeight : INT_MAX),
+ (wtx.IsCoinBase() ? 1 : 0),
+ wtx.nTimeReceived);
+
+ // Insert line
+ if (nNet > 0 || wtx.IsCoinBase())
+ {
+ //
+ // Credit
+ //
+ string strDescription;
+ if (wtx.IsCoinBase())
+ {
+ // Generated
+ strDescription = _("Generated");
+ if (nCredit == 0)
+ {
+ int64 nUnmatured = 0;
+ BOOST_FOREACH(const CTxOut& txout, wtx.vout)
+ nUnmatured += pwalletMain->GetCredit(txout);
+ if (wtx.IsInMainChain())
+ {
+ strDescription = strprintf(_("Generated (%s matures in %d more blocks)"), FormatMoney(nUnmatured).c_str(), wtx.GetBlocksToMaturity());
+
+ // Check if the block was requested by anyone
+ if (GetAdjustedTime() - wtx.nTimeReceived > 2 * 60 && wtx.GetRequestCount() == 0)
+ strDescription = _("Generated - Warning: This block was not received by any other nodes and will probably not be accepted!");
+ }
+ else
+ {
+ strDescription = _("Generated (not accepted)");
+ }
+ }
+ }
+ else if (!mapValue["from"].empty() || !mapValue["message"].empty())
+ {
+ // Received by IP connection
+ if (!fShowReceived)
+ return false;
+ if (!mapValue["from"].empty())
+ strDescription += _("From: ") + mapValue["from"];
+ if (!mapValue["message"].empty())
+ {
+ if (!strDescription.empty())
+ strDescription += " - ";
+ strDescription += mapValue["message"];
+ }
+ }
+ else
+ {
+ // Received by Bitcoin Address
+ if (!fShowReceived)
+ return false;
+ BOOST_FOREACH(const CTxOut& txout, wtx.vout)
+ {
+ if (pwalletMain->IsMine(txout))
+ {
+ vector<unsigned char> vchPubKey;
+ if (ExtractPubKey(txout.scriptPubKey, pwalletMain, vchPubKey))
+ {
+ CRITICAL_BLOCK(pwalletMain->cs_mapAddressBook)
+ {
+ //strDescription += _("Received payment to ");
+ //strDescription += _("Received with address ");
+ strDescription += _("Received with: ");
+ string strAddress = PubKeyToAddress(vchPubKey);
+ map<string, string>::iterator mi = pwalletMain->mapAddressBook.find(strAddress);
+ if (mi != pwalletMain->mapAddressBook.end() && !(*mi).second.empty())
+ {
+ string strLabel = (*mi).second;
+ strDescription += strAddress.substr(0,12) + "... ";
+ strDescription += "(" + strLabel + ")";
+ }
+ else
+ strDescription += strAddress;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+ string strCredit = FormatMoney(nNet, true);
+ if (!fConfirmed)
+ strCredit = "[" + strCredit + "]";
+
+ InsertLine(fNew, nIndex, hash, strSort, colour,
+ strStatus,
+ nTime ? DateTimeStr(nTime) : "",
+ SingleLine(strDescription),
+ "",
+ strCredit);
+ }
+ else
+ {
+ bool fAllFromMe = true;
+ BOOST_FOREACH(const CTxIn& txin, wtx.vin)
+ fAllFromMe = fAllFromMe && pwalletMain->IsMine(txin);
+
+ bool fAllToMe = true;
+ BOOST_FOREACH(const CTxOut& txout, wtx.vout)
+ fAllToMe = fAllToMe && pwalletMain->IsMine(txout);
+
+ if (fAllFromMe && fAllToMe)
+ {
+ // Payment to self
+ int64 nChange = wtx.GetChange();
+ InsertLine(fNew, nIndex, hash, strSort, colour,
+ strStatus,
+ nTime ? DateTimeStr(nTime) : "",
+ _("Payment to yourself"),
+ FormatMoney(-(nDebit - nChange), true),
+ FormatMoney(nCredit - nChange, true));
+ }
+ else if (fAllFromMe)
+ {
+ //
+ // Debit
+ //
+ if (!fShowSent)
+ return false;
+
+ int64 nTxFee = nDebit - wtx.GetValueOut();
+ wtx.nLinesDisplayed = 0;
+ for (int nOut = 0; nOut < wtx.vout.size(); nOut++)
+ {
+ const CTxOut& txout = wtx.vout[nOut];
+ if (pwalletMain->IsMine(txout))
+ continue;
+
+ string strAddress;
+ if (!mapValue["to"].empty())
+ {
+ // Sent to IP
+ strAddress = mapValue["to"];
+ }
+ else
+ {
+ // Sent to Bitcoin Address
+ uint160 hash160;
+ if (ExtractHash160(txout.scriptPubKey, hash160))
+ strAddress = Hash160ToAddress(hash160);
+ }
+
+ string strDescription = _("To: ");
+ CRITICAL_BLOCK(pwalletMain->cs_mapAddressBook)
+ if (pwalletMain->mapAddressBook.count(strAddress) && !pwalletMain->mapAddressBook[strAddress].empty())
+ strDescription += pwalletMain->mapAddressBook[strAddress] + " ";
+ strDescription += strAddress;
+ if (!mapValue["message"].empty())
+ {
+ if (!strDescription.empty())
+ strDescription += " - ";
+ strDescription += mapValue["message"];
+ }
+ else if (!mapValue["comment"].empty())
+ {
+ if (!strDescription.empty())
+ strDescription += " - ";
+ strDescription += mapValue["comment"];
+ }
+
+ int64 nValue = txout.nValue;
+ if (nTxFee > 0)
+ {
+ nValue += nTxFee;
+ nTxFee = 0;
+ }
+
+ InsertLine(fNew, nIndex, hash, strprintf("%s-%d", strSort.c_str(), nOut), colour,
+ strStatus,
+ nTime ? DateTimeStr(nTime) : "",
+ SingleLine(strDescription),
+ FormatMoney(-nValue, true),
+ "");
+ nIndex = -1;
+ wtx.nLinesDisplayed++;
+ }
+ }
+ else
+ {
+ //
+ // Mixed debit transaction, can't break down payees
+ //
+ bool fAllMine = true;
+ BOOST_FOREACH(const CTxOut& txout, wtx.vout)
+ fAllMine = fAllMine && pwalletMain->IsMine(txout);
+ BOOST_FOREACH(const CTxIn& txin, wtx.vin)
+ fAllMine = fAllMine && pwalletMain->IsMine(txin);
+
+ InsertLine(fNew, nIndex, hash, strSort, colour,
+ strStatus,
+ nTime ? DateTimeStr(nTime) : "",
+ "",
+ FormatMoney(nNet, true),
+ "");
+ }
+ }
+
+ return true;
+}
+
+void CMainFrame::RefreshListCtrl()
+{
+ fRefreshListCtrl = true;
+ ::wxWakeUpIdle();
+}
+
+void CMainFrame::OnIdle(wxIdleEvent& event)
+{
+ if (fRefreshListCtrl)
+ {
+ // Collect list of wallet transactions and sort newest first
+ bool fEntered = false;
+ vector<pair<unsigned int, uint256> > vSorted;
+ TRY_CRITICAL_BLOCK(pwalletMain->cs_mapWallet)
+ {
+ printf("RefreshListCtrl starting\n");
+ fEntered = true;
+ fRefreshListCtrl = false;
+ pwalletMain->vWalletUpdated.clear();
+
+ // Do the newest transactions first
+ vSorted.reserve(pwalletMain->mapWallet.size());
+ for (map<uint256, CWalletTx>::iterator it = pwalletMain->mapWallet.begin(); it != pwalletMain->mapWallet.end(); ++it)
+ {
+ const CWalletTx& wtx = (*it).second;
+ unsigned int nTime = UINT_MAX - wtx.GetTxTime();
+ vSorted.push_back(make_pair(nTime, (*it).first));
+ }
+ m_listCtrl->DeleteAllItems();
+ }
+ if (!fEntered)
+ return;
+
+ sort(vSorted.begin(), vSorted.end());
+
+ // Fill list control
+ for (int i = 0; i < vSorted.size();)
+ {
+ if (fShutdown)
+ return;
+ bool fEntered = false;
+ TRY_CRITICAL_BLOCK(pwalletMain->cs_mapWallet)
+ {
+ fEntered = true;
+ uint256& hash = vSorted[i++].second;
+ map<uint256, CWalletTx>::iterator mi = pwalletMain->mapWallet.find(hash);
+ if (mi != pwalletMain->mapWallet.end())
+ InsertTransaction((*mi).second, true);
+ }
+ if (!fEntered || i == 100 || i % 500 == 0)
+ wxYield();
+ }
+
+ printf("RefreshListCtrl done\n");
+
+ // Update transaction total display
+ MainFrameRepaint();
+ }
+ else
+ {
+ // Check for time updates
+ static int64 nLastTime;
+ if (GetTime() > nLastTime + 30)
+ {
+ TRY_CRITICAL_BLOCK(pwalletMain->cs_mapWallet)
+ {
+ nLastTime = GetTime();
+ for (map<uint256, CWalletTx>::iterator it = pwalletMain->mapWallet.begin(); it != pwalletMain->mapWallet.end(); ++it)
+ {
+ CWalletTx& wtx = (*it).second;
+ if (wtx.nTimeDisplayed && wtx.nTimeDisplayed != wtx.GetTxTime())
+ InsertTransaction(wtx, false);
+ }
+ }
+ }
+ }
+}
+
+void CMainFrame::RefreshStatusColumn()
+{
+ static int nLastTop;
+ static CBlockIndex* pindexLastBest;
+ static unsigned int nLastRefreshed;
+
+ int nTop = max((int)m_listCtrl->GetTopItem(), 0);
+ if (nTop == nLastTop && pindexLastBest == pindexBest)
+ return;
+
+ TRY_CRITICAL_BLOCK(pwalletMain->cs_mapWallet)
+ {
+ int nStart = nTop;
+ int nEnd = min(nStart + 100, m_listCtrl->GetItemCount());
+
+ if (pindexLastBest == pindexBest && nLastRefreshed == nListViewUpdated)
+ {
+ // If no updates, only need to do the part that moved onto the screen
+ if (nStart >= nLastTop && nStart < nLastTop + 100)
+ nStart = nLastTop + 100;
+ if (nEnd >= nLastTop && nEnd < nLastTop + 100)
+ nEnd = nLastTop;
+ }
+ nLastTop = nTop;
+ pindexLastBest = pindexBest;
+ nLastRefreshed = nListViewUpdated;
+
+ for (int nIndex = nStart; nIndex < min(nEnd, m_listCtrl->GetItemCount()); nIndex++)
+ {
+ uint256 hash((string)GetItemText(m_listCtrl, nIndex, 1));
+ map<uint256, CWalletTx>::iterator mi = pwalletMain->mapWallet.find(hash);
+ if (mi == pwalletMain->mapWallet.end())
+ {
+ printf("CMainFrame::RefreshStatusColumn() : tx not found in mapWallet\n");
+ continue;
+ }
+ CWalletTx& wtx = (*mi).second;
+ if (wtx.IsCoinBase() ||
+ wtx.GetTxTime() != wtx.nTimeDisplayed ||
+ wtx.IsConfirmed() != wtx.fConfirmedDisplayed)
+ {
+ if (!InsertTransaction(wtx, false, nIndex))
+ m_listCtrl->DeleteItem(nIndex--);
+ }
+ else
+ {
+ m_listCtrl->SetItem(nIndex, 2, FormatTxStatus(wtx));
+ }
+ }
+ }
+}
+
+void CMainFrame::OnPaint(wxPaintEvent& event)
+{
+ event.Skip();
+ if (fRefresh)
+ {
+ fRefresh = false;
+ Refresh();
+ }
+}
+
+
+unsigned int nNeedRepaint = 0;
+unsigned int nLastRepaint = 0;
+int64 nLastRepaintTime = 0;
+int64 nRepaintInterval = 500;
+
+void ThreadDelayedRepaint(void* parg)
+{
+ while (!fShutdown)
+ {
+ if (nLastRepaint != nNeedRepaint && GetTimeMillis() - nLastRepaintTime >= nRepaintInterval)
+ {
+ nLastRepaint = nNeedRepaint;
+ if (pframeMain)
+ {
+ printf("DelayedRepaint\n");
+ wxPaintEvent event;
+ pframeMain->fRefresh = true;
+ pframeMain->GetEventHandler()->AddPendingEvent(event);
+ }
+ }
+ Sleep(nRepaintInterval);
+ }
+}
+
+void MainFrameRepaint()
+{
+ // This is called by network code that shouldn't access pframeMain
+ // directly because it could still be running after the UI is closed.
+ if (pframeMain)
+ {
+ // Don't repaint too often
+ static int64 nLastRepaintRequest;
+ if (GetTimeMillis() - nLastRepaintRequest < 100)
+ {
+ nNeedRepaint++;
+ return;
+ }
+ nLastRepaintRequest = GetTimeMillis();
+
+ printf("MainFrameRepaint\n");
+ wxPaintEvent event;
+ pframeMain->fRefresh = true;
+ pframeMain->GetEventHandler()->AddPendingEvent(event);
+ }
+}
+
+void CMainFrame::OnPaintListCtrl(wxPaintEvent& event)
+{
+ // Skip lets the listctrl do the paint, we're just hooking the message
+ event.Skip();
+
+ if (ptaskbaricon)
+ ptaskbaricon->UpdateTooltip();
+
+ //
+ // Slower stuff
+ //
+ static int nTransactionCount;
+ bool fPaintedBalance = false;
+ if (GetTimeMillis() - nLastRepaintTime >= nRepaintInterval)
+ {
+ nLastRepaint = nNeedRepaint;
+ nLastRepaintTime = GetTimeMillis();
+
+ // Update listctrl contents
+ if (!pwalletMain->vWalletUpdated.empty())
+ {
+ TRY_CRITICAL_BLOCK(pwalletMain->cs_mapWallet)
+ {
+ string strTop;
+ if (m_listCtrl->GetItemCount())
+ strTop = (string)m_listCtrl->GetItemText(0);
+ BOOST_FOREACH(uint256 hash, pwalletMain->vWalletUpdated)
+ {
+ map<uint256, CWalletTx>::iterator mi = pwalletMain->mapWallet.find(hash);
+ if (mi != pwalletMain->mapWallet.end())
+ InsertTransaction((*mi).second, false);
+ }
+ pwalletMain->vWalletUpdated.clear();
+ if (m_listCtrl->GetItemCount() && strTop != (string)m_listCtrl->GetItemText(0))
+ m_listCtrl->ScrollList(0, INT_MIN/2);
+ }
+ }
+
+ // Balance total
+ TRY_CRITICAL_BLOCK(pwalletMain->cs_mapWallet)
+ {
+ fPaintedBalance = true;
+ m_staticTextBalance->SetLabel(FormatMoney(pwalletMain->GetBalance()) + " ");
+
+ // Count hidden and multi-line transactions
+ nTransactionCount = 0;
+ for (map<uint256, CWalletTx>::iterator it = pwalletMain->mapWallet.begin(); it != pwalletMain->mapWallet.end(); ++it)
+ {
+ CWalletTx& wtx = (*it).second;
+ nTransactionCount += wtx.nLinesDisplayed;
+ }
+ }
+ }
+ if (!pwalletMain->vWalletUpdated.empty() || !fPaintedBalance)
+ nNeedRepaint++;
+
+ // Update status column of visible items only
+ RefreshStatusColumn();
+
+ // Update status bar
+ static string strPrevWarning;
+ string strWarning = GetWarnings("statusbar");
+ if (strWarning != "")
+ m_statusBar->SetStatusText(string(" ") + _(strWarning), 0);
+ else if (strPrevWarning != "")
+ m_statusBar->SetStatusText("", 0);
+ strPrevWarning = strWarning;
+
+ string strGen = "";
+ if (fGenerateBitcoins)
+ strGen = _(" Generating");
+ if (fGenerateBitcoins && vNodes.empty())
+ strGen = _("(not connected)");
+ m_statusBar->SetStatusText(strGen, 1);
+
+ string strStatus = strprintf(_(" %d connections %d blocks %d transactions"), vNodes.size(), nBestHeight, nTransactionCount);
+ m_statusBar->SetStatusText(strStatus, 2);
+
+ // Update receiving address
+ string strDefaultAddress = PubKeyToAddress(pwalletMain->vchDefaultKey);
+ if (m_textCtrlAddress->GetValue() != strDefaultAddress)
+ m_textCtrlAddress->SetValue(strDefaultAddress);
+}
+
+
+void UIThreadCall(boost::function0<void> fn)
+{
+ // Call this with a function object created with bind.
+ // bind needs all parameters to match the function's expected types
+ // and all default parameters specified. Some examples:
+ // UIThreadCall(bind(wxBell));
+ // UIThreadCall(bind(wxMessageBox, wxT("Message"), wxT("Title"), wxOK, (wxWindow*)NULL, -1, -1));
+ // UIThreadCall(bind(&CMainFrame::OnMenuHelpAbout, pframeMain, event));
+ if (pframeMain)
+ {
+ wxCommandEvent event(wxEVT_UITHREADCALL);
+ event.SetClientData((void*)new boost::function0<void>(fn));
+ pframeMain->GetEventHandler()->AddPendingEvent(event);
+ }
+}
+
+void CMainFrame::OnUIThreadCall(wxCommandEvent& event)
+{
+ boost::function0<void>* pfn = (boost::function0<void>*)event.GetClientData();
+ (*pfn)();
+ delete pfn;
+}
+
+void CMainFrame::OnMenuFileExit(wxCommandEvent& event)
+{
+ // File->Exit
+ Close(true);
+}
+
+void CMainFrame::OnUpdateUIOptionsGenerate(wxUpdateUIEvent& event)
+{
+ event.Check(fGenerateBitcoins);
+}
+
+void CMainFrame::OnMenuOptionsChangeYourAddress(wxCommandEvent& event)
+{
+ // Options->Your Receiving Addresses
+ CAddressBookDialog dialog(this, "", CAddressBookDialog::RECEIVING, false);
+ if (!dialog.ShowModal())
+ return;
+}
+
+void CMainFrame::OnMenuOptionsOptions(wxCommandEvent& event)
+{
+ // Options->Options
+ COptionsDialog dialog(this);
+ dialog.ShowModal();
+}
+
+void CMainFrame::OnMenuHelpAbout(wxCommandEvent& event)
+{
+ // Help->About
+ CAboutDialog dialog(this);
+ dialog.ShowModal();
+}
+
+void CMainFrame::OnButtonSend(wxCommandEvent& event)
+{
+ // Toolbar: Send
+ CSendDialog dialog(this);
+ dialog.ShowModal();
+}
+
+void CMainFrame::OnButtonAddressBook(wxCommandEvent& event)
+{
+ // Toolbar: Address Book
+ CAddressBookDialog dialogAddr(this, "", CAddressBookDialog::SENDING, false);
+ if (dialogAddr.ShowModal() == 2)
+ {
+ // Send
+ CSendDialog dialogSend(this, dialogAddr.GetSelectedAddress());
+ dialogSend.ShowModal();
+ }
+}
+
+void CMainFrame::OnSetFocusAddress(wxFocusEvent& event)
+{
+ // Automatically select-all when entering window
+ event.Skip();
+ m_textCtrlAddress->SetSelection(-1, -1);
+ fOnSetFocusAddress = true;
+}
+
+void CMainFrame::OnMouseEventsAddress(wxMouseEvent& event)
+{
+ event.Skip();
+ if (fOnSetFocusAddress)
+ m_textCtrlAddress->SetSelection(-1, -1);
+ fOnSetFocusAddress = false;
+}
+
+void CMainFrame::OnButtonNew(wxCommandEvent& event)
+{
+ // Ask name
+ CGetTextFromUserDialog dialog(this,
+ _("New Receiving Address"),
+ _("You should use a new address for each payment you receive.\n\nLabel"),
+ "");
+ if (!dialog.ShowModal())
+ return;
+ string strName = dialog.GetValue();
+
+ // Generate new key
+ string strAddress = PubKeyToAddress(pwalletMain->GetKeyFromKeyPool());
+
+ // Save
+ CRITICAL_BLOCK(pwalletMain->cs_mapAddressBook)
+ pwalletMain->SetAddressBookName(strAddress, strName);
+ SetDefaultReceivingAddress(strAddress);
+}
+
+void CMainFrame::OnButtonCopy(wxCommandEvent& event)
+{
+ // Copy address box to clipboard
+ if (wxTheClipboard->Open())
+ {
+ wxTheClipboard->SetData(new wxTextDataObject(m_textCtrlAddress->GetValue()));
+ wxTheClipboard->Close();
+ }
+}
+
+void CMainFrame::OnListItemActivated(wxListEvent& event)
+{
+ uint256 hash((string)GetItemText(m_listCtrl, event.GetIndex(), 1));
+ CWalletTx wtx;
+ CRITICAL_BLOCK(pwalletMain->cs_mapWallet)
+ {
+ map<uint256, CWalletTx>::iterator mi = pwalletMain->mapWallet.find(hash);
+ if (mi == pwalletMain->mapWallet.end())
+ {
+ printf("CMainFrame::OnListItemActivated() : tx not found in mapWallet\n");
+ return;
+ }
+ wtx = (*mi).second;
+ }
+ CTxDetailsDialog dialog(this, wtx);
+ dialog.ShowModal();
+ //CTxDetailsDialog* pdialog = new CTxDetailsDialog(this, wtx);
+ //pdialog->Show();
+}
+
+
+
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// CTxDetailsDialog
+//
+
+CTxDetailsDialog::CTxDetailsDialog(wxWindow* parent, CWalletTx wtx) : CTxDetailsDialogBase(parent)
+{
+#ifdef __WXMSW__
+ SetSize(nScaleX * GetSize().GetWidth(), nScaleY * GetSize().GetHeight());
+#endif
+ CRITICAL_BLOCK(pwalletMain->cs_mapAddressBook)
+ {
+ string strHTML;
+ strHTML.reserve(4000);
+ strHTML += "<html><font face='verdana, arial, helvetica, sans-serif'>";
+
+ int64 nTime = wtx.GetTxTime();
+ int64 nCredit = wtx.GetCredit();
+ int64 nDebit = wtx.GetDebit();
+ int64 nNet = nCredit - nDebit;
+
+
+
+ strHTML += _("<b>Status:</b> ") + FormatTxStatus(wtx);
+ int nRequests = wtx.GetRequestCount();
+ if (nRequests != -1)
+ {
+ if (nRequests == 0)
+ strHTML += _(", has not been successfully broadcast yet");
+ else if (nRequests == 1)
+ strHTML += strprintf(_(", broadcast through %d node"), nRequests);
+ else
+ strHTML += strprintf(_(", broadcast through %d nodes"), nRequests);
+ }
+ strHTML += "<br>";
+
+ strHTML += _("<b>Date:</b> ") + (nTime ? DateTimeStr(nTime) : "") + "<br>";
+
+
+ //
+ // From
+ //
+ if (wtx.IsCoinBase())
+ {
+ strHTML += _("<b>Source:</b> Generated<br>");
+ }
+ else if (!wtx.mapValue["from"].empty())
+ {
+ // Online transaction
+ if (!wtx.mapValue["from"].empty())
+ strHTML += _("<b>From:</b> ") + HtmlEscape(wtx.mapValue["from"]) + "<br>";
+ }
+ else
+ {
+ // Offline transaction
+ if (nNet > 0)
+ {
+ // Credit
+ BOOST_FOREACH(const CTxOut& txout, wtx.vout)
+ {
+ if (pwalletMain->IsMine(txout))
+ {
+ vector<unsigned char> vchPubKey;
+ if (ExtractPubKey(txout.scriptPubKey, pwalletMain, vchPubKey))
+ {
+ string strAddress = PubKeyToAddress(vchPubKey);
+ if (pwalletMain->mapAddressBook.count(strAddress))
+ {
+ strHTML += string() + _("<b>From:</b> ") + _("unknown") + "<br>";
+ strHTML += _("<b>To:</b> ");
+ strHTML += HtmlEscape(strAddress);
+ if (!pwalletMain->mapAddressBook[strAddress].empty())
+ strHTML += _(" (yours, label: ") + pwalletMain->mapAddressBook[strAddress] + ")";
+ else
+ strHTML += _(" (yours)");
+ strHTML += "<br>";
+ }
+ }
+ break;
+ }
+ }
+ }
+ }
+
+
+ //
+ // To
+ //
+ string strAddress;
+ if (!wtx.mapValue["to"].empty())
+ {
+ // Online transaction
+ strAddress = wtx.mapValue["to"];
+ strHTML += _("<b>To:</b> ");
+ if (pwalletMain->mapAddressBook.count(strAddress) && !pwalletMain->mapAddressBook[strAddress].empty())
+ strHTML += pwalletMain->mapAddressBook[strAddress] + " ";
+ strHTML += HtmlEscape(strAddress) + "<br>";
+ }
+
+
+ //
+ // Amount
+ //
+ if (wtx.IsCoinBase() && nCredit == 0)
+ {
+ //
+ // Coinbase
+ //
+ int64 nUnmatured = 0;
+ BOOST_FOREACH(const CTxOut& txout, wtx.vout)
+ nUnmatured += pwalletMain->GetCredit(txout);
+ strHTML += _("<b>Credit:</b> ");
+ if (wtx.IsInMainChain())
+ strHTML += strprintf(_("(%s matures in %d more blocks)"), FormatMoney(nUnmatured).c_str(), wtx.GetBlocksToMaturity());
+ else
+ strHTML += _("(not accepted)");
+ strHTML += "<br>";
+ }
+ else if (nNet > 0)
+ {
+ //
+ // Credit
+ //
+ strHTML += _("<b>Credit:</b> ") + FormatMoney(nNet) + "<br>";
+ }
+ else
+ {
+ bool fAllFromMe = true;
+ BOOST_FOREACH(const CTxIn& txin, wtx.vin)
+ fAllFromMe = fAllFromMe && pwalletMain->IsMine(txin);
+
+ bool fAllToMe = true;
+ BOOST_FOREACH(const CTxOut& txout, wtx.vout)
+ fAllToMe = fAllToMe && pwalletMain->IsMine(txout);
+
+ if (fAllFromMe)
+ {
+ //
+ // Debit
+ //
+ BOOST_FOREACH(const CTxOut& txout, wtx.vout)
+ {
+ if (pwalletMain->IsMine(txout))
+ continue;
+
+ if (wtx.mapValue["to"].empty())
+ {
+ // Offline transaction
+ uint160 hash160;
+ if (ExtractHash160(txout.scriptPubKey, hash160))
+ {
+ string strAddress = Hash160ToAddress(hash160);
+ strHTML += _("<b>To:</b> ");
+ if (pwalletMain->mapAddressBook.count(strAddress) && !pwalletMain->mapAddressBook[strAddress].empty())
+ strHTML += pwalletMain->mapAddressBook[strAddress] + " ";
+ strHTML += strAddress;
+ strHTML += "<br>";
+ }
+ }
+
+ strHTML += _("<b>Debit:</b> ") + FormatMoney(-txout.nValue) + "<br>";
+ }
+
+ if (fAllToMe)
+ {
+ // Payment to self
+ int64 nChange = wtx.GetChange();
+ int64 nValue = nCredit - nChange;
+ strHTML += _("<b>Debit:</b> ") + FormatMoney(-nValue) + "<br>";
+ strHTML += _("<b>Credit:</b> ") + FormatMoney(nValue) + "<br>";
+ }
+
+ int64 nTxFee = nDebit - wtx.GetValueOut();
+ if (nTxFee > 0)
+ strHTML += _("<b>Transaction fee:</b> ") + FormatMoney(-nTxFee) + "<br>";
+ }
+ else
+ {
+ //
+ // Mixed debit transaction
+ //
+ BOOST_FOREACH(const CTxIn& txin, wtx.vin)
+ if (pwalletMain->IsMine(txin))
+ strHTML += _("<b>Debit:</b> ") + FormatMoney(-pwalletMain->GetDebit(txin)) + "<br>";
+ BOOST_FOREACH(const CTxOut& txout, wtx.vout)
+ if (pwalletMain->IsMine(txout))
+ strHTML += _("<b>Credit:</b> ") + FormatMoney(pwalletMain->GetCredit(txout)) + "<br>";
+ }
+ }
+
+ strHTML += _("<b>Net amount:</b> ") + FormatMoney(nNet, true) + "<br>";
+
+
+ //
+ // Message
+ //
+ if (!wtx.mapValue["message"].empty())
+ strHTML += string() + "<br><b>" + _("Message:") + "</b><br>" + HtmlEscape(wtx.mapValue["message"], true) + "<br>";
+ if (!wtx.mapValue["comment"].empty())
+ strHTML += string() + "<br><b>" + _("Comment:") + "</b><br>" + HtmlEscape(wtx.mapValue["comment"], true) + "<br>";
+
+ if (wtx.IsCoinBase())
+ strHTML += string() + "<br>" + _("Generated coins must wait 120 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, it will change to \"not accepted\" and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours.") + "<br>";
+
+
+ //
+ // Debug view
+ //
+ if (fDebug)
+ {
+ strHTML += "<hr><br>debug print<br><br>";
+ BOOST_FOREACH(const CTxIn& txin, wtx.vin)
+ if (pwalletMain->IsMine(txin))
+ strHTML += "<b>Debit:</b> " + FormatMoney(-pwalletMain->GetDebit(txin)) + "<br>";
+ BOOST_FOREACH(const CTxOut& txout, wtx.vout)
+ if (pwalletMain->IsMine(txout))
+ strHTML += "<b>Credit:</b> " + FormatMoney(pwalletMain->GetCredit(txout)) + "<br>";
+
+ strHTML += "<br><b>Transaction:</b><br>";
+ strHTML += HtmlEscape(wtx.ToString(), true);
+
+ strHTML += "<br><b>Inputs:</b><br>";
+ CRITICAL_BLOCK(pwalletMain->cs_mapWallet)
+ {
+ BOOST_FOREACH(const CTxIn& txin, wtx.vin)
+ {
+ COutPoint prevout = txin.prevout;
+ map<uint256, CWalletTx>::iterator mi = pwalletMain->mapWallet.find(prevout.hash);
+ if (mi != pwalletMain->mapWallet.end())
+ {
+ const CWalletTx& prev = (*mi).second;
+ if (prevout.n < prev.vout.size())
+ {
+ strHTML += HtmlEscape(prev.ToString(), true);
+ strHTML += " &nbsp;&nbsp; " + FormatTxStatus(prev) + ", ";
+ strHTML = strHTML + "IsMine=" + (pwalletMain->IsMine(prev.vout[prevout.n]) ? "true" : "false") + "<br>";
+ }
+ }
+ }
+ }
+ }
+
+
+
+ strHTML += "</font></html>";
+ string(strHTML.begin(), strHTML.end()).swap(strHTML);
+ m_htmlWin->SetPage(strHTML);
+ m_buttonOK->SetFocus();
+ }
+}
+
+void CTxDetailsDialog::OnButtonOK(wxCommandEvent& event)
+{
+ EndModal(false);
+}
+
+
+
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// Startup folder
+//
+
+#ifdef __WXMSW__
+string StartupShortcutPath()
+{
+ return MyGetSpecialFolderPath(CSIDL_STARTUP, true) + "\\Bitcoin.lnk";
+}
+
+bool GetStartOnSystemStartup()
+{
+ return filesystem::exists(StartupShortcutPath().c_str());
+}
+
+void SetStartOnSystemStartup(bool fAutoStart)
+{
+ // If the shortcut exists already, remove it for updating
+ remove(StartupShortcutPath().c_str());
+
+ if (fAutoStart)
+ {
+ CoInitialize(NULL);
+
+ // Get a pointer to the IShellLink interface.
+ IShellLink* psl = NULL;
+ HRESULT hres = CoCreateInstance(CLSID_ShellLink, NULL,
+ CLSCTX_INPROC_SERVER, IID_IShellLink,
+ reinterpret_cast<void**>(&psl));
+
+ if (SUCCEEDED(hres))
+ {
+ // Get the current executable path
+ TCHAR pszExePath[MAX_PATH];
+ GetModuleFileName(NULL, pszExePath, sizeof(pszExePath));
+
+ // Set the path to the shortcut target
+ psl->SetPath(pszExePath);
+ PathRemoveFileSpec(pszExePath);
+ psl->SetWorkingDirectory(pszExePath);
+ psl->SetShowCmd(SW_SHOWMINNOACTIVE);
+
+ // Query IShellLink for the IPersistFile interface for
+ // saving the shortcut in persistent storage.
+ IPersistFile* ppf = NULL;
+ hres = psl->QueryInterface(IID_IPersistFile,
+ reinterpret_cast<void**>(&ppf));
+ if (SUCCEEDED(hres))
+ {
+ WCHAR pwsz[MAX_PATH];
+ // Ensure that the string is ANSI.
+ MultiByteToWideChar(CP_ACP, 0, StartupShortcutPath().c_str(), -1, pwsz, MAX_PATH);
+ // Save the link by calling IPersistFile::Save.
+ hres = ppf->Save(pwsz, TRUE);
+ ppf->Release();
+ }
+ psl->Release();
+ }
+ CoUninitialize();
+ }
+}
+
+#elif defined(__WXGTK__)
+
+// Follow the Desktop Application Autostart Spec:
+// http://standards.freedesktop.org/autostart-spec/autostart-spec-latest.html
+
+boost::filesystem::path GetAutostartDir()
+{
+ namespace fs = boost::filesystem;
+
+ char* pszConfigHome = getenv("XDG_CONFIG_HOME");
+ if (pszConfigHome) return fs::path(pszConfigHome) / fs::path("autostart");
+ char* pszHome = getenv("HOME");
+ if (pszHome) return fs::path(pszHome) / fs::path(".config/autostart");
+ return fs::path();
+}
+
+boost::filesystem::path GetAutostartFilePath()
+{
+ return GetAutostartDir() / boost::filesystem::path("bitcoin.desktop");
+}
+
+bool GetStartOnSystemStartup()
+{
+ boost::filesystem::ifstream optionFile(GetAutostartFilePath());
+ if (!optionFile.good())
+ return false;
+ // Scan through file for "Hidden=true":
+ string line;
+ while (!optionFile.eof())
+ {
+ getline(optionFile, line);
+ if (line.find("Hidden") != string::npos &&
+ line.find("true") != string::npos)
+ return false;
+ }
+ optionFile.close();
+
+ return true;
+}
+
+void SetStartOnSystemStartup(bool fAutoStart)
+{
+ if (!fAutoStart)
+ {
+ unlink(GetAutostartFilePath().native_file_string().c_str());
+ }
+ else
+ {
+ char pszExePath[MAX_PATH+1];
+ memset(pszExePath, 0, sizeof(pszExePath));
+ if (readlink("/proc/self/exe", pszExePath, sizeof(pszExePath)-1) == -1)
+ return;
+
+ boost::filesystem::create_directories(GetAutostartDir());
+
+ boost::filesystem::ofstream optionFile(GetAutostartFilePath(), ios_base::out|ios_base::trunc);
+ if (!optionFile.good())
+ {
+ wxMessageBox(_("Cannot write autostart/bitcoin.desktop file"), "Bitcoin");
+ return;
+ }
+ // Write a bitcoin.desktop file to the autostart directory:
+ optionFile << "[Desktop Entry]\n";
+ optionFile << "Type=Application\n";
+ optionFile << "Name=Bitcoin\n";
+ optionFile << "Exec=" << pszExePath << "\n";
+ optionFile << "Terminal=false\n";
+ optionFile << "Hidden=false\n";
+ optionFile.close();
+ }
+}
+#else
+
+// TODO: OSX startup stuff; see:
+// http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPSystemStartup/Articles/CustomLogin.html
+
+bool GetStartOnSystemStartup() { return false; }
+void SetStartOnSystemStartup(bool fAutoStart) { }
+
+#endif
+
+
+
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// COptionsDialog
+//
+
+COptionsDialog::COptionsDialog(wxWindow* parent) : COptionsDialogBase(parent)
+{
+ // Set up list box of page choices
+ m_listBox->Append(_("Main"));
+ //m_listBox->Append(_("Test 2"));
+ m_listBox->SetSelection(0);
+ SelectPage(0);
+#ifndef __WXMSW__
+ SetSize(1.0 * GetSize().GetWidth(), 1.2 * GetSize().GetHeight());
+#else
+ SetSize(nScaleX * GetSize().GetWidth(), nScaleY * GetSize().GetHeight());
+#endif
+#if defined(__WXGTK__) || defined(__WXMAC_OSX__)
+ m_checkBoxStartOnSystemStartup->SetLabel(_("&Start Bitcoin on window system startup"));
+ if (!GetBoolArg("-minimizetotray"))
+ {
+ // Minimize to tray is just too buggy on Linux
+ fMinimizeToTray = false;
+ m_checkBoxMinimizeToTray->SetValue(false);
+ m_checkBoxMinimizeToTray->Enable(false);
+ m_checkBoxMinimizeOnClose->SetLabel(_("&Minimize on close"));
+ }
+#endif
+#ifdef __WXMAC_OSX__
+ m_checkBoxStartOnSystemStartup->Enable(false); // not implemented yet
+#endif
+
+ // Init values
+ m_textCtrlTransactionFee->SetValue(FormatMoney(nTransactionFee));
+ m_checkBoxStartOnSystemStartup->SetValue(fTmpStartOnSystemStartup = GetStartOnSystemStartup());
+ m_checkBoxMinimizeToTray->SetValue(fMinimizeToTray);
+ m_checkBoxMinimizeOnClose->SetValue(fMinimizeOnClose);
+ if (fHaveUPnP)
+ m_checkBoxUseUPnP->SetValue(fUseUPnP);
+ else
+ m_checkBoxUseUPnP->Enable(false);
+ m_checkBoxUseProxy->SetValue(fUseProxy);
+ m_textCtrlProxyIP->Enable(fUseProxy);
+ m_textCtrlProxyPort->Enable(fUseProxy);
+ m_staticTextProxyIP->Enable(fUseProxy);
+ m_staticTextProxyPort->Enable(fUseProxy);
+ m_textCtrlProxyIP->SetValue(addrProxy.ToStringIP());
+ m_textCtrlProxyPort->SetValue(addrProxy.ToStringPort());
+
+ m_buttonOK->SetFocus();
+}
+
+void COptionsDialog::SelectPage(int nPage)
+{
+ m_panelMain->Show(nPage == 0);
+ m_panelTest2->Show(nPage == 1);
+
+ m_scrolledWindow->Layout();
+ m_scrolledWindow->SetScrollbars(0, 0, 0, 0, 0, 0);
+}
+
+void COptionsDialog::OnListBox(wxCommandEvent& event)
+{
+ SelectPage(event.GetSelection());
+}
+
+void COptionsDialog::OnKillFocusTransactionFee(wxFocusEvent& event)
+{
+ event.Skip();
+ int64 nTmp = nTransactionFee;
+ ParseMoney(m_textCtrlTransactionFee->GetValue(), nTmp);
+ m_textCtrlTransactionFee->SetValue(FormatMoney(nTmp));
+}
+
+void COptionsDialog::OnCheckBoxUseProxy(wxCommandEvent& event)
+{
+ m_textCtrlProxyIP->Enable(event.IsChecked());
+ m_textCtrlProxyPort->Enable(event.IsChecked());
+ m_staticTextProxyIP->Enable(event.IsChecked());
+ m_staticTextProxyPort->Enable(event.IsChecked());
+}
+
+CAddress COptionsDialog::GetProxyAddr()
+{
+ // Be careful about byte order, addr.ip and addr.port are big endian
+ CAddress addr(m_textCtrlProxyIP->GetValue() + ":" + m_textCtrlProxyPort->GetValue());
+ if (addr.ip == INADDR_NONE)
+ addr.ip = addrProxy.ip;
+ int nPort = atoi(m_textCtrlProxyPort->GetValue());
+ addr.port = htons(nPort);
+ if (nPort <= 0 || nPort > USHRT_MAX)
+ addr.port = addrProxy.port;
+ return addr;
+}
+
+void COptionsDialog::OnKillFocusProxy(wxFocusEvent& event)
+{
+ event.Skip();
+ m_textCtrlProxyIP->SetValue(GetProxyAddr().ToStringIP());
+ m_textCtrlProxyPort->SetValue(GetProxyAddr().ToStringPort());
+}
+
+
+void COptionsDialog::OnButtonOK(wxCommandEvent& event)
+{
+ OnButtonApply(event);
+ EndModal(false);
+}
+
+void COptionsDialog::OnButtonCancel(wxCommandEvent& event)
+{
+ EndModal(false);
+}
+
+void COptionsDialog::OnButtonApply(wxCommandEvent& event)
+{
+ CWalletDB walletdb(pwalletMain->strWalletFile);
+
+ int64 nPrevTransactionFee = nTransactionFee;
+ if (ParseMoney(m_textCtrlTransactionFee->GetValue(), nTransactionFee) && nTransactionFee != nPrevTransactionFee)
+ walletdb.WriteSetting("nTransactionFee", nTransactionFee);
+
+ if (fTmpStartOnSystemStartup != m_checkBoxStartOnSystemStartup->GetValue())
+ {
+ fTmpStartOnSystemStartup = m_checkBoxStartOnSystemStartup->GetValue();
+ SetStartOnSystemStartup(fTmpStartOnSystemStartup);
+ }
+
+ if (fMinimizeToTray != m_checkBoxMinimizeToTray->GetValue())
+ {
+ fMinimizeToTray = m_checkBoxMinimizeToTray->GetValue();
+ walletdb.WriteSetting("fMinimizeToTray", fMinimizeToTray);
+ ptaskbaricon->Show(fMinimizeToTray || fClosedToTray);
+ }
+
+ if (fMinimizeOnClose != m_checkBoxMinimizeOnClose->GetValue())
+ {
+ fMinimizeOnClose = m_checkBoxMinimizeOnClose->GetValue();
+ walletdb.WriteSetting("fMinimizeOnClose", fMinimizeOnClose);
+ }
+
+ if (fHaveUPnP && fUseUPnP != m_checkBoxUseUPnP->GetValue())
+ {
+ fUseUPnP = m_checkBoxUseUPnP->GetValue();
+ walletdb.WriteSetting("fUseUPnP", fUseUPnP);
+ MapPort(fUseUPnP);
+ }
+
+ fUseProxy = m_checkBoxUseProxy->GetValue();
+ walletdb.WriteSetting("fUseProxy", fUseProxy);
+
+ addrProxy = GetProxyAddr();
+ walletdb.WriteSetting("addrProxy", addrProxy);
+}
+
+
+
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// CAboutDialog
+//
+
+CAboutDialog::CAboutDialog(wxWindow* parent) : CAboutDialogBase(parent)
+{
+ m_staticTextVersion->SetLabel(strprintf(_("version %s"), FormatFullVersion().c_str()));
+
+ // Change (c) into UTF-8 or ANSI copyright symbol
+ wxString str = m_staticTextMain->GetLabel();
+#if wxUSE_UNICODE
+ str.Replace("(c)", wxString::FromUTF8("\xC2\xA9"));
+#else
+ str.Replace("(c)", "\xA9");
+#endif
+ m_staticTextMain->SetLabel(str);
+#ifndef __WXMSW__
+ // Resize on Linux to make the window fit the text.
+ // The text was wrapped manually rather than using the Wrap setting because
+ // the wrap would be too small on Linux and it can't be changed at this point.
+ wxFont fontTmp = m_staticTextMain->GetFont();
+ if (fontTmp.GetPointSize() > 8);
+ fontTmp.SetPointSize(8);
+ m_staticTextMain->SetFont(fontTmp);
+ SetSize(GetSize().GetWidth() + 44, GetSize().GetHeight() + 10);
+#else
+ SetSize(nScaleX * GetSize().GetWidth(), nScaleY * GetSize().GetHeight());
+#endif
+}
+
+void CAboutDialog::OnButtonOK(wxCommandEvent& event)
+{
+ EndModal(false);
+}
+
+
+
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// CSendDialog
+//
+
+CSendDialog::CSendDialog(wxWindow* parent, const wxString& strAddress) : CSendDialogBase(parent)
+{
+ // Init
+ m_textCtrlAddress->SetValue(strAddress);
+ m_choiceTransferType->SetSelection(0);
+ m_bitmapCheckMark->Show(false);
+ fEnabledPrev = true;
+ m_textCtrlAddress->SetFocus();
+
+ //// todo: should add a display of your balance for convenience
+#ifndef __WXMSW__
+ wxFont fontTmp = m_staticTextInstructions->GetFont();
+ if (fontTmp.GetPointSize() > 9);
+ fontTmp.SetPointSize(9);
+ m_staticTextInstructions->SetFont(fontTmp);
+ SetSize(725, 180);
+#else
+ SetSize(nScaleX * GetSize().GetWidth(), nScaleY * GetSize().GetHeight());
+#endif
+
+ // Set Icon
+ if (nScaleX == 1.0 && nScaleY == 1.0) // We don't have icons of the proper size otherwise
+ {
+ wxIcon iconSend;
+ iconSend.CopyFromBitmap(wxBitmap(send16noshadow_xpm));
+ SetIcon(iconSend);
+ }
+#ifdef __WXMSW__
+ else
+ SetIcon(wxICON(bitcoin));
+#endif
+
+ // Fixup the tab order
+ m_buttonPaste->MoveAfterInTabOrder(m_buttonCancel);
+ m_buttonAddress->MoveAfterInTabOrder(m_buttonPaste);
+ this->Layout();
+}
+
+void CSendDialog::OnKillFocusAmount(wxFocusEvent& event)
+{
+ // Reformat the amount
+ event.Skip();
+ if (m_textCtrlAmount->GetValue().Trim().empty())
+ return;
+ int64 nTmp;
+ if (ParseMoney(m_textCtrlAmount->GetValue(), nTmp))
+ m_textCtrlAmount->SetValue(FormatMoney(nTmp));
+}
+
+void CSendDialog::OnButtonAddressBook(wxCommandEvent& event)
+{
+ // Open address book
+ CAddressBookDialog dialog(this, m_textCtrlAddress->GetValue(), CAddressBookDialog::SENDING, true);
+ if (dialog.ShowModal())
+ m_textCtrlAddress->SetValue(dialog.GetSelectedAddress());
+}
+
+void CSendDialog::OnButtonPaste(wxCommandEvent& event)
+{
+ // Copy clipboard to address box
+ if (wxTheClipboard->Open())
+ {
+ if (wxTheClipboard->IsSupported(wxDF_TEXT))
+ {
+ wxTextDataObject data;
+ wxTheClipboard->GetData(data);
+ m_textCtrlAddress->SetValue(data.GetText());
+ }
+ wxTheClipboard->Close();
+ }
+}
+
+void CSendDialog::OnButtonSend(wxCommandEvent& event)
+{
+ static CCriticalSection cs_sendlock;
+ TRY_CRITICAL_BLOCK(cs_sendlock)
+ {
+ CWalletTx wtx;
+ string strAddress = (string)m_textCtrlAddress->GetValue();
+
+ // Parse amount
+ int64 nValue = 0;
+ if (!ParseMoney(m_textCtrlAmount->GetValue(), nValue) || nValue <= 0)
+ {
+ wxMessageBox(_("Error in amount "), _("Send Coins"));
+ return;
+ }
+ if (nValue > pwalletMain->GetBalance())
+ {
+ wxMessageBox(_("Amount exceeds your balance "), _("Send Coins"));
+ return;
+ }
+ if (nValue + nTransactionFee > pwalletMain->GetBalance())
+ {
+ wxMessageBox(string(_("Total exceeds your balance when the ")) + FormatMoney(nTransactionFee) + _(" transaction fee is included "), _("Send Coins"));
+ return;
+ }
+
+ // Parse bitcoin address
+ uint160 hash160;
+ bool fBitcoinAddress = AddressToHash160(strAddress, hash160);
+
+ if (fBitcoinAddress)
+ {
+ CRITICAL_BLOCK(cs_main)
+ {
+ // Send to bitcoin address
+ CScript scriptPubKey;
+ scriptPubKey << OP_DUP << OP_HASH160 << hash160 << OP_EQUALVERIFY << OP_CHECKSIG;
+
+ string strError = pwalletMain->SendMoney(scriptPubKey, nValue, wtx, true);
+ if (strError == "")
+ wxMessageBox(_("Payment sent "), _("Sending..."));
+ else if (strError == "ABORTED")
+ return; // leave send dialog open
+ else
+ {
+ wxMessageBox(strError + " ", _("Sending..."));
+ EndModal(false);
+ return;
+ }
+ }
+ }
+ else
+ {
+ // Parse IP address
+ CAddress addr(strAddress);
+ if (!addr.IsValid())
+ {
+ wxMessageBox(_("Invalid address "), _("Send Coins"));
+ return;
+ }
+
+ // Message
+ wtx.mapValue["to"] = strAddress;
+
+ // Send to IP address
+ CSendingDialog* pdialog = new CSendingDialog(this, addr, nValue, wtx);
+ if (!pdialog->ShowModal())
+ return;
+ }
+
+ CRITICAL_BLOCK(pwalletMain->cs_mapAddressBook)
+ if (!pwalletMain->mapAddressBook.count(strAddress))
+ pwalletMain->SetAddressBookName(strAddress, "");
+
+ EndModal(true);
+ }
+}
+
+void CSendDialog::OnButtonCancel(wxCommandEvent& event)
+{
+ // Cancel
+ EndModal(false);
+}
+
+
+
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// CSendingDialog
+//
+
+CSendingDialog::CSendingDialog(wxWindow* parent, const CAddress& addrIn, int64 nPriceIn, const CWalletTx& wtxIn) : CSendingDialogBase(NULL) // we have to give null so parent can't destroy us
+{
+ addr = addrIn;
+ nPrice = nPriceIn;
+ wtx = wtxIn;
+ start = wxDateTime::UNow();
+ memset(pszStatus, 0, sizeof(pszStatus));
+ fCanCancel = true;
+ fAbort = false;
+ fSuccess = false;
+ fUIDone = false;
+ fWorkDone = false;
+#ifndef __WXMSW__
+ SetSize(1.2 * GetSize().GetWidth(), 1.08 * GetSize().GetHeight());
+#else
+ SetSize(nScaleX * GetSize().GetWidth(), nScaleY * GetSize().GetHeight());
+#endif
+
+ SetTitle(strprintf(_("Sending %s to %s"), FormatMoney(nPrice).c_str(), wtx.mapValue["to"].c_str()));
+ m_textCtrlStatus->SetValue("");
+
+ CreateThread(SendingDialogStartTransfer, this);
+}
+
+CSendingDialog::~CSendingDialog()
+{
+ printf("~CSendingDialog()\n");
+}
+
+void CSendingDialog::Close()
+{
+ // Last one out turn out the lights.
+ // fWorkDone signals that work side is done and UI thread should call destroy.
+ // fUIDone signals that UI window has closed and work thread should call destroy.
+ // This allows the window to disappear and end modality when cancelled
+ // without making the user wait for ConnectNode to return. The dialog object
+ // hangs around in the background until the work thread exits.
+ if (IsModal())
+ EndModal(fSuccess);
+ else
+ Show(false);
+ if (fWorkDone)
+ Destroy();
+ else
+ fUIDone = true;
+}
+
+void CSendingDialog::OnClose(wxCloseEvent& event)
+{
+ if (!event.CanVeto() || fWorkDone || fAbort || !fCanCancel)
+ {
+ Close();
+ }
+ else
+ {
+ event.Veto();
+ wxCommandEvent cmdevent;
+ OnButtonCancel(cmdevent);
+ }
+}
+
+void CSendingDialog::OnButtonOK(wxCommandEvent& event)
+{
+ if (fWorkDone)
+ Close();
+}
+
+void CSendingDialog::OnButtonCancel(wxCommandEvent& event)
+{
+ if (fCanCancel)
+ fAbort = true;
+}
+
+void CSendingDialog::OnPaint(wxPaintEvent& event)
+{
+ event.Skip();
+ if (strlen(pszStatus) > 130)
+ m_textCtrlStatus->SetValue(string("\n") + pszStatus);
+ else
+ m_textCtrlStatus->SetValue(string("\n\n") + pszStatus);
+ m_staticTextSending->SetFocus();
+ if (!fCanCancel)
+ m_buttonCancel->Enable(false);
+ if (fWorkDone)
+ {
+ m_buttonOK->Enable(true);
+ m_buttonOK->SetFocus();
+ m_buttonCancel->Enable(false);
+ }
+ if (fAbort && fCanCancel && IsShown())
+ {
+ strcpy(pszStatus, _("CANCELLED"));
+ m_buttonOK->Enable(true);
+ m_buttonOK->SetFocus();
+ m_buttonCancel->Enable(false);
+ m_buttonCancel->SetLabel(_("Cancelled"));
+ Close();
+ wxMessageBox(_("Transfer cancelled "), _("Sending..."), wxOK, this);
+ }
+}
+
+
+//
+// Everything from here on is not in the UI thread and must only communicate
+// with the rest of the dialog through variables and calling repaint.
+//
+
+void CSendingDialog::Repaint()
+{
+ Refresh();
+ wxPaintEvent event;
+ GetEventHandler()->AddPendingEvent(event);
+}
+
+bool CSendingDialog::Status()
+{
+ if (fUIDone)
+ {
+ Destroy();
+ return false;
+ }
+ if (fAbort && fCanCancel)
+ {
+ memset(pszStatus, 0, 10);
+ strcpy(pszStatus, _("CANCELLED"));
+ Repaint();
+ fWorkDone = true;
+ return false;
+ }
+ return true;
+}
+
+bool CSendingDialog::Status(const string& str)
+{
+ if (!Status())
+ return false;
+
+ // This can be read by the UI thread at any time,
+ // so copy in a way that can be read cleanly at all times.
+ memset(pszStatus, 0, min(str.size()+1, sizeof(pszStatus)));
+ strlcpy(pszStatus, str.c_str(), sizeof(pszStatus));
+
+ Repaint();
+ return true;
+}
+
+bool CSendingDialog::Error(const string& str)
+{
+ fCanCancel = false;
+ fWorkDone = true;
+ Status(string(_("Error: ")) + str);
+ return false;
+}
+
+void SendingDialogStartTransfer(void* parg)
+{
+ ((CSendingDialog*)parg)->StartTransfer();
+}
+
+void CSendingDialog::StartTransfer()
+{
+ // Make sure we have enough money
+ if (nPrice + nTransactionFee > pwalletMain->GetBalance())
+ {
+ Error(_("Insufficient funds"));
+ return;
+ }
+
+ // We may have connected already for product details
+ if (!Status(_("Connecting...")))
+ return;
+ CNode* pnode = ConnectNode(addr, 15 * 60);
+ if (!pnode)
+ {
+ Error(_("Unable to connect"));
+ return;
+ }
+
+ // Send order to seller, with response going to OnReply2 via event handler
+ if (!Status(_("Requesting public key...")))
+ return;
+ pnode->PushRequest("checkorder", wtx, SendingDialogOnReply2, this);
+}
+
+void SendingDialogOnReply2(void* parg, CDataStream& vRecv)
+{
+ ((CSendingDialog*)parg)->OnReply2(vRecv);
+}
+
+void CSendingDialog::OnReply2(CDataStream& vRecv)
+{
+ if (!Status(_("Received public key...")))
+ return;
+
+ CScript scriptPubKey;
+ int nRet;
+ try
+ {
+ vRecv >> nRet;
+ if (nRet > 0)
+ {
+ string strMessage;
+ if (!vRecv.empty())
+ vRecv >> strMessage;
+ if (nRet == 2)
+ Error(_("Recipient is not accepting transactions sent by IP address"));
+ else
+ Error(_("Transfer was not accepted"));
+ //// todo: enlarge the window and enable a hidden white box to put seller's message
+ return;
+ }
+ vRecv >> scriptPubKey;
+ }
+ catch (...)
+ {
+ //// what do we want to do about this?
+ Error(_("Invalid response received"));
+ return;
+ }
+
+ // Pause to give the user a chance to cancel
+ while (wxDateTime::UNow() < start + wxTimeSpan(0, 0, 0, 2 * 1000))
+ {
+ Sleep(200);
+ if (!Status())
+ return;
+ }
+
+ CRITICAL_BLOCK(cs_main)
+ {
+ // Pay
+ if (!Status(_("Creating transaction...")))
+ return;
+ if (nPrice + nTransactionFee > pwalletMain->GetBalance())
+ {
+ Error(_("Insufficient funds"));
+ return;
+ }
+ CReserveKey reservekey(pwalletMain);
+ int64 nFeeRequired;
+ if (!pwalletMain->CreateTransaction(scriptPubKey, nPrice, wtx, reservekey, nFeeRequired))
+ {
+ if (nPrice + nFeeRequired > pwalletMain->GetBalance())
+ Error(strprintf(_("This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds"), FormatMoney(nFeeRequired).c_str()));
+ else
+ Error(_("Transaction creation failed"));
+ return;
+ }
+
+ // Transaction fee
+ if (!ThreadSafeAskFee(nFeeRequired, _("Sending..."), this))
+ {
+ Error(_("Transaction aborted"));
+ return;
+ }
+
+ // Make sure we're still connected
+ CNode* pnode = ConnectNode(addr, 2 * 60 * 60);
+ if (!pnode)
+ {
+ Error(_("Lost connection, transaction cancelled"));
+ return;
+ }
+
+ // Last chance to cancel
+ Sleep(50);
+ if (!Status())
+ return;
+ fCanCancel = false;
+ if (fAbort)
+ {
+ fCanCancel = true;
+ if (!Status())
+ return;
+ fCanCancel = false;
+ }
+ if (!Status(_("Sending payment...")))
+ return;
+
+ // Commit
+ if (!pwalletMain->CommitTransaction(wtx, reservekey))
+ {
+ Error(_("The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here."));
+ return;
+ }
+
+ // Send payment tx to seller, with response going to OnReply3 via event handler
+ CWalletTx wtxSend = wtx;
+ wtxSend.fFromMe = false;
+ pnode->PushRequest("submitorder", wtxSend, SendingDialogOnReply3, this);
+
+ Status(_("Waiting for confirmation..."));
+ MainFrameRepaint();
+ }
+}
+
+void SendingDialogOnReply3(void* parg, CDataStream& vRecv)
+{
+ ((CSendingDialog*)parg)->OnReply3(vRecv);
+}
+
+void CSendingDialog::OnReply3(CDataStream& vRecv)
+{
+ int nRet;
+ try
+ {
+ vRecv >> nRet;
+ if (nRet > 0)
+ {
+ Error(_("The payment was sent, but the recipient was unable to verify it.\n"
+ "The transaction is recorded and will credit to the recipient,\n"
+ "but the comment information will be blank."));
+ return;
+ }
+ }
+ catch (...)
+ {
+ //// what do we want to do about this?
+ Error(_("Payment was sent, but an invalid response was received"));
+ return;
+ }
+
+ fSuccess = true;
+ fWorkDone = true;
+ Status(_("Payment completed"));
+}
+
+
+
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// CAddressBookDialog
+//
+
+CAddressBookDialog::CAddressBookDialog(wxWindow* parent, const wxString& strInitSelected, int nPageIn, bool fDuringSendIn) : CAddressBookDialogBase(parent)
+{
+#ifdef __WXMSW__
+ SetSize(nScaleX * GetSize().GetWidth(), nScaleY * GetSize().GetHeight());
+#endif
+
+ // Set initially selected page
+ wxNotebookEvent event;
+ event.SetSelection(nPageIn);
+ OnNotebookPageChanged(event);
+ m_notebook->ChangeSelection(nPageIn);
+
+ fDuringSend = fDuringSendIn;
+ if (!fDuringSend)
+ m_buttonCancel->Show(false);
+
+ // Set Icon
+ if (nScaleX == 1.0 && nScaleY == 1.0) // We don't have icons of the proper size otherwise
+ {
+ wxIcon iconAddressBook;
+ iconAddressBook.CopyFromBitmap(wxBitmap(addressbook16_xpm));
+ SetIcon(iconAddressBook);
+ }
+#ifdef __WXMSW__
+ else
+ SetIcon(wxICON(bitcoin));
+#endif
+
+ // Init column headers
+ m_listCtrlSending->InsertColumn(0, _("Name"), wxLIST_FORMAT_LEFT, 200);
+ m_listCtrlSending->InsertColumn(1, _("Address"), wxLIST_FORMAT_LEFT, 350);
+ m_listCtrlSending->SetFocus();
+ m_listCtrlReceiving->InsertColumn(0, _("Label"), wxLIST_FORMAT_LEFT, 200);
+ m_listCtrlReceiving->InsertColumn(1, _("Bitcoin Address"), wxLIST_FORMAT_LEFT, 350);
+ m_listCtrlReceiving->SetFocus();
+
+ // Fill listctrl with address book data
+ CRITICAL_BLOCK(pwalletMain->cs_mapKeys)
+ CRITICAL_BLOCK(pwalletMain->cs_mapAddressBook)
+ {
+ string strDefaultReceiving = (string)pframeMain->m_textCtrlAddress->GetValue();
+ BOOST_FOREACH(const PAIRTYPE(string, string)& item, pwalletMain->mapAddressBook)
+ {
+ string strAddress = item.first;
+ string strName = item.second;
+ uint160 hash160;
+ bool fMine = (AddressToHash160(strAddress, hash160) && mapPubKeys.count(hash160));
+ wxListCtrl* plistCtrl = fMine ? m_listCtrlReceiving : m_listCtrlSending;
+ int nIndex = InsertLine(plistCtrl, strName, strAddress);
+ if (strAddress == (fMine ? strDefaultReceiving : string(strInitSelected)))
+ plistCtrl->SetItemState(nIndex, wxLIST_STATE_SELECTED|wxLIST_STATE_FOCUSED, wxLIST_STATE_SELECTED|wxLIST_STATE_FOCUSED);
+ }
+ }
+}
+
+wxString CAddressBookDialog::GetSelectedAddress()
+{
+ int nIndex = GetSelection(m_listCtrl);
+ if (nIndex == -1)
+ return "";
+ return GetItemText(m_listCtrl, nIndex, 1);
+}
+
+wxString CAddressBookDialog::GetSelectedSendingAddress()
+{
+ int nIndex = GetSelection(m_listCtrlSending);
+ if (nIndex == -1)
+ return "";
+ return GetItemText(m_listCtrlSending, nIndex, 1);
+}
+
+wxString CAddressBookDialog::GetSelectedReceivingAddress()
+{
+ int nIndex = GetSelection(m_listCtrlReceiving);
+ if (nIndex == -1)
+ return "";
+ return GetItemText(m_listCtrlReceiving, nIndex, 1);
+}
+
+void CAddressBookDialog::OnNotebookPageChanged(wxNotebookEvent& event)
+{
+ event.Skip();
+ nPage = event.GetSelection();
+ if (nPage == SENDING)
+ m_listCtrl = m_listCtrlSending;
+ else if (nPage == RECEIVING)
+ m_listCtrl = m_listCtrlReceiving;
+ m_buttonDelete->Show(nPage == SENDING);
+ m_buttonCopy->Show(nPage == RECEIVING);
+ this->Layout();
+ m_listCtrl->SetFocus();
+}
+
+void CAddressBookDialog::OnListEndLabelEdit(wxListEvent& event)
+{
+ // Update address book with edited name
+ event.Skip();
+ if (event.IsEditCancelled())
+ return;
+ string strAddress = (string)GetItemText(m_listCtrl, event.GetIndex(), 1);
+ CRITICAL_BLOCK(pwalletMain->cs_mapAddressBook)
+ pwalletMain->SetAddressBookName(strAddress, string(event.GetText()));
+ pframeMain->RefreshListCtrl();
+}
+
+void CAddressBookDialog::OnListItemSelected(wxListEvent& event)
+{
+ event.Skip();
+ if (nPage == RECEIVING)
+ SetDefaultReceivingAddress((string)GetSelectedReceivingAddress());
+}
+
+void CAddressBookDialog::OnListItemActivated(wxListEvent& event)
+{
+ event.Skip();
+ if (fDuringSend)
+ {
+ // Doubleclick returns selection
+ EndModal(GetSelectedAddress() != "" ? 2 : 0);
+ return;
+ }
+
+ // Doubleclick edits item
+ wxCommandEvent event2;
+ OnButtonEdit(event2);
+}
+
+void CAddressBookDialog::OnButtonDelete(wxCommandEvent& event)
+{
+ if (nPage != SENDING)
+ return;
+ for (int nIndex = m_listCtrl->GetItemCount()-1; nIndex >= 0; nIndex--)
+ {
+ if (m_listCtrl->GetItemState(nIndex, wxLIST_STATE_SELECTED))
+ {
+ string strAddress = (string)GetItemText(m_listCtrl, nIndex, 1);
+ CRITICAL_BLOCK(pwalletMain->cs_mapAddressBook)
+ pwalletMain->DelAddressBookName(strAddress);
+ m_listCtrl->DeleteItem(nIndex);
+ }
+ }
+ pframeMain->RefreshListCtrl();
+}
+
+void CAddressBookDialog::OnButtonCopy(wxCommandEvent& event)
+{
+ // Copy address box to clipboard
+ if (wxTheClipboard->Open())
+ {
+ wxTheClipboard->SetData(new wxTextDataObject(GetSelectedAddress()));
+ wxTheClipboard->Close();
+ }
+}
+
+bool CAddressBookDialog::CheckIfMine(const string& strAddress, const string& strTitle)
+{
+ uint160 hash160;
+ bool fMine = (AddressToHash160(strAddress, hash160) && mapPubKeys.count(hash160));
+ if (fMine)
+ wxMessageBox(_("This is one of your own addresses for receiving payments and cannot be entered in the address book. "), strTitle);
+ return fMine;
+}
+
+void CAddressBookDialog::OnButtonEdit(wxCommandEvent& event)
+{
+ int nIndex = GetSelection(m_listCtrl);
+ if (nIndex == -1)
+ return;
+ string strName = (string)m_listCtrl->GetItemText(nIndex);
+ string strAddress = (string)GetItemText(m_listCtrl, nIndex, 1);
+ string strAddressOrg = strAddress;
+
+ if (nPage == SENDING)
+ {
+ // Ask name and address
+ do
+ {
+ CGetTextFromUserDialog dialog(this, _("Edit Address"), _("Name"), strName, _("Address"), strAddress);
+ if (!dialog.ShowModal())
+ return;
+ strName = dialog.GetValue1();
+ strAddress = dialog.GetValue2();
+ }
+ while (CheckIfMine(strAddress, _("Edit Address")));
+
+ }
+ else if (nPage == RECEIVING)
+ {
+ // Ask name
+ CGetTextFromUserDialog dialog(this, _("Edit Address Label"), _("Label"), strName);
+ if (!dialog.ShowModal())
+ return;
+ strName = dialog.GetValue();
+ }
+
+ // Write back
+ CRITICAL_BLOCK(pwalletMain->cs_mapAddressBook)
+ {
+ if (strAddress != strAddressOrg)
+ pwalletMain->DelAddressBookName(strAddressOrg);
+ pwalletMain->SetAddressBookName(strAddress, strName);
+ }
+ m_listCtrl->SetItem(nIndex, 1, strAddress);
+ m_listCtrl->SetItemText(nIndex, strName);
+ pframeMain->RefreshListCtrl();
+}
+
+void CAddressBookDialog::OnButtonNew(wxCommandEvent& event)
+{
+ string strName;
+ string strAddress;
+
+ if (nPage == SENDING)
+ {
+ // Ask name and address
+ do
+ {
+ CGetTextFromUserDialog dialog(this, _("Add Address"), _("Name"), strName, _("Address"), strAddress);
+ if (!dialog.ShowModal())
+ return;
+ strName = dialog.GetValue1();
+ strAddress = dialog.GetValue2();
+ }
+ while (CheckIfMine(strAddress, _("Add Address")));
+ }
+ else if (nPage == RECEIVING)
+ {
+ // Ask name
+ CGetTextFromUserDialog dialog(this,
+ _("New Receiving Address"),
+ _("You should use a new address for each payment you receive.\n\nLabel"),
+ "");
+ if (!dialog.ShowModal())
+ return;
+ strName = dialog.GetValue();
+
+ // Generate new key
+ strAddress = PubKeyToAddress(pwalletMain->GetKeyFromKeyPool());
+ }
+
+ // Add to list and select it
+ CRITICAL_BLOCK(pwalletMain->cs_mapAddressBook)
+ pwalletMain->SetAddressBookName(strAddress, strName);
+ int nIndex = InsertLine(m_listCtrl, strName, strAddress);
+ SetSelection(m_listCtrl, nIndex);
+ m_listCtrl->SetFocus();
+ if (nPage == SENDING)
+ pframeMain->RefreshListCtrl();
+}
+
+void CAddressBookDialog::OnButtonOK(wxCommandEvent& event)
+{
+ // OK
+ EndModal(GetSelectedAddress() != "" ? 1 : 0);
+}
+
+void CAddressBookDialog::OnButtonCancel(wxCommandEvent& event)
+{
+ // Cancel
+ EndModal(0);
+}
+
+void CAddressBookDialog::OnClose(wxCloseEvent& event)
+{
+ // Close
+ EndModal(0);
+}
+
+
+
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// CMyTaskBarIcon
+//
+
+enum
+{
+ ID_TASKBAR_RESTORE = 10001,
+ ID_TASKBAR_SEND,
+ ID_TASKBAR_OPTIONS,
+ ID_TASKBAR_GENERATE,
+ ID_TASKBAR_EXIT,
+};
+
+BEGIN_EVENT_TABLE(CMyTaskBarIcon, wxTaskBarIcon)
+ EVT_TASKBAR_LEFT_DCLICK(CMyTaskBarIcon::OnLeftButtonDClick)
+ EVT_MENU(ID_TASKBAR_RESTORE, CMyTaskBarIcon::OnMenuRestore)
+ EVT_MENU(ID_TASKBAR_SEND, CMyTaskBarIcon::OnMenuSend)
+ EVT_MENU(ID_TASKBAR_OPTIONS, CMyTaskBarIcon::OnMenuOptions)
+ EVT_UPDATE_UI(ID_TASKBAR_GENERATE, CMyTaskBarIcon::OnUpdateUIGenerate)
+ EVT_MENU(ID_TASKBAR_EXIT, CMyTaskBarIcon::OnMenuExit)
+END_EVENT_TABLE()
+
+void CMyTaskBarIcon::Show(bool fShow)
+{
+ static char pszPrevTip[200];
+ if (fShow)
+ {
+ string strTooltip = _("Bitcoin");
+ if (fGenerateBitcoins)
+ strTooltip = _("Bitcoin - Generating");
+ if (fGenerateBitcoins && vNodes.empty())
+ strTooltip = _("Bitcoin - (not connected)");
+
+ // Optimization, only update when changed, using char array to be reentrant
+ if (strncmp(pszPrevTip, strTooltip.c_str(), sizeof(pszPrevTip)-1) != 0)
+ {
+ strlcpy(pszPrevTip, strTooltip.c_str(), sizeof(pszPrevTip));
+#ifdef __WXMSW__
+ // somehow it'll choose the wrong size and scale it down if
+ // we use the main icon, so we hand it one with only 16x16
+ SetIcon(wxICON(favicon), strTooltip);
+#else
+ SetIcon(bitcoin80_xpm, strTooltip);
+#endif
+ }
+ }
+ else
+ {
+ strlcpy(pszPrevTip, "", sizeof(pszPrevTip));
+ RemoveIcon();
+ }
+}
+
+void CMyTaskBarIcon::Hide()
+{
+ Show(false);
+}
+
+void CMyTaskBarIcon::OnLeftButtonDClick(wxTaskBarIconEvent& event)
+{
+ Restore();
+}
+
+void CMyTaskBarIcon::OnMenuRestore(wxCommandEvent& event)
+{
+ Restore();
+}
+
+void CMyTaskBarIcon::OnMenuSend(wxCommandEvent& event)
+{
+ // Taskbar: Send
+ CSendDialog dialog(pframeMain);
+ dialog.ShowModal();
+}
+
+void CMyTaskBarIcon::OnMenuOptions(wxCommandEvent& event)
+{
+ // Since it's modal, get the main window to do it
+ wxCommandEvent event2(wxEVT_COMMAND_MENU_SELECTED, wxID_PREFERENCES);
+ pframeMain->GetEventHandler()->AddPendingEvent(event2);
+}
+
+void CMyTaskBarIcon::Restore()
+{
+ pframeMain->Show();
+ wxIconizeEvent event(0, false);
+ pframeMain->GetEventHandler()->AddPendingEvent(event);
+ pframeMain->Iconize(false);
+ pframeMain->Raise();
+}
+
+void CMyTaskBarIcon::OnUpdateUIGenerate(wxUpdateUIEvent& event)
+{
+ event.Check(fGenerateBitcoins);
+}
+
+void CMyTaskBarIcon::OnMenuExit(wxCommandEvent& event)
+{
+ pframeMain->Close(true);
+}
+
+void CMyTaskBarIcon::UpdateTooltip()
+{
+ if (IsIconInstalled())
+ Show(true);
+}
+
+wxMenu* CMyTaskBarIcon::CreatePopupMenu()
+{
+ wxMenu* pmenu = new wxMenu;
+ pmenu->Append(ID_TASKBAR_RESTORE, _("&Open Bitcoin"));
+ pmenu->Append(ID_TASKBAR_SEND, _("&Send Bitcoins"));
+ pmenu->Append(ID_TASKBAR_OPTIONS, _("O&ptions..."));
+#ifndef __WXMAC_OSX__ // Mac has built-in quit menu
+ pmenu->AppendSeparator();
+ pmenu->Append(ID_TASKBAR_EXIT, _("E&xit"));
+#endif
+ return pmenu;
+}
+
+
+
+
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// CMyApp
+//
+
+void CreateMainWindow()
+{
+ pframeMain = new CMainFrame(NULL);
+ if (GetBoolArg("-min"))
+ pframeMain->Iconize(true);
+#if defined(__WXGTK__) || defined(__WXMAC_OSX__)
+ if (!GetBoolArg("-minimizetotray"))
+ fMinimizeToTray = false;
+#endif
+ pframeMain->Show(true); // have to show first to get taskbar button to hide
+ if (fMinimizeToTray && pframeMain->IsIconized())
+ fClosedToTray = true;
+ pframeMain->Show(!fClosedToTray);
+ ptaskbaricon->Show(fMinimizeToTray || fClosedToTray);
+ CreateThread(ThreadDelayedRepaint, NULL);
+}
+
+
+// Define a new application
+class CMyApp : public wxApp
+{
+public:
+ CMyApp(){};
+ ~CMyApp(){};
+ bool OnInit();
+ bool OnInit2();
+ int OnExit();
+
+ // Hook Initialize so we can start without GUI
+ virtual bool Initialize(int& argc, wxChar** argv);
+
+ // 2nd-level exception handling: we get all the exceptions occurring in any
+ // event handler here
+ virtual bool OnExceptionInMainLoop();
+
+ // 3rd, and final, level exception handling: whenever an unhandled
+ // exception is caught, this function is called
+ virtual void OnUnhandledException();
+
+ // and now for something different: this function is called in case of a
+ // crash (e.g. dereferencing null pointer, division by 0, ...)
+ virtual void OnFatalException();
+};
+
+IMPLEMENT_APP(CMyApp)
+
+bool CMyApp::Initialize(int& argc, wxChar** argv)
+{
+ for (int i = 1; i < argc; i++)
+ if (!IsSwitchChar(argv[i][0]))
+ fCommandLine = true;
+
+ if (!fCommandLine)
+ {
+ // wxApp::Initialize will remove environment-specific parameters,
+ // so it's too early to call ParseParameters yet
+ for (int i = 1; i < argc; i++)
+ {
+ wxString str = argv[i];
+ #ifdef __WXMSW__
+ if (str.size() >= 1 && str[0] == '/')
+ str[0] = '-';
+ char pszLower[MAX_PATH];
+ strlcpy(pszLower, str.c_str(), sizeof(pszLower));
+ strlwr(pszLower);
+ str = pszLower;
+ #endif
+ if (str == "-daemon")
+ fDaemon = true;
+ }
+ }
+
+#ifdef __WXGTK__
+ if (fDaemon || fCommandLine)
+ {
+ // Call the original Initialize while suppressing error messages
+ // and ignoring failure. If unable to initialize GTK, it fails
+ // near the end so hopefully the last few things don't matter.
+ {
+ wxLogNull logNo;
+ wxApp::Initialize(argc, argv);
+ }
+
+ if (fDaemon)
+ {
+ // Daemonize
+ pid_t pid = fork();
+ if (pid < 0)
+ {
+ fprintf(stderr, "Error: fork() returned %d errno %d\n", pid, errno);
+ return false;
+ }
+ if (pid > 0)
+ pthread_exit((void*)0);
+
+ pid_t sid = setsid();
+ if (sid < 0)
+ fprintf(stderr, "Error: setsid() returned %d errno %d\n", sid, errno);
+ }
+
+ return true;
+ }
+#endif
+
+ return wxApp::Initialize(argc, argv);
+}
+
+bool CMyApp::OnInit()
+{
+#if defined(__WXMSW__) && defined(__WXDEBUG__) && defined(GUI)
+ // Disable malfunctioning wxWidgets debug assertion
+ extern int g_isPainting;
+ g_isPainting = 10000;
+#endif
+#if defined(__WXMSW__ ) || defined(__WXMAC_OSX__)
+ SetAppName("Bitcoin");
+#else
+ SetAppName("bitcoin");
+#endif
+#ifdef __WXMSW__
+#if wxUSE_UNICODE
+ // Hack to set wxConvLibc codepage to UTF-8 on Windows,
+ // may break if wxMBConv_win32 implementation in strconv.cpp changes.
+ class wxMBConv_win32 : public wxMBConv
+ {
+ public:
+ long m_CodePage;
+ size_t m_minMBCharWidth;
+ };
+ if (((wxMBConv_win32*)&wxConvLibc)->m_CodePage == CP_ACP)
+ ((wxMBConv_win32*)&wxConvLibc)->m_CodePage = CP_UTF8;
+#endif
+#endif
+
+ // Load locale/<lang>/LC_MESSAGES/bitcoin.mo language file
+ g_locale.Init(wxLANGUAGE_DEFAULT, 0);
+ g_locale.AddCatalogLookupPathPrefix("locale");
+#ifndef __WXMSW__
+ g_locale.AddCatalogLookupPathPrefix("/usr/share/locale");
+ g_locale.AddCatalogLookupPathPrefix("/usr/local/share/locale");
+#endif
+ g_locale.AddCatalog("wxstd"); // wxWidgets standard translations, if any
+ g_locale.AddCatalog("bitcoin");
+
+#ifdef __WXMSW__
+ HDC hdc = GetDC(NULL);
+ if (hdc)
+ {
+ nScaleX = GetDeviceCaps(hdc, LOGPIXELSX) / 96.0;
+ nScaleY = GetDeviceCaps(hdc, LOGPIXELSY) / 96.0;
+ ReleaseDC(NULL, hdc);
+ }
+#endif
+
+ return AppInit(argc, argv);
+}
+
+int CMyApp::OnExit()
+{
+ Shutdown(NULL);
+ return wxApp::OnExit();
+}
+
+bool CMyApp::OnExceptionInMainLoop()
+{
+ try
+ {
+ throw;
+ }
+ catch (std::exception& e)
+ {
+ PrintException(&e, "CMyApp::OnExceptionInMainLoop()");
+ wxLogWarning("Exception %s %s", typeid(e).name(), e.what());
+ Sleep(1000);
+ throw;
+ }
+ catch (...)
+ {
+ PrintException(NULL, "CMyApp::OnExceptionInMainLoop()");
+ wxLogWarning("Unknown exception");
+ Sleep(1000);
+ throw;
+ }
+ return true;
+}
+
+void CMyApp::OnUnhandledException()
+{
+ // this shows how we may let some exception propagate uncaught
+ try
+ {
+ throw;
+ }
+ catch (std::exception& e)
+ {
+ PrintException(&e, "CMyApp::OnUnhandledException()");
+ wxLogWarning("Exception %s %s", typeid(e).name(), e.what());
+ Sleep(1000);
+ throw;
+ }
+ catch (...)
+ {
+ PrintException(NULL, "CMyApp::OnUnhandledException()");
+ wxLogWarning("Unknown exception");
+ Sleep(1000);
+ throw;
+ }
+}
+
+void CMyApp::OnFatalException()
+{
+ wxMessageBox(_("Program has crashed and will terminate. "), "Bitcoin", wxOK | wxICON_ERROR);
+}
diff --git a/src/ui.h b/src/ui.h
new file mode 100644
index 0000000000..3f06ad90cb
--- /dev/null
+++ b/src/ui.h
@@ -0,0 +1,350 @@
+// Copyright (c) 2009-2010 Satoshi Nakamoto
+// Distributed under the MIT/X11 software license, see the accompanying
+// file license.txt or http://www.opensource.org/licenses/mit-license.php.
+#ifndef BITCOIN_UI_H
+#define BITCOIN_UI_H
+
+#include <boost/function.hpp>
+#include "wallet.h"
+
+DECLARE_EVENT_TYPE(wxEVT_UITHREADCALL, -1)
+
+
+
+extern wxLocale g_locale;
+
+
+
+void HandleCtrlA(wxKeyEvent& event);
+void UIThreadCall(boost::function0<void>);
+int ThreadSafeMessageBox(const std::string& message, const std::string& caption="Message", int style=wxOK, wxWindow* parent=NULL, int x=-1, int y=-1);
+bool ThreadSafeAskFee(int64 nFeeRequired, const std::string& strCaption, wxWindow* parent);
+void CalledSetStatusBar(const std::string& strText, int nField);
+void MainFrameRepaint();
+void CreateMainWindow();
+void SetStartOnSystemStartup(bool fAutoStart);
+
+
+
+
+inline int MyMessageBox(const wxString& message, const wxString& caption="Message", int style=wxOK, wxWindow* parent=NULL, int x=-1, int y=-1)
+{
+#ifdef GUI
+ if (!fDaemon)
+ return wxMessageBox(message, caption, style, parent, x, y);
+#endif
+ printf("wxMessageBox %s: %s\n", std::string(caption).c_str(), std::string(message).c_str());
+ fprintf(stderr, "%s: %s\n", std::string(caption).c_str(), std::string(message).c_str());
+ return wxOK;
+}
+#define wxMessageBox MyMessageBox
+
+
+
+
+
+
+class CMainFrame : public CMainFrameBase
+{
+protected:
+ // Event handlers
+ void OnNotebookPageChanged(wxNotebookEvent& event);
+ void OnClose(wxCloseEvent& event);
+ void OnIconize(wxIconizeEvent& event);
+ void OnMouseEvents(wxMouseEvent& event);
+ void OnKeyDown(wxKeyEvent& event) { HandleCtrlA(event); }
+ void OnIdle(wxIdleEvent& event);
+ void OnPaint(wxPaintEvent& event);
+ void OnPaintListCtrl(wxPaintEvent& event);
+ void OnMenuFileExit(wxCommandEvent& event);
+ void OnUpdateUIOptionsGenerate(wxUpdateUIEvent& event);
+ void OnMenuOptionsChangeYourAddress(wxCommandEvent& event);
+ void OnMenuOptionsOptions(wxCommandEvent& event);
+ void OnMenuHelpAbout(wxCommandEvent& event);
+ void OnButtonSend(wxCommandEvent& event);
+ void OnButtonAddressBook(wxCommandEvent& event);
+ void OnSetFocusAddress(wxFocusEvent& event);
+ void OnMouseEventsAddress(wxMouseEvent& event);
+ void OnButtonNew(wxCommandEvent& event);
+ void OnButtonCopy(wxCommandEvent& event);
+ void OnListColBeginDrag(wxListEvent& event);
+ void OnListItemActivated(wxListEvent& event);
+ void OnListItemActivatedProductsSent(wxListEvent& event);
+ void OnListItemActivatedOrdersSent(wxListEvent& event);
+ void OnListItemActivatedOrdersReceived(wxListEvent& event);
+
+public:
+ /** Constructor */
+ CMainFrame(wxWindow* parent);
+ ~CMainFrame();
+
+ // Custom
+ enum
+ {
+ ALL = 0,
+ SENTRECEIVED = 1,
+ SENT = 2,
+ RECEIVED = 3,
+ };
+ int nPage;
+ wxListCtrl* m_listCtrl;
+ bool fShowGenerated;
+ bool fShowSent;
+ bool fShowReceived;
+ bool fRefreshListCtrl;
+ bool fRefreshListCtrlRunning;
+ bool fOnSetFocusAddress;
+ unsigned int nListViewUpdated;
+ bool fRefresh;
+
+ void OnUIThreadCall(wxCommandEvent& event);
+ int GetSortIndex(const std::string& strSort);
+ void InsertLine(bool fNew, int nIndex, uint256 hashKey, std::string strSort, const wxColour& colour, const wxString& str1, const wxString& str2, const wxString& str3, const wxString& str4, const wxString& str5);
+ bool DeleteLine(uint256 hashKey);
+ bool InsertTransaction(const CWalletTx& wtx, bool fNew, int nIndex=-1);
+ void RefreshListCtrl();
+ void RefreshStatusColumn();
+};
+
+
+
+
+class CTxDetailsDialog : public CTxDetailsDialogBase
+{
+protected:
+ // Event handlers
+ void OnButtonOK(wxCommandEvent& event);
+
+public:
+ /** Constructor */
+ CTxDetailsDialog(wxWindow* parent, CWalletTx wtx);
+
+ // State
+ CWalletTx wtx;
+};
+
+
+
+class COptionsDialog : public COptionsDialogBase
+{
+protected:
+ // Event handlers
+ void OnListBox(wxCommandEvent& event);
+ void OnKillFocusTransactionFee(wxFocusEvent& event);
+ void OnCheckBoxUseProxy(wxCommandEvent& event);
+ void OnKillFocusProxy(wxFocusEvent& event);
+
+ void OnButtonOK(wxCommandEvent& event);
+ void OnButtonCancel(wxCommandEvent& event);
+ void OnButtonApply(wxCommandEvent& event);
+
+public:
+ /** Constructor */
+ COptionsDialog(wxWindow* parent);
+
+ // Custom
+ bool fTmpStartOnSystemStartup;
+ bool fTmpMinimizeOnClose;
+ void SelectPage(int nPage);
+ CAddress GetProxyAddr();
+};
+
+
+
+class CAboutDialog : public CAboutDialogBase
+{
+protected:
+ // Event handlers
+ void OnButtonOK(wxCommandEvent& event);
+
+public:
+ /** Constructor */
+ CAboutDialog(wxWindow* parent);
+};
+
+
+
+class CSendDialog : public CSendDialogBase
+{
+protected:
+ // Event handlers
+ void OnKeyDown(wxKeyEvent& event) { HandleCtrlA(event); }
+ void OnKillFocusAmount(wxFocusEvent& event);
+ void OnButtonAddressBook(wxCommandEvent& event);
+ void OnButtonPaste(wxCommandEvent& event);
+ void OnButtonSend(wxCommandEvent& event);
+ void OnButtonCancel(wxCommandEvent& event);
+
+public:
+ /** Constructor */
+ CSendDialog(wxWindow* parent, const wxString& strAddress="");
+
+ // Custom
+ bool fEnabledPrev;
+ std::string strFromSave;
+ std::string strMessageSave;
+};
+
+
+
+class CSendingDialog : public CSendingDialogBase
+{
+public:
+ // Event handlers
+ void OnClose(wxCloseEvent& event);
+ void OnButtonOK(wxCommandEvent& event);
+ void OnButtonCancel(wxCommandEvent& event);
+ void OnPaint(wxPaintEvent& event);
+
+public:
+ /** Constructor */
+ CSendingDialog(wxWindow* parent, const CAddress& addrIn, int64 nPriceIn, const CWalletTx& wtxIn);
+ ~CSendingDialog();
+
+ // State
+ CAddress addr;
+ int64 nPrice;
+ CWalletTx wtx;
+ wxDateTime start;
+ char pszStatus[10000];
+ bool fCanCancel;
+ bool fAbort;
+ bool fSuccess;
+ bool fUIDone;
+ bool fWorkDone;
+
+ void Close();
+ void Repaint();
+ bool Status();
+ bool Status(const std::string& str);
+ bool Error(const std::string& str);
+ void StartTransfer();
+ void OnReply2(CDataStream& vRecv);
+ void OnReply3(CDataStream& vRecv);
+};
+
+void SendingDialogStartTransfer(void* parg);
+void SendingDialogOnReply2(void* parg, CDataStream& vRecv);
+void SendingDialogOnReply3(void* parg, CDataStream& vRecv);
+
+
+
+class CAddressBookDialog : public CAddressBookDialogBase
+{
+protected:
+ // Event handlers
+ void OnNotebookPageChanged(wxNotebookEvent& event);
+ void OnListEndLabelEdit(wxListEvent& event);
+ void OnListItemSelected(wxListEvent& event);
+ void OnListItemActivated(wxListEvent& event);
+ void OnButtonDelete(wxCommandEvent& event);
+ void OnButtonCopy(wxCommandEvent& event);
+ void OnButtonEdit(wxCommandEvent& event);
+ void OnButtonNew(wxCommandEvent& event);
+ void OnButtonOK(wxCommandEvent& event);
+ void OnButtonCancel(wxCommandEvent& event);
+ void OnClose(wxCloseEvent& event);
+
+public:
+ /** Constructor */
+ CAddressBookDialog(wxWindow* parent, const wxString& strInitSelected, int nPageIn, bool fDuringSendIn);
+
+ // Custom
+ enum
+ {
+ SENDING = 0,
+ RECEIVING = 1,
+ };
+ int nPage;
+ wxListCtrl* m_listCtrl;
+ bool fDuringSend;
+ wxString GetAddress();
+ wxString GetSelectedAddress();
+ wxString GetSelectedSendingAddress();
+ wxString GetSelectedReceivingAddress();
+ bool CheckIfMine(const std::string& strAddress, const std::string& strTitle);
+};
+
+
+
+class CGetTextFromUserDialog : public CGetTextFromUserDialogBase
+{
+protected:
+ // Event handlers
+ void OnButtonOK(wxCommandEvent& event) { EndModal(true); }
+ void OnButtonCancel(wxCommandEvent& event) { EndModal(false); }
+ void OnClose(wxCloseEvent& event) { EndModal(false); }
+
+ void OnKeyDown(wxKeyEvent& event)
+ {
+ if (event.GetKeyCode() == '\r' || event.GetKeyCode() == WXK_NUMPAD_ENTER)
+ EndModal(true);
+ else
+ HandleCtrlA(event);
+ }
+
+public:
+ /** Constructor */
+ CGetTextFromUserDialog(wxWindow* parent,
+ const std::string& strCaption,
+ const std::string& strMessage1,
+ const std::string& strValue1="",
+ const std::string& strMessage2="",
+ const std::string& strValue2="") : CGetTextFromUserDialogBase(parent, wxID_ANY, strCaption)
+ {
+ int x = GetSize().GetWidth();
+ int y = GetSize().GetHeight();
+ m_staticTextMessage1->SetLabel(strMessage1);
+ m_textCtrl1->SetValue(strValue1);
+ y += wxString(strMessage1).Freq('\n') * 14;
+ if (!strMessage2.empty())
+ {
+ m_staticTextMessage2->Show(true);
+ m_staticTextMessage2->SetLabel(strMessage2);
+ m_textCtrl2->Show(true);
+ m_textCtrl2->SetValue(strValue2);
+ y += 46 + wxString(strMessage2).Freq('\n') * 14;
+ }
+#ifndef __WXMSW__
+ x = x * 114 / 100;
+ y = y * 114 / 100;
+#endif
+ SetSize(x, y);
+ }
+
+ // Custom
+ std::string GetValue() { return (std::string)m_textCtrl1->GetValue(); }
+ std::string GetValue1() { return (std::string)m_textCtrl1->GetValue(); }
+ std::string GetValue2() { return (std::string)m_textCtrl2->GetValue(); }
+};
+
+
+
+class CMyTaskBarIcon : public wxTaskBarIcon
+{
+protected:
+ // Event handlers
+ void OnLeftButtonDClick(wxTaskBarIconEvent& event);
+ void OnMenuRestore(wxCommandEvent& event);
+ void OnMenuSend(wxCommandEvent& event);
+ void OnMenuOptions(wxCommandEvent& event);
+ void OnUpdateUIGenerate(wxUpdateUIEvent& event);
+ void OnMenuGenerate(wxCommandEvent& event);
+ void OnMenuExit(wxCommandEvent& event);
+
+public:
+ CMyTaskBarIcon() : wxTaskBarIcon()
+ {
+ Show(true);
+ }
+
+ void Show(bool fShow=true);
+ void Hide();
+ void Restore();
+ void UpdateTooltip();
+ virtual wxMenu* CreatePopupMenu();
+
+DECLARE_EVENT_TABLE()
+};
+
+#endif
diff --git a/src/uibase.cpp b/src/uibase.cpp
new file mode 100644
index 0000000000..1b901a1edb
--- /dev/null
+++ b/src/uibase.cpp
@@ -0,0 +1,1008 @@
+///////////////////////////////////////////////////////////////////////////
+// C++ code generated with wxFormBuilder (version Dec 21 2009)
+// http://www.wxformbuilder.org/
+//
+// PLEASE DO "NOT" EDIT THIS FILE!
+///////////////////////////////////////////////////////////////////////////
+
+#include "uibase.h"
+
+#include "xpm/about.xpm"
+#include "xpm/addressbook20.xpm"
+#include "xpm/check.xpm"
+#include "xpm/send20.xpm"
+
+///////////////////////////////////////////////////////////////////////////
+
+CMainFrameBase::CMainFrameBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style )
+{
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ m_menubar = new wxMenuBar( 0 );
+ m_menuFile = new wxMenu();
+ wxMenuItem* m_menuFileExit;
+ m_menuFileExit = new wxMenuItem( m_menuFile, wxID_EXIT, wxString( _("E&xit") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuFile->Append( m_menuFileExit );
+
+ m_menubar->Append( m_menuFile, _("&File") );
+
+ m_menuOptions = new wxMenu();
+ wxMenuItem* m_menuOptionsChangeYourAddress;
+ m_menuOptionsChangeYourAddress = new wxMenuItem( m_menuOptions, wxID_ANY, wxString( _("&Your Receiving Addresses...") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuOptions->Append( m_menuOptionsChangeYourAddress );
+
+ wxMenuItem* m_menuOptionsOptions;
+ m_menuOptionsOptions = new wxMenuItem( m_menuOptions, wxID_PREFERENCES, wxString( _("&Options...") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuOptions->Append( m_menuOptionsOptions );
+
+ m_menubar->Append( m_menuOptions, _("&Settings") );
+
+ m_menuHelp = new wxMenu();
+ wxMenuItem* m_menuHelpAbout;
+ m_menuHelpAbout = new wxMenuItem( m_menuHelp, wxID_ABOUT, wxString( _("&About...") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuHelp->Append( m_menuHelpAbout );
+
+ m_menubar->Append( m_menuHelp, _("&Help") );
+
+ this->SetMenuBar( m_menubar );
+
+ m_toolBar = this->CreateToolBar( wxTB_FLAT|wxTB_HORZ_TEXT, wxID_ANY );
+ m_toolBar->SetToolBitmapSize( wxSize( 20,20 ) );
+ m_toolBar->SetToolSeparation( 1 );
+ m_toolBar->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 90, false, wxEmptyString ) );
+
+ m_toolBar->AddTool( wxID_BUTTONSEND, _("Send Coins"), wxBitmap( send20_xpm ), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString );
+ m_toolBar->AddTool( wxID_BUTTONRECEIVE, _("Address Book"), wxBitmap( addressbook20_xpm ), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString );
+ m_toolBar->Realize();
+
+ m_statusBar = this->CreateStatusBar( 1, wxST_SIZEGRIP, wxID_ANY );
+ wxBoxSizer* bSizer2;
+ bSizer2 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer2->Add( 0, 2, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer85;
+ bSizer85 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText32 = new wxStaticText( this, wxID_ANY, _("Your Bitcoin Address:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText32->Wrap( -1 );
+ bSizer85->Add( m_staticText32, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+
+ m_textCtrlAddress = new wxTextCtrl( this, wxID_TEXTCTRLADDRESS, wxEmptyString, wxDefaultPosition, wxSize( 340,-1 ), wxTE_READONLY );
+ bSizer85->Add( m_textCtrlAddress, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+
+ m_buttonNew = new wxButton( this, wxID_BUTTONNEW, _(" &New... "), wxDefaultPosition, wxSize( -1,-1 ), wxBU_EXACTFIT );
+ bSizer85->Add( m_buttonNew, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonCopy = new wxButton( this, wxID_BUTTONCOPY, _(" &Copy to Clipboard "), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
+ bSizer85->Add( m_buttonCopy, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+
+ bSizer85->Add( 0, 0, 0, wxEXPAND, 5 );
+
+ bSizer2->Add( bSizer85, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer3;
+ bSizer3 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer66;
+ bSizer66 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText41 = new wxStaticText( this, wxID_ANY, _("Balance:"), wxDefaultPosition, wxSize( -1,15 ), 0 );
+ m_staticText41->Wrap( -1 );
+ bSizer66->Add( m_staticText41, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ m_staticTextBalance = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 120,15 ), wxALIGN_RIGHT|wxST_NO_AUTORESIZE );
+ m_staticTextBalance->Wrap( -1 );
+ m_staticTextBalance->SetFont( wxFont( 8, 70, 90, 90, false, wxEmptyString ) );
+ m_staticTextBalance->SetBackgroundColour( wxColour( 255, 255, 255 ) );
+
+ bSizer66->Add( m_staticTextBalance, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ bSizer3->Add( bSizer66, 1, wxEXPAND|wxALL, 5 );
+
+
+ bSizer3->Add( 0, 0, 0, wxEXPAND, 5 );
+
+ wxString m_choiceFilterChoices[] = { _(" All"), _(" Sent"), _(" Received"), _(" In Progress") };
+ int m_choiceFilterNChoices = sizeof( m_choiceFilterChoices ) / sizeof( wxString );
+ m_choiceFilter = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxSize( 110,-1 ), m_choiceFilterNChoices, m_choiceFilterChoices, 0 );
+ m_choiceFilter->SetSelection( 0 );
+ m_choiceFilter->Hide();
+
+ bSizer3->Add( m_choiceFilter, 0, wxALIGN_BOTTOM|wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ bSizer2->Add( bSizer3, 0, wxEXPAND, 5 );
+
+ m_notebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panel9 = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer11;
+ bSizer11 = new wxBoxSizer( wxVERTICAL );
+
+ m_listCtrlAll = new wxListCtrl( m_panel9, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_DESCENDING );
+ bSizer11->Add( m_listCtrlAll, 1, wxEXPAND, 5 );
+
+ m_panel9->SetSizer( bSizer11 );
+ m_panel9->Layout();
+ bSizer11->Fit( m_panel9 );
+ m_notebook->AddPage( m_panel9, _("All Transactions"), true );
+ m_panel91 = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer111;
+ bSizer111 = new wxBoxSizer( wxVERTICAL );
+
+ m_listCtrlSentReceived = new wxListCtrl( m_panel91, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_DESCENDING );
+ bSizer111->Add( m_listCtrlSentReceived, 1, wxEXPAND, 5 );
+
+ m_panel91->SetSizer( bSizer111 );
+ m_panel91->Layout();
+ bSizer111->Fit( m_panel91 );
+ m_notebook->AddPage( m_panel91, _("Sent/Received"), false );
+ m_panel92 = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer112;
+ bSizer112 = new wxBoxSizer( wxVERTICAL );
+
+ m_listCtrlSent = new wxListCtrl( m_panel92, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_DESCENDING );
+ bSizer112->Add( m_listCtrlSent, 1, wxEXPAND, 5 );
+
+ m_panel92->SetSizer( bSizer112 );
+ m_panel92->Layout();
+ bSizer112->Fit( m_panel92 );
+ m_notebook->AddPage( m_panel92, _("Sent"), false );
+ m_panel93 = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer113;
+ bSizer113 = new wxBoxSizer( wxVERTICAL );
+
+ m_listCtrlReceived = new wxListCtrl( m_panel93, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_DESCENDING );
+ bSizer113->Add( m_listCtrlReceived, 1, wxEXPAND, 5 );
+
+ m_panel93->SetSizer( bSizer113 );
+ m_panel93->Layout();
+ bSizer113->Fit( m_panel93 );
+ m_notebook->AddPage( m_panel93, _("Received"), false );
+
+ bSizer2->Add( m_notebook, 1, wxEXPAND, 5 );
+
+ this->SetSizer( bSizer2 );
+ this->Layout();
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CMainFrameBase::OnClose ) );
+ this->Connect( wxEVT_ICONIZE, wxIconizeEventHandler( CMainFrameBase::OnIconize ) );
+ this->Connect( wxEVT_IDLE, wxIdleEventHandler( CMainFrameBase::OnIdle ) );
+ this->Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Connect( wxEVT_LEFT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Connect( wxEVT_MIDDLE_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Connect( wxEVT_MIDDLE_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Connect( wxEVT_MOTION, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Connect( wxEVT_MIDDLE_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Connect( wxEVT_RIGHT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Connect( wxEVT_LEAVE_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Connect( wxEVT_ENTER_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Connect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Connect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaint ) );
+ this->Connect( m_menuFileExit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuFileExit ) );
+ this->Connect( m_menuOptionsChangeYourAddress->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuOptionsChangeYourAddress ) );
+ this->Connect( m_menuOptionsOptions->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuOptionsOptions ) );
+ this->Connect( m_menuHelpAbout->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuHelpAbout ) );
+ this->Connect( wxID_BUTTONSEND, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonSend ) );
+ this->Connect( wxID_BUTTONRECEIVE, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonAddressBook ) );
+ m_textCtrlAddress->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CMainFrameBase::OnKeyDown ), NULL, this );
+ m_textCtrlAddress->Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Connect( wxEVT_LEFT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Connect( wxEVT_MIDDLE_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Connect( wxEVT_MIDDLE_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Connect( wxEVT_MOTION, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Connect( wxEVT_MIDDLE_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Connect( wxEVT_RIGHT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Connect( wxEVT_LEAVE_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Connect( wxEVT_ENTER_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Connect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Connect( wxEVT_SET_FOCUS, wxFocusEventHandler( CMainFrameBase::OnSetFocusAddress ), NULL, this );
+ m_buttonNew->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonNew ), NULL, this );
+ m_buttonCopy->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonCopy ), NULL, this );
+ m_notebook->Connect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( CMainFrameBase::OnNotebookPageChanged ), NULL, this );
+ m_listCtrlAll->Connect( wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, wxListEventHandler( CMainFrameBase::OnListColBeginDrag ), NULL, this );
+ m_listCtrlAll->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivated ), NULL, this );
+ m_listCtrlAll->Connect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaintListCtrl ), NULL, this );
+ m_listCtrlSentReceived->Connect( wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, wxListEventHandler( CMainFrameBase::OnListColBeginDrag ), NULL, this );
+ m_listCtrlSentReceived->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivated ), NULL, this );
+ m_listCtrlSentReceived->Connect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaintListCtrl ), NULL, this );
+ m_listCtrlSent->Connect( wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, wxListEventHandler( CMainFrameBase::OnListColBeginDrag ), NULL, this );
+ m_listCtrlSent->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivated ), NULL, this );
+ m_listCtrlSent->Connect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaintListCtrl ), NULL, this );
+ m_listCtrlReceived->Connect( wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, wxListEventHandler( CMainFrameBase::OnListColBeginDrag ), NULL, this );
+ m_listCtrlReceived->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivated ), NULL, this );
+ m_listCtrlReceived->Connect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaintListCtrl ), NULL, this );
+}
+
+CMainFrameBase::~CMainFrameBase()
+{
+ // Disconnect Events
+ this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CMainFrameBase::OnClose ) );
+ this->Disconnect( wxEVT_ICONIZE, wxIconizeEventHandler( CMainFrameBase::OnIconize ) );
+ this->Disconnect( wxEVT_IDLE, wxIdleEventHandler( CMainFrameBase::OnIdle ) );
+ this->Disconnect( wxEVT_LEFT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Disconnect( wxEVT_MIDDLE_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Disconnect( wxEVT_MIDDLE_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Disconnect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Disconnect( wxEVT_MOTION, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Disconnect( wxEVT_MIDDLE_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Disconnect( wxEVT_RIGHT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Disconnect( wxEVT_LEAVE_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Disconnect( wxEVT_ENTER_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Disconnect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );
+ this->Disconnect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaint ) );
+ this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuFileExit ) );
+ this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuOptionsChangeYourAddress ) );
+ this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuOptionsOptions ) );
+ this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuHelpAbout ) );
+ this->Disconnect( wxID_BUTTONSEND, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonSend ) );
+ this->Disconnect( wxID_BUTTONRECEIVE, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonAddressBook ) );
+ m_textCtrlAddress->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CMainFrameBase::OnKeyDown ), NULL, this );
+ m_textCtrlAddress->Disconnect( wxEVT_LEFT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Disconnect( wxEVT_MIDDLE_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Disconnect( wxEVT_MIDDLE_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Disconnect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Disconnect( wxEVT_MOTION, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Disconnect( wxEVT_MIDDLE_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Disconnect( wxEVT_RIGHT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Disconnect( wxEVT_LEAVE_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Disconnect( wxEVT_ENTER_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Disconnect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );
+ m_textCtrlAddress->Disconnect( wxEVT_SET_FOCUS, wxFocusEventHandler( CMainFrameBase::OnSetFocusAddress ), NULL, this );
+ m_buttonNew->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonNew ), NULL, this );
+ m_buttonCopy->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonCopy ), NULL, this );
+ m_notebook->Disconnect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( CMainFrameBase::OnNotebookPageChanged ), NULL, this );
+ m_listCtrlAll->Disconnect( wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, wxListEventHandler( CMainFrameBase::OnListColBeginDrag ), NULL, this );
+ m_listCtrlAll->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivated ), NULL, this );
+ m_listCtrlAll->Disconnect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaintListCtrl ), NULL, this );
+ m_listCtrlSentReceived->Disconnect( wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, wxListEventHandler( CMainFrameBase::OnListColBeginDrag ), NULL, this );
+ m_listCtrlSentReceived->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivated ), NULL, this );
+ m_listCtrlSentReceived->Disconnect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaintListCtrl ), NULL, this );
+ m_listCtrlSent->Disconnect( wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, wxListEventHandler( CMainFrameBase::OnListColBeginDrag ), NULL, this );
+ m_listCtrlSent->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivated ), NULL, this );
+ m_listCtrlSent->Disconnect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaintListCtrl ), NULL, this );
+ m_listCtrlReceived->Disconnect( wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, wxListEventHandler( CMainFrameBase::OnListColBeginDrag ), NULL, this );
+ m_listCtrlReceived->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivated ), NULL, this );
+ m_listCtrlReceived->Disconnect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaintListCtrl ), NULL, this );
+}
+
+CTxDetailsDialogBase::CTxDetailsDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
+{
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+
+ wxBoxSizer* bSizer64;
+ bSizer64 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer66;
+ bSizer66 = new wxBoxSizer( wxVERTICAL );
+
+ m_htmlWin = new wxHtmlWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_SCROLLBAR_AUTO );
+ bSizer66->Add( m_htmlWin, 1, wxALL|wxEXPAND, 5 );
+
+ bSizer64->Add( bSizer66, 1, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer65;
+ bSizer65 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonOK = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer65->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ bSizer64->Add( bSizer65, 0, wxALIGN_RIGHT, 5 );
+
+ this->SetSizer( bSizer64 );
+ this->Layout();
+
+ // Connect Events
+ m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CTxDetailsDialogBase::OnButtonOK ), NULL, this );
+}
+
+CTxDetailsDialogBase::~CTxDetailsDialogBase()
+{
+ // Disconnect Events
+ m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CTxDetailsDialogBase::OnButtonOK ), NULL, this );
+}
+
+COptionsDialogBase::COptionsDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
+{
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+
+ wxBoxSizer* bSizer55;
+ bSizer55 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer66;
+ bSizer66 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_listBox = new wxListBox( this, wxID_ANY, wxDefaultPosition, wxSize( 110,-1 ), 0, NULL, wxLB_NEEDED_SB|wxLB_SINGLE );
+ bSizer66->Add( m_listBox, 0, wxEXPAND|wxRIGHT, 5 );
+
+ m_scrolledWindow = new wxScrolledWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_scrolledWindow->SetScrollRate( 5, 5 );
+ wxBoxSizer* bSizer63;
+ bSizer63 = new wxBoxSizer( wxVERTICAL );
+
+ m_panelMain = new wxPanel( m_scrolledWindow, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer69;
+ bSizer69 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer69->Add( 0, 16, 0, wxEXPAND, 5 );
+
+ m_checkBoxStartOnSystemStartup = new wxCheckBox( m_panelMain, wxID_ANY, _("&Start Bitcoin on system startup"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer69->Add( m_checkBoxStartOnSystemStartup, 0, wxALL, 5 );
+
+ m_checkBoxMinimizeToTray = new wxCheckBox( m_panelMain, wxID_ANY, _("&Minimize to the tray instead of the taskbar"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer69->Add( m_checkBoxMinimizeToTray, 0, wxALL, 5 );
+
+ m_checkBoxUseUPnP = new wxCheckBox( m_panelMain, wxID_ANY, _("Map port using &UPnP"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer69->Add( m_checkBoxUseUPnP, 0, wxALL, 5 );
+
+ m_checkBoxMinimizeOnClose = new wxCheckBox( m_panelMain, wxID_ANY, _("M&inimize to the tray on close"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer69->Add( m_checkBoxMinimizeOnClose, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ wxBoxSizer* bSizer102;
+ bSizer102 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_checkBoxUseProxy = new wxCheckBox( m_panelMain, wxID_ANY, _("&Connect through socks4 proxy: "), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer102->Add( m_checkBoxUseProxy, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ bSizer69->Add( bSizer102, 1, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer103;
+ bSizer103 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer103->Add( 18, 0, 0, 0, 5 );
+
+ m_staticTextProxyIP = new wxStaticText( m_panelMain, wxID_ANY, _("Proxy &IP:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextProxyIP->Wrap( -1 );
+ bSizer103->Add( m_staticTextProxyIP, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_textCtrlProxyIP = new wxTextCtrl( m_panelMain, wxID_PROXYIP, wxEmptyString, wxDefaultPosition, wxSize( 140,-1 ), 0 );
+ m_textCtrlProxyIP->SetMaxLength( 15 );
+ bSizer103->Add( m_textCtrlProxyIP, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextProxyPort = new wxStaticText( m_panelMain, wxID_ANY, _(" &Port:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextProxyPort->Wrap( -1 );
+ bSizer103->Add( m_staticTextProxyPort, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_textCtrlProxyPort = new wxTextCtrl( m_panelMain, wxID_PROXYPORT, wxEmptyString, wxDefaultPosition, wxSize( 55,-1 ), 0 );
+ m_textCtrlProxyPort->SetMaxLength( 5 );
+ bSizer103->Add( m_textCtrlProxyPort, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ bSizer69->Add( bSizer103, 1, wxEXPAND, 5 );
+
+
+ bSizer69->Add( 0, 1, 0, 0, 5 );
+
+ m_staticText32 = new wxStaticText( m_panelMain, wxID_ANY, _("Optional transaction fee per KB that helps make sure your transactions are processed quickly. Most transactions are 1KB. Fee 0.01 recommended."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText32->Wrap( 365 );
+ bSizer69->Add( m_staticText32, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer56;
+ bSizer56 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText31 = new wxStaticText( m_panelMain, wxID_ANY, _("Pay transaction fee:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText31->Wrap( -1 );
+ bSizer56->Add( m_staticText31, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ m_textCtrlTransactionFee = new wxTextCtrl( m_panelMain, wxID_TRANSACTIONFEE, wxEmptyString, wxDefaultPosition, wxSize( 70,-1 ), 0 );
+ bSizer56->Add( m_textCtrlTransactionFee, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ bSizer69->Add( bSizer56, 0, wxEXPAND, 5 );
+
+ m_panelMain->SetSizer( bSizer69 );
+ m_panelMain->Layout();
+ bSizer69->Fit( m_panelMain );
+ bSizer63->Add( m_panelMain, 0, wxEXPAND, 5 );
+
+ m_panelTest2 = new wxPanel( m_scrolledWindow, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer64;
+ bSizer64 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer64->Add( 0, 16, 0, wxEXPAND, 5 );
+
+ m_staticText321 = new wxStaticText( m_panelTest2, wxID_ANY, _("// [don't translate] Test panel 2 for future expansion"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText321->Wrap( -1 );
+ bSizer64->Add( m_staticText321, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_staticText69 = new wxStaticText( m_panelTest2, wxID_ANY, _("// [don't translate] Let's not start multiple pages until the first page is filled up"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText69->Wrap( -1 );
+ bSizer64->Add( m_staticText69, 0, wxALL, 5 );
+
+ m_panelTest2->SetSizer( bSizer64 );
+ m_panelTest2->Layout();
+ bSizer64->Fit( m_panelTest2 );
+ bSizer63->Add( m_panelTest2, 0, wxEXPAND, 5 );
+
+ m_scrolledWindow->SetSizer( bSizer63 );
+ m_scrolledWindow->Layout();
+ bSizer63->Fit( m_scrolledWindow );
+ bSizer66->Add( m_scrolledWindow, 1, wxEXPAND|wxLEFT, 5 );
+
+ bSizer55->Add( bSizer66, 1, wxEXPAND|wxALL, 9 );
+
+ wxBoxSizer* bSizer58;
+ bSizer58 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonOK = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer58->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer58->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_buttonApply = new wxButton( this, wxID_APPLY, _("&Apply"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer58->Add( m_buttonApply, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ bSizer55->Add( bSizer58, 0, wxALIGN_RIGHT, 5 );
+
+ this->SetSizer( bSizer55 );
+ this->Layout();
+
+ // Connect Events
+ m_listBox->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( COptionsDialogBase::OnListBox ), NULL, this );
+ m_checkBoxMinimizeToTray->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnCheckBoxMinimizeToTray ), NULL, this );
+ m_checkBoxUseProxy->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnCheckBoxUseProxy ), NULL, this );
+ m_textCtrlProxyIP->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( COptionsDialogBase::OnKillFocusProxy ), NULL, this );
+ m_textCtrlProxyPort->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( COptionsDialogBase::OnKillFocusProxy ), NULL, this );
+ m_textCtrlTransactionFee->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( COptionsDialogBase::OnKillFocusTransactionFee ), NULL, this );
+ m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnButtonOK ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnButtonCancel ), NULL, this );
+ m_buttonApply->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnButtonApply ), NULL, this );
+}
+
+COptionsDialogBase::~COptionsDialogBase()
+{
+ // Disconnect Events
+ m_listBox->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( COptionsDialogBase::OnListBox ), NULL, this );
+ m_checkBoxMinimizeToTray->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnCheckBoxMinimizeToTray ), NULL, this );
+ m_checkBoxUseProxy->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnCheckBoxUseProxy ), NULL, this );
+ m_textCtrlProxyIP->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( COptionsDialogBase::OnKillFocusProxy ), NULL, this );
+ m_textCtrlProxyPort->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( COptionsDialogBase::OnKillFocusProxy ), NULL, this );
+ m_textCtrlTransactionFee->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( COptionsDialogBase::OnKillFocusTransactionFee ), NULL, this );
+ m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnButtonOK ), NULL, this );
+ m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnButtonCancel ), NULL, this );
+ m_buttonApply->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnButtonApply ), NULL, this );
+}
+
+CAboutDialogBase::CAboutDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
+{
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+
+ wxBoxSizer* bSizer63;
+ bSizer63 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmap = new wxStaticBitmap( this, wxID_ANY, wxBitmap( about_xpm ), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer63->Add( m_bitmap, 0, 0, 5 );
+
+ wxBoxSizer* bSizer60;
+ bSizer60 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer62;
+ bSizer62 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer631;
+ bSizer631 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer631->Add( 0, 65, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer64;
+ bSizer64 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText40 = new wxStaticText( this, wxID_ANY, _("Bitcoin "), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText40->Wrap( -1 );
+ m_staticText40->SetFont( wxFont( 10, 74, 90, 92, false, wxT("Tahoma") ) );
+
+ bSizer64->Add( m_staticText40, 0, wxALIGN_BOTTOM|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ m_staticTextVersion = new wxStaticText( this, wxID_ANY, _("version"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextVersion->Wrap( -1 );
+ m_staticTextVersion->SetFont( wxFont( 10, 74, 90, 90, false, wxT("Tahoma") ) );
+
+ bSizer64->Add( m_staticTextVersion, 0, wxALIGN_BOTTOM|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+ bSizer631->Add( bSizer64, 0, wxEXPAND, 5 );
+
+
+ bSizer631->Add( 0, 4, 0, wxEXPAND, 5 );
+
+ m_staticTextMain = new wxStaticText( this, wxID_ANY, _("Copyright (c) 2009-2011 Bitcoin Developers\n\nThis is experimental software.\n\nDistributed under the MIT/X11 software license, see the accompanying file \nlicense.txt or http://www.opensource.org/licenses/mit-license.php.\n\nThis product includes software developed by the OpenSSL Project for use in the \nOpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \nEric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextMain->Wrap( -1 );
+ bSizer631->Add( m_staticTextMain, 0, wxALL, 5 );
+
+
+ bSizer631->Add( 0, 0, 0, wxEXPAND, 5 );
+
+ bSizer62->Add( bSizer631, 1, wxEXPAND, 5 );
+
+ bSizer60->Add( bSizer62, 1, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer61;
+ bSizer61 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer61->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_buttonOK = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer61->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 6 );
+
+ bSizer60->Add( bSizer61, 0, wxALIGN_RIGHT|wxEXPAND|wxRIGHT, 2 );
+
+ bSizer63->Add( bSizer60, 1, wxEXPAND|wxLEFT, 5 );
+
+ this->SetSizer( bSizer63 );
+ this->Layout();
+
+ // Connect Events
+ m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAboutDialogBase::OnButtonOK ), NULL, this );
+}
+
+CAboutDialogBase::~CAboutDialogBase()
+{
+ // Disconnect Events
+ m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAboutDialogBase::OnButtonOK ), NULL, this );
+}
+
+CSendDialogBase::CSendDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
+{
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+
+ wxBoxSizer* bSizer21;
+ bSizer21 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer21->Add( 0, 5, 0, wxEXPAND, 5 );
+
+ wxFlexGridSizer* fgSizer1;
+ fgSizer1 = new wxFlexGridSizer( 0, 2, 0, 0 );
+ fgSizer1->AddGrowableCol( 1 );
+ fgSizer1->SetFlexibleDirection( wxBOTH );
+ fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+
+ fgSizer1->Add( 0, 0, 0, wxEXPAND, 5 );
+
+ m_staticTextInstructions = new wxStaticText( this, wxID_ANY, _("Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextInstructions->Wrap( -1 );
+ fgSizer1->Add( m_staticTextInstructions, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer47;
+ bSizer47 = new wxBoxSizer( wxHORIZONTAL );
+
+ bSizer47->SetMinSize( wxSize( 70,-1 ) );
+
+ bSizer47->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_bitmapCheckMark = new wxStaticBitmap( this, wxID_ANY, wxBitmap( check_xpm ), wxDefaultPosition, wxSize( 16,16 ), 0 );
+ bSizer47->Add( m_bitmapCheckMark, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticText36 = new wxStaticText( this, wxID_ANY, _("Pay &To:"), wxDefaultPosition, wxSize( -1,-1 ), wxALIGN_RIGHT );
+ m_staticText36->Wrap( -1 );
+ bSizer47->Add( m_staticText36, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ fgSizer1->Add( bSizer47, 1, wxEXPAND|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer19;
+ bSizer19 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_textCtrlAddress = new wxTextCtrl( this, wxID_TEXTCTRLPAYTO, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer19->Add( m_textCtrlAddress, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ wxBoxSizer* bSizer66;
+ bSizer66 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonPaste = new wxButton( this, wxID_BUTTONPASTE, _("&Paste"), wxDefaultPosition, wxSize( -1,-1 ), wxBU_EXACTFIT );
+ bSizer66->Add( m_buttonPaste, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxEXPAND, 5 );
+
+ m_buttonAddress = new wxButton( this, wxID_BUTTONADDRESSBOOK, _(" Address &Book..."), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer66->Add( m_buttonAddress, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxEXPAND, 5 );
+
+ bSizer19->Add( bSizer66, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ fgSizer1->Add( bSizer19, 1, wxEXPAND|wxRIGHT, 5 );
+
+ m_staticText19 = new wxStaticText( this, wxID_ANY, _("&Amount:"), wxDefaultPosition, wxSize( -1,-1 ), wxALIGN_RIGHT );
+ m_staticText19->Wrap( -1 );
+ fgSizer1->Add( m_staticText19, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT, 5 );
+
+ m_textCtrlAmount = new wxTextCtrl( this, wxID_TEXTCTRLAMOUNT, wxEmptyString, wxDefaultPosition, wxSize( 145,-1 ), 0 );
+ m_textCtrlAmount->SetMaxLength( 20 );
+ m_textCtrlAmount->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 90, false, wxEmptyString ) );
+
+ fgSizer1->Add( m_textCtrlAmount, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_staticText20 = new wxStaticText( this, wxID_ANY, _("T&ransfer:"), wxDefaultPosition, wxSize( -1,-1 ), wxALIGN_RIGHT );
+ m_staticText20->Wrap( -1 );
+ m_staticText20->Hide();
+
+ fgSizer1->Add( m_staticText20, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ wxString m_choiceTransferTypeChoices[] = { _(" Standard") };
+ int m_choiceTransferTypeNChoices = sizeof( m_choiceTransferTypeChoices ) / sizeof( wxString );
+ m_choiceTransferType = new wxChoice( this, wxID_CHOICETRANSFERTYPE, wxDefaultPosition, wxDefaultSize, m_choiceTransferTypeNChoices, m_choiceTransferTypeChoices, 0 );
+ m_choiceTransferType->SetSelection( 0 );
+ m_choiceTransferType->Hide();
+
+ fgSizer1->Add( m_choiceTransferType, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+
+ fgSizer1->Add( 0, 3, 0, wxEXPAND, 5 );
+
+
+ fgSizer1->Add( 0, 0, 0, wxEXPAND, 5 );
+
+ bSizer21->Add( fgSizer1, 0, wxEXPAND|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer672;
+ bSizer672 = new wxBoxSizer( wxHORIZONTAL );
+
+ bSizer21->Add( bSizer672, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer23;
+ bSizer23 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer23->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_buttonSend = new wxButton( this, wxID_BUTTONSEND, _("&Send"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonSend->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 90, false, wxEmptyString ) );
+
+ bSizer23->Add( m_buttonSend, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer23->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ bSizer21->Add( bSizer23, 0, wxEXPAND, 5 );
+
+ this->SetSizer( bSizer21 );
+ this->Layout();
+
+ // Connect Events
+ m_textCtrlAddress->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );
+ m_textCtrlAddress->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( CSendDialogBase::OnTextAddress ), NULL, this );
+ m_buttonPaste->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonPaste ), NULL, this );
+ m_buttonAddress->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonAddressBook ), NULL, this );
+ m_textCtrlAmount->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );
+ m_textCtrlAmount->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( CSendDialogBase::OnKillFocusAmount ), NULL, this );
+ m_buttonSend->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonSend ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonCancel ), NULL, this );
+}
+
+CSendDialogBase::~CSendDialogBase()
+{
+ // Disconnect Events
+ m_textCtrlAddress->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );
+ m_textCtrlAddress->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( CSendDialogBase::OnTextAddress ), NULL, this );
+ m_buttonPaste->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonPaste ), NULL, this );
+ m_buttonAddress->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonAddressBook ), NULL, this );
+ m_textCtrlAmount->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );
+ m_textCtrlAmount->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( CSendDialogBase::OnKillFocusAmount ), NULL, this );
+ m_buttonSend->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonSend ), NULL, this );
+ m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonCancel ), NULL, this );
+}
+
+CSendingDialogBase::CSendingDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
+{
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+
+ wxBoxSizer* bSizer68;
+ bSizer68 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticTextSending = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,14 ), 0 );
+ m_staticTextSending->Wrap( -1 );
+ bSizer68->Add( m_staticTextSending, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 8 );
+
+ m_textCtrlStatus = new wxTextCtrl( this, wxID_ANY, _("\n\nConnecting..."), wxDefaultPosition, wxDefaultSize, wxTE_CENTRE|wxTE_MULTILINE|wxTE_NO_VSCROLL|wxTE_READONLY|wxNO_BORDER );
+ m_textCtrlStatus->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ bSizer68->Add( m_textCtrlStatus, 1, wxEXPAND|wxRIGHT|wxLEFT, 10 );
+
+ wxBoxSizer* bSizer69;
+ bSizer69 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer69->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_buttonOK = new wxButton( this, wxID_ANY, _("OK"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonOK->Enable( false );
+
+ bSizer69->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer69->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ bSizer68->Add( bSizer69, 0, wxEXPAND, 5 );
+
+ this->SetSizer( bSizer68 );
+ this->Layout();
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CSendingDialogBase::OnClose ) );
+ this->Connect( wxEVT_PAINT, wxPaintEventHandler( CSendingDialogBase::OnPaint ) );
+ m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendingDialogBase::OnButtonOK ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendingDialogBase::OnButtonCancel ), NULL, this );
+}
+
+CSendingDialogBase::~CSendingDialogBase()
+{
+ // Disconnect Events
+ this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CSendingDialogBase::OnClose ) );
+ this->Disconnect( wxEVT_PAINT, wxPaintEventHandler( CSendingDialogBase::OnPaint ) );
+ m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendingDialogBase::OnButtonOK ), NULL, this );
+ m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendingDialogBase::OnButtonCancel ), NULL, this );
+}
+
+CYourAddressDialogBase::CYourAddressDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
+{
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+
+ wxBoxSizer* bSizer68;
+ bSizer68 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer68->Add( 0, 5, 0, wxEXPAND, 5 );
+
+ m_staticText45 = new wxStaticText( this, wxID_ANY, _("These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. The highlighted address is displayed in the main window."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText45->Wrap( 590 );
+ bSizer68->Add( m_staticText45, 0, wxALL, 5 );
+
+ m_listCtrl = new wxListCtrl( this, wxID_LISTCTRL, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_ASCENDING );
+ bSizer68->Add( m_listCtrl, 1, wxALL|wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer69;
+ bSizer69 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer69->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_buttonRename = new wxButton( this, wxID_BUTTONRENAME, _("&Edit..."), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer69->Add( m_buttonRename, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_buttonNew = new wxButton( this, wxID_BUTTONNEW, _(" &New Address... "), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer69->Add( m_buttonNew, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_buttonCopy = new wxButton( this, wxID_BUTTONCOPY, _(" &Copy to Clipboard "), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer69->Add( m_buttonCopy, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_buttonOK = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer69->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonCancel->Hide();
+
+ bSizer69->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ bSizer68->Add( bSizer69, 0, wxEXPAND, 5 );
+
+ this->SetSizer( bSizer68 );
+ this->Layout();
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CYourAddressDialogBase::OnClose ) );
+ m_listCtrl->Connect( wxEVT_COMMAND_LIST_END_LABEL_EDIT, wxListEventHandler( CYourAddressDialogBase::OnListEndLabelEdit ), NULL, this );
+ m_listCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CYourAddressDialogBase::OnListItemActivated ), NULL, this );
+ m_listCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( CYourAddressDialogBase::OnListItemSelected ), NULL, this );
+ m_buttonRename->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonRename ), NULL, this );
+ m_buttonNew->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonNew ), NULL, this );
+ m_buttonCopy->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonCopy ), NULL, this );
+ m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonOK ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonCancel ), NULL, this );
+}
+
+CYourAddressDialogBase::~CYourAddressDialogBase()
+{
+ // Disconnect Events
+ this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CYourAddressDialogBase::OnClose ) );
+ m_listCtrl->Disconnect( wxEVT_COMMAND_LIST_END_LABEL_EDIT, wxListEventHandler( CYourAddressDialogBase::OnListEndLabelEdit ), NULL, this );
+ m_listCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CYourAddressDialogBase::OnListItemActivated ), NULL, this );
+ m_listCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( CYourAddressDialogBase::OnListItemSelected ), NULL, this );
+ m_buttonRename->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonRename ), NULL, this );
+ m_buttonNew->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonNew ), NULL, this );
+ m_buttonCopy->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonCopy ), NULL, this );
+ m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonOK ), NULL, this );
+ m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonCancel ), NULL, this );
+}
+
+CAddressBookDialogBase::CAddressBookDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
+{
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+
+ wxBoxSizer* bSizer58;
+ bSizer58 = new wxBoxSizer( wxVERTICAL );
+
+ m_notebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelSending = new wxPanel( m_notebook, wxID_PANELSENDING, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer68;
+ bSizer68 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer68->Add( 0, 0, 0, wxEXPAND, 5 );
+
+ m_staticText55 = new wxStaticText( m_panelSending, wxID_ANY, _("Bitcoin Address"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText55->Wrap( -1 );
+ m_staticText55->Hide();
+
+ bSizer68->Add( m_staticText55, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_listCtrlSending = new wxListCtrl( m_panelSending, wxID_LISTCTRLSENDING, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_ASCENDING );
+ bSizer68->Add( m_listCtrlSending, 1, wxALL|wxEXPAND, 5 );
+
+ m_panelSending->SetSizer( bSizer68 );
+ m_panelSending->Layout();
+ bSizer68->Fit( m_panelSending );
+ m_notebook->AddPage( m_panelSending, _("Sending"), false );
+ m_panelReceiving = new wxPanel( m_notebook, wxID_PANELRECEIVING, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer681;
+ bSizer681 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer681->Add( 0, 0, 0, wxEXPAND, 5 );
+
+ m_staticText45 = new wxStaticText( m_panelReceiving, wxID_ANY, _("These are your Bitcoin addresses for receiving payments. You can give a different one to each sender to keep track of who is paying you. The highlighted address will be displayed in the main window."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText45->Wrap( 570 );
+ bSizer681->Add( m_staticText45, 0, wxTOP|wxRIGHT|wxLEFT, 6 );
+
+
+ bSizer681->Add( 0, 2, 0, wxEXPAND, 5 );
+
+ m_listCtrlReceiving = new wxListCtrl( m_panelReceiving, wxID_LISTCTRLRECEIVING, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_ASCENDING );
+ bSizer681->Add( m_listCtrlReceiving, 1, wxALL|wxEXPAND, 5 );
+
+ m_panelReceiving->SetSizer( bSizer681 );
+ m_panelReceiving->Layout();
+ bSizer681->Fit( m_panelReceiving );
+ m_notebook->AddPage( m_panelReceiving, _("Receiving"), true );
+
+ bSizer58->Add( m_notebook, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer69;
+ bSizer69 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer69->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_buttonDelete = new wxButton( this, wxID_BUTTONDELETE, _("&Delete"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer69->Add( m_buttonDelete, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_buttonCopy = new wxButton( this, wxID_BUTTONCOPY, _(" &Copy to Clipboard "), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer69->Add( m_buttonCopy, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_buttonEdit = new wxButton( this, wxID_BUTTONEDIT, _("&Edit..."), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer69->Add( m_buttonEdit, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_buttonNew = new wxButton( this, wxID_BUTTONNEW, _(" &New Address... "), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer69->Add( m_buttonNew, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_buttonOK = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer69->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer69->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ bSizer58->Add( bSizer69, 0, wxEXPAND, 5 );
+
+ this->SetSizer( bSizer58 );
+ this->Layout();
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CAddressBookDialogBase::OnClose ) );
+ m_notebook->Connect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( CAddressBookDialogBase::OnNotebookPageChanged ), NULL, this );
+ m_listCtrlSending->Connect( wxEVT_COMMAND_LIST_END_LABEL_EDIT, wxListEventHandler( CAddressBookDialogBase::OnListEndLabelEdit ), NULL, this );
+ m_listCtrlSending->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CAddressBookDialogBase::OnListItemActivated ), NULL, this );
+ m_listCtrlSending->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( CAddressBookDialogBase::OnListItemSelected ), NULL, this );
+ m_listCtrlReceiving->Connect( wxEVT_COMMAND_LIST_END_LABEL_EDIT, wxListEventHandler( CAddressBookDialogBase::OnListEndLabelEdit ), NULL, this );
+ m_listCtrlReceiving->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CAddressBookDialogBase::OnListItemActivated ), NULL, this );
+ m_listCtrlReceiving->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( CAddressBookDialogBase::OnListItemSelected ), NULL, this );
+ m_buttonDelete->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonDelete ), NULL, this );
+ m_buttonCopy->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonCopy ), NULL, this );
+ m_buttonEdit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonEdit ), NULL, this );
+ m_buttonNew->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonNew ), NULL, this );
+ m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonOK ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonCancel ), NULL, this );
+}
+
+CAddressBookDialogBase::~CAddressBookDialogBase()
+{
+ // Disconnect Events
+ this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CAddressBookDialogBase::OnClose ) );
+ m_notebook->Disconnect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( CAddressBookDialogBase::OnNotebookPageChanged ), NULL, this );
+ m_listCtrlSending->Disconnect( wxEVT_COMMAND_LIST_END_LABEL_EDIT, wxListEventHandler( CAddressBookDialogBase::OnListEndLabelEdit ), NULL, this );
+ m_listCtrlSending->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CAddressBookDialogBase::OnListItemActivated ), NULL, this );
+ m_listCtrlSending->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( CAddressBookDialogBase::OnListItemSelected ), NULL, this );
+ m_listCtrlReceiving->Disconnect( wxEVT_COMMAND_LIST_END_LABEL_EDIT, wxListEventHandler( CAddressBookDialogBase::OnListEndLabelEdit ), NULL, this );
+ m_listCtrlReceiving->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CAddressBookDialogBase::OnListItemActivated ), NULL, this );
+ m_listCtrlReceiving->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( CAddressBookDialogBase::OnListItemSelected ), NULL, this );
+ m_buttonDelete->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonDelete ), NULL, this );
+ m_buttonCopy->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonCopy ), NULL, this );
+ m_buttonEdit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonEdit ), NULL, this );
+ m_buttonNew->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonNew ), NULL, this );
+ m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonOK ), NULL, this );
+ m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonCancel ), NULL, this );
+}
+
+CGetTextFromUserDialogBase::CGetTextFromUserDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
+{
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+
+ wxBoxSizer* bSizer79;
+ bSizer79 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer81;
+ bSizer81 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer81->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextMessage1 = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextMessage1->Wrap( -1 );
+ bSizer81->Add( m_staticTextMessage1, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_textCtrl1 = new wxTextCtrl( this, wxID_TEXTCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
+ bSizer81->Add( m_textCtrl1, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_staticTextMessage2 = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextMessage2->Wrap( -1 );
+ m_staticTextMessage2->Hide();
+
+ bSizer81->Add( m_staticTextMessage2, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_textCtrl2 = new wxTextCtrl( this, wxID_TEXTCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
+ m_textCtrl2->Hide();
+
+ bSizer81->Add( m_textCtrl2, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer81->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ bSizer79->Add( bSizer81, 1, wxEXPAND|wxALL, 10 );
+
+ wxBoxSizer* bSizer80;
+ bSizer80 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer80->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_buttonOK = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer80->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer80->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ bSizer79->Add( bSizer80, 0, wxEXPAND, 5 );
+
+ this->SetSizer( bSizer79 );
+ this->Layout();
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CGetTextFromUserDialogBase::OnClose ) );
+ m_textCtrl1->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CGetTextFromUserDialogBase::OnKeyDown ), NULL, this );
+ m_textCtrl2->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CGetTextFromUserDialogBase::OnKeyDown ), NULL, this );
+ m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CGetTextFromUserDialogBase::OnButtonOK ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CGetTextFromUserDialogBase::OnButtonCancel ), NULL, this );
+}
+
+CGetTextFromUserDialogBase::~CGetTextFromUserDialogBase()
+{
+ // Disconnect Events
+ this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CGetTextFromUserDialogBase::OnClose ) );
+ m_textCtrl1->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CGetTextFromUserDialogBase::OnKeyDown ), NULL, this );
+ m_textCtrl2->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CGetTextFromUserDialogBase::OnKeyDown ), NULL, this );
+ m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CGetTextFromUserDialogBase::OnButtonOK ), NULL, this );
+ m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CGetTextFromUserDialogBase::OnButtonCancel ), NULL, this );
+}
diff --git a/src/uibase.h b/src/uibase.h
new file mode 100644
index 0000000000..78f3d1b385
--- /dev/null
+++ b/src/uibase.h
@@ -0,0 +1,421 @@
+///////////////////////////////////////////////////////////////////////////
+// C++ code generated with wxFormBuilder (version Dec 21 2009)
+// http://www.wxformbuilder.org/
+//
+// PLEASE DO "NOT" EDIT THIS FILE!
+///////////////////////////////////////////////////////////////////////////
+
+#ifndef __uibase__
+#define __uibase__
+
+#include <wx/intl.h>
+
+#include <wx/string.h>
+#include <wx/bitmap.h>
+#include <wx/image.h>
+#include <wx/icon.h>
+#include <wx/menu.h>
+#include <wx/gdicmn.h>
+#include <wx/font.h>
+#include <wx/colour.h>
+#include <wx/settings.h>
+#include <wx/toolbar.h>
+#include <wx/statusbr.h>
+#include <wx/stattext.h>
+#include <wx/textctrl.h>
+#include <wx/button.h>
+#include <wx/sizer.h>
+#include <wx/choice.h>
+#include <wx/listctrl.h>
+#include <wx/panel.h>
+#include <wx/notebook.h>
+#include <wx/frame.h>
+#include <wx/html/htmlwin.h>
+#include <wx/dialog.h>
+#include <wx/listbox.h>
+#include <wx/checkbox.h>
+#include <wx/scrolwin.h>
+#include <wx/statbmp.h>
+
+///////////////////////////////////////////////////////////////////////////
+
+#define wxID_MAINFRAME 1000
+#define wxID_BUTTONSEND 1001
+#define wxID_BUTTONRECEIVE 1002
+#define wxID_TEXTCTRLADDRESS 1003
+#define wxID_BUTTONNEW 1004
+#define wxID_BUTTONCOPY 1005
+#define wxID_PROXYIP 1006
+#define wxID_PROXYPORT 1007
+#define wxID_TRANSACTIONFEE 1008
+#define wxID_TEXTCTRLPAYTO 1009
+#define wxID_BUTTONPASTE 1010
+#define wxID_BUTTONADDRESSBOOK 1011
+#define wxID_TEXTCTRLAMOUNT 1012
+#define wxID_CHOICETRANSFERTYPE 1013
+#define wxID_LISTCTRL 1014
+#define wxID_BUTTONRENAME 1015
+#define wxID_PANELSENDING 1016
+#define wxID_LISTCTRLSENDING 1017
+#define wxID_PANELRECEIVING 1018
+#define wxID_LISTCTRLRECEIVING 1019
+#define wxID_BUTTONDELETE 1020
+#define wxID_BUTTONEDIT 1021
+#define wxID_TEXTCTRL 1022
+
+///////////////////////////////////////////////////////////////////////////////
+/// Class CMainFrameBase
+///////////////////////////////////////////////////////////////////////////////
+class CMainFrameBase : public wxFrame
+{
+ private:
+
+ protected:
+ wxMenuBar* m_menubar;
+ wxMenu* m_menuFile;
+ wxMenu* m_menuHelp;
+ wxToolBar* m_toolBar;
+
+ wxStaticText* m_staticText32;
+ wxButton* m_buttonNew;
+ wxButton* m_buttonCopy;
+
+ wxStaticText* m_staticText41;
+ wxStaticText* m_staticTextBalance;
+
+ wxChoice* m_choiceFilter;
+ wxNotebook* m_notebook;
+ wxPanel* m_panel9;
+ wxPanel* m_panel91;
+ wxPanel* m_panel92;
+ wxPanel* m_panel93;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnIconize( wxIconizeEvent& event ) { event.Skip(); }
+ virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
+ virtual void OnMouseEvents( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnPaint( wxPaintEvent& event ) { event.Skip(); }
+ virtual void OnMenuFileExit( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuOptionsChangeYourAddress( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuOptionsOptions( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuHelpAbout( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnButtonSend( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnButtonAddressBook( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnKeyDown( wxKeyEvent& event ) { event.Skip(); }
+ virtual void OnMouseEventsAddress( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnSetFocusAddress( wxFocusEvent& event ) { event.Skip(); }
+ virtual void OnButtonNew( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnButtonCopy( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnNotebookPageChanged( wxNotebookEvent& event ) { event.Skip(); }
+ virtual void OnListColBeginDrag( wxListEvent& event ) { event.Skip(); }
+ virtual void OnListItemActivated( wxListEvent& event ) { event.Skip(); }
+ virtual void OnPaintListCtrl( wxPaintEvent& event ) { event.Skip(); }
+
+
+ public:
+ wxMenu* m_menuOptions;
+ wxStatusBar* m_statusBar;
+ wxTextCtrl* m_textCtrlAddress;
+ wxListCtrl* m_listCtrlAll;
+ wxListCtrl* m_listCtrlSentReceived;
+ wxListCtrl* m_listCtrlSent;
+ wxListCtrl* m_listCtrlReceived;
+
+ CMainFrameBase( wxWindow* parent, wxWindowID id = wxID_MAINFRAME, const wxString& title = _("Bitcoin"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 723,484 ), long style = wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER|wxTAB_TRAVERSAL );
+ ~CMainFrameBase();
+
+};
+
+///////////////////////////////////////////////////////////////////////////////
+/// Class CTxDetailsDialogBase
+///////////////////////////////////////////////////////////////////////////////
+class CTxDetailsDialogBase : public wxDialog
+{
+ private:
+
+ protected:
+ wxHtmlWindow* m_htmlWin;
+ wxButton* m_buttonOK;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ CTxDetailsDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Transaction Details"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 620,450 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
+ ~CTxDetailsDialogBase();
+
+};
+
+///////////////////////////////////////////////////////////////////////////////
+/// Class COptionsDialogBase
+///////////////////////////////////////////////////////////////////////////////
+class COptionsDialogBase : public wxDialog
+{
+ private:
+
+ protected:
+ wxListBox* m_listBox;
+ wxScrolledWindow* m_scrolledWindow;
+ wxPanel* m_panelMain;
+
+ wxCheckBox* m_checkBoxStartOnSystemStartup;
+ wxCheckBox* m_checkBoxMinimizeToTray;
+ wxCheckBox* m_checkBoxUseUPnP;
+ wxCheckBox* m_checkBoxMinimizeOnClose;
+ wxCheckBox* m_checkBoxUseProxy;
+
+ wxStaticText* m_staticTextProxyIP;
+ wxTextCtrl* m_textCtrlProxyIP;
+ wxStaticText* m_staticTextProxyPort;
+ wxTextCtrl* m_textCtrlProxyPort;
+
+ wxStaticText* m_staticText32;
+ wxStaticText* m_staticText31;
+ wxTextCtrl* m_textCtrlTransactionFee;
+ wxPanel* m_panelTest2;
+
+ wxStaticText* m_staticText321;
+ wxStaticText* m_staticText69;
+ wxButton* m_buttonOK;
+ wxButton* m_buttonCancel;
+ wxButton* m_buttonApply;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnListBox( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCheckBoxMinimizeToTray( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCheckBoxUseProxy( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnKillFocusProxy( wxFocusEvent& event ) { event.Skip(); }
+ virtual void OnKillFocusTransactionFee( wxFocusEvent& event ) { event.Skip(); }
+ virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnButtonCancel( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnButtonApply( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ COptionsDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 540,360 ), long style = wxDEFAULT_DIALOG_STYLE );
+ ~COptionsDialogBase();
+
+};
+
+///////////////////////////////////////////////////////////////////////////////
+/// Class CAboutDialogBase
+///////////////////////////////////////////////////////////////////////////////
+class CAboutDialogBase : public wxDialog
+{
+ private:
+
+ protected:
+ wxStaticBitmap* m_bitmap;
+
+ wxStaticText* m_staticText40;
+
+ wxStaticText* m_staticTextMain;
+
+
+ wxButton* m_buttonOK;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+ wxStaticText* m_staticTextVersion;
+
+ CAboutDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About Bitcoin"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 532,333 ), long style = wxDEFAULT_DIALOG_STYLE );
+ ~CAboutDialogBase();
+
+};
+
+///////////////////////////////////////////////////////////////////////////////
+/// Class CSendDialogBase
+///////////////////////////////////////////////////////////////////////////////
+class CSendDialogBase : public wxDialog
+{
+ private:
+
+ protected:
+
+
+ wxStaticText* m_staticTextInstructions;
+
+ wxStaticBitmap* m_bitmapCheckMark;
+ wxStaticText* m_staticText36;
+ wxTextCtrl* m_textCtrlAddress;
+ wxButton* m_buttonPaste;
+ wxButton* m_buttonAddress;
+ wxStaticText* m_staticText19;
+ wxTextCtrl* m_textCtrlAmount;
+ wxStaticText* m_staticText20;
+ wxChoice* m_choiceTransferType;
+
+
+
+ wxButton* m_buttonSend;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnKeyDown( wxKeyEvent& event ) { event.Skip(); }
+ virtual void OnTextAddress( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnButtonPaste( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnButtonAddressBook( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnKillFocusAmount( wxFocusEvent& event ) { event.Skip(); }
+ virtual void OnButtonSend( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnButtonCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ CSendDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Send Coins"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 498,157 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
+ ~CSendDialogBase();
+
+};
+
+///////////////////////////////////////////////////////////////////////////////
+/// Class CSendingDialogBase
+///////////////////////////////////////////////////////////////////////////////
+class CSendingDialogBase : public wxDialog
+{
+ private:
+
+ protected:
+ wxStaticText* m_staticTextSending;
+ wxTextCtrl* m_textCtrlStatus;
+
+ wxButton* m_buttonOK;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnPaint( wxPaintEvent& event ) { event.Skip(); }
+ virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnButtonCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ CSendingDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Sending..."), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 442,151 ), long style = wxDEFAULT_DIALOG_STYLE );
+ ~CSendingDialogBase();
+
+};
+
+///////////////////////////////////////////////////////////////////////////////
+/// Class CYourAddressDialogBase
+///////////////////////////////////////////////////////////////////////////////
+class CYourAddressDialogBase : public wxDialog
+{
+ private:
+
+ protected:
+
+ wxStaticText* m_staticText45;
+ wxListCtrl* m_listCtrl;
+
+ wxButton* m_buttonRename;
+ wxButton* m_buttonNew;
+ wxButton* m_buttonCopy;
+ wxButton* m_buttonOK;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnListEndLabelEdit( wxListEvent& event ) { event.Skip(); }
+ virtual void OnListItemActivated( wxListEvent& event ) { event.Skip(); }
+ virtual void OnListItemSelected( wxListEvent& event ) { event.Skip(); }
+ virtual void OnButtonRename( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnButtonNew( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnButtonCopy( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnButtonCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ CYourAddressDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Your Bitcoin Addresses"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 610,390 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
+ ~CYourAddressDialogBase();
+
+};
+
+///////////////////////////////////////////////////////////////////////////////
+/// Class CAddressBookDialogBase
+///////////////////////////////////////////////////////////////////////////////
+class CAddressBookDialogBase : public wxDialog
+{
+ private:
+
+ protected:
+ wxNotebook* m_notebook;
+ wxPanel* m_panelSending;
+
+ wxStaticText* m_staticText55;
+ wxListCtrl* m_listCtrlSending;
+ wxPanel* m_panelReceiving;
+
+ wxStaticText* m_staticText45;
+
+ wxListCtrl* m_listCtrlReceiving;
+
+ wxButton* m_buttonDelete;
+ wxButton* m_buttonCopy;
+ wxButton* m_buttonEdit;
+ wxButton* m_buttonNew;
+ wxButton* m_buttonOK;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnNotebookPageChanged( wxNotebookEvent& event ) { event.Skip(); }
+ virtual void OnListEndLabelEdit( wxListEvent& event ) { event.Skip(); }
+ virtual void OnListItemActivated( wxListEvent& event ) { event.Skip(); }
+ virtual void OnListItemSelected( wxListEvent& event ) { event.Skip(); }
+ virtual void OnButtonDelete( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnButtonCopy( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnButtonEdit( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnButtonNew( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnButtonCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+ wxButton* m_buttonCancel;
+
+ CAddressBookDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Address Book"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 610,390 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
+ ~CAddressBookDialogBase();
+
+};
+
+///////////////////////////////////////////////////////////////////////////////
+/// Class CGetTextFromUserDialogBase
+///////////////////////////////////////////////////////////////////////////////
+class CGetTextFromUserDialogBase : public wxDialog
+{
+ private:
+
+ protected:
+
+ wxStaticText* m_staticTextMessage1;
+ wxTextCtrl* m_textCtrl1;
+ wxStaticText* m_staticTextMessage2;
+ wxTextCtrl* m_textCtrl2;
+
+
+ wxButton* m_buttonOK;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnKeyDown( wxKeyEvent& event ) { event.Skip(); }
+ virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnButtonCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ CGetTextFromUserDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 440,138 ), long style = wxDEFAULT_DIALOG_STYLE );
+ ~CGetTextFromUserDialogBase();
+
+};
+
+#endif //__uibase__
diff --git a/src/xpm/about.xpm b/src/xpm/about.xpm
new file mode 100644
index 0000000000..3fa868ca76
--- /dev/null
+++ b/src/xpm/about.xpm
@@ -0,0 +1,665 @@
+// Copyright (c) 2009-2010 Satoshi Nakamoto
+// Distributed under the MIT/X11 software license, see the accompanying
+// file license.txt or http://www.opensource.org/licenses/mit-license.php.
+/* XPM */
+static const char * about_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"96 564 92 1",
+" c #001269",
+". c #000C72",
+"X c #00057F",
+"o c #001175",
+"O c #000B6A",
+"+ c #000E84",
+"@ c #000489",
+"# c #001583",
+"$ c #001B89",
+"% c #001B99",
+"& c #000B92",
+"* c #00208B",
+"= c #002B97",
+"- c #0004A6",
+"; c #001DA7",
+": c #0014BC",
+"> c #0019BB",
+", c #0017B4",
+"< c #0023A3",
+"1 c #002CAA",
+"2 c #0030A4",
+"3 c #003BA3",
+"4 c #0033AB",
+"5 c #003FA8",
+"6 c #0027B8",
+"7 c #0035BB",
+"8 c #003CBA",
+"9 c #004ABD",
+"0 c #001DC4",
+"q c #0017CC",
+"w c #000CD0",
+"e c #0026C7",
+"r c #0035C4",
+"t c #003DC5",
+"y c #0032CB",
+"u c #003BCC",
+"i c #002BD3",
+"p c #0021DC",
+"a c #0025D5",
+"s c #0034D5",
+"d c #003ADB",
+"f c #0016F6",
+"g c #0008F9",
+"h c #0027E3",
+"j c #003CE9",
+"k c #002BF5",
+"l c #0024F9",
+"z c #0033F4",
+"x c #0035F8",
+"c c #0048CA",
+"v c #0055C5",
+"b c #0059C3",
+"n c #0053CB",
+"m c #005ACC",
+"M c #004FD4",
+"N c #004CDC",
+"B c #0047D0",
+"V c #005BD6",
+"C c #0049E5",
+"Z c #0042EA",
+"A c #0052E4",
+"S c #005CE4",
+"D c #0054EC",
+"F c #005EEB",
+"G c #004AF5",
+"H c #0051F2",
+"J c #005CFA",
+"K c #0058F9",
+"L c #0066E4",
+"P c #006BE3",
+"I c #0064EC",
+"U c #006DEF",
+"Y c #0074EB",
+"T c #0078EC",
+"R c #0073E7",
+"E c #0065F4",
+"W c #006BF5",
+"Q c #006BFB",
+"! c #0066FD",
+"~ c #0073F5",
+"^ c #007CF3",
+"/ c #0075FB",
+"( c #007DFC",
+") c #0084FF",
+"_ c #008AFF",
+"` c #0092FF",
+"' c #339CFF",
+"] c #33A3FF",
+"[ c #33AAFF",
+"{ c #66B5FF",
+"} c #66BBFF",
+"| c #66C0FF",
+/* pixels */
+"kkkkkkkkkkkk<<<<<<<<<<<<DDDDDDDDDDDDvvvvvvvvvvvv////////////))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"kkkkkkkkkkkk<<<<<<<<<<<<DDDDDDDDDDDDvvvvvvvvvvvv////////////))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"kkkkkkkkkkkk<<<<<<<<<<<<DDDDDDDDDDDDvvvvvvvvvvvv////////////))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"kkkkkkkkkkkk<<<<<<<<<<<<DDDDDDDDDDDDvvvvvvvvvvvv////////////))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"kkkkkkkkkkkk<<<<<<<<<<<<DDDDDDDDDDDDvvvvvvvvvvvv////////////))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"kkkkkkkkkkkk<<<<<<<<<<<<DDDDDDDDDDDDvvvvvvvvvvvv////////////))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"kkkkkkkkkkkk<<<<<<<<<<<<DDDDDDDDDDDDvvvvvvvvvvvv////////////))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"kkkkkkkkkkkk<<<<<<<<<<<<DDDDDDDDDDDDvvvvvvvvvvvv////////////))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"kkkkkkkkkkkk<<<<<<<<<<<<DDDDDDDDDDDDvvvvvvvvvvvv////////////))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"kkkkkkkkkkkk<<<<<<<<<<<<DDDDDDDDDDDDvvvvvvvvvvvv////////////))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"kkkkkkkkkkkk<<<<<<<<<<<<DDDDDDDDDDDDvvvvvvvvvvvv////////////))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"kkkkkkkkkkkk<<<<<<<<<<<<DDDDDDDDDDDDvvvvvvvvvvvv////////////))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"XXXXXXXXXXXXrrrrrrrrrrrr777777777777MMMMMMMMMMMM(((((((((((())))))))))))[[[[[[[[[[[[}}}}}}}}}}}}",
+"XXXXXXXXXXXXrrrrrrrrrrrr777777777777MMMMMMMMMMMM(((((((((((())))))))))))[[[[[[[[[[[[}}}}}}}}}}}}",
+"XXXXXXXXXXXXrrrrrrrrrrrr777777777777MMMMMMMMMMMM(((((((((((())))))))))))[[[[[[[[[[[[}}}}}}}}}}}}",
+"XXXXXXXXXXXXrrrrrrrrrrrr777777777777MMMMMMMMMMMM(((((((((((())))))))))))[[[[[[[[[[[[}}}}}}}}}}}}",
+"XXXXXXXXXXXXrrrrrrrrrrrr777777777777MMMMMMMMMMMM(((((((((((())))))))))))[[[[[[[[[[[[}}}}}}}}}}}}",
+"XXXXXXXXXXXXrrrrrrrrrrrr777777777777MMMMMMMMMMMM(((((((((((())))))))))))[[[[[[[[[[[[}}}}}}}}}}}}",
+"XXXXXXXXXXXXrrrrrrrrrrrr777777777777MMMMMMMMMMMM(((((((((((())))))))))))[[[[[[[[[[[[}}}}}}}}}}}}",
+"XXXXXXXXXXXXrrrrrrrrrrrr777777777777MMMMMMMMMMMM(((((((((((())))))))))))[[[[[[[[[[[[}}}}}}}}}}}}",
+"XXXXXXXXXXXXrrrrrrrrrrrr777777777777MMMMMMMMMMMM(((((((((((())))))))))))[[[[[[[[[[[[}}}}}}}}}}}}",
+"XXXXXXXXXXXXrrrrrrrrrrrr777777777777MMMMMMMMMMMM(((((((((((())))))))))))[[[[[[[[[[[[}}}}}}}}}}}}",
+"XXXXXXXXXXXXrrrrrrrrrrrr777777777777MMMMMMMMMMMM(((((((((((())))))))))))[[[[[[[[[[[[}}}}}}}}}}}}",
+"XXXXXXXXXXXXrrrrrrrrrrrr777777777777MMMMMMMMMMMM(((((((((((())))))))))))[[[[[[[[[[[[}}}}}}}}}}}}",
+"llllllllllll;;;;;;;;;;;;NNNNNNNNNNNNSSSSSSSSSSSS~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"llllllllllll;;;;;;;;;;;;NNNNNNNNNNNNSSSSSSSSSSSS~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"llllllllllll;;;;;;;;;;;;NNNNNNNNNNNNSSSSSSSSSSSS~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"llllllllllll;;;;;;;;;;;;NNNNNNNNNNNNSSSSSSSSSSSS~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"llllllllllll;;;;;;;;;;;;NNNNNNNNNNNNSSSSSSSSSSSS~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"llllllllllll;;;;;;;;;;;;NNNNNNNNNNNNSSSSSSSSSSSS~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"llllllllllll;;;;;;;;;;;;NNNNNNNNNNNNSSSSSSSSSSSS~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"llllllllllll;;;;;;;;;;;;NNNNNNNNNNNNSSSSSSSSSSSS~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"llllllllllll;;;;;;;;;;;;NNNNNNNNNNNNSSSSSSSSSSSS~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"llllllllllll;;;;;;;;;;;;NNNNNNNNNNNNSSSSSSSSSSSS~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"llllllllllll;;;;;;;;;;;;NNNNNNNNNNNNSSSSSSSSSSSS~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"llllllllllll;;;;;;;;;;;;NNNNNNNNNNNNSSSSSSSSSSSS~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"############666666666666uuuuuuuuuuuuJJJJJJJJJJJJ^^^^^^^^^^^^____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"############666666666666uuuuuuuuuuuuJJJJJJJJJJJJ^^^^^^^^^^^^____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"############666666666666uuuuuuuuuuuuJJJJJJJJJJJJ^^^^^^^^^^^^____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"############666666666666uuuuuuuuuuuuJJJJJJJJJJJJ^^^^^^^^^^^^____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"############666666666666uuuuuuuuuuuuJJJJJJJJJJJJ^^^^^^^^^^^^____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"############666666666666uuuuuuuuuuuuJJJJJJJJJJJJ^^^^^^^^^^^^____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"############666666666666uuuuuuuuuuuuJJJJJJJJJJJJ^^^^^^^^^^^^____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"############666666666666uuuuuuuuuuuuJJJJJJJJJJJJ^^^^^^^^^^^^____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"############666666666666uuuuuuuuuuuuJJJJJJJJJJJJ^^^^^^^^^^^^____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"############666666666666uuuuuuuuuuuuJJJJJJJJJJJJ^^^^^^^^^^^^____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"############666666666666uuuuuuuuuuuuJJJJJJJJJJJJ^^^^^^^^^^^^____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"############666666666666uuuuuuuuuuuuJJJJJJJJJJJJ^^^^^^^^^^^^____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"............yyyyyyyyyyyy333333333333AAAAAAAAAAAAWWWWWWWWWWWW____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"............yyyyyyyyyyyy333333333333AAAAAAAAAAAAWWWWWWWWWWWW____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"............yyyyyyyyyyyy333333333333AAAAAAAAAAAAWWWWWWWWWWWW____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"............yyyyyyyyyyyy333333333333AAAAAAAAAAAAWWWWWWWWWWWW____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"............yyyyyyyyyyyy333333333333AAAAAAAAAAAAWWWWWWWWWWWW____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"............yyyyyyyyyyyy333333333333AAAAAAAAAAAAWWWWWWWWWWWW____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"............yyyyyyyyyyyy333333333333AAAAAAAAAAAAWWWWWWWWWWWW____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"............yyyyyyyyyyyy333333333333AAAAAAAAAAAAWWWWWWWWWWWW____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"............yyyyyyyyyyyy333333333333AAAAAAAAAAAAWWWWWWWWWWWW____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"............yyyyyyyyyyyy333333333333AAAAAAAAAAAAWWWWWWWWWWWW____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"............yyyyyyyyyyyy333333333333AAAAAAAAAAAAWWWWWWWWWWWW____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"............yyyyyyyyyyyy333333333333AAAAAAAAAAAAWWWWWWWWWWWW____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"ffffffffffff============yyyyyyyyyyyyJJJJJJJJJJJJRRRRRRRRRRRR))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff============yyyyyyyyyyyyJJJJJJJJJJJJRRRRRRRRRRRR))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff============yyyyyyyyyyyyJJJJJJJJJJJJRRRRRRRRRRRR))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff============yyyyyyyyyyyyJJJJJJJJJJJJRRRRRRRRRRRR))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff============yyyyyyyyyyyyJJJJJJJJJJJJRRRRRRRRRRRR))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff============yyyyyyyyyyyyJJJJJJJJJJJJRRRRRRRRRRRR))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff============yyyyyyyyyyyyJJJJJJJJJJJJRRRRRRRRRRRR))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff============yyyyyyyyyyyyJJJJJJJJJJJJRRRRRRRRRRRR))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff============yyyyyyyyyyyyJJJJJJJJJJJJRRRRRRRRRRRR))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff============yyyyyyyyyyyyJJJJJJJJJJJJRRRRRRRRRRRR))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff============yyyyyyyyyyyyJJJJJJJJJJJJRRRRRRRRRRRR))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff============yyyyyyyyyyyyJJJJJJJJJJJJRRRRRRRRRRRR))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"gggggggggggg$$$$$$$$$$$$uuuuuuuuuuuuNNNNNNNNNNNN~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"gggggggggggg$$$$$$$$$$$$uuuuuuuuuuuuNNNNNNNNNNNN~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"gggggggggggg$$$$$$$$$$$$uuuuuuuuuuuuNNNNNNNNNNNN~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"gggggggggggg$$$$$$$$$$$$uuuuuuuuuuuuNNNNNNNNNNNN~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"gggggggggggg$$$$$$$$$$$$uuuuuuuuuuuuNNNNNNNNNNNN~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"gggggggggggg$$$$$$$$$$$$uuuuuuuuuuuuNNNNNNNNNNNN~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"gggggggggggg$$$$$$$$$$$$uuuuuuuuuuuuNNNNNNNNNNNN~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"gggggggggggg$$$$$$$$$$$$uuuuuuuuuuuuNNNNNNNNNNNN~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"gggggggggggg$$$$$$$$$$$$uuuuuuuuuuuuNNNNNNNNNNNN~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"gggggggggggg$$$$$$$$$$$$uuuuuuuuuuuuNNNNNNNNNNNN~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"gggggggggggg$$$$$$$$$$$$uuuuuuuuuuuuNNNNNNNNNNNN~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"gggggggggggg$$$$$$$$$$$$uuuuuuuuuuuuNNNNNNNNNNNN~~~~~~~~~~~~))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"::::::::::::hhhhhhhhhhhhddddddddddddAAAAAAAAAAAAUUUUUUUUUUUU))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::hhhhhhhhhhhhddddddddddddAAAAAAAAAAAAUUUUUUUUUUUU))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::hhhhhhhhhhhhddddddddddddAAAAAAAAAAAAUUUUUUUUUUUU))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::hhhhhhhhhhhhddddddddddddAAAAAAAAAAAAUUUUUUUUUUUU))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::hhhhhhhhhhhhddddddddddddAAAAAAAAAAAAUUUUUUUUUUUU))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::hhhhhhhhhhhhddddddddddddAAAAAAAAAAAAUUUUUUUUUUUU))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::hhhhhhhhhhhhddddddddddddAAAAAAAAAAAAUUUUUUUUUUUU))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::hhhhhhhhhhhhddddddddddddAAAAAAAAAAAAUUUUUUUUUUUU))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::hhhhhhhhhhhhddddddddddddAAAAAAAAAAAAUUUUUUUUUUUU))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::hhhhhhhhhhhhddddddddddddAAAAAAAAAAAAUUUUUUUUUUUU))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::hhhhhhhhhhhhddddddddddddAAAAAAAAAAAAUUUUUUUUUUUU))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::hhhhhhhhhhhhddddddddddddAAAAAAAAAAAAUUUUUUUUUUUU))))))))))))''''''''''''}}}}}}}}}}}}",
+"zzzzzzzzzzzzGGGGGGGGGGGGBBBBBBBBBBBBDDDDDDDDDDDDPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"zzzzzzzzzzzzGGGGGGGGGGGGBBBBBBBBBBBBDDDDDDDDDDDDPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"zzzzzzzzzzzzGGGGGGGGGGGGBBBBBBBBBBBBDDDDDDDDDDDDPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"zzzzzzzzzzzzGGGGGGGGGGGGBBBBBBBBBBBBDDDDDDDDDDDDPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"zzzzzzzzzzzzGGGGGGGGGGGGBBBBBBBBBBBBDDDDDDDDDDDDPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"zzzzzzzzzzzzGGGGGGGGGGGGBBBBBBBBBBBBDDDDDDDDDDDDPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"zzzzzzzzzzzzGGGGGGGGGGGGBBBBBBBBBBBBDDDDDDDDDDDDPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"zzzzzzzzzzzzGGGGGGGGGGGGBBBBBBBBBBBBDDDDDDDDDDDDPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"zzzzzzzzzzzzGGGGGGGGGGGGBBBBBBBBBBBBDDDDDDDDDDDDPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"zzzzzzzzzzzzGGGGGGGGGGGGBBBBBBBBBBBBDDDDDDDDDDDDPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"zzzzzzzzzzzzGGGGGGGGGGGGBBBBBBBBBBBBDDDDDDDDDDDDPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"zzzzzzzzzzzzGGGGGGGGGGGGBBBBBBBBBBBBDDDDDDDDDDDDPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"ffffffffffffssssssssssssjjjjjjjjjjjjnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+"ffffffffffffssssssssssssjjjjjjjjjjjjnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+"ffffffffffffssssssssssssjjjjjjjjjjjjnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+"ffffffffffffssssssssssssjjjjjjjjjjjjnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+"ffffffffffffssssssssssssjjjjjjjjjjjjnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+"ffffffffffffssssssssssssjjjjjjjjjjjjnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+"ffffffffffffssssssssssssjjjjjjjjjjjjnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+"ffffffffffffssssssssssssjjjjjjjjjjjjnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+"ffffffffffffssssssssssssjjjjjjjjjjjjnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+"ffffffffffffssssssssssssjjjjjjjjjjjjnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+"ffffffffffffssssssssssssjjjjjjjjjjjjnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+"ffffffffffffssssssssssssjjjjjjjjjjjjnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+"wwwwwwwwwwww<<<<<<<<<<<<888888888888VVVVVVVVVVVV~~~~~~~~~~~~((((((((((((]]]]]]]]]]]]}}}}}}}}}}}}",
+"wwwwwwwwwwww<<<<<<<<<<<<888888888888VVVVVVVVVVVV~~~~~~~~~~~~((((((((((((]]]]]]]]]]]]}}}}}}}}}}}}",
+"wwwwwwwwwwww<<<<<<<<<<<<888888888888VVVVVVVVVVVV~~~~~~~~~~~~((((((((((((]]]]]]]]]]]]}}}}}}}}}}}}",
+"wwwwwwwwwwww<<<<<<<<<<<<888888888888VVVVVVVVVVVV~~~~~~~~~~~~((((((((((((]]]]]]]]]]]]}}}}}}}}}}}}",
+"wwwwwwwwwwww<<<<<<<<<<<<888888888888VVVVVVVVVVVV~~~~~~~~~~~~((((((((((((]]]]]]]]]]]]}}}}}}}}}}}}",
+"wwwwwwwwwwww<<<<<<<<<<<<888888888888VVVVVVVVVVVV~~~~~~~~~~~~((((((((((((]]]]]]]]]]]]}}}}}}}}}}}}",
+"wwwwwwwwwwww<<<<<<<<<<<<888888888888VVVVVVVVVVVV~~~~~~~~~~~~((((((((((((]]]]]]]]]]]]}}}}}}}}}}}}",
+"wwwwwwwwwwww<<<<<<<<<<<<888888888888VVVVVVVVVVVV~~~~~~~~~~~~((((((((((((]]]]]]]]]]]]}}}}}}}}}}}}",
+"wwwwwwwwwwww<<<<<<<<<<<<888888888888VVVVVVVVVVVV~~~~~~~~~~~~((((((((((((]]]]]]]]]]]]}}}}}}}}}}}}",
+"wwwwwwwwwwww<<<<<<<<<<<<888888888888VVVVVVVVVVVV~~~~~~~~~~~~((((((((((((]]]]]]]]]]]]}}}}}}}}}}}}",
+"wwwwwwwwwwww<<<<<<<<<<<<888888888888VVVVVVVVVVVV~~~~~~~~~~~~((((((((((((]]]]]]]]]]]]}}}}}}}}}}}}",
+"wwwwwwwwwwww<<<<<<<<<<<<888888888888VVVVVVVVVVVV~~~~~~~~~~~~((((((((((((]]]]]]]]]]]]}}}}}}}}}}}}",
+"hhhhhhhhhhhh>>>>>>>>>>>>rrrrrrrrrrrrVVVVVVVVVVVVLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"hhhhhhhhhhhh>>>>>>>>>>>>rrrrrrrrrrrrVVVVVVVVVVVVLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"hhhhhhhhhhhh>>>>>>>>>>>>rrrrrrrrrrrrVVVVVVVVVVVVLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"hhhhhhhhhhhh>>>>>>>>>>>>rrrrrrrrrrrrVVVVVVVVVVVVLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"hhhhhhhhhhhh>>>>>>>>>>>>rrrrrrrrrrrrVVVVVVVVVVVVLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"hhhhhhhhhhhh>>>>>>>>>>>>rrrrrrrrrrrrVVVVVVVVVVVVLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"hhhhhhhhhhhh>>>>>>>>>>>>rrrrrrrrrrrrVVVVVVVVVVVVLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"hhhhhhhhhhhh>>>>>>>>>>>>rrrrrrrrrrrrVVVVVVVVVVVVLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"hhhhhhhhhhhh>>>>>>>>>>>>rrrrrrrrrrrrVVVVVVVVVVVVLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"hhhhhhhhhhhh>>>>>>>>>>>>rrrrrrrrrrrrVVVVVVVVVVVVLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"hhhhhhhhhhhh>>>>>>>>>>>>rrrrrrrrrrrrVVVVVVVVVVVVLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"hhhhhhhhhhhh>>>>>>>>>>>>rrrrrrrrrrrrVVVVVVVVVVVVLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"::::::::::::;;;;;;;;;;;;HHHHHHHHHHHHccccccccccccQQQQQQQQQQQQ))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::;;;;;;;;;;;;HHHHHHHHHHHHccccccccccccQQQQQQQQQQQQ))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::;;;;;;;;;;;;HHHHHHHHHHHHccccccccccccQQQQQQQQQQQQ))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::;;;;;;;;;;;;HHHHHHHHHHHHccccccccccccQQQQQQQQQQQQ))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::;;;;;;;;;;;;HHHHHHHHHHHHccccccccccccQQQQQQQQQQQQ))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::;;;;;;;;;;;;HHHHHHHHHHHHccccccccccccQQQQQQQQQQQQ))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::;;;;;;;;;;;;HHHHHHHHHHHHccccccccccccQQQQQQQQQQQQ))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::;;;;;;;;;;;;HHHHHHHHHHHHccccccccccccQQQQQQQQQQQQ))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::;;;;;;;;;;;;HHHHHHHHHHHHccccccccccccQQQQQQQQQQQQ))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::;;;;;;;;;;;;HHHHHHHHHHHHccccccccccccQQQQQQQQQQQQ))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::;;;;;;;;;;;;HHHHHHHHHHHHccccccccccccQQQQQQQQQQQQ))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::;;;;;;;;;;;;HHHHHHHHHHHHccccccccccccQQQQQQQQQQQQ))))))))))))''''''''''''}}}}}}}}}}}}",
+"qqqqqqqqqqqqkkkkkkkkkkkk333333333333AAAAAAAAAAAARRRRRRRRRRRR))))))))))))''''''''''''{{{{{{{{{{{{",
+"qqqqqqqqqqqqkkkkkkkkkkkk333333333333AAAAAAAAAAAARRRRRRRRRRRR))))))))))))''''''''''''{{{{{{{{{{{{",
+"qqqqqqqqqqqqkkkkkkkkkkkk333333333333AAAAAAAAAAAARRRRRRRRRRRR))))))))))))''''''''''''{{{{{{{{{{{{",
+"qqqqqqqqqqqqkkkkkkkkkkkk333333333333AAAAAAAAAAAARRRRRRRRRRRR))))))))))))''''''''''''{{{{{{{{{{{{",
+"qqqqqqqqqqqqkkkkkkkkkkkk333333333333AAAAAAAAAAAARRRRRRRRRRRR))))))))))))''''''''''''{{{{{{{{{{{{",
+"qqqqqqqqqqqqkkkkkkkkkkkk333333333333AAAAAAAAAAAARRRRRRRRRRRR))))))))))))''''''''''''{{{{{{{{{{{{",
+"qqqqqqqqqqqqkkkkkkkkkkkk333333333333AAAAAAAAAAAARRRRRRRRRRRR))))))))))))''''''''''''{{{{{{{{{{{{",
+"qqqqqqqqqqqqkkkkkkkkkkkk333333333333AAAAAAAAAAAARRRRRRRRRRRR))))))))))))''''''''''''{{{{{{{{{{{{",
+"qqqqqqqqqqqqkkkkkkkkkkkk333333333333AAAAAAAAAAAARRRRRRRRRRRR))))))))))))''''''''''''{{{{{{{{{{{{",
+"qqqqqqqqqqqqkkkkkkkkkkkk333333333333AAAAAAAAAAAARRRRRRRRRRRR))))))))))))''''''''''''{{{{{{{{{{{{",
+"qqqqqqqqqqqqkkkkkkkkkkkk333333333333AAAAAAAAAAAARRRRRRRRRRRR))))))))))))''''''''''''{{{{{{{{{{{{",
+"qqqqqqqqqqqqkkkkkkkkkkkk333333333333AAAAAAAAAAAARRRRRRRRRRRR))))))))))))''''''''''''{{{{{{{{{{{{",
+"############ppppppppppppssssssssssssIIIIIIIIIIII^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"############ppppppppppppssssssssssssIIIIIIIIIIII^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"############ppppppppppppssssssssssssIIIIIIIIIIII^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"############ppppppppppppssssssssssssIIIIIIIIIIII^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"############ppppppppppppssssssssssssIIIIIIIIIIII^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"############ppppppppppppssssssssssssIIIIIIIIIIII^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"############ppppppppppppssssssssssssIIIIIIIIIIII^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"############ppppppppppppssssssssssssIIIIIIIIIIII^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"############ppppppppppppssssssssssssIIIIIIIIIIII^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"############ppppppppppppssssssssssssIIIIIIIIIIII^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"############ppppppppppppssssssssssssIIIIIIIIIIII^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"############ppppppppppppssssssssssssIIIIIIIIIIII^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"++++++++++++rrrrrrrrrrrr777777777777MMMMMMMMMMMMIIIIIIIIIIII````````````''''''''''''{{{{{{{{{{{{",
+"++++++++++++rrrrrrrrrrrr777777777777MMMMMMMMMMMMIIIIIIIIIIII````````````''''''''''''{{{{{{{{{{{{",
+"++++++++++++rrrrrrrrrrrr777777777777MMMMMMMMMMMMIIIIIIIIIIII````````````''''''''''''{{{{{{{{{{{{",
+"++++++++++++rrrrrrrrrrrr777777777777MMMMMMMMMMMMIIIIIIIIIIII````````````''''''''''''{{{{{{{{{{{{",
+"++++++++++++rrrrrrrrrrrr777777777777MMMMMMMMMMMMIIIIIIIIIIII````````````''''''''''''{{{{{{{{{{{{",
+"++++++++++++rrrrrrrrrrrr777777777777MMMMMMMMMMMMIIIIIIIIIIII````````````''''''''''''{{{{{{{{{{{{",
+"++++++++++++rrrrrrrrrrrr777777777777MMMMMMMMMMMMIIIIIIIIIIII````````````''''''''''''{{{{{{{{{{{{",
+"++++++++++++rrrrrrrrrrrr777777777777MMMMMMMMMMMMIIIIIIIIIIII````````````''''''''''''{{{{{{{{{{{{",
+"++++++++++++rrrrrrrrrrrr777777777777MMMMMMMMMMMMIIIIIIIIIIII````````````''''''''''''{{{{{{{{{{{{",
+"++++++++++++rrrrrrrrrrrr777777777777MMMMMMMMMMMMIIIIIIIIIIII````````````''''''''''''{{{{{{{{{{{{",
+"++++++++++++rrrrrrrrrrrr777777777777MMMMMMMMMMMMIIIIIIIIIIII````````````''''''''''''{{{{{{{{{{{{",
+"++++++++++++rrrrrrrrrrrr777777777777MMMMMMMMMMMMIIIIIIIIIIII````````````''''''''''''{{{{{{{{{{{{",
+"------------$$$$$$$$$$$$999999999999JJJJJJJJJJJJTTTTTTTTTTTT____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"------------$$$$$$$$$$$$999999999999JJJJJJJJJJJJTTTTTTTTTTTT____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"------------$$$$$$$$$$$$999999999999JJJJJJJJJJJJTTTTTTTTTTTT____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"------------$$$$$$$$$$$$999999999999JJJJJJJJJJJJTTTTTTTTTTTT____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"------------$$$$$$$$$$$$999999999999JJJJJJJJJJJJTTTTTTTTTTTT____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"------------$$$$$$$$$$$$999999999999JJJJJJJJJJJJTTTTTTTTTTTT____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"------------$$$$$$$$$$$$999999999999JJJJJJJJJJJJTTTTTTTTTTTT____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"------------$$$$$$$$$$$$999999999999JJJJJJJJJJJJTTTTTTTTTTTT____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"------------$$$$$$$$$$$$999999999999JJJJJJJJJJJJTTTTTTTTTTTT____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"------------$$$$$$$$$$$$999999999999JJJJJJJJJJJJTTTTTTTTTTTT____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"------------$$$$$$$$$$$$999999999999JJJJJJJJJJJJTTTTTTTTTTTT____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"------------$$$$$$$$$$$$999999999999JJJJJJJJJJJJTTTTTTTTTTTT____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"@@@@@@@@@@@@666666666666ttttttttttttWWWWWWWWWWWWPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@666666666666ttttttttttttWWWWWWWWWWWWPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@666666666666ttttttttttttWWWWWWWWWWWWPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@666666666666ttttttttttttWWWWWWWWWWWWPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@666666666666ttttttttttttWWWWWWWWWWWWPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@666666666666ttttttttttttWWWWWWWWWWWWPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@666666666666ttttttttttttWWWWWWWWWWWWPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@666666666666ttttttttttttWWWWWWWWWWWWPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@666666666666ttttttttttttWWWWWWWWWWWWPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@666666666666ttttttttttttWWWWWWWWWWWWPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@666666666666ttttttttttttWWWWWWWWWWWWPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@666666666666ttttttttttttWWWWWWWWWWWWPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaazzzzzzzzzzzzBBBBBBBBBBBBbbbbbbbbbbbbPPPPPPPPPPPP____________''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaazzzzzzzzzzzzBBBBBBBBBBBBbbbbbbbbbbbbPPPPPPPPPPPP____________''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaazzzzzzzzzzzzBBBBBBBBBBBBbbbbbbbbbbbbPPPPPPPPPPPP____________''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaazzzzzzzzzzzzBBBBBBBBBBBBbbbbbbbbbbbbPPPPPPPPPPPP____________''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaazzzzzzzzzzzzBBBBBBBBBBBBbbbbbbbbbbbbPPPPPPPPPPPP____________''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaazzzzzzzzzzzzBBBBBBBBBBBBbbbbbbbbbbbbPPPPPPPPPPPP____________''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaazzzzzzzzzzzzBBBBBBBBBBBBbbbbbbbbbbbbPPPPPPPPPPPP____________''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaazzzzzzzzzzzzBBBBBBBBBBBBbbbbbbbbbbbbPPPPPPPPPPPP____________''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaazzzzzzzzzzzzBBBBBBBBBBBBbbbbbbbbbbbbPPPPPPPPPPPP____________''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaazzzzzzzzzzzzBBBBBBBBBBBBbbbbbbbbbbbbPPPPPPPPPPPP____________''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaazzzzzzzzzzzzBBBBBBBBBBBBbbbbbbbbbbbbPPPPPPPPPPPP____________''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaazzzzzzzzzzzzBBBBBBBBBBBBbbbbbbbbbbbbPPPPPPPPPPPP____________''''''''''''{{{{{{{{{{{{",
+"------------%%%%%%%%%%%%ttttttttttttNNNNNNNNNNNN^^^^^^^^^^^^))))))))))))''''''''''''}}}}}}}}}}}}",
+"------------%%%%%%%%%%%%ttttttttttttNNNNNNNNNNNN^^^^^^^^^^^^))))))))))))''''''''''''}}}}}}}}}}}}",
+"------------%%%%%%%%%%%%ttttttttttttNNNNNNNNNNNN^^^^^^^^^^^^))))))))))))''''''''''''}}}}}}}}}}}}",
+"------------%%%%%%%%%%%%ttttttttttttNNNNNNNNNNNN^^^^^^^^^^^^))))))))))))''''''''''''}}}}}}}}}}}}",
+"------------%%%%%%%%%%%%ttttttttttttNNNNNNNNNNNN^^^^^^^^^^^^))))))))))))''''''''''''}}}}}}}}}}}}",
+"------------%%%%%%%%%%%%ttttttttttttNNNNNNNNNNNN^^^^^^^^^^^^))))))))))))''''''''''''}}}}}}}}}}}}",
+"------------%%%%%%%%%%%%ttttttttttttNNNNNNNNNNNN^^^^^^^^^^^^))))))))))))''''''''''''}}}}}}}}}}}}",
+"------------%%%%%%%%%%%%ttttttttttttNNNNNNNNNNNN^^^^^^^^^^^^))))))))))))''''''''''''}}}}}}}}}}}}",
+"------------%%%%%%%%%%%%ttttttttttttNNNNNNNNNNNN^^^^^^^^^^^^))))))))))))''''''''''''}}}}}}}}}}}}",
+"------------%%%%%%%%%%%%ttttttttttttNNNNNNNNNNNN^^^^^^^^^^^^))))))))))))''''''''''''}}}}}}}}}}}}",
+"------------%%%%%%%%%%%%ttttttttttttNNNNNNNNNNNN^^^^^^^^^^^^))))))))))))''''''''''''}}}}}}}}}}}}",
+"------------%%%%%%%%%%%%ttttttttttttNNNNNNNNNNNN^^^^^^^^^^^^))))))))))))''''''''''''}}}}}}}}}}}}",
+" 000000000000888888888888FFFFFFFFFFFF~~~~~~~~~~~~))))))))))))''''''''''''}}}}}}}}}}}}",
+" 000000000000888888888888FFFFFFFFFFFF~~~~~~~~~~~~))))))))))))''''''''''''}}}}}}}}}}}}",
+" 000000000000888888888888FFFFFFFFFFFF~~~~~~~~~~~~))))))))))))''''''''''''}}}}}}}}}}}}",
+" 000000000000888888888888FFFFFFFFFFFF~~~~~~~~~~~~))))))))))))''''''''''''}}}}}}}}}}}}",
+" 000000000000888888888888FFFFFFFFFFFF~~~~~~~~~~~~))))))))))))''''''''''''}}}}}}}}}}}}",
+" 000000000000888888888888FFFFFFFFFFFF~~~~~~~~~~~~))))))))))))''''''''''''}}}}}}}}}}}}",
+" 000000000000888888888888FFFFFFFFFFFF~~~~~~~~~~~~))))))))))))''''''''''''}}}}}}}}}}}}",
+" 000000000000888888888888FFFFFFFFFFFF~~~~~~~~~~~~))))))))))))''''''''''''}}}}}}}}}}}}",
+" 000000000000888888888888FFFFFFFFFFFF~~~~~~~~~~~~))))))))))))''''''''''''}}}}}}}}}}}}",
+" 000000000000888888888888FFFFFFFFFFFF~~~~~~~~~~~~))))))))))))''''''''''''}}}}}}}}}}}}",
+" 000000000000888888888888FFFFFFFFFFFF~~~~~~~~~~~~))))))))))))''''''''''''}}}}}}}}}}}}",
+" 000000000000888888888888FFFFFFFFFFFF~~~~~~~~~~~~))))))))))))''''''''''''}}}}}}}}}}}}",
+"++++++++++++222222222222xxxxxxxxxxxxNNNNNNNNNNNNEEEEEEEEEEEE))))))))))))''''''''''''}}}}}}}}}}}}",
+"++++++++++++222222222222xxxxxxxxxxxxNNNNNNNNNNNNEEEEEEEEEEEE))))))))))))''''''''''''}}}}}}}}}}}}",
+"++++++++++++222222222222xxxxxxxxxxxxNNNNNNNNNNNNEEEEEEEEEEEE))))))))))))''''''''''''}}}}}}}}}}}}",
+"++++++++++++222222222222xxxxxxxxxxxxNNNNNNNNNNNNEEEEEEEEEEEE))))))))))))''''''''''''}}}}}}}}}}}}",
+"++++++++++++222222222222xxxxxxxxxxxxNNNNNNNNNNNNEEEEEEEEEEEE))))))))))))''''''''''''}}}}}}}}}}}}",
+"++++++++++++222222222222xxxxxxxxxxxxNNNNNNNNNNNNEEEEEEEEEEEE))))))))))))''''''''''''}}}}}}}}}}}}",
+"++++++++++++222222222222xxxxxxxxxxxxNNNNNNNNNNNNEEEEEEEEEEEE))))))))))))''''''''''''}}}}}}}}}}}}",
+"++++++++++++222222222222xxxxxxxxxxxxNNNNNNNNNNNNEEEEEEEEEEEE))))))))))))''''''''''''}}}}}}}}}}}}",
+"++++++++++++222222222222xxxxxxxxxxxxNNNNNNNNNNNNEEEEEEEEEEEE))))))))))))''''''''''''}}}}}}}}}}}}",
+"++++++++++++222222222222xxxxxxxxxxxxNNNNNNNNNNNNEEEEEEEEEEEE))))))))))))''''''''''''}}}}}}}}}}}}",
+"++++++++++++222222222222xxxxxxxxxxxxNNNNNNNNNNNNEEEEEEEEEEEE))))))))))))''''''''''''}}}}}}}}}}}}",
+"++++++++++++222222222222xxxxxxxxxxxxNNNNNNNNNNNNEEEEEEEEEEEE))))))))))))''''''''''''}}}}}}}}}}}}",
+"$$$$$$$$$$$$000000000000GGGGGGGGGGGGnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"$$$$$$$$$$$$000000000000GGGGGGGGGGGGnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"$$$$$$$$$$$$000000000000GGGGGGGGGGGGnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"$$$$$$$$$$$$000000000000GGGGGGGGGGGGnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"$$$$$$$$$$$$000000000000GGGGGGGGGGGGnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"$$$$$$$$$$$$000000000000GGGGGGGGGGGGnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"$$$$$$$$$$$$000000000000GGGGGGGGGGGGnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"$$$$$$$$$$$$000000000000GGGGGGGGGGGGnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"$$$$$$$$$$$$000000000000GGGGGGGGGGGGnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"$$$$$$$$$$$$000000000000GGGGGGGGGGGGnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"$$$$$$$$$$$$000000000000GGGGGGGGGGGGnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"$$$$$$$$$$$$000000000000GGGGGGGGGGGGnnnnnnnnnnnnLLLLLLLLLLLL))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ooooooooooooffffffffffffccccccccccccbbbbbbbbbbbbRRRRRRRRRRRR____________''''''''''''{{{{{{{{{{{{",
+"ooooooooooooffffffffffffccccccccccccbbbbbbbbbbbbRRRRRRRRRRRR____________''''''''''''{{{{{{{{{{{{",
+"ooooooooooooffffffffffffccccccccccccbbbbbbbbbbbbRRRRRRRRRRRR____________''''''''''''{{{{{{{{{{{{",
+"ooooooooooooffffffffffffccccccccccccbbbbbbbbbbbbRRRRRRRRRRRR____________''''''''''''{{{{{{{{{{{{",
+"ooooooooooooffffffffffffccccccccccccbbbbbbbbbbbbRRRRRRRRRRRR____________''''''''''''{{{{{{{{{{{{",
+"ooooooooooooffffffffffffccccccccccccbbbbbbbbbbbbRRRRRRRRRRRR____________''''''''''''{{{{{{{{{{{{",
+"ooooooooooooffffffffffffccccccccccccbbbbbbbbbbbbRRRRRRRRRRRR____________''''''''''''{{{{{{{{{{{{",
+"ooooooooooooffffffffffffccccccccccccbbbbbbbbbbbbRRRRRRRRRRRR____________''''''''''''{{{{{{{{{{{{",
+"ooooooooooooffffffffffffccccccccccccbbbbbbbbbbbbRRRRRRRRRRRR____________''''''''''''{{{{{{{{{{{{",
+"ooooooooooooffffffffffffccccccccccccbbbbbbbbbbbbRRRRRRRRRRRR____________''''''''''''{{{{{{{{{{{{",
+"ooooooooooooffffffffffffccccccccccccbbbbbbbbbbbbRRRRRRRRRRRR____________''''''''''''{{{{{{{{{{{{",
+"ooooooooooooffffffffffffccccccccccccbbbbbbbbbbbbRRRRRRRRRRRR____________''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@111111111111777777777777JJJJJJJJJJJJPPPPPPPPPPPP((((((((((((''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@111111111111777777777777JJJJJJJJJJJJPPPPPPPPPPPP((((((((((((''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@111111111111777777777777JJJJJJJJJJJJPPPPPPPPPPPP((((((((((((''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@111111111111777777777777JJJJJJJJJJJJPPPPPPPPPPPP((((((((((((''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@111111111111777777777777JJJJJJJJJJJJPPPPPPPPPPPP((((((((((((''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@111111111111777777777777JJJJJJJJJJJJPPPPPPPPPPPP((((((((((((''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@111111111111777777777777JJJJJJJJJJJJPPPPPPPPPPPP((((((((((((''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@111111111111777777777777JJJJJJJJJJJJPPPPPPPPPPPP((((((((((((''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@111111111111777777777777JJJJJJJJJJJJPPPPPPPPPPPP((((((((((((''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@111111111111777777777777JJJJJJJJJJJJPPPPPPPPPPPP((((((((((((''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@111111111111777777777777JJJJJJJJJJJJPPPPPPPPPPPP((((((((((((''''''''''''{{{{{{{{{{{{",
+"@@@@@@@@@@@@111111111111777777777777JJJJJJJJJJJJPPPPPPPPPPPP((((((((((((''''''''''''{{{{{{{{{{{{",
+" iiiiiiiiiiiiGGGGGGGGGGGGVVVVVVVVVVVV~~~~~~~~~~~~____________''''''''''''}}}}}}}}}}}}",
+" iiiiiiiiiiiiGGGGGGGGGGGGVVVVVVVVVVVV~~~~~~~~~~~~____________''''''''''''}}}}}}}}}}}}",
+" iiiiiiiiiiiiGGGGGGGGGGGGVVVVVVVVVVVV~~~~~~~~~~~~____________''''''''''''}}}}}}}}}}}}",
+" iiiiiiiiiiiiGGGGGGGGGGGGVVVVVVVVVVVV~~~~~~~~~~~~____________''''''''''''}}}}}}}}}}}}",
+" iiiiiiiiiiiiGGGGGGGGGGGGVVVVVVVVVVVV~~~~~~~~~~~~____________''''''''''''}}}}}}}}}}}}",
+" iiiiiiiiiiiiGGGGGGGGGGGGVVVVVVVVVVVV~~~~~~~~~~~~____________''''''''''''}}}}}}}}}}}}",
+" iiiiiiiiiiiiGGGGGGGGGGGGVVVVVVVVVVVV~~~~~~~~~~~~____________''''''''''''}}}}}}}}}}}}",
+" iiiiiiiiiiiiGGGGGGGGGGGGVVVVVVVVVVVV~~~~~~~~~~~~____________''''''''''''}}}}}}}}}}}}",
+" iiiiiiiiiiiiGGGGGGGGGGGGVVVVVVVVVVVV~~~~~~~~~~~~____________''''''''''''}}}}}}}}}}}}",
+" iiiiiiiiiiiiGGGGGGGGGGGGVVVVVVVVVVVV~~~~~~~~~~~~____________''''''''''''}}}}}}}}}}}}",
+" iiiiiiiiiiiiGGGGGGGGGGGGVVVVVVVVVVVV~~~~~~~~~~~~____________''''''''''''}}}}}}}}}}}}",
+" iiiiiiiiiiiiGGGGGGGGGGGGVVVVVVVVVVVV~~~~~~~~~~~~____________''''''''''''}}}}}}}}}}}}",
+"------------222222222222KKKKKKKKKKKKIIIIIIIIIIIIQQQQQQQQQQQQ____________''''''''''''{{{{{{{{{{{{",
+"------------222222222222KKKKKKKKKKKKIIIIIIIIIIIIQQQQQQQQQQQQ____________''''''''''''{{{{{{{{{{{{",
+"------------222222222222KKKKKKKKKKKKIIIIIIIIIIIIQQQQQQQQQQQQ____________''''''''''''{{{{{{{{{{{{",
+"------------222222222222KKKKKKKKKKKKIIIIIIIIIIIIQQQQQQQQQQQQ____________''''''''''''{{{{{{{{{{{{",
+"------------222222222222KKKKKKKKKKKKIIIIIIIIIIIIQQQQQQQQQQQQ____________''''''''''''{{{{{{{{{{{{",
+"------------222222222222KKKKKKKKKKKKIIIIIIIIIIIIQQQQQQQQQQQQ____________''''''''''''{{{{{{{{{{{{",
+"------------222222222222KKKKKKKKKKKKIIIIIIIIIIIIQQQQQQQQQQQQ____________''''''''''''{{{{{{{{{{{{",
+"------------222222222222KKKKKKKKKKKKIIIIIIIIIIIIQQQQQQQQQQQQ____________''''''''''''{{{{{{{{{{{{",
+"------------222222222222KKKKKKKKKKKKIIIIIIIIIIIIQQQQQQQQQQQQ____________''''''''''''{{{{{{{{{{{{",
+"------------222222222222KKKKKKKKKKKKIIIIIIIIIIIIQQQQQQQQQQQQ____________''''''''''''{{{{{{{{{{{{",
+"------------222222222222KKKKKKKKKKKKIIIIIIIIIIIIQQQQQQQQQQQQ____________''''''''''''{{{{{{{{{{{{",
+"------------222222222222KKKKKKKKKKKKIIIIIIIIIIIIQQQQQQQQQQQQ____________''''''''''''{{{{{{{{{{{{",
+"&&&&&&&&&&&&222222222222333333333333WWWWWWWWWWWW~~~~~~~~~~~~____________''''''''''''{{{{{{{{{{{{",
+"&&&&&&&&&&&&222222222222333333333333WWWWWWWWWWWW~~~~~~~~~~~~____________''''''''''''{{{{{{{{{{{{",
+"&&&&&&&&&&&&222222222222333333333333WWWWWWWWWWWW~~~~~~~~~~~~____________''''''''''''{{{{{{{{{{{{",
+"&&&&&&&&&&&&222222222222333333333333WWWWWWWWWWWW~~~~~~~~~~~~____________''''''''''''{{{{{{{{{{{{",
+"&&&&&&&&&&&&222222222222333333333333WWWWWWWWWWWW~~~~~~~~~~~~____________''''''''''''{{{{{{{{{{{{",
+"&&&&&&&&&&&&222222222222333333333333WWWWWWWWWWWW~~~~~~~~~~~~____________''''''''''''{{{{{{{{{{{{",
+"&&&&&&&&&&&&222222222222333333333333WWWWWWWWWWWW~~~~~~~~~~~~____________''''''''''''{{{{{{{{{{{{",
+"&&&&&&&&&&&&222222222222333333333333WWWWWWWWWWWW~~~~~~~~~~~~____________''''''''''''{{{{{{{{{{{{",
+"&&&&&&&&&&&&222222222222333333333333WWWWWWWWWWWW~~~~~~~~~~~~____________''''''''''''{{{{{{{{{{{{",
+"&&&&&&&&&&&&222222222222333333333333WWWWWWWWWWWW~~~~~~~~~~~~____________''''''''''''{{{{{{{{{{{{",
+"&&&&&&&&&&&&222222222222333333333333WWWWWWWWWWWW~~~~~~~~~~~~____________''''''''''''{{{{{{{{{{{{",
+"&&&&&&&&&&&&222222222222333333333333WWWWWWWWWWWW~~~~~~~~~~~~____________''''''''''''{{{{{{{{{{{{",
+"wwwwwwwwwwww============555555555555EEEEEEEEEEEEEEEEEEEEEEEE____________''''''''''''||||||||||||",
+"wwwwwwwwwwww============555555555555EEEEEEEEEEEEEEEEEEEEEEEE____________''''''''''''||||||||||||",
+"wwwwwwwwwwww============555555555555EEEEEEEEEEEEEEEEEEEEEEEE____________''''''''''''||||||||||||",
+"wwwwwwwwwwww============555555555555EEEEEEEEEEEEEEEEEEEEEEEE____________''''''''''''||||||||||||",
+"wwwwwwwwwwww============555555555555EEEEEEEEEEEEEEEEEEEEEEEE____________''''''''''''||||||||||||",
+"wwwwwwwwwwww============555555555555EEEEEEEEEEEEEEEEEEEEEEEE____________''''''''''''||||||||||||",
+"wwwwwwwwwwww============555555555555EEEEEEEEEEEEEEEEEEEEEEEE____________''''''''''''||||||||||||",
+"wwwwwwwwwwww============555555555555EEEEEEEEEEEEEEEEEEEEEEEE____________''''''''''''||||||||||||",
+"wwwwwwwwwwww============555555555555EEEEEEEEEEEEEEEEEEEEEEEE____________''''''''''''||||||||||||",
+"wwwwwwwwwwww============555555555555EEEEEEEEEEEEEEEEEEEEEEEE____________''''''''''''||||||||||||",
+"wwwwwwwwwwww============555555555555EEEEEEEEEEEEEEEEEEEEEEEE____________''''''''''''||||||||||||",
+"wwwwwwwwwwww============555555555555EEEEEEEEEEEEEEEEEEEEEEEE____________''''''''''''||||||||||||",
+"ffffffffffff>>>>>>>>>>>>rrrrrrrrrrrrnnnnnnnnnnnn~~~~~~~~~~~~____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff>>>>>>>>>>>>rrrrrrrrrrrrnnnnnnnnnnnn~~~~~~~~~~~~____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff>>>>>>>>>>>>rrrrrrrrrrrrnnnnnnnnnnnn~~~~~~~~~~~~____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff>>>>>>>>>>>>rrrrrrrrrrrrnnnnnnnnnnnn~~~~~~~~~~~~____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff>>>>>>>>>>>>rrrrrrrrrrrrnnnnnnnnnnnn~~~~~~~~~~~~____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff>>>>>>>>>>>>rrrrrrrrrrrrnnnnnnnnnnnn~~~~~~~~~~~~____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff>>>>>>>>>>>>rrrrrrrrrrrrnnnnnnnnnnnn~~~~~~~~~~~~____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff>>>>>>>>>>>>rrrrrrrrrrrrnnnnnnnnnnnn~~~~~~~~~~~~____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff>>>>>>>>>>>>rrrrrrrrrrrrnnnnnnnnnnnn~~~~~~~~~~~~____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff>>>>>>>>>>>>rrrrrrrrrrrrnnnnnnnnnnnn~~~~~~~~~~~~____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff>>>>>>>>>>>>rrrrrrrrrrrrnnnnnnnnnnnn~~~~~~~~~~~~____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"ffffffffffff>>>>>>>>>>>>rrrrrrrrrrrrnnnnnnnnnnnn~~~~~~~~~~~~____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"############$$$$$$$$$$$$CCCCCCCCCCCCEEEEEEEEEEEE(((((((((((())))))))))))''''''''''''}}}}}}}}}}}}",
+"############$$$$$$$$$$$$CCCCCCCCCCCCEEEEEEEEEEEE(((((((((((())))))))))))''''''''''''}}}}}}}}}}}}",
+"############$$$$$$$$$$$$CCCCCCCCCCCCEEEEEEEEEEEE(((((((((((())))))))))))''''''''''''}}}}}}}}}}}}",
+"############$$$$$$$$$$$$CCCCCCCCCCCCEEEEEEEEEEEE(((((((((((())))))))))))''''''''''''}}}}}}}}}}}}",
+"############$$$$$$$$$$$$CCCCCCCCCCCCEEEEEEEEEEEE(((((((((((())))))))))))''''''''''''}}}}}}}}}}}}",
+"############$$$$$$$$$$$$CCCCCCCCCCCCEEEEEEEEEEEE(((((((((((())))))))))))''''''''''''}}}}}}}}}}}}",
+"############$$$$$$$$$$$$CCCCCCCCCCCCEEEEEEEEEEEE(((((((((((())))))))))))''''''''''''}}}}}}}}}}}}",
+"############$$$$$$$$$$$$CCCCCCCCCCCCEEEEEEEEEEEE(((((((((((())))))))))))''''''''''''}}}}}}}}}}}}",
+"############$$$$$$$$$$$$CCCCCCCCCCCCEEEEEEEEEEEE(((((((((((())))))))))))''''''''''''}}}}}}}}}}}}",
+"############$$$$$$$$$$$$CCCCCCCCCCCCEEEEEEEEEEEE(((((((((((())))))))))))''''''''''''}}}}}}}}}}}}",
+"############$$$$$$$$$$$$CCCCCCCCCCCCEEEEEEEEEEEE(((((((((((())))))))))))''''''''''''}}}}}}}}}}}}",
+"############$$$$$$$$$$$$CCCCCCCCCCCCEEEEEEEEEEEE(((((((((((())))))))))))''''''''''''}}}}}}}}}}}}",
+",,,,,,,,,,,,666666666666ddddddddddddHHHHHHHHHHHHEEEEEEEEEEEE____________]]]]]]]]]]]]{{{{{{{{{{{{",
+",,,,,,,,,,,,666666666666ddddddddddddHHHHHHHHHHHHEEEEEEEEEEEE____________]]]]]]]]]]]]{{{{{{{{{{{{",
+",,,,,,,,,,,,666666666666ddddddddddddHHHHHHHHHHHHEEEEEEEEEEEE____________]]]]]]]]]]]]{{{{{{{{{{{{",
+",,,,,,,,,,,,666666666666ddddddddddddHHHHHHHHHHHHEEEEEEEEEEEE____________]]]]]]]]]]]]{{{{{{{{{{{{",
+",,,,,,,,,,,,666666666666ddddddddddddHHHHHHHHHHHHEEEEEEEEEEEE____________]]]]]]]]]]]]{{{{{{{{{{{{",
+",,,,,,,,,,,,666666666666ddddddddddddHHHHHHHHHHHHEEEEEEEEEEEE____________]]]]]]]]]]]]{{{{{{{{{{{{",
+",,,,,,,,,,,,666666666666ddddddddddddHHHHHHHHHHHHEEEEEEEEEEEE____________]]]]]]]]]]]]{{{{{{{{{{{{",
+",,,,,,,,,,,,666666666666ddddddddddddHHHHHHHHHHHHEEEEEEEEEEEE____________]]]]]]]]]]]]{{{{{{{{{{{{",
+",,,,,,,,,,,,666666666666ddddddddddddHHHHHHHHHHHHEEEEEEEEEEEE____________]]]]]]]]]]]]{{{{{{{{{{{{",
+",,,,,,,,,,,,666666666666ddddddddddddHHHHHHHHHHHHEEEEEEEEEEEE____________]]]]]]]]]]]]{{{{{{{{{{{{",
+",,,,,,,,,,,,666666666666ddddddddddddHHHHHHHHHHHHEEEEEEEEEEEE____________]]]]]]]]]]]]{{{{{{{{{{{{",
+",,,,,,,,,,,,666666666666ddddddddddddHHHHHHHHHHHHEEEEEEEEEEEE____________]]]]]]]]]]]]{{{{{{{{{{{{",
+"xxxxxxxxxxxxjjjjjjjjjjjjccccccccccccSSSSSSSSSSSSPPPPPPPPPPPP))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"xxxxxxxxxxxxjjjjjjjjjjjjccccccccccccSSSSSSSSSSSSPPPPPPPPPPPP))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"xxxxxxxxxxxxjjjjjjjjjjjjccccccccccccSSSSSSSSSSSSPPPPPPPPPPPP))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"xxxxxxxxxxxxjjjjjjjjjjjjccccccccccccSSSSSSSSSSSSPPPPPPPPPPPP))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"xxxxxxxxxxxxjjjjjjjjjjjjccccccccccccSSSSSSSSSSSSPPPPPPPPPPPP))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"xxxxxxxxxxxxjjjjjjjjjjjjccccccccccccSSSSSSSSSSSSPPPPPPPPPPPP))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"xxxxxxxxxxxxjjjjjjjjjjjjccccccccccccSSSSSSSSSSSSPPPPPPPPPPPP))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"xxxxxxxxxxxxjjjjjjjjjjjjccccccccccccSSSSSSSSSSSSPPPPPPPPPPPP))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"xxxxxxxxxxxxjjjjjjjjjjjjccccccccccccSSSSSSSSSSSSPPPPPPPPPPPP))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"xxxxxxxxxxxxjjjjjjjjjjjjccccccccccccSSSSSSSSSSSSPPPPPPPPPPPP))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"xxxxxxxxxxxxjjjjjjjjjjjjccccccccccccSSSSSSSSSSSSPPPPPPPPPPPP))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"xxxxxxxxxxxxjjjjjjjjjjjjccccccccccccSSSSSSSSSSSSPPPPPPPPPPPP))))))))))))]]]]]]]]]]]]}}}}}}}}}}}}",
+"000000000000%%%%%%%%%%%%ttttttttttttmmmmmmmmmmmm////////////````````````''''''''''''{{{{{{{{{{{{",
+"000000000000%%%%%%%%%%%%ttttttttttttmmmmmmmmmmmm////////////````````````''''''''''''{{{{{{{{{{{{",
+"000000000000%%%%%%%%%%%%ttttttttttttmmmmmmmmmmmm////////////````````````''''''''''''{{{{{{{{{{{{",
+"000000000000%%%%%%%%%%%%ttttttttttttmmmmmmmmmmmm////////////````````````''''''''''''{{{{{{{{{{{{",
+"000000000000%%%%%%%%%%%%ttttttttttttmmmmmmmmmmmm////////////````````````''''''''''''{{{{{{{{{{{{",
+"000000000000%%%%%%%%%%%%ttttttttttttmmmmmmmmmmmm////////////````````````''''''''''''{{{{{{{{{{{{",
+"000000000000%%%%%%%%%%%%ttttttttttttmmmmmmmmmmmm////////////````````````''''''''''''{{{{{{{{{{{{",
+"000000000000%%%%%%%%%%%%ttttttttttttmmmmmmmmmmmm////////////````````````''''''''''''{{{{{{{{{{{{",
+"000000000000%%%%%%%%%%%%ttttttttttttmmmmmmmmmmmm////////////````````````''''''''''''{{{{{{{{{{{{",
+"000000000000%%%%%%%%%%%%ttttttttttttmmmmmmmmmmmm////////////````````````''''''''''''{{{{{{{{{{{{",
+"000000000000%%%%%%%%%%%%ttttttttttttmmmmmmmmmmmm////////////````````````''''''''''''{{{{{{{{{{{{",
+"000000000000%%%%%%%%%%%%ttttttttttttmmmmmmmmmmmm////////////````````````''''''''''''{{{{{{{{{{{{",
+">>>>>>>>>>>>uuuuuuuuuuuuZZZZZZZZZZZZmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+">>>>>>>>>>>>uuuuuuuuuuuuZZZZZZZZZZZZmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+">>>>>>>>>>>>uuuuuuuuuuuuZZZZZZZZZZZZmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+">>>>>>>>>>>>uuuuuuuuuuuuZZZZZZZZZZZZmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+">>>>>>>>>>>>uuuuuuuuuuuuZZZZZZZZZZZZmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+">>>>>>>>>>>>uuuuuuuuuuuuZZZZZZZZZZZZmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+">>>>>>>>>>>>uuuuuuuuuuuuZZZZZZZZZZZZmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+">>>>>>>>>>>>uuuuuuuuuuuuZZZZZZZZZZZZmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+">>>>>>>>>>>>uuuuuuuuuuuuZZZZZZZZZZZZmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+">>>>>>>>>>>>uuuuuuuuuuuuZZZZZZZZZZZZmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+">>>>>>>>>>>>uuuuuuuuuuuuZZZZZZZZZZZZmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+">>>>>>>>>>>>uuuuuuuuuuuuZZZZZZZZZZZZmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''{{{{{{{{{{{{",
+"OOOOOOOOOOOO444444444444888888888888KKKKKKKKKKKKTTTTTTTTTTTT))))))))))))''''''''''''{{{{{{{{{{{{",
+"OOOOOOOOOOOO444444444444888888888888KKKKKKKKKKKKTTTTTTTTTTTT))))))))))))''''''''''''{{{{{{{{{{{{",
+"OOOOOOOOOOOO444444444444888888888888KKKKKKKKKKKKTTTTTTTTTTTT))))))))))))''''''''''''{{{{{{{{{{{{",
+"OOOOOOOOOOOO444444444444888888888888KKKKKKKKKKKKTTTTTTTTTTTT))))))))))))''''''''''''{{{{{{{{{{{{",
+"OOOOOOOOOOOO444444444444888888888888KKKKKKKKKKKKTTTTTTTTTTTT))))))))))))''''''''''''{{{{{{{{{{{{",
+"OOOOOOOOOOOO444444444444888888888888KKKKKKKKKKKKTTTTTTTTTTTT))))))))))))''''''''''''{{{{{{{{{{{{",
+"OOOOOOOOOOOO444444444444888888888888KKKKKKKKKKKKTTTTTTTTTTTT))))))))))))''''''''''''{{{{{{{{{{{{",
+"OOOOOOOOOOOO444444444444888888888888KKKKKKKKKKKKTTTTTTTTTTTT))))))))))))''''''''''''{{{{{{{{{{{{",
+"OOOOOOOOOOOO444444444444888888888888KKKKKKKKKKKKTTTTTTTTTTTT))))))))))))''''''''''''{{{{{{{{{{{{",
+"OOOOOOOOOOOO444444444444888888888888KKKKKKKKKKKKTTTTTTTTTTTT))))))))))))''''''''''''{{{{{{{{{{{{",
+"OOOOOOOOOOOO444444444444888888888888KKKKKKKKKKKKTTTTTTTTTTTT))))))))))))''''''''''''{{{{{{{{{{{{",
+"OOOOOOOOOOOO444444444444888888888888KKKKKKKKKKKKTTTTTTTTTTTT))))))))))))''''''''''''{{{{{{{{{{{{",
+"++++++++++++666666666666CCCCCCCCCCCCQQQQQQQQQQQQYYYYYYYYYYYY____________''''''''''''}}}}}}}}}}}}",
+"++++++++++++666666666666CCCCCCCCCCCCQQQQQQQQQQQQYYYYYYYYYYYY____________''''''''''''}}}}}}}}}}}}",
+"++++++++++++666666666666CCCCCCCCCCCCQQQQQQQQQQQQYYYYYYYYYYYY____________''''''''''''}}}}}}}}}}}}",
+"++++++++++++666666666666CCCCCCCCCCCCQQQQQQQQQQQQYYYYYYYYYYYY____________''''''''''''}}}}}}}}}}}}",
+"++++++++++++666666666666CCCCCCCCCCCCQQQQQQQQQQQQYYYYYYYYYYYY____________''''''''''''}}}}}}}}}}}}",
+"++++++++++++666666666666CCCCCCCCCCCCQQQQQQQQQQQQYYYYYYYYYYYY____________''''''''''''}}}}}}}}}}}}",
+"++++++++++++666666666666CCCCCCCCCCCCQQQQQQQQQQQQYYYYYYYYYYYY____________''''''''''''}}}}}}}}}}}}",
+"++++++++++++666666666666CCCCCCCCCCCCQQQQQQQQQQQQYYYYYYYYYYYY____________''''''''''''}}}}}}}}}}}}",
+"++++++++++++666666666666CCCCCCCCCCCCQQQQQQQQQQQQYYYYYYYYYYYY____________''''''''''''}}}}}}}}}}}}",
+"++++++++++++666666666666CCCCCCCCCCCCQQQQQQQQQQQQYYYYYYYYYYYY____________''''''''''''}}}}}}}}}}}}",
+"++++++++++++666666666666CCCCCCCCCCCCQQQQQQQQQQQQYYYYYYYYYYYY____________''''''''''''}}}}}}}}}}}}",
+"++++++++++++666666666666CCCCCCCCCCCCQQQQQQQQQQQQYYYYYYYYYYYY____________''''''''''''}}}}}}}}}}}}",
+"oooooooooooo,,,,,,,,,,,,DDDDDDDDDDDDmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''}}}}}}}}}}}}",
+"oooooooooooo,,,,,,,,,,,,DDDDDDDDDDDDmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''}}}}}}}}}}}}",
+"oooooooooooo,,,,,,,,,,,,DDDDDDDDDDDDmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''}}}}}}}}}}}}",
+"oooooooooooo,,,,,,,,,,,,DDDDDDDDDDDDmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''}}}}}}}}}}}}",
+"oooooooooooo,,,,,,,,,,,,DDDDDDDDDDDDmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''}}}}}}}}}}}}",
+"oooooooooooo,,,,,,,,,,,,DDDDDDDDDDDDmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''}}}}}}}}}}}}",
+"oooooooooooo,,,,,,,,,,,,DDDDDDDDDDDDmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''}}}}}}}}}}}}",
+"oooooooooooo,,,,,,,,,,,,DDDDDDDDDDDDmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''}}}}}}}}}}}}",
+"oooooooooooo,,,,,,,,,,,,DDDDDDDDDDDDmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''}}}}}}}}}}}}",
+"oooooooooooo,,,,,,,,,,,,DDDDDDDDDDDDmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''}}}}}}}}}}}}",
+"oooooooooooo,,,,,,,,,,,,DDDDDDDDDDDDmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''}}}}}}}}}}}}",
+"oooooooooooo,,,,,,,,,,,,DDDDDDDDDDDDmmmmmmmmmmmmLLLLLLLLLLLL))))))))))))''''''''''''}}}}}}}}}}}}",
+"::::::::::::eeeeeeeeeeee444444444444mmmmmmmmmmmm^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"::::::::::::eeeeeeeeeeee444444444444mmmmmmmmmmmm^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"::::::::::::eeeeeeeeeeee444444444444mmmmmmmmmmmm^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"::::::::::::eeeeeeeeeeee444444444444mmmmmmmmmmmm^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"::::::::::::eeeeeeeeeeee444444444444mmmmmmmmmmmm^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"::::::::::::eeeeeeeeeeee444444444444mmmmmmmmmmmm^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"::::::::::::eeeeeeeeeeee444444444444mmmmmmmmmmmm^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"::::::::::::eeeeeeeeeeee444444444444mmmmmmmmmmmm^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"::::::::::::eeeeeeeeeeee444444444444mmmmmmmmmmmm^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"::::::::::::eeeeeeeeeeee444444444444mmmmmmmmmmmm^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"::::::::::::eeeeeeeeeeee444444444444mmmmmmmmmmmm^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"::::::::::::eeeeeeeeeeee444444444444mmmmmmmmmmmm^^^^^^^^^^^^____________''''''''''''{{{{{{{{{{{{",
+"............666666666666ZZZZZZZZZZZZbbbbbbbbbbbbPPPPPPPPPPPP````````````''''''''''''{{{{{{{{{{{{",
+"............666666666666ZZZZZZZZZZZZbbbbbbbbbbbbPPPPPPPPPPPP````````````''''''''''''{{{{{{{{{{{{",
+"............666666666666ZZZZZZZZZZZZbbbbbbbbbbbbPPPPPPPPPPPP````````````''''''''''''{{{{{{{{{{{{",
+"............666666666666ZZZZZZZZZZZZbbbbbbbbbbbbPPPPPPPPPPPP````````````''''''''''''{{{{{{{{{{{{",
+"............666666666666ZZZZZZZZZZZZbbbbbbbbbbbbPPPPPPPPPPPP````````````''''''''''''{{{{{{{{{{{{",
+"............666666666666ZZZZZZZZZZZZbbbbbbbbbbbbPPPPPPPPPPPP````````````''''''''''''{{{{{{{{{{{{",
+"............666666666666ZZZZZZZZZZZZbbbbbbbbbbbbPPPPPPPPPPPP````````````''''''''''''{{{{{{{{{{{{",
+"............666666666666ZZZZZZZZZZZZbbbbbbbbbbbbPPPPPPPPPPPP````````````''''''''''''{{{{{{{{{{{{",
+"............666666666666ZZZZZZZZZZZZbbbbbbbbbbbbPPPPPPPPPPPP````````````''''''''''''{{{{{{{{{{{{",
+"............666666666666ZZZZZZZZZZZZbbbbbbbbbbbbPPPPPPPPPPPP````````````''''''''''''{{{{{{{{{{{{",
+"............666666666666ZZZZZZZZZZZZbbbbbbbbbbbbPPPPPPPPPPPP````````````''''''''''''{{{{{{{{{{{{",
+"............666666666666ZZZZZZZZZZZZbbbbbbbbbbbbPPPPPPPPPPPP````````````''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaaiiiiiiiiiiiizzzzzzzzzzzzJJJJJJJJJJJJPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaaiiiiiiiiiiiizzzzzzzzzzzzJJJJJJJJJJJJPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaaiiiiiiiiiiiizzzzzzzzzzzzJJJJJJJJJJJJPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaaiiiiiiiiiiiizzzzzzzzzzzzJJJJJJJJJJJJPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaaiiiiiiiiiiiizzzzzzzzzzzzJJJJJJJJJJJJPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaaiiiiiiiiiiiizzzzzzzzzzzzJJJJJJJJJJJJPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaaiiiiiiiiiiiizzzzzzzzzzzzJJJJJJJJJJJJPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaaiiiiiiiiiiiizzzzzzzzzzzzJJJJJJJJJJJJPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaaiiiiiiiiiiiizzzzzzzzzzzzJJJJJJJJJJJJPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaaiiiiiiiiiiiizzzzzzzzzzzzJJJJJJJJJJJJPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaaiiiiiiiiiiiizzzzzzzzzzzzJJJJJJJJJJJJPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"aaaaaaaaaaaaiiiiiiiiiiiizzzzzzzzzzzzJJJJJJJJJJJJPPPPPPPPPPPP))))))))))))''''''''''''{{{{{{{{{{{{",
+"............eeeeeeeeeeee444444444444IIIIIIIIIIIIWWWWWWWWWWWW))))))))))))''''''''''''}}}}}}}}}}}}",
+"............eeeeeeeeeeee444444444444IIIIIIIIIIIIWWWWWWWWWWWW))))))))))))''''''''''''}}}}}}}}}}}}",
+"............eeeeeeeeeeee444444444444IIIIIIIIIIIIWWWWWWWWWWWW))))))))))))''''''''''''}}}}}}}}}}}}",
+"............eeeeeeeeeeee444444444444IIIIIIIIIIIIWWWWWWWWWWWW))))))))))))''''''''''''}}}}}}}}}}}}",
+"............eeeeeeeeeeee444444444444IIIIIIIIIIIIWWWWWWWWWWWW))))))))))))''''''''''''}}}}}}}}}}}}",
+"............eeeeeeeeeeee444444444444IIIIIIIIIIIIWWWWWWWWWWWW))))))))))))''''''''''''}}}}}}}}}}}}",
+"............eeeeeeeeeeee444444444444IIIIIIIIIIIIWWWWWWWWWWWW))))))))))))''''''''''''}}}}}}}}}}}}",
+"............eeeeeeeeeeee444444444444IIIIIIIIIIIIWWWWWWWWWWWW))))))))))))''''''''''''}}}}}}}}}}}}",
+"............eeeeeeeeeeee444444444444IIIIIIIIIIIIWWWWWWWWWWWW))))))))))))''''''''''''}}}}}}}}}}}}",
+"............eeeeeeeeeeee444444444444IIIIIIIIIIIIWWWWWWWWWWWW))))))))))))''''''''''''}}}}}}}}}}}}",
+"............eeeeeeeeeeee444444444444IIIIIIIIIIIIWWWWWWWWWWWW))))))))))))''''''''''''}}}}}}}}}}}}",
+"............eeeeeeeeeeee444444444444IIIIIIIIIIIIWWWWWWWWWWWW))))))))))))''''''''''''}}}}}}}}}}}}",
+"llllllllllll444444444444HHHHHHHHHHHHvvvvvvvvvvvv((((((((((((____________]]]]]]]]]]]]}}}}}}}}}}}}",
+"llllllllllll444444444444HHHHHHHHHHHHvvvvvvvvvvvv((((((((((((____________]]]]]]]]]]]]}}}}}}}}}}}}",
+"llllllllllll444444444444HHHHHHHHHHHHvvvvvvvvvvvv((((((((((((____________]]]]]]]]]]]]}}}}}}}}}}}}",
+"llllllllllll444444444444HHHHHHHHHHHHvvvvvvvvvvvv((((((((((((____________]]]]]]]]]]]]}}}}}}}}}}}}",
+"llllllllllll444444444444HHHHHHHHHHHHvvvvvvvvvvvv((((((((((((____________]]]]]]]]]]]]}}}}}}}}}}}}",
+"llllllllllll444444444444HHHHHHHHHHHHvvvvvvvvvvvv((((((((((((____________]]]]]]]]]]]]}}}}}}}}}}}}",
+"llllllllllll444444444444HHHHHHHHHHHHvvvvvvvvvvvv((((((((((((____________]]]]]]]]]]]]}}}}}}}}}}}}",
+"llllllllllll444444444444HHHHHHHHHHHHvvvvvvvvvvvv((((((((((((____________]]]]]]]]]]]]}}}}}}}}}}}}",
+"llllllllllll444444444444HHHHHHHHHHHHvvvvvvvvvvvv((((((((((((____________]]]]]]]]]]]]}}}}}}}}}}}}",
+"llllllllllll444444444444HHHHHHHHHHHHvvvvvvvvvvvv((((((((((((____________]]]]]]]]]]]]}}}}}}}}}}}}",
+"llllllllllll444444444444HHHHHHHHHHHHvvvvvvvvvvvv((((((((((((____________]]]]]]]]]]]]}}}}}}}}}}}}",
+"llllllllllll444444444444HHHHHHHHHHHHvvvvvvvvvvvv((((((((((((____________]]]]]]]]]]]]}}}}}}}}}}}}",
+"qqqqqqqqqqqq111111111111ssssssssssssGGGGGGGGGGGGQQQQQQQQQQQQ____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"qqqqqqqqqqqq111111111111ssssssssssssGGGGGGGGGGGGQQQQQQQQQQQQ____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"qqqqqqqqqqqq111111111111ssssssssssssGGGGGGGGGGGGQQQQQQQQQQQQ____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"qqqqqqqqqqqq111111111111ssssssssssssGGGGGGGGGGGGQQQQQQQQQQQQ____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"qqqqqqqqqqqq111111111111ssssssssssssGGGGGGGGGGGGQQQQQQQQQQQQ____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"qqqqqqqqqqqq111111111111ssssssssssssGGGGGGGGGGGGQQQQQQQQQQQQ____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"qqqqqqqqqqqq111111111111ssssssssssssGGGGGGGGGGGGQQQQQQQQQQQQ____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"qqqqqqqqqqqq111111111111ssssssssssssGGGGGGGGGGGGQQQQQQQQQQQQ____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"qqqqqqqqqqqq111111111111ssssssssssssGGGGGGGGGGGGQQQQQQQQQQQQ____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"qqqqqqqqqqqq111111111111ssssssssssssGGGGGGGGGGGGQQQQQQQQQQQQ____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"qqqqqqqqqqqq111111111111ssssssssssssGGGGGGGGGGGGQQQQQQQQQQQQ____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"qqqqqqqqqqqq111111111111ssssssssssssGGGGGGGGGGGGQQQQQQQQQQQQ____________[[[[[[[[[[[[{{{{{{{{{{{{",
+"ppppppppppppkkkkkkkkkkkkttttttttttttSSSSSSSSSSSS!!!!!!!!!!!!))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ppppppppppppkkkkkkkkkkkkttttttttttttSSSSSSSSSSSS!!!!!!!!!!!!))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ppppppppppppkkkkkkkkkkkkttttttttttttSSSSSSSSSSSS!!!!!!!!!!!!))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ppppppppppppkkkkkkkkkkkkttttttttttttSSSSSSSSSSSS!!!!!!!!!!!!))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ppppppppppppkkkkkkkkkkkkttttttttttttSSSSSSSSSSSS!!!!!!!!!!!!))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ppppppppppppkkkkkkkkkkkkttttttttttttSSSSSSSSSSSS!!!!!!!!!!!!))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ppppppppppppkkkkkkkkkkkkttttttttttttSSSSSSSSSSSS!!!!!!!!!!!!))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ppppppppppppkkkkkkkkkkkkttttttttttttSSSSSSSSSSSS!!!!!!!!!!!!))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ppppppppppppkkkkkkkkkkkkttttttttttttSSSSSSSSSSSS!!!!!!!!!!!!))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ppppppppppppkkkkkkkkkkkkttttttttttttSSSSSSSSSSSS!!!!!!!!!!!!))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ppppppppppppkkkkkkkkkkkkttttttttttttSSSSSSSSSSSS!!!!!!!!!!!!))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ppppppppppppkkkkkkkkkkkkttttttttttttSSSSSSSSSSSS!!!!!!!!!!!!))))))))))))]]]]]]]]]]]]{{{{{{{{{{{{",
+"ppppppppppppzzzzzzzzzzzzddddddddddddFFFFFFFFFFFFLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"ppppppppppppzzzzzzzzzzzzddddddddddddFFFFFFFFFFFFLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"ppppppppppppzzzzzzzzzzzzddddddddddddFFFFFFFFFFFFLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"ppppppppppppzzzzzzzzzzzzddddddddddddFFFFFFFFFFFFLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"ppppppppppppzzzzzzzzzzzzddddddddddddFFFFFFFFFFFFLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"ppppppppppppzzzzzzzzzzzzddddddddddddFFFFFFFFFFFFLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"ppppppppppppzzzzzzzzzzzzddddddddddddFFFFFFFFFFFFLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"ppppppppppppzzzzzzzzzzzzddddddddddddFFFFFFFFFFFFLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"ppppppppppppzzzzzzzzzzzzddddddddddddFFFFFFFFFFFFLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"ppppppppppppzzzzzzzzzzzzddddddddddddFFFFFFFFFFFFLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"ppppppppppppzzzzzzzzzzzzddddddddddddFFFFFFFFFFFFLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"ppppppppppppzzzzzzzzzzzzddddddddddddFFFFFFFFFFFFLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"666666666666************777777777777MMMMMMMMMMMMLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"666666666666************777777777777MMMMMMMMMMMMLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"666666666666************777777777777MMMMMMMMMMMMLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"666666666666************777777777777MMMMMMMMMMMMLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"666666666666************777777777777MMMMMMMMMMMMLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"666666666666************777777777777MMMMMMMMMMMMLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"666666666666************777777777777MMMMMMMMMMMMLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"666666666666************777777777777MMMMMMMMMMMMLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"666666666666************777777777777MMMMMMMMMMMMLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"666666666666************777777777777MMMMMMMMMMMMLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"666666666666************777777777777MMMMMMMMMMMMLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{",
+"666666666666************777777777777MMMMMMMMMMMMLLLLLLLLLLLL````````````''''''''''''{{{{{{{{{{{{"
+};
diff --git a/src/xpm/addressbook16.xpm b/src/xpm/addressbook16.xpm
new file mode 100644
index 0000000000..e00944ef7a
--- /dev/null
+++ b/src/xpm/addressbook16.xpm
@@ -0,0 +1,278 @@
+/* XPM */
+static const char * addressbook16_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"16 16 256 2",
+" c #FFFFFF",
+". c #F7FFFF",
+"X c #F7F7FF",
+"o c #EFF7FF",
+"O c #E6EFF7",
+"+ c #E6E6F7",
+"@ c #CEE6F7",
+"# c #DEDEEF",
+"$ c #D6DEEF",
+"% c #D6DEE6",
+"& c #CEDEF7",
+"* c #CEDEEF",
+"= c #EFF708",
+"- c #C5DEF7",
+"; c #CED6EF",
+": c None",
+"> c #C5D6E6",
+", c #BDD6F7",
+"< c #BDD6EF",
+"1 c #D6CECE",
+"2 c #BDCEE6",
+"3 c #BDC5E6",
+"4 c #B5C5DE",
+"5 c #BDD631",
+"6 c #ADBDDE",
+"7 c #B5B5BD",
+"8 c #A5B5D6",
+"9 c #00FFFF",
+"0 c #9CB5CE",
+"q c #9CADD6",
+"w c #94A5D6",
+"e c #8CA5D6",
+"r c #8CA5CE",
+"t c #8CA5C5",
+"y c #849CC5",
+"u c #7B9CD6",
+"i c #7B9CCE",
+"p c #31BDCE",
+"a c #6B9CD6",
+"s c #00F708",
+"d c #8494AD",
+"f c #7B94B5",
+"g c #6B94D6",
+"h c #6B9C84",
+"j c #7B8CAD",
+"k c #738CAD",
+"l c #638CC5",
+"z c #10CE42",
+"x c #638CBD",
+"c c #7B849C",
+"v c #73849C",
+"b c #6B84A5",
+"n c #7B7BA5",
+"m c #6B849C",
+"M c #7B8C42",
+"N c #5A84C5",
+"B c #29AD6B",
+"V c #F74A4A",
+"C c #6384A5",
+"Z c #5284C5",
+"A c #637BA5",
+"S c #637B9C",
+"D c #9C637B",
+"F c #6B7B5A",
+"G c #637394",
+"H c #52739C",
+"J c #5A7384",
+"K c #526B94",
+"L c #426B94",
+"P c #52638C",
+"I c #426B7B",
+"U c #5A5A8C",
+"Y c #524A7B",
+"T c #425273",
+"R c #21636B",
+"E c #106394",
+"W c #106B52",
+"Q c #3A4273",
+"! c #31426B",
+"~ c #523163",
+"^ c #29426B",
+"/ c #293A63",
+"( c #213A63",
+") c #193A63",
+"_ c #193163",
+"` c #19315A",
+"' c #212963",
+"] c #10315A",
+"[ c #082952",
+"{ c #FFCC33",
+"} c #33FF33",
+"| c #66FF33",
+" . c #99FF33",
+".. c #CCFF33",
+"X. c #FFFF33",
+"o. c #000066",
+"O. c #330066",
+"+. c #660066",
+"@. c #990066",
+"#. c #CC0066",
+"$. c #FF0066",
+"%. c #003366",
+"&. c #333366",
+"*. c #663366",
+"=. c #993366",
+"-. c #CC3366",
+";. c #FF3366",
+":. c #006666",
+">. c #336666",
+",. c #666666",
+"<. c #996666",
+"1. c #CC6666",
+"2. c #009966",
+"3. c #339966",
+"4. c #669966",
+"5. c #999966",
+"6. c #CC9966",
+"7. c #FF9966",
+"8. c #00CC66",
+"9. c #33CC66",
+"0. c #99CC66",
+"q. c #CCCC66",
+"w. c #FFCC66",
+"e. c #00FF66",
+"r. c #33FF66",
+"t. c #99FF66",
+"y. c #CCFF66",
+"u. c #FF00CC",
+"i. c #CC00FF",
+"p. c #009999",
+"a. c #993399",
+"s. c #990099",
+"d. c #CC0099",
+"f. c #000099",
+"g. c #333399",
+"h. c #660099",
+"j. c #CC3399",
+"k. c #FF0099",
+"l. c #006699",
+"z. c #336699",
+"x. c #663399",
+"c. c #996699",
+"v. c #CC6699",
+"b. c #FF3399",
+"n. c #339999",
+"m. c #669999",
+"M. c #999999",
+"N. c #CC9999",
+"B. c #FF9999",
+"V. c #00CC99",
+"C. c #33CC99",
+"Z. c #66CC66",
+"A. c #99CC99",
+"S. c #CCCC99",
+"D. c #FFCC99",
+"F. c #00FF99",
+"G. c #33FF99",
+"H. c #66CC99",
+"J. c #99FF99",
+"K. c #CCFF99",
+"L. c #FFFF99",
+"P. c #0000CC",
+"I. c #330099",
+"U. c #6600CC",
+"Y. c #9900CC",
+"T. c #CC00CC",
+"R. c #003399",
+"E. c #3333CC",
+"W. c #6633CC",
+"Q. c #9933CC",
+"!. c #CC33CC",
+"~. c #FF33CC",
+"^. c #0066CC",
+"/. c #3366CC",
+"(. c #666699",
+"). c #9966CC",
+"_. c #CC66CC",
+"`. c #FF6699",
+"'. c #0099CC",
+"]. c #3399CC",
+"[. c #6699CC",
+"{. c #9999CC",
+"}. c #CC99CC",
+"|. c #FF99CC",
+" X c #00CCCC",
+".X c #33CCCC",
+"XX c #66CCCC",
+"oX c #99CCCC",
+"OX c #CCCCCC",
+"+X c #FFCCCC",
+"@X c #00FFCC",
+"#X c #33FFCC",
+"$X c #66FF99",
+"%X c #99FFCC",
+"&X c #CCFFCC",
+"*X c #FFFFCC",
+"=X c #3300CC",
+"-X c #6600FF",
+";X c #9900FF",
+":X c #0033CC",
+">X c #3333FF",
+",X c #6633FF",
+"<X c #9933FF",
+"1X c #CC33FF",
+"2X c #FF33FF",
+"3X c #0066FF",
+"4X c #3366FF",
+"5X c #6666CC",
+"6X c #9966FF",
+"7X c #CC66FF",
+"8X c #FF66CC",
+"9X c #0099FF",
+"0X c #3399FF",
+"qX c #6699FF",
+"wX c #9999FF",
+"eX c #CC99FF",
+"rX c #FF99FF",
+"tX c #00CCFF",
+"yX c #33CCFF",
+"uX c #66CCFF",
+"iX c #99CCFF",
+"pX c #CCCCFF",
+"aX c #FFCCFF",
+"sX c #33FFFF",
+"dX c #66FFCC",
+"fX c #99FFFF",
+"gX c #CCFFFF",
+"hX c #FF6666",
+"jX c #66FF66",
+"kX c #FFFF66",
+"lX c #6666FF",
+"zX c #FF66FF",
+"xX c #66FFFF",
+"cX c #A50021",
+"vX c #5F5F5F",
+"bX c #777777",
+"nX c #868686",
+"mX c #969696",
+"MX c #CBCBCB",
+"NX c #B2B2B2",
+"BX c #D7D7D7",
+"VX c #DDDDDD",
+"CX c #E3E3E3",
+"ZX c #EAEAEA",
+"AX c #F1F1F1",
+"SX c #F8F8F8",
+"DX c #FFFBF0",
+"FX c #A0A0A4",
+"GX c #808080",
+"HX c #FF0000",
+"JX c #00FF00",
+"KX c #FFFF00",
+"LX c #0000FF",
+"PX c #FF00FF",
+"IX c #00FFFF",
+"UX c #FFFFFF",
+/* pixels */
+": : : : : : : : : : : : : : : : ",
+": : H H H A d : 7 G K H H : : : ",
+"n n c X 4 k j X b n n : ",
+"n 2 c $ 8 6 4 x < + 4 4 C V ~ : ",
+"n * c X o $ y N u 6 $ + b D Y : ",
+"n * c X > g , S z R : ",
+"n * c * r r y g , 6 r q S s W : ",
+"n * c X 4 N u + m B I : ",
+"n * c X ; a - S 5 F : ",
+"n * c * r r r g - S = M : ",
+"n * c X 4 N - m h J : ",
+"n * c X ; a - A 9 E : ",
+"n * ( ] ` ^ P l y T / / ( p L : ",
+"n O > 0 f ) ! t 8 % n : ",
+"U U U U U U U ' Q U U U U U U : ",
+": : : : : : : : : : : : : : : : "
+};
diff --git a/src/xpm/addressbook20.xpm b/src/xpm/addressbook20.xpm
new file mode 100644
index 0000000000..7ebd73fb2f
--- /dev/null
+++ b/src/xpm/addressbook20.xpm
@@ -0,0 +1,282 @@
+/* XPM */
+static const char * addressbook20_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"20 20 256 2",
+" c #FFFFFF",
+". c #F7FFFF",
+"X c #F7F7FF",
+"o c #EFF7FF",
+"O c #EFF7F7",
+"+ c #E6EFFF",
+"@ c #E6EFF7",
+"# c #DEEFFF",
+"$ c #DEE6F7",
+"% c #DEE6EF",
+"& c #D6E6F7",
+"* c #FFFF00",
+"= c #DEDEE6",
+"- c #D6DEE6",
+"; c #D6D6DE",
+": c #CED6E6",
+"> c None",
+", c #C5D6E6",
+"< c #C5CEE6",
+"1 c #B5CEEF",
+"2 c #C5C5C5",
+"3 c #C5DE31",
+"4 c #B5C5DE",
+"5 c #BDC5C5",
+"6 c #ADC5EF",
+"7 c #B5C5CE",
+"8 c #BDBDBD",
+"9 c #B5BDCE",
+"0 c #ADBDDE",
+"q c #ADBDD6",
+"w c #B5CE52",
+"e c #ADB5C5",
+"r c #00FFFF",
+"t c #A5B5C5",
+"y c #9CB5CE",
+"u c #94B5DE",
+"i c #9CADD6",
+"p c #A5ADB5",
+"a c #94ADDE",
+"s c #94ADD6",
+"d c #9CADBD",
+"f c #8CADDE",
+"g c #BD9CA5",
+"h c #9CA5BD",
+"j c #9CA5B5",
+"k c #29D6E6",
+"l c #8CA5CE",
+"z c #849CCE",
+"x c #6BA5C5",
+"c c #739CDE",
+"v c #00FF00",
+"b c #739CD6",
+"n c #7B94CE",
+"m c #8494AD",
+"M c #7394CE",
+"N c #7B94B5",
+"B c #4AB584",
+"V c #848CB5",
+"C c #6B94CE",
+"Z c #6394D6",
+"A c #6394CE",
+"S c #7B8CAD",
+"D c #6B8CC5",
+"F c #738CAD",
+"G c #5294B5",
+"H c #6B84C5",
+"J c #7384A5",
+"K c #73849C",
+"L c #738494",
+"P c #FF4A4A",
+"I c #FF4A42",
+"U c #737B8C",
+"Y c #637BAD",
+"T c #527BBD",
+"R c #637394",
+"E c #637352",
+"W c #5A6B8C",
+"Q c #526B9C",
+"! c #63638C",
+"~ c #5A734A",
+"^ c #4A6B9C",
+"/ c #526B63",
+"( c #0884A5",
+") c #526384",
+"_ c #52637B",
+"` c #4A6B5A",
+"' c #52636B",
+"] c #525A8C",
+"[ c #525A7B",
+"{ c #426363",
+"} c #4A5A7B",
+"| c #425A8C",
+" . c #196B94",
+".. c #3A5A8C",
+"X. c #3A5A84",
+"o. c #087B4A",
+"O. c #21636B",
+"+. c #634263",
+"@. c #3A527B",
+"#. c #424A84",
+"$. c #315284",
+"%. c #295284",
+"&. c #3A4A6B",
+"*. c #42427B",
+"=. c #424273",
+"-. c #294A84",
+";. c #3A3A73",
+":. c #194284",
+">. c #104A63",
+",. c #213A6B",
+"<. c #31316B",
+"1. c #21315A",
+"2. c #212163",
+"3. c #08295A",
+"4. c #082152",
+"5. c #101952",
+"6. c #CC9966",
+"7. c #FF9966",
+"8. c #00CC66",
+"9. c #33CC66",
+"0. c #99CC66",
+"q. c #CCCC66",
+"w. c #FFCC66",
+"e. c #00FF66",
+"r. c #33FF66",
+"t. c #99FF66",
+"y. c #CCFF66",
+"u. c #FF00CC",
+"i. c #CC00FF",
+"p. c #009999",
+"a. c #993399",
+"s. c #990099",
+"d. c #CC0099",
+"f. c #000099",
+"g. c #333399",
+"h. c #660099",
+"j. c #CC3399",
+"k. c #FF0099",
+"l. c #006699",
+"z. c #336699",
+"x. c #663399",
+"c. c #996699",
+"v. c #CC6699",
+"b. c #FF3399",
+"n. c #339999",
+"m. c #669999",
+"M. c #999999",
+"N. c #CC9999",
+"B. c #FF9999",
+"V. c #00CC99",
+"C. c #33CC99",
+"Z. c #66CC66",
+"A. c #99CC99",
+"S. c #CCCC99",
+"D. c #FFCC99",
+"F. c #00FF99",
+"G. c #33FF99",
+"H. c #66CC99",
+"J. c #99FF99",
+"K. c #CCFF99",
+"L. c #FFFF99",
+"P. c #0000CC",
+"I. c #330099",
+"U. c #6600CC",
+"Y. c #9900CC",
+"T. c #CC00CC",
+"R. c #003399",
+"E. c #3333CC",
+"W. c #6633CC",
+"Q. c #9933CC",
+"!. c #CC33CC",
+"~. c #FF33CC",
+"^. c #0066CC",
+"/. c #3366CC",
+"(. c #666699",
+"). c #9966CC",
+"_. c #CC66CC",
+"`. c #FF6699",
+"'. c #0099CC",
+"]. c #3399CC",
+"[. c #6699CC",
+"{. c #9999CC",
+"}. c #CC99CC",
+"|. c #FF99CC",
+" X c #00CCCC",
+".X c #33CCCC",
+"XX c #66CCCC",
+"oX c #99CCCC",
+"OX c #CCCCCC",
+"+X c #FFCCCC",
+"@X c #00FFCC",
+"#X c #33FFCC",
+"$X c #66FF99",
+"%X c #99FFCC",
+"&X c #CCFFCC",
+"*X c #FFFFCC",
+"=X c #3300CC",
+"-X c #6600FF",
+";X c #9900FF",
+":X c #0033CC",
+">X c #3333FF",
+",X c #6633FF",
+"<X c #9933FF",
+"1X c #CC33FF",
+"2X c #FF33FF",
+"3X c #0066FF",
+"4X c #3366FF",
+"5X c #6666CC",
+"6X c #9966FF",
+"7X c #CC66FF",
+"8X c #FF66CC",
+"9X c #0099FF",
+"0X c #3399FF",
+"qX c #6699FF",
+"wX c #9999FF",
+"eX c #CC99FF",
+"rX c #FF99FF",
+"tX c #00CCFF",
+"yX c #33CCFF",
+"uX c #66CCFF",
+"iX c #99CCFF",
+"pX c #CCCCFF",
+"aX c #FFCCFF",
+"sX c #33FFFF",
+"dX c #66FFCC",
+"fX c #99FFFF",
+"gX c #CCFFFF",
+"hX c #FF6666",
+"jX c #66FF66",
+"kX c #FFFF66",
+"lX c #6666FF",
+"zX c #FF66FF",
+"xX c #66FFFF",
+"cX c #A50021",
+"vX c #5F5F5F",
+"bX c #777777",
+"nX c #868686",
+"mX c #969696",
+"MX c #CBCBCB",
+"NX c #B2B2B2",
+"BX c #D7D7D7",
+"VX c #DDDDDD",
+"CX c #E3E3E3",
+"ZX c #EAEAEA",
+"AX c #F1F1F1",
+"SX c #F8F8F8",
+"DX c #FFFBF0",
+"FX c #A0A0A4",
+"GX c #808080",
+"HX c #FF0000",
+"JX c #00FF00",
+"KX c #FFFF00",
+"LX c #0000FF",
+"PX c #FF00FF",
+"IX c #00FFFF",
+"UX c #FFFFFF",
+/* pixels */
+"> > > > > > > > > > > > > > > > > > > > ",
+"> > > > > > > > > > > > > > > > > > > > ",
+"> > U $.| | ^ S 2 > p W | | @.L > > > > ",
+"8 5 R - < Y j S O - ) g e > > ",
+"! V K - % a Q # - +.P <.> > ",
+"! & K - 0 z n D C b f n n z q +.P <.> > ",
+"! & K - % M A 1 - %.G #.> > ",
+"! & K - % u b # - o.v >.> > ",
+"! & K - 0 z n H M b 6 z n z q o.v >.> > ",
+"! & K - X - M A a - O.B @.> > ",
+"! & K - X % u b # - ` 3 / > > ",
+"! & K - 0 l i 4 u b # - ~ * E > > ",
+"! & K - X o $ s T b # - { w ' > > ",
+"! & K - % f b # - .k -.> > ",
+"! & K m d t 7 , u b # ; 9 9 h ( r :.> > ",
+"! & h _ _ [ &.4.$.A ,.1.} _ _ F x ] > > ",
+"! @ , y N _ 3._ N y , @ ! > > ",
+"*.*.*.*.*.*.*.*.;.5.*.*.*.*.*.*.*.2.> > ",
+"> > > > > > > > > > > > > > > > > > > > ",
+"> > > > > > > > > > > > > > > > > > > > "
+};
diff --git a/src/xpm/bitcoin16.xpm b/src/xpm/bitcoin16.xpm
new file mode 100644
index 0000000000..f70fef026a
--- /dev/null
+++ b/src/xpm/bitcoin16.xpm
@@ -0,0 +1,219 @@
+/* XPM */
+static const char * bitcoin16_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"16 16 197 2",
+" c #755507",
+". c #775606",
+"X c #795707",
+"o c #7D5A07",
+"O c #765608",
+"+ c #74550A",
+"@ c #75550A",
+"# c #75560A",
+"$ c #785708",
+"% c #78580B",
+"& c #7D5C0B",
+"* c #78590E",
+"= c #7E5F14",
+"- c #8A6711",
+"; c #8D6B15",
+": c #8A691A",
+"> c #93711C",
+", c #9D7A23",
+"< c #9F7B22",
+"1 c #9C7B2A",
+"2 c #9E7C28",
+"3 c #A37F26",
+"4 c #B4831B",
+"5 c #A68126",
+"6 c #A5852E",
+"7 c #A9872E",
+"8 c #AC862D",
+"9 c #AC872F",
+"0 c #AF8B30",
+"q c #AC8932",
+"w c #AF8A34",
+"e c #B08E36",
+"r c #B98F33",
+"t c #B18E3A",
+"y c #B39036",
+"u c #B69237",
+"i c #B3913B",
+"p c #B6923C",
+"a c #BD9338",
+"s c #B9993F",
+"d c #BA993F",
+"f c #C2932D",
+"g c #C09437",
+"h c #C59832",
+"j c #C39836",
+"k c #C89835",
+"l c #C59C3D",
+"z c #CF9E3E",
+"x c #CFA23F",
+"c c #D0A13A",
+"v c #D3A23A",
+"b c #D4A338",
+"n c #D6A33F",
+"m c #B19345",
+"M c #BF9940",
+"N c #BF9D43",
+"B c #B3954B",
+"V c #BD9A48",
+"C c #BC9C4B",
+"Z c #BD9F51",
+"A c #CAA244",
+"S c #C2A14B",
+"D c #C4A44B",
+"F c #C1A24C",
+"G c #C7A64C",
+"H c #C5A64E",
+"J c #C9A94F",
+"K c #D1A343",
+"L c #D7A644",
+"P c #D5A547",
+"I c #D6A547",
+"U c #DCAD42",
+"Y c #DDAB45",
+"T c #C3A151",
+"R c #C9A551",
+"E c #CAAA50",
+"W c #CBAD53",
+"Q c #CDAC52",
+"! c #CEA855",
+"~ c #CEB15A",
+"^ c #DEB154",
+"/ c #D1B35A",
+"( c #D7B35A",
+") c #D8B45D",
+"_ c #E3B34A",
+"` c #E2B34E",
+"' c #E6B54F",
+"] c #E2B350",
+"[ c #E3B352",
+"{ c #E4B451",
+"} c #E2B355",
+"| c #E7B853",
+" . c #E9BC51",
+".. c #ECBC53",
+"X. c #E7BE5A",
+"o. c #E2BA5C",
+"O. c #E2BC5C",
+"+. c #E9BB59",
+"@. c #EBBE59",
+"#. c #EABD5B",
+"$. c #E8BF5C",
+"%. c #E9BE5E",
+"&. c #C8AC63",
+"*. c #D0B162",
+"=. c #D5B567",
+"-. c #DABC62",
+";. c #D2B66B",
+":. c #D0B56D",
+">. c #DCBC6E",
+",. c #D2B972",
+"<. c #D7BE78",
+"1. c #E9BE62",
+"2. c #EEC05A",
+"3. c #F0C25F",
+"4. c #DEC26B",
+"5. c #DDC27A",
+"6. c #E0C167",
+"7. c #E5C067",
+"8. c #EBC463",
+"9. c #EEC460",
+"0. c #ECC364",
+"q. c #E4C16B",
+"w. c #E7C46B",
+"e. c #E9C56C",
+"r. c #E0C172",
+"t. c #E5C575",
+"y. c #E4C870",
+"u. c #E6CA72",
+"i. c #E6CA74",
+"p. c #E8CB73",
+"a. c #E9CE76",
+"s. c #EBD07B",
+"d. c #EED179",
+"f. c #F5D478",
+"g. c #F5D57C",
+"h. c #F4D67C",
+"j. c #F4D77E",
+"k. c #DEC781",
+"l. c #E0C883",
+"z. c #E3CA89",
+"x. c #E4CB8B",
+"c. c #E3CD8A",
+"v. c #E5CE8B",
+"b. c #E3CC8E",
+"n. c #E8D18D",
+"m. c #F6D980",
+"M. c #F7DB83",
+"N. c #F3DA86",
+"B. c #F7DA84",
+"V. c #F6DB84",
+"C. c #F7DB84",
+"Z. c #F7DA86",
+"A. c #F6DC85",
+"S. c #F7DC85",
+"D. c #F8DB85",
+"F. c #FADD85",
+"G. c #FBDE86",
+"H. c #F5DE8B",
+"J. c #FADD88",
+"K. c #F9DF8B",
+"L. c #E4CF93",
+"P. c #E6CF92",
+"I. c #E6D094",
+"U. c #EAD597",
+"Y. c #EBD698",
+"T. c #EFDA99",
+"R. c #F0DC9C",
+"E. c #FCE089",
+"W. c #FCE28B",
+"Q. c #FDE28B",
+"!. c #FCE38C",
+"~. c #FCE28D",
+"^. c #FCE38D",
+"/. c #FDE38D",
+"(. c #FEE38D",
+"). c #FDE38E",
+"_. c #FEE48D",
+"`. c #FEE58F",
+"'. c #FCE490",
+"]. c #FDE490",
+"[. c #FFE590",
+"{. c #FFE690",
+"}. c #FFE691",
+"|. c #FEE791",
+" X c #FFE692",
+".X c #FFE792",
+"XX c #FEE693",
+"oX c #FFE693",
+"OX c #FFE793",
+"+X c #FEE897",
+"@X c #F6E2A2",
+"#X c #F7E3A2",
+"$X c #FAE6A8",
+"%X c #FBE7A9",
+"&X c #FCE9AB",
+"*X c #FDEAAC",
+"=X c None",
+/* pixels */
+"=X=X=X=X=X0 S G D i =X=X=X=X=X=X",
+"=X=X=X9 6.).).).).).d.e =X=X=X=X",
+"=X=Xu C.J.O.( h ( o.D.).J & =X=X",
+"=X0 S.j.f 4 b.e P.K @.j.'.d % =X",
+"=X4.).k a T Y.&.Y.R 2.2.F.S.- =X",
+"e '.e.z ! v.&X,.k.*X:. .%.`.d # ",
+"H +X^ I P =.*X9 j T.k.U ' F.-.% ",
+"W '.` { } >.*X<.n.*XC b Y g.u.X ",
+"W |.` { 3.t.&Xm C c.%Xa n m.u.. ",
+"N '.9...@.r.&Xi A 5.*XM L W.~ . ",
+"5 m.f._ *.#X&XR.#X%X:.v 0.'.7 # ",
+"=XQ `.@.l t P.B I.u v { G.a.o =X",
+"=X3 u.W.0.A z.V b.+.1.J.E., # =X",
+"=X=X3 u.oXF.e.7.q.C.+XH.6 # =X=X",
+"=X=X=X=XS s.'.'.'.C.~ ; * =X=X=X",
+"=X=X=X=X=X=X1 1 > : = =X=X=X=X=X"
+};
diff --git a/src/xpm/bitcoin20.xpm b/src/xpm/bitcoin20.xpm
new file mode 100644
index 0000000000..3cc29ac14b
--- /dev/null
+++ b/src/xpm/bitcoin20.xpm
@@ -0,0 +1,160 @@
+/* XPM */
+static const char * bitcoin20_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"20 20 134 2",
+" c #735305",
+". c #785706",
+"X c #7E5C07",
+"o c #755509",
+"O c #76580D",
+"+ c #7F6015",
+"@ c #85620D",
+"# c #89650D",
+"$ c #836215",
+"% c #886510",
+"& c #8E6B11",
+"* c #81641F",
+"= c #906D19",
+"- c #977116",
+"; c #96741E",
+": c #9B761E",
+"> c #947424",
+", c #9B7722",
+"< c #9D7824",
+"1 c #A47F23",
+"2 c #A17D2A",
+"3 c #A58125",
+"4 c #AA8327",
+"5 c #A4832F",
+"6 c #AD862B",
+"7 c #B28B2E",
+"8 c #A58433",
+"9 c #A88637",
+"0 c #AD8932",
+"q c #A78639",
+"w c #A8893C",
+"e c #B28C34",
+"r c #B88E33",
+"t c #B28E3A",
+"y c #B79136",
+"u c #BB9235",
+"i c #BB9639",
+"p c #C19836",
+"a c #C29539",
+"s c #C59C3C",
+"d c #A88B41",
+"f c #AF9045",
+"g c #B49342",
+"h c #BE9641",
+"j c #BD9B44",
+"k c #B29448",
+"l c #B7994B",
+"z c #B8994C",
+"x c #C09946",
+"c c #CB9E46",
+"v c #C59D4C",
+"b c #CFA246",
+"n c #CBAB47",
+"m c #CEA74A",
+"M c #D4A749",
+"N c #D6A94D",
+"B c #C7A754",
+"V c #CEA453",
+"C c #C6AA56",
+"Z c #CDA955",
+"A c #CBAB5B",
+"S c #D2AB54",
+"D c #D2AE5E",
+"F c #D9AE5A",
+"G c #D7B356",
+"H c #DDB35F",
+"J c #DFB95A",
+"K c #E1B554",
+"L c #E4BA56",
+"P c #E6BC5A",
+"I c #E9BE5E",
+"U c #C7AC64",
+"Y c #CBAF64",
+"T c #CDB166",
+"R c #D4B364",
+"E c #DBB463",
+"W c #DFB867",
+"Q c #D5B76B",
+"! c #DFBA6F",
+"~ c #D5BB76",
+"^ c #D7BE79",
+"/ c #E3BC64",
+"( c #E8BF64",
+") c #E0BB68",
+"_ c #DECA7A",
+"` c #EBC265",
+"' c #EBC36B",
+"] c #EFC96B",
+"[ c #F1C564",
+"{ c #F3CB6A",
+"} c #F9CD6C",
+"| c #FAD16C",
+" . c #E5C770",
+".. c #EEC774",
+"X. c #E6CE7E",
+"o. c #EFCE7A",
+"O. c #F1CB73",
+"+. c #F4CE7A",
+"@. c #F3D273",
+"#. c #FCD574",
+"$. c #FEDA76",
+"%. c #F5D47D",
+"&. c #FAD47B",
+"*. c #F2D97D",
+"=. c #FCDA7A",
+"-. c #DDC784",
+";. c #E1CA86",
+":. c #E4CE8B",
+">. c #ECD985",
+",. c #E7D18E",
+"<. c #F4DC84",
+"1. c #FCDC81",
+"2. c #F4DB8B",
+"3. c #FBDF8B",
+"4. c #EBD592",
+"5. c #EFDA99",
+"6. c #F1DD9C",
+"7. c #F6E081",
+"8. c #FDE484",
+"9. c #FFEA87",
+"0. c #F9E488",
+"q. c #FEE88D",
+"w. c #F9E394",
+"e. c #FFEB93",
+"r. c #FEE698",
+"t. c #FEEA9B",
+"y. c #FFF49A",
+"u. c #F7E4A4",
+"i. c #F9E5A5",
+"p. c #FCE9AA",
+"a. c #F7F0AA",
+"s. c #FEF1AE",
+"d. c #FEF6B3",
+"f. c None",
+/* pixels */
+"f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.",
+"f.f.f.f.f.f.f.0 y i i 0 , f.f.f.f.f.f.f.",
+"f.f.f.f.3 p P | $.| } { I p ; f.f.f.f.f.",
+"f.f.f.4 L | $.{ L K L ` =.#.` 3 $ f.f.f.",
+"f.f.6 [ $.{ M a Q 0 Q S ' %.q.*.6 o f.f.",
+"f.3 ' $.P i u r ,.< :.S +.%.0.y.*.& f.f.",
+"f.C e.%.c x T Y 6.U 5.T R @.#.0.9.n . f.",
+"f.>.t.W F A ^ p.u.~ -.p.i.C { { =.@.# f.",
+"e e.3.E H / j p.6.0 V ~ p.Y ( ` #.$.3 o ",
+"j p.2.( ( ! Z p.6.l R 6.6.t I I { #.y o ",
+"j e.1.( ! +.H i.i.-.:.i.u.R N K ` #.u ",
+"i 9.&.( ..1.) p.6.8 j w p.p.h N ' #.7 ",
+"4 =.7.` ....Z p.6.g D T p.i.t M [ } - o ",
+"f.J =.{ ` E i.p.p.i.p.p.6.k u M } K @ o ",
+"f.7 @.@./ S z f 4.d ,.q 2 r a ( { 6 f.",
+"f.f.m @.O.( / V 4.q :.v V V O.&.G X O f.",
+"f.f.: G 1.0.+.W R D R ! 4.d.d._ # f.f.",
+"f.f.f.2 C a.i.r.w.w.i.s.d.p.Y @ f.f.f.",
+"f.f.f.f.f.5 Z .<.3.2.X.A > . f.f.f.f.",
+"f.f.f.f.f.f.f.> > = # $ + f.f.f.f.f.f.f."
+};
diff --git a/src/xpm/bitcoin32.xpm b/src/xpm/bitcoin32.xpm
new file mode 100644
index 0000000000..f538a44d2d
--- /dev/null
+++ b/src/xpm/bitcoin32.xpm
@@ -0,0 +1,232 @@
+/* XPM */
+static const char * bitcoin32_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"32 32 194 2",
+" c #745305",
+". c #785704",
+"X c #7C5903",
+"o c #75560B",
+"O c #77590F",
+"+ c #7C5C0B",
+"@ c #795B12",
+"# c #7F631D",
+"$ c #825E07",
+"% c #825F0B",
+"& c #85610A",
+"* c #8C660C",
+"= c #8E680E",
+"- c #916B0F",
+"; c #856515",
+": c #8B6714",
+"> c #8F6A16",
+", c #816218",
+"< c #88691C",
+"1 c #926D12",
+"2 c #936F1C",
+"3 c #997417",
+"4 c #94721E",
+"5 c #9B761C",
+"6 c #9F781C",
+"7 c #A17B1E",
+"8 c #826622",
+"9 c #916E20",
+"0 c #967425",
+"q c #9D7420",
+"w c #9C7923",
+"e c #997728",
+"r c #99792C",
+"t c #A37D23",
+"y c #A37F2C",
+"u c #A68125",
+"i c #AB8225",
+"p c #A5832B",
+"a c #AA852C",
+"s c #B28A2C",
+"d c #A58233",
+"f c #AC8734",
+"g c #AE8C33",
+"h c #AC8C3C",
+"j c #B28C33",
+"k c #B98E34",
+"l c #B28D3D",
+"z c #B59136",
+"x c #BC9335",
+"c c #B3913E",
+"v c #BC933A",
+"b c #BF9A3D",
+"n c #C19235",
+"m c #C2953C",
+"M c #C39B3C",
+"N c #CA9C3D",
+"B c #B59343",
+"V c #BE9642",
+"C c #B69A44",
+"Z c #BD9A45",
+"A c #B49649",
+"S c #BB9A49",
+"D c #BB9F52",
+"F c #BFA256",
+"G c #C49C43",
+"H c #CA9D41",
+"J c #C59D4A",
+"K c #C99E4D",
+"L c #C3A144",
+"P c #CDA244",
+"I c #CFAA47",
+"U c #C3A14D",
+"Y c #CDA24A",
+"T c #CCAB49",
+"R c #D2A644",
+"E c #D2A54B",
+"W c #D6AA4C",
+"Q c #DAAE4E",
+"! c #DAB04F",
+"~ c #C7A656",
+"^ c #CDA452",
+"/ c #CFAC52",
+"( c #C0A65E",
+") c #CEA75A",
+"_ c #CCAC59",
+"` c #D2AB53",
+"' c #DCAF52",
+"] c #D6AD5A",
+"[ c #D9AE5B",
+"{ c #DCB556",
+"} c #DFB855",
+"| c #D6B25F",
+" . c #DCB35C",
+".. c #DEBE5E",
+"X. c #E2B656",
+"o. c #E1B55A",
+"O. c #E6BC5D",
+"+. c #E9BD5E",
+"@. c #C3AA63",
+"#. c #CCAD62",
+"$. c #D4AF62",
+"%. c #CDB565",
+"&. c #CEB46D",
+"*. c #D7B164",
+"=. c #DBB362",
+"-. c #D6BD64",
+";. c #DDBA64",
+":. c #D3B66C",
+">. c #DFB86B",
+",. c #CEB772",
+"<. c #D0B771",
+"1. c #D4BA73",
+"2. c #D9BE77",
+"3. c #D6BE79",
+"4. c #D8BF7A",
+"5. c #E4BB62",
+"6. c #E9BF64",
+"7. c #E4BC69",
+"8. c #E9BF69",
+"9. c #E0BB71",
+"0. c #E9C05E",
+"q. c #D2C279",
+"w. c #DBC27C",
+"e. c #E2C667",
+"r. c #EDC364",
+"t. c #E3C16E",
+"y. c #ECC46C",
+"u. c #EDCC6C",
+"i. c #F1C764",
+"p. c #F5CA66",
+"a. c #F9CD67",
+"s. c #F5CC6A",
+"d. c #F9CD6B",
+"f. c #FBD36F",
+"g. c #EDC572",
+"h. c #E5CF77",
+"j. c #ECCA74",
+"k. c #E0C67E",
+"l. c #EFCE78",
+"z. c #F6CE72",
+"x. c #FBCF71",
+"c. c #F4CE79",
+"v. c #F4D273",
+"b. c #FCD473",
+"n. c #F4DC75",
+"m. c #FEDA74",
+"M. c #F6D77C",
+"N. c #FBD47A",
+"B. c #F1DA7B",
+"V. c #FDDA7C",
+"C. c #FEE27D",
+"Z. c #DDC683",
+"A. c #DFC884",
+"S. c #E4CA84",
+"D. c #E3CC89",
+"F. c #E7D183",
+"G. c #EFD280",
+"H. c #EFDC82",
+"J. c #ECD48D",
+"K. c #EFDA8C",
+"L. c #F9D783",
+"P. c #F2DF83",
+"I. c #FCDB83",
+"U. c #F5DC8F",
+"Y. c #FADD8B",
+"T. c #EBD593",
+"R. c #EFDA99",
+"E. c #F3DD93",
+"W. c #F3DF9F",
+"Q. c #FFE385",
+"!. c #FEE986",
+"~. c #FDE48C",
+"^. c #FEEC8E",
+"/. c #ECE199",
+"(. c #F6E591",
+"). c #FEE494",
+"_. c #FEEB93",
+"`. c #FEE69A",
+"'. c #FFEB9B",
+"]. c #FFF197",
+"[. c #FFF39B",
+"{. c #FEF99B",
+"}. c #F6E2A2",
+"|. c #F9E5A5",
+" X c #F7E9A5",
+".X c #FEECA4",
+"XX c #FBE7A8",
+"oX c #FDEAAB",
+"OX c #F7F2AA",
+"+X c #FEF2AC",
+"@X c #FDF4B4",
+"#X c #FFFABA",
+"$X c #FFFEC2",
+"%X c None",
+/* pixels */
+"%X%X%X%X%X%X%X%X%X%X%X%Xp t 6 5 w t w %X%X%X%X%X%X%X%X%X%X%X%X%X",
+"%X%X%X%X%X%X%X%X%Xu u x I X.0.s.u.0.W x 7 4 %X%X%X%X%X%X%X%X%X%X",
+"%X%X%X%X%X%X%Xy i I i.a.f.m.m.b.f.s.a.s.i.W 7 > %X%X%X%X%X%X%X%X",
+"%X%X%X%X%X%Xt M 0.a.m.m.m.m.f.d.p.p.p.f.d.f.i.b 1 < %X%X%X%X%X%X",
+"%X%X%X%X%X7 ! d.f.f.m.f.+.W P R I Q 5.v.V.V.z.f.{ 5 + %X%X%X%X%X",
+"%X%X%X%Xu X.f.m.m.f.' H s ~ V y _ Z J o.g.L.L.Q.!.e.5 X %X%X%X%X",
+"%X%X%Xu X.b.C.m.+.N m n t }.3.> }.w.V 5.y.y.Y.[.^.^.-.1 + %X%X%X",
+"%X%Xt P m.N.m.X.v v v k 6 }.1.: /.4.c 7.N.N.v.!.{.{.^.L & %X%X%X",
+"%X%Xg Y.Y.V.+.m k a t t : }.1.% }.1.r | l.B.M.b.!.{.^.n.7 X %X%X",
+"%Xp -._.'.Y.' Y n D.}.}.|.oXXX|.oX XT.w.F _ j.v.v._.^.C.T & @ %X",
+"%Xa (.'.'.9.[ [ K S.}.oXoXoXoXXXoXoXoXoX XD / s.d.v.!.C.v.3 o %X",
+"%XU '.'.Y.[ [ [ [ J f <.oXoX( 2 f S J.oXoXT.j r.s.i.C.C.C.z X %X",
+"p e.'.'.F. .=.=.=.=.) 1.oXoX@.f . .F oXoX}.a +.i.i.b.C.m.I X O ",
+"u w.'.[.j.5.8.7.7.7.] 2.oXoX@.y W c &.oXoXZ.k r.s.i.s.V.m.} = o ",
+"u H.[.{.y.8.y.g.8.g.7.2.oXoXA.@.&.D.oXoXT.e G +.O.O.5.V.m.0.- o ",
+"u !.].[.r.8.y.g.g.g.7.4.oXoXoXoXoXoXoXoXoX<.y W X.o.o.m.m.0.- o ",
+"u B._._.5.5.8.y.g.c.g.w.oXoX,.h A F <..XoXoX1.k ' ' ' V.N.r.- ",
+"u u.Q.~.r.6.z.N.V.I.v.k.oXoX@.B | _ c 1.oXoX}.a ' ' O.I.b.O.= o ",
+"u ..Q.Q.v.i.s.c.N.L.l.Z.oXoX@.B t.=.S &.oXoXXXy Y R +.N.b.Q % o ",
+"t T C.I.I.6.u.z.z.5.S 1.oXoX@.e B h D |.oXoXS.f Y Y 6.d.d.n X O ",
+"%Xs m.V.Q.r.r.z.5.<.}.oXoXoXXXW.}.oXoXoXoXW.h G H R a.p.s.7 %X",
+"%X7 O.V.V.v.+.r.` 4.oXoXoXoXoXoXoXoXXXR.<.h v N N o.a.p.Q = %X",
+"%Xw x v.v.v.r.+. .Z l d e }.Z.r }.3.d l V G n n R a.s.a.s X O %X",
+"%X%X6 { v.l.v.+.O.5.=.^ d }.4.9 }.1.f J G m m G d.d.x.Q = %X%X",
+"%X%X%Xs u.v.v.v.r.6.o. .l }.4.9 W.4.l ^ ^ J ) c.N.N.y.7 X O %X%X",
+"%X%X%X5 z v.v.M.I.g.;. .J 1.#.B 1.#.) 7.$.S..X'.W.Y.j $ %X%X%X",
+"%X%X%X%X5 b N.Y.~.).Y.j.5.$.=.=.$.*.2.J.@X$X#X#XoXC $ %X%X%X%X",
+"%X%X%X%X%X3 z U.@X+X`.`.`.(.E.E.E.|.@X@X#X#X#X/.j % %X%X%X%X%X",
+"%X%X%X%X%X%Xw a q.OX|.).`._.'.'.XX.X.X+X+X X%.w X o %X%X%X%X%X%X",
+"%X%X%X%X%X%X%X%Xw a _ j.~.~.).).`.`.`.F._ t & . # %X%X%X%X%X%X%X",
+"%X%X%X%X%X%X%X%X%X%X4 3 t z L U Z z t 1 $ . 8 %X%X%X%X%X%X%X%X%X",
+"%X%X%X%X%X%X%X%X%X%X%X%X%X< ; & + + , 8 %X%X%X%X%X%X%X%X%X%X%X%X"
+};
diff --git a/src/xpm/bitcoin48.xpm b/src/xpm/bitcoin48.xpm
new file mode 100644
index 0000000000..85a7711940
--- /dev/null
+++ b/src/xpm/bitcoin48.xpm
@@ -0,0 +1,277 @@
+/* XPM */
+static const char * bitcoin48_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"48 48 223 2",
+" c #765404",
+". c #795704",
+"X c #7C5904",
+"o c #7C5A0A",
+"O c #825E05",
+"+ c #815F0E",
+"@ c #815F11",
+"# c #866107",
+"$ c #866208",
+"% c #8A650A",
+"& c #8E680D",
+"* c #916B0E",
+"= c #866414",
+"- c #8C6715",
+"; c #8F6A10",
+": c #8A691B",
+"> c #956E12",
+", c #906D1D",
+"< c #967013",
+"1 c #997215",
+"2 c #94711F",
+"3 c #9C751A",
+"4 c #9E781C",
+"5 c #A27B1D",
+"6 c #947324",
+"7 c #997625",
+"8 c #9D7926",
+"9 c #97792B",
+"0 c #9D7B28",
+"q c #9C7F34",
+"w c #A47E22",
+"e c #A87F21",
+"r c #A37E2A",
+"t c #A8801F",
+"y c #A58025",
+"u c #AB8425",
+"i c #A5812C",
+"p c #AB842A",
+"a c #AB892D",
+"s c #B0862C",
+"d c #B48C2D",
+"f c #B88F2F",
+"g c #B9912E",
+"h c #A68432",
+"j c #AB8531",
+"k c #AD8A33",
+"l c #A68638",
+"z c #AD8B3B",
+"x c #B38C32",
+"c c #BA8E35",
+"v c #B28D3B",
+"b c #B59234",
+"n c #BD9235",
+"m c #B5903E",
+"M c #BC943B",
+"N c #BA9A3B",
+"B c #C29536",
+"V c #C59937",
+"C c #C2953B",
+"Z c #C49C3C",
+"A c #CA9E3D",
+"S c #AC8E43",
+"D c #AD9045",
+"F c #AE9248",
+"G c #B49444",
+"H c #B99542",
+"J c #B49842",
+"K c #BD9C44",
+"L c #B3954A",
+"P c #B7994D",
+"I c #BD9A4A",
+"U c #B69A52",
+"Y c #BB9E54",
+"T c #BEA04A",
+"R c #BFA354",
+"E c #BEA35A",
+"W c #C19742",
+"Q c #C49B43",
+"! c #CA9D41",
+"~ c #C39C4B",
+"^ c #C99E4A",
+"/ c #C7A444",
+"( c #CDA244",
+") c #CAA945",
+"_ c #C5A44C",
+"` c #CCA44B",
+"' c #C6A94C",
+"] c #CFAC4D",
+"[ c #D2A647",
+"{ c #D2A54B",
+"} c #D4AA4C",
+"| c #D9AC4D",
+" . c #D4B04E",
+".. c #DCB14D",
+"X. c #C4A151",
+"o. c #CAA454",
+"O. c #C6AB56",
+"+. c #CCA955",
+"@. c #C1A45A",
+"#. c #C6AA5A",
+"$. c #CDAB5D",
+"%. c #D1A652",
+"&. c #D4AB53",
+"*. c #DDAF52",
+"=. c #D3AC5B",
+"-. c #D9AF5C",
+";. c #D5B154",
+":. c #DDB253",
+">. c #D5B25B",
+",. c #DCB45D",
+"<. c #DDBB5E",
+"1. c #E1B354",
+"2. c #E4B955",
+"3. c #E3B65B",
+"4. c #E5BA5C",
+"5. c #EABE5E",
+"6. c #C6AB63",
+"7. c #CCAD63",
+"8. c #C6AE68",
+"9. c #C9AF69",
+"0. c #D4AC60",
+"q. c #CDB067",
+"w. c #CDB36C",
+"e. c #D6B162",
+"r. c #DDB463",
+"t. c #D7B964",
+"y. c #DBB965",
+"u. c #D1B66F",
+"i. c #DDB66A",
+"p. c #D0BC6C",
+"a. c #DFBE6B",
+"s. c #CEB772",
+"d. c #D1B771",
+"f. c #D4BC74",
+"g. c #DBBD75",
+"h. c #DABF78",
+"j. c #E2B764",
+"k. c #E4BA64",
+"l. c #E9BD62",
+"z. c #E2BB6A",
+"x. c #E8BF69",
+"c. c #EBC15F",
+"v. c #F1C25E",
+"b. c #DFC266",
+"n. c #DBC26C",
+"m. c #DCC676",
+"M. c #DEC973",
+"N. c #D7C07A",
+"B. c #D9C27E",
+"V. c #E4C162",
+"C. c #EDC363",
+"Z. c #E3C36F",
+"A. c #EBC26C",
+"S. c #E5CA6B",
+"D. c #EECA6D",
+"F. c #F1C565",
+"G. c #F5CB66",
+"H. c #F9CA66",
+"J. c #F2C76A",
+"K. c #F5CC6A",
+"L. c #F9CD6C",
+"P. c #EDD26C",
+"I. c #FBD26E",
+"U. c #E5C374",
+"Y. c #EDC573",
+"T. c #E6CB74",
+"R. c #EECC73",
+"E. c #EBCA78",
+"W. c #F5CD74",
+"Q. c #F9CE72",
+"!. c #EED77F",
+"~. c #F4D274",
+"^. c #FDD473",
+"/. c #F2D870",
+"(. c #FED975",
+"). c #F5D37C",
+"_. c #FCD57A",
+"`. c #F7D87A",
+"'. c #FEDC7C",
+"]. c #FFE37D",
+"[. c #DCC682",
+"{. c #E1C984",
+"}. c #E4CD8A",
+"|. c #EFD182",
+" X c #E5D48D",
+".X c #EAD28D",
+"XX c #E8DB8D",
+"oX c #F1D581",
+"OX c #FDD581",
+"+X c #F5DB84",
+"@X c #FDDC84",
+"#X c #FEDE89",
+"$X c #EAD594",
+"%X c #E1D894",
+"&X c #ECDA94",
+"*X c #EFDA99",
+"=X c #F2DD9C",
+"-X c #F6E284",
+";X c #FEE385",
+":X c #FFE883",
+">X c #FEE38C",
+",X c #FEEA8C",
+"<X c #F6E196",
+"1X c #FEE594",
+"2X c #FEEC93",
+"3X c #F6E39C",
+"4X c #FEE599",
+"5X c #FFEB9B",
+"6X c #FFF195",
+"7X c #FEF39B",
+"8X c #FEF99C",
+"9X c #F5E2A2",
+"0X c #F9E5A5",
+"qX c #F6EAA6",
+"wX c #FFECA3",
+"eX c #FDEAAB",
+"rX c #FFF5A0",
+"tX c #FFF2AB",
+"yX c #FEF5B3",
+"uX c #FFF9B3",
+"iX c #FFFBBB",
+"pX c #FFFDC1",
+"aX c None",
+/* pixels */
+"aXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaX* < * < < < < * * & aXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaX",
+"aXaXaXaXaXaXaXaXaXaXaXaXaXaXaX* 1 3 5 u u d g Z Z N d u 5 3 * % aXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaX",
+"aXaXaXaXaXaXaXaXaXaXaXaXaX< 3 t u A ..c.K.I.I.(.(.'.(.G.2.( d 5 1 & aXaXaXaXaXaXaXaXaXaXaXaXaXaX",
+"aXaXaXaXaXaXaXaXaXaXaX< 5 t g 1.G.H.H.I.(.'.(.I.I.I.K.K.G.I.K.2.V u 1 % aXaXaXaXaXaXaXaXaXaXaXaX",
+"aXaXaXaXaXaXaXaXaXaX4 t g c.G.H.I.I.I.].(.(.(.I.G.H.K.G.K.I.G.K.Q.C.C 5 & % aXaXaXaXaXaXaXaXaXaX",
+"aXaXaXaXaXaXaXaXaX4 u } v.G.G.I.(.].(.(.(.I.G.G.G.G.G.L.G.K.I.^.^.L.L.:.u < # aXaXaXaXaXaXaXaXaX",
+"aXaXaXaXaXaXaXaXt d c.G.I.I.I.I.].(.I.G.c.........:.4.C.W.~.`.'._.^.K.K.J.N 4 # aXaXaXaXaXaXaXaX",
+"aXaXaXaXaXaXaX5 g v.H.I.I.(.(.(.H.c.[ V V V V A A A ! ( } l.).>X@X_.`._.'.'./ 4 O aXaXaXaXaXaXaX",
+"aXaXaXaXaXaXt g C.I.(.(.^.(.^.1.( ! C d p u s d d d x M &.3.3.A.).+XOX>X;X;X;X) 3 O aXaXaXaXaXaX",
+"aXaXaXaXaX5 d G.I.'.].(.^.l.( C A C s H =X=XI 7 N.*X$Xk o.j.z.J.l.W.1X7X6X,X,X,XK 1 X aXaXaXaXaX",
+"aXaXaXaX3 p C.(.(.'.'.^.*.C C C C B r G eXeXL - [.eX3Xr ~ r.W._.W.J.D.6X8X6X6X6X-Xd & X aXaXaXaX",
+"aXaXaXaXu ;.'.'.(.^.^.| C c B B B c w z eXeXF = [.eX*X8 K r.@X#X;X`.~.D.7X8X8X6X,XS.y O aXaXaXaX",
+"aXaXaXw N #X#X'.'.^.*.C c c s r e r 2 r eXeXD $ B.eX=X: z z.oX>X,X,X;X~.D.8X8X6X,X:X) < X aXaXaX",
+"aXaX3 a T.1X1X>X#XA.! C B s $.6.6.@.@.w.eXeXd.U $XeX9XF z G O.n.!.-X;X'.D./.8X6X,X:X/.u # aXaXaX",
+"aXaXy K 5X5X5X2X>X-.} ^ C r 0XeXeXeXeXeXeXeXeXeXeXeXeXeXeX9XN.L O.T.`.]./.F.-X6X:X].].) < . aXaX",
+"aXaXa M.7X5X5X5XU.&.-.&.^ j 0XeXeXeXeXeXeXeXeXeXeXeXeXeXeXeXeX9XL X.~.'.'.K.c.6X:X].].P.t O aXaX",
+"aX5 k 2X5X5X5X<X-.-.-.-.=.W q.6.9.=XeXeXeXeXs.9.d.B.*XeXeXeXeXeX&Xh <.(.(.Q.F.~.;X].].].b & . aX",
+"aXy O.5X5X5X5XE.-.-.-.-.-.%.Q z 6 6.eXeXeXeX: , w r 7 R eXeXeXeX0XG ' ~.^.^.F.l.;X].].]. .1 . aX",
+"aXp n.2X5X5X5Xj.-.-.-.r.r.r.-.=.G 9.eXeXeXeX6 j ( &.} i [.eXeXeXeXY Q J.I.I.L.5.(.;X].(.c.5 X aX",
+"3 a !.7X5X7X<X-.r.r.r.r.j.r.r.r.W w.eXeXeXeX6 v ,.Q.k.m s.eXeXeXeXL K C.L.L.L.F.D.'.'.(.I.u # ",
+"5 a ,X5XrXwX+X3.j.j.j.z.z.z.z.r.~ w.eXeXeXeX6 l ;.<._ 0 *XeXeXeX0X0 ( G.L.Q.L.5.C.].'.^.^.g $ ",
+"4 b 2X7X7XrX!.l.x.x.x.x.U.x.z.z.~ w.eXeXeXeX: , k z Y XeXeXeXeXY r } C.5.5.5.3.4.'.(.^.^.V % . ",
+"4 N 6X7X7XrXOXx.x.x.W.x.Y.Y.Y.Y.o.d.eXeXeXeX=X=X9XeXeXeXeXeXeX8.+ r [ 3.5.5.3.3.1.'._.(.^.A & . ",
+"5 N 2X6X5X5XW.x.x.x.x.W.Y.Y.Y.Y.o.d.eXeXeXeXeXeXeXeXeXeXeXeXeXeX[.r C | 1.3.3.3.:._._.^.I./ % ",
+"5 N ,X2X2X6XD.l.l.x.x.x.Y.Y.Y.R.=.f.eXeXeXeX[.[.[.[.*XeXeXeXeXeXeX*Xj ! *.1.1.1.1._._.^.^./ % ",
+"5 b ;X,X,X2XU.3.j.x.Y.W.).OX#X@Xt.f.eXeXeXeX: : 7 7 : 6 6.eXeXeXeXeXd.k { *.*.*.1.OX_.(.^.V % ",
+"4 a ].;X;X>X`.C.L.^._._.OX@X#X#Xt.f.eXeXeXeX6 z #.o.I z 6 w.eXeXeXeX*Xr ! { %.%.,.OX_.(.^.n % ",
+"4 u /.;X;X;X@XF.Q.Q._._._.@X#X#Xa.f.eXeXeXeX9 I a.Z.y.+.k F eXeXeXeX0Xr Q { { { 4.'.(.^.^.u O ",
+"aXu V.;X;X;X>XF.K.Q.Q._._.OX#X@Xt.f.eXeXeXeX9 I Z.U.z.=.z 8.eXeXeXeX=X7 Q { { ( A._.^.^.F.5 O ",
+"aXu ] '.'.;X>XK.J.Q.Q.^._._.~.Z.R w.eXeXeXeX6 S =.>.+.G S 9XeXeXeXeXh.r ! ( ( [ L.L.L.L.:.1 . aX",
+"aX5 b '.'.'.@X`.F.K.Q.Q.~.A.e.$.P }.eXeXeXeXF L E #.9.[.eXeXeXeXeXeXS k ! ( ! *.H.K.H.L.Z % aX",
+"aX1 u J.(.'.'.;XC.F.W.Q.K.&.h.eXeXeXeXeXeXeXeXeXeXeXeXeXeXeXeXeXeX@.2 c ! ! ! F.H.L.H.F.w O aX",
+"aXaXw ( (.(.`.`.`.C.F.K.A.~ [.eXeXeXeXeXeXeXeXeXeXeXeXeXeXeXeX*XF 7 r C B A | H.H.H.H.| 1 X aXaX",
+"aXaX3 u D.~.~.~.`.D.C.J.V.` .X=X=X3X9X9XeXeX9X=XeXeXeX$X{.9.S 2 r r B B B V 5.H.H.H.H.s + . aXaX",
+"aXaXaXt / ~.W.~.`.`.5.V.C.>.M i 6 - = q eXeXS o B.eX*Xo 7 r r r B C B r B 1.H.H.L.L.*.5 X . aXaX",
+"aXaXaX1 u 4.~.~.~.~.~.c.V.l.4.,.~ H i S eXeXF : [.eX=X, r W ^ W W C C W *.Q.Q.Q.Q.J.e % aXaXaX",
+"aXaXaXaX5 b K.~.~.R.~.`.l.C.J.A.,.=.H P eXeXU , [.eX=X7 v ^ %.^ W ^ ^ -.^.^.W._.W.Z > . aXaXaX",
+"aXaXaXaX1 5 / ~.~.~.~.~.`.F.F.<.r.,.~ R eXeXY 7 [.eX=Xq ~ 0.r.0.%.o.g.#XOXOXOXOX,.4 O aXaXaXaX",
+"aXaXaXaXaX1 y } ~.`.`.`.'.#XR.,.r.,.+.X.9.7.I G 9.7.7.X.0.i.i.j.i.9XeX0X=X4X1XT.r # aXaXaXaXaX",
+"aXaXaXaXaXaX1 u :.'.'.OX#X#X1X+XA.3.r.-.=.=.>.e.i.$.0.0.i.j.g.0XpXpXpXyXuXyXXXk % aXaXaXaXaXaX",
+"aXaXaXaXaXaXaX1 p >.>X#X>X1X1X1X1X1X|.U.z.3.j.z.y.i.i.U..XqXpXiXpXpXpXiXiX Xh % . . aXaXaXaXaXaX",
+"aXaXaXaXaXaXaXaX< y _ 3XtXuXtXwX=X4X4X4X5X<X>X=X3X0XeXtXyXuXiXiXiXiXiXuXp.y # . . aXaXaXaXaXaXaX",
+"aXaXaXaXaXaXaXaXaX* y J %XpXiXwX4X4X4X5X4X5X5XwXwXwXeXtXeXtXtXyXyXyX&XJ 3 # aXaXaXaXaXaXaXaXaX",
+"aXaXaXaXaXaXaXaXaXaX* 3 k R XwX4X1X1X1X1X5X4X5X5XwX5XwXwXtXtXtX&X@.y & X aXaXaXaXaXaXaXaXaXaX",
+"aXaXaXaXaXaXaXaXaXaXaXaX& 3 a J t.|.>X,X>X>X2X1X1X1X5X4X0X<Xm.T i > O o aXaXaXaXaXaXaXaXaXaXaX",
+"aXaXaXaXaXaXaXaXaXaXaXaXaXaX% > w p b _ >.b.S.T.T.U.t.O.N p 4 & O . o aXaXaXaXaXaXaXaXaXaXaXaXaX",
+"aXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaX$ $ ; 1 4 5 5 w w 5 3 > % O . . o aXaXaXaXaXaXaXaXaXaXaXaXaXaXaX",
+"aXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXO X X X o X X X o aXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaX"
+};
diff --git a/src/xpm/bitcoin80.xpm b/src/xpm/bitcoin80.xpm
new file mode 100644
index 0000000000..c3c816e92d
--- /dev/null
+++ b/src/xpm/bitcoin80.xpm
@@ -0,0 +1,292 @@
+/* XPM */
+static const char * bitcoin80_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"80 80 206 2",
+" c #725203",
+". c #785706",
+"X c #7B5907",
+"o c #7C5A09",
+"O c #7F5F10",
+"+ c #815E0B",
+"@ c #85620C",
+"# c #89650F",
+"$ c #856313",
+"% c #896614",
+"& c #8D6913",
+"* c #886718",
+"= c #8D6B1B",
+"- c #926D14",
+"; c #926E1B",
+": c #967116",
+"> c #997317",
+", c #95711E",
+"< c #9B7419",
+"1 c #9F781B",
+"2 c #A27B1D",
+"3 c #8F6F22",
+"4 c #926F21",
+"5 c #947323",
+"6 c #9A7623",
+"7 c #9D7925",
+"8 c #957628",
+"9 c #9A7729",
+"0 c #9D7B2B",
+"q c #9D7F33",
+"w c #A47D23",
+"e c #A97F27",
+"r c #A37E2B",
+"t c #9F8030",
+"y c #A78021",
+"u c #AC8425",
+"i c #A5802D",
+"p c #AC842B",
+"a c #AF8829",
+"s c #B2872C",
+"d c #B28B2D",
+"f c #A68333",
+"g c #AA8633",
+"h c #AD8A36",
+"j c #A4863A",
+"k c #A88638",
+"l c #A7893B",
+"z c #AC8B3B",
+"x c #B28732",
+"c c #B48C32",
+"v c #B98E34",
+"b c #B28D3B",
+"n c #B88F3C",
+"m c #B69033",
+"M c #BD9235",
+"N c #B4913D",
+"B c #BC943A",
+"V c #BE993C",
+"C c #C19336",
+"Z c #C1953B",
+"A c #C49A3C",
+"S c #C99C3D",
+"D c #CDA13F",
+"F c #D0A33F",
+"G c #A88B40",
+"H c #B08F40",
+"J c #AE9142",
+"K c #AE944C",
+"L c #B49443",
+"P c #BB9542",
+"I c #B49946",
+"U c #BD9846",
+"Y c #B3964C",
+"T c #BB974A",
+"R c #B6994A",
+"E c #BF9C4A",
+"W c #B69B53",
+"Q c #B99D53",
+"! c #BCA055",
+"~ c #BDA25A",
+"^ c #C49742",
+"/ c #C49C43",
+"( c #CB9E42",
+") c #C49D4B",
+"_ c #C99E4C",
+"` c #C29F52",
+"' c #C5A244",
+"] c #CDA245",
+"[ c #C5A34C",
+"{ c #CCA34B",
+"} c #CCA94D",
+"| c #D2A445",
+" . c #D1A54B",
+".. c #D5AA4E",
+"X. c #DBAF4F",
+"o. c #C6A352",
+"O. c #CBA554",
+"+. c #C5AA57",
+"@. c #CEAC54",
+"#. c #C4A65A",
+"$. c #CDA458",
+"%. c #C2A85F",
+"&. c #CEAA5B",
+"*. c #D0A550",
+"=. c #D4AB53",
+"-. c #DBAE53",
+";. c #D0A75B",
+":. c #D4AC5A",
+">. c #D9AE5C",
+",. c #CEB25E",
+"<. c #D4B156",
+"1. c #DDB156",
+"2. c #D4B25C",
+"3. c #DCB35D",
+"4. c #D7B85C",
+"5. c #DCBA5E",
+"6. c #E2B355",
+"7. c #E2B65B",
+"8. c #E4BA5D",
+"9. c #EABD5E",
+"0. c #C5AA62",
+"q. c #CCAE63",
+"w. c #C6AE69",
+"e. c #D5AF62",
+"r. c #CEB167",
+"t. c #CCB36C",
+"y. c #D5B162",
+"u. c #DCB462",
+"i. c #D7B964",
+"p. c #DCBC64",
+"a. c #D2B66B",
+"s. c #DCB669",
+"d. c #D7BE69",
+"f. c #DFB86A",
+"g. c #D0B771",
+"h. c #D2BA74",
+"j. c #D5BE78",
+"k. c #E1B766",
+"l. c #E4BB63",
+"z. c #E9BE63",
+"x. c #E3BB6A",
+"c. c #E9BF6A",
+"v. c #E1BE72",
+"b. c #DDC16B",
+"n. c #DAC27E",
+"m. c #E4C164",
+"M. c #ECC264",
+"N. c #E4C36B",
+"B. c #EBC36C",
+"V. c #E7C96F",
+"C. c #EECA6E",
+"Z. c #F1C564",
+"A. c #F1C76A",
+"S. c #F5CB6C",
+"D. c #FACE6D",
+"F. c #F4D06F",
+"G. c #FCD06E",
+"H. c #E5C371",
+"J. c #EDC573",
+"K. c #E4CA73",
+"L. c #ECCC74",
+"P. c #E7CF7A",
+"I. c #EBCD7A",
+"U. c #F3CD73",
+"Y. c #F8CE71",
+"T. c #F3CD7A",
+"R. c #EDD076",
+"E. c #EDD17B",
+"W. c #F4D274",
+"Q. c #FBD274",
+"!. c #FED977",
+"~. c #F3D47B",
+"^. c #FDD47A",
+"/. c #F5DA7C",
+"(. c #FDDA7C",
+"). c #FFE07F",
+"_. c #DBC481",
+"`. c #DFC885",
+"'. c #E1CA86",
+"]. c #EACC80",
+"[. c #E4CD8A",
+"{. c #EED383",
+"}. c #E7D18F",
+"|. c #EAD38C",
+" X c #F4D680",
+".X c #FDD780",
+"XX c #F5DA83",
+"oX c #FCDC84",
+"OX c #F5DB8A",
+"+X c #FADE89",
+"@X c #EAD492",
+"#X c #EED896",
+"$X c #EFDA9A",
+"%X c #F1DD9D",
+"&X c #FDE283",
+"*X c #F6E18D",
+"=X c #FEE48D",
+"-X c #FFE692",
+";X c #FFE894",
+":X c #FBE799",
+">X c #FFEA98",
+",X c #F6E2A3",
+"<X c #FAE6A6",
+"1X c #FAE7A8",
+"2X c #FDEAAB",
+"3X c None",
+/* pixels */
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3Xu u u u u u u y y u y 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3Xu u u u u u u u u a u u u u u u a u u 2 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3Xu u u u u u u u s m V D ' { ' D M d u u a u u u u 2 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3Xu u u u u u M } m.~.oX=X=X=X=X=X-X-X=X&X/.m.=.V u u a u u w 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3Xu u u u u M 4.~.=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X/.5.Z u u u u u 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3Xu u u u ] V.&X=X=X&X=X=X=X=X=X=X=X=X=X&X=X=X=X=X=X=X=X=X=X=XW.} a u u u 2 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3Xu a u u ' W.=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X+X=X=X=X&X=X=X=X~.} a u u u < 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3Xu u u M N.=X&X=X=X=X=X=X=X=X-X=X=X=X=X&X=X=X=XoX=X=X=X=X&X+X=X=X=X=X=X=X=XL.M u u u < 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3Xu u u u } XX=X=X=X&X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X*X=X=X=X=X=X=X=X=X=X=X=X=X=X=XoX<.a u u 2 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3Xu u u s m.&X=X=X=X=X=X=X=X=X=X=X=X=X=X/.L.M.m.9.m.9.m.C.~.&X*X=X=X=X=X=X=X=X=X=X=X=X=XV.m u u 2 o 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3Xu u u c R.=X=X=X=X=X=X=X=X=X=X=XoXC.1.| S S A S D D D D ] ] ..<.N./.=X-X=X-X=X=X=X=X=X=X=XXXZ u a 2 o 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3Xu u u m XX=X=X=X=X=X=X=X=X=X=XW.3.| ^ A C M M M C S S A A A / ( { =.<.l.I.=X-X-X=X=X=X=X=X=X=X=XV a u 2 . 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3Xu u m /.=X=X=X-X=X=X=X=X=X~.1.D ] S Z v x p s u s d d v c c v V { =.7.8.7.l.T.=X-X=X-X-X-X-X-X=X=XV u a 1 3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3Xu u d /.=X=X=X=X=X=X=X=X&X8.^ A ( S M v e $.r.e.r.u w i a.a.a.&.b ^ =.l.l.l.c.z.z.XX-X-X-X-X=X-X-X;X&XV u u : 3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3Xu u s R.=X=X=X=X=X=X=X=XU.{ ^ Z C ( A M u w [.2X2X2X0 - 7 2X2X1X@Xi P *.l.x.B.U.C.z.z.W.-X-X-X-X-X-X=X-X*Xd a u # . 3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3Xu u u l.=X=X=X=X-X=X=X=Xm.Z Z Z Z n Z Z v e , '.2X2X2X5 & ; 2X2X2X}.7 b { 3.x.^.^.^.Y.A.z.R.-X;X;X;X;X-X;X-XP.a u y . 3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3Xu u } -X-X=X-X=X=X=X=Xl.M M Z C C C C C x e ; '.2X2X2X, $ = 2X2X2X}.6 h ) >.J..X.X.X.X(.W.Z.C.&X;X;X;X;X-X-X-X<.u u < 3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3Xu u c oX=X=X=X=X=X=X=Xl.Z C M M C C v v v s w = '.2X2X2X5 $ = 2X2X2X}.5 g ) u./.+X+X=X=X=X&XW.Z.F.=X;X;X;X;X-X-X*XV u y @ X 3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3Xu u u N.-X-X-X-X=X=X=XB.Z M C v v s e e e e w > % `.2X2X2X= + % 2X2X2X}.= r L 4.E.OX+X-X=X=X&X).W.M.R.;X;X;X-X-X-X;XR.u u y 3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3Xu u U -X-X-X-X-X-X=XW.^ C C C x e e r 6 5 4 ; = $ `.2X2X2X= O = 2X2X2X}.O = t Q ,.b.P./.*X=X&X&X).F.M.W.;X;X;X;X&X-X&X} u u O 3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3Xu u u R.-X-X-X-X-X-X=X=.{ ^ Z C x n 2X2X<X<X1X2X<X<X2X2X2X2X1X1X<X2X2X2X<X$X[.b.~ J I ~ b.P.&X&X&X).!.F.m.).;X;X;X;X;X&X).u y y 3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3Xu u U -X-X-X-X-X-X-Xc.=.=. ._ ^ x z 2X2X1X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X<Xn.l I ,.K./.).).).F.Z.Z.&X;X;X=X-X-X&X} u u O 3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3Xu u V.-X;X-X-X-X-XOX>.>.>.=.=._ n b 2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X:XI N +.V./.).).F.F.9.W.;X=X;X-X-X-XR.u u > 3X3X3X3X3X3X3X3X",
+"3X3X3X3X3Xu u d =X;X-X-X-X-X-Xx.>.>.>.>.>...^ P 2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X,Xl N 4.R.!.!.!.G.Z.M.&X;X=X=X-X-X-XB a u 3X3X3X3X3X3X3X",
+"3X3X3X3X3Xu u @.;X;X-X;X;X;XXX>.:.>.>.>.>.>._ P ` Y Y W _.2X2X2X2X2X2X@XW W ~ 0.t.'.<X2X2X2X2X2X2X2X2X'.0 ' m./.!.!.Q.S.9.F.=X;X-X=X-X&X4.u u @ 3X3X3X3X3X3X3X",
+"3X3X3X3X3Xu u P.;X;X;X;X-X:XN.>.>.>.>.>.>.>.=._ P z r 4 8 2X2X2X2X2X2X_.. $ , 6 1 3 t ~ 1X2X2X2X2X2X2X2Xt B 5.G.!.!.G.G.M.9.&X;X=X-X-X=X/.u u > 3X3X3X3X3X3X3X",
+"3X3X3X3Xu u d =X;X;X=X;X;X=X3.>.>.>.e.>.3.3.>.:.*._ P r 9 2X2X2X2X2X1Xn.@ , c B N m h 8 ~ 2X2X2X2X2X2X2XI h <.F.!.G.G.F.M.9.W.;X=X-X-X=X=Xm u y . 3X3X3X3X3X3X",
+"3X3X3X3Xu u ' -X-X>X-X-X-X X>.>.>.>.>.>.>.u.u.u.u.3.$.P f 2X2X2X2X2X2X_.$ i / -.<.8.} h 8 1X2X2X2X2X2X2X! i <.S.G.G.G.G.Z.9.Z.=X-X=X-X&X-X} u u X 3X3X3X3X3X3X",
+"3X3X3X3Xu u 4.-X-X-X-X-X-XJ.3.>.>.k.k.k.k.k.u.k.u.u.:.U k 2X2X2X2X2X1X_.% f } 8.Z.F.8.U 8 ,X2X2X2X2X2X2XI g } Z.D.G.D.G.D.Z.9.&X-X=X=X=X-Xm.u u @ 3X3X3X3X3X3X",
+"3X3X3X3Xu u K.;X-X;X-X>X-Xk.3.k.k.k.k.k.k.k.k.k.k.u.e.U k 2X2X2X2X2X2X_.% f [ 8.F.M.<.b i 2X2X2X2X2X2X2Xt a X.Z.D.D.D.G.G.Z.9./.=X-X=X=X=XR.u u & 3X3X3X3X3X3X",
+"3X3X3X3Xu u E.;X-X;X-X-X=Xl.l.x.c.k.x.k.k.x.x.v.x.x.u.) z 2X2X2X2X2X2X_.$ 7 L <.<.} N 6 h.2X2X2X2X2X2X_.: V 1.S.D.D.G.D.S.M.6.W.-X=X-X=X=X&Xu u > X 3X3X3X3X3X",
+"3X3X3Xu a u =X;X;X;X;X;XoX7.z.c.c.c.c.c.c.c.c.c.x.k.u.) z 2X2X2X2X2X2Xn.o = i N h i l n.2X2X2X2X2X2X<Xt t D 7.M.Z.z.z.9.9.9.6.M.-X=X=X=X;X=Xm u 1 3X3X3X3X3X",
+"3X3X3Xy u a =X;X;X;X;X;XXXl.z.c.c.c.c.T.J.J.T.v.J.J.s.` z 2X2X2X2X2X2X#XW ~ ~ t.n.$X2X2X2X2X2X2X2X,Xt % t V X.8.9.8.9.9.9.6.6.M.-X=X=X=X=X&XM u 2 3X3X3X3X3X",
+"3X3X3Xu u m -X-X-X;X;X;X~.z.z.c.c.c.c..XJ.J.J.J.J.J.x.O.b 2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2Xw.$ * y V X.7.8.8.9.7.8.7.6.8.=X=X-X-X=X-XV a y 3X3X3X3X3X",
+"3X3X3Xu a m -X-X-X;X;X;X~.7.z.c.c.c.c.c.c.J.T.J.T.J.B.O.b 2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X,X~ , c ' X.6.6.7.6.6.6.6.8.=X=X=X-X&X-XV u y 3X3X3X3X3X",
+"3X3X3Xu u m -X-X-X-X-X-X/.8.l.z.c.T.c.J.c.J.T.v.J.J.x.O.G 2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2Xn.r v { 6.6.6.6.6.6.-.7.&X-X=X=X=X-XD u y 3X3X3X3X3X",
+"3X3X3Xu u d =X-X-X-X-X-X~.7.z.z.c.c.c.c.c.J.c.T.T.^.T.y.R 2X2X2X2X2X2X@XK K W W W ~ h.#X1X2X2X2X2X2X2X2X2Xa.i Z ..X.6.6.-.-.6.7.-X-X-X-X-X-XD u 2 3X3X3X3X3X",
+"3X3X3Xw u a =X-X-X-X-X-X~.7.7.8.c.c.c.c.T..X.X+X+X+XXXi.R 2X2X2X2X2X2Xn.. * 5 8 5 3 = * q `.2X2X2X2X2X2X2X<Xk c | X.6.-.-.-.-.z.&X;X=X;X-X;XV u w 3X3X3X3X3X",
+"3X3X3Xu u u =X-X=X-X-X-X/.8.M.B.Y.T.^.^.^..X.XoXoX+XXXi.R 2X2X2X2X2X2X_.$ 0 b U U N l t 5 $ `.2X2X2X2X2X2X2X0.e Z .....-.-.6.c.;X=X;X=X;X-Xd u 1 3X3X3X3X3X",
+"3X3X3X3Xu a E.-X-X-X-X-X=Xz.S.D.Y.^.Q.^.^.^..XoX+X+XXXi.R 2X2X2X2X2X2X_.= l +.u.i.,.O.E h 5 G 2X2X2X2X2X2X2X_.0 n | . .*. .*.T.-X;X;X;X-X=Xa u : 3X3X3X3X3X",
+"3X3X3X3Xu u N.-X-X-X=X-X-XA.Z.S.Y.Q.Q.^.^..X.XoXoX&X.Xi.R 2X2X2X2X2X2X_.= N y.H.H.m.i.y.E f 8 2X2X2X2X2X2X2X'.6 n | . . . . ..X;X;X;X;X-X~.u u & 3X3X3X3X3X",
+"3X3X3X3Xu u <.-X-X=X=X-X-XW.Z.S.Y.Y.Q.^.^.^.(..XoX=XXXi.R 2X2X2X2X2X2X_.= L 4.H.J.H.x.i.o.k j 2X2X2X2X2X2X2X_.6 B . . . .{ =.-X;X-X;X-X-Xb.a u @ 3X3X3X3X3X",
+"3X3X3X3Xy a V =X=X-X-X=X-XXXZ.S.Y.Y.Y.Q.!.^..X.XoXoXE.y.I 2X2X2X2X2X2X_.= J y.b.H.N.p.&.P 0 g.2X2X2X2X2X2X2Xr.r B _ { .| ] l.-X;X;X-X-X;X..u u . . 3X3X3X3X3X",
+"3X3X3X3Xy u a =X=X=X=X-X=X-XM.Z.S.Y.Y.Q.Q.^.^.^.U.J.u.E l 2X2X2X2X2X2X_.* k o.e.e.$.` P q W 1X2X2X2X2X2X2X2XG i B ] | ] ] ( ~.=X;X;X;X;X;XM u y 3X3X3X3X3X3X",
+"3X3X3X3X3Xu u V.-X=X-X=X-X-XF.M.A.D.Y.Q.Y.Q.Y.B.2.[ N 0 j 2X2X2X2X2X2X_.O 5 l G z H H Q _.2X2X2X2X2X2X2X2X#X, g ^ ] ] | ] ..-X-X-X-X&X;X).u u : 3X3X3X3X3X3X",
+"3X3X3X3X3Xu u } =X=X=X=X-X=X&XM.Z.S.D.W.Q.Y.B.*.a.#X@X|.,X2X2X2X2X2X2X,X[.[.}.}.%X<X2X2X2X2X2X2X2X2X2X2X<Xj 6 b / ] ] ] ] M.-X-X-X-X-X-X4.u u O 3X3X3X3X3X3X",
+"3X3X3X3X3Xy u d =X=X=X=X=X=X-XS.M.A.S.S.U.A.u.) n.2X2X2X2X2X2X2X2X2X2X2X2X1X2X2X2X2X2X2X2X2X2X2X2X2X2X2XW ; i M ( S S S ] &X-X-X-X-X=X-Xm u y . X 3X3X3X3X3X3X",
+"3X3X3X3X3X3Xu u p.=X=X=X=X=X-X&X9.Z.C.S.S.M.:.b [.2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X%XG = r x v C D D D m.-X-X-X-X-X-XR.u u : 3X3X3X3X3X3X3X",
+"3X3X3X3X3X3Xy u B =X=X=X=X=X=X=XF.9.M.A.C.M.=.h %X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X2X1X#X~ 4 ; r p v v M C A | &X-X-X-X-X-X-X] u u X 3X3X3X3X3X3X3X",
+"3X3X3X3X3X3Xy u u N.=X=X-X=X-X=X=XM.z.M.M.M.1.V #X%X%X%X%X$X%X%X<X2X2X2X%X$X%X2X2X2X<X[.n.t.W q = , r i x v C C C M C W.-X-X-X-X-X-X/.u u 1 X 3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3Xu u V *X=X=X*X=X=X=XoX8.M.M.M.5.{ m r , ; $ $ o o `.2X2X2X3 o $ 2X2X2X[.o $ 4 9 0 r g x v m C M C C C 8.&X-X-X-X-X-X-X[ u u @ 3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X2 u u 5.=X=X=X=X=X=X=XI.8.M.M.z.3.O.) P b r 0 4 % `.2X2X2X3 $ * 2X2X2X[.$ 4 r e ^ n n Z Z Z C C C M | =X=X-X-X-X-X-XR.u u < 3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3Xy u d XX=X=X=X=X-X=X=XS.8.8.M.M.z.z.7.{ _ U g 5 `.2X2X2X8 = 3 2X2X2X}.3 0 x ^ _ ^ ^ ^ Z ^ B ^ C .&X-X-X-X-X-X-X=XB u u o 3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X1 u u ' =X=X*X=X=X*X=X=XW.8.M.M.A.S.l.u.>.o.L r [.2X2X2X9 = 8 2X2X2X}.4 r ^ _ *.*._ ) ) ^ ^ ^ O.oX=X-X-X-X-X-X-X<.u u : . 3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3Xy u u i.=X=X=X=X=X-X*X=XW.9.M.A.B.3.5.5.;.U f [.2X2X2Xq 4 8 2X2X2X}.r q _ _ ;.;.*._ _ ` _ e.+X-X-X-X-X-X-X-XR.a u 2 3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3Xu u u K.=X=X=X-X=X=X=X=XXXz.M.8.5.8.u.:.) h }.2X2X2Xj r f 2X2X2X@Xq T _ e.e.u.e.;.$.$.b.-X-X-X=X;X=X;X-X&Xa a u + 3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3Xu u d ~.=X=X=X=X=X-X=X-X+XC.3.5.7.7.2.@.) q.r.q.q.H H L g.r.w.q.T ` e.k.v.k.k.s.s.{.-X-X;X-X;X;X;X;X*XV u u & . 3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X2 u u c XX-X=X=X=X=X-X=X-X-X Xl.7.7.u.2.$.o.[ [ o.O.$.&.&.` ` ` q.s.k.v.k.k.x.{.%X>X>X>X;X>X;X>X>X*XV u u > 3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X2 u u m ~.=X-X-X-X=X-X-X-X-X-X Xc.7.5.u.3.e.y.u.s.f.k.s.e.e.s.s.k.k.k.v. X:X>X>X>X>X>X>X;X>X>X*XV u u < 3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X2 u u d R.-X=X-X=X-X-X-X-X-X-X-X+XI.v.u.s.l.k.k.x.x.x.s.s.s.s.j.].+X>X>X>X>X>X:X>X>X>X>X>XOXV u u 1 3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X2 u u a p.-X-X-X;X;X;X-X-X-X:X-X-X-X-XOX XL.J.J.J.L.I.].OX:X>X-X>X>X-X>X>X>X>X>X>X>X>XK.a a u < 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X2 u u u @.=X;X;X>X;X-X-X>X-X-X-X-X;X-X-X-X-X-X>X>X-X>X-X>X>X>X>X;X>X>X>X-X>X-X-X:X<.u u u > 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X1 u u u m n.>X;X>X>X-X-X-X-X>X-X-X-X;X;X;X-X-X-X-X-X>X-X-X>X-X>X>X-X>X>X>X>XK.B u u u & 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3Xw u u u / {.>X>X-X-X-X-X-X-X-X-X-X-X;X-X-X;X:X-X-X>X-X:X>X;X;X>X;X;X{.[ u u u w + 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X2 u u u u ) K.-X-X-X-X:X-X-X-X-X-X-X-X-X-X-X-X-X>X-X-X-X-X-X-XE.[ u u u u - . 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X1 u u u u m 2.E.-X+X:X-X-X-X-X-X-X-X-X-X:X-X-X-X;X-XOXi.B u u u u 1 o 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X> u u u u u v [ l.I.OX-X-X-X-X-X-X-X-X+XI.f.@.m u u u u u 1 + o 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X& 2 u u u u u u u d B V V V V B d u u u u u u u y - . o 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X+ - 1 u u u u u u u a u u u u u u u u 2 - o o 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3Xo . X # - > 1 2 2 2 1 2 > - # o . o 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3Xo o . o 3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X",
+"3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X3X"
+};
diff --git a/src/xpm/check.xpm b/src/xpm/check.xpm
new file mode 100644
index 0000000000..e62b656961
--- /dev/null
+++ b/src/xpm/check.xpm
@@ -0,0 +1,41 @@
+/* XPM */
+static const char * check_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"32 32 3 1",
+" c #008000",
+". c #00FF00",
+"X c None",
+/* pixels */
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXX XXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXX . XXXXXXXXXXX",
+"XXXXXXXXXXXXXXXX .. XXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXX . XXXXXXXXXXXX",
+"XXXXXXXXXXXXXXX .. XXXXXXXXXXXXX",
+"XXXXXXXXXXX XX . XXXXXXXXXXXXX",
+"XXXXXXXXXXX . .. XXXXXXXXXXXXXX",
+"XXXXXXXXXXX .. . XXXXXXXXXXXXXX",
+"XXXXXXXXXXXX ... XXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXX . XXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXX XXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+};
diff --git a/src/xpm/send16.xpm b/src/xpm/send16.xpm
new file mode 100644
index 0000000000..7da44d9c56
--- /dev/null
+++ b/src/xpm/send16.xpm
@@ -0,0 +1,278 @@
+/* XPM */
+static const char * send16_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"16 16 256 2",
+" c #ADF7AD",
+". c #9CFF9C",
+"X c None",
+"o c #ADEFAD",
+"O c #94FF94",
+"+ c #D6CECE",
+"@ c #8CFF8C",
+"# c #CECECE",
+"$ c #CECEC5",
+"% c #84FF84",
+"& c #CEC5C5",
+"* c #73FF73",
+"= c #C5C5C5",
+"- c #6BFF6B",
+"; c #73F773",
+": c #C5BDBD",
+"> c #6BF76B",
+", c #BDBDBD",
+"< c #63F763",
+"1 c #B5B5B5",
+"2 c #52F752",
+"3 c #42FF42",
+"4 c #3AFF3A",
+"5 c #ADADAD",
+"6 c #ADADA5",
+"7 c #4AEF4A",
+"8 c #29FF29",
+"9 c #A5A5A5",
+"0 c #42E642",
+"q c #9CA59C",
+"w c #3AE63A",
+"e c #10FF10",
+"r c #08FF08",
+"t c #949C94",
+"y c #00FF00",
+"u c #00F700",
+"i c #8C948C",
+"p c #00EF00",
+"a c #08E608",
+"s c #10DE10",
+"d c #00E600",
+"f c #00DE00",
+"g c #19C519",
+"h c #00CE00",
+"j c #00C500",
+"k c #008C00",
+"l c #008400",
+"z c #669900",
+"x c #999900",
+"c c #CC9900",
+"v c #FF9900",
+"b c #00CC00",
+"n c #33CC00",
+"m c #66CC00",
+"M c #99CC00",
+"N c #CCCC00",
+"B c #FFCC00",
+"V c #66FF00",
+"C c #99FF00",
+"Z c #CCFF00",
+"A c #000033",
+"S c #330033",
+"D c #660033",
+"F c #990033",
+"G c #CC0033",
+"H c #FF0033",
+"J c #003333",
+"K c #333333",
+"L c #663333",
+"P c #993333",
+"I c #CC3333",
+"U c #FF3333",
+"Y c #006633",
+"T c #336633",
+"R c #666633",
+"E c #996633",
+"W c #CC6633",
+"Q c #FF6633",
+"! c #009933",
+"~ c #339933",
+"^ c #669933",
+"/ c #999933",
+"( c #CC9933",
+") c #FF9933",
+"_ c #00CC33",
+"` c #33CC33",
+"' c #66CC33",
+"] c #99CC33",
+"[ c #CCCC33",
+"{ c #FFCC33",
+"} c #33FF33",
+"| c #66FF33",
+" . c #99FF33",
+".. c #CCFF33",
+"X. c #FFFF33",
+"o. c #000066",
+"O. c #330066",
+"+. c #660066",
+"@. c #990066",
+"#. c #CC0066",
+"$. c #FF0066",
+"%. c #003366",
+"&. c #333366",
+"*. c #663366",
+"=. c #993366",
+"-. c #CC3366",
+";. c #FF3366",
+":. c #006666",
+">. c #336666",
+",. c #666666",
+"<. c #996666",
+"1. c #CC6666",
+"2. c #009966",
+"3. c #339966",
+"4. c #669966",
+"5. c #999966",
+"6. c #CC9966",
+"7. c #FF9966",
+"8. c #00CC66",
+"9. c #33CC66",
+"0. c #99CC66",
+"q. c #CCCC66",
+"w. c #FFCC66",
+"e. c #00FF66",
+"r. c #33FF66",
+"t. c #99FF66",
+"y. c #CCFF66",
+"u. c #FF00CC",
+"i. c #CC00FF",
+"p. c #009999",
+"a. c #993399",
+"s. c #990099",
+"d. c #CC0099",
+"f. c #000099",
+"g. c #333399",
+"h. c #660099",
+"j. c #CC3399",
+"k. c #FF0099",
+"l. c #006699",
+"z. c #336699",
+"x. c #663399",
+"c. c #996699",
+"v. c #CC6699",
+"b. c #FF3399",
+"n. c #339999",
+"m. c #669999",
+"M. c #999999",
+"N. c #CC9999",
+"B. c #FF9999",
+"V. c #00CC99",
+"C. c #33CC99",
+"Z. c #66CC66",
+"A. c #99CC99",
+"S. c #CCCC99",
+"D. c #FFCC99",
+"F. c #00FF99",
+"G. c #33FF99",
+"H. c #66CC99",
+"J. c #99FF99",
+"K. c #CCFF99",
+"L. c #FFFF99",
+"P. c #0000CC",
+"I. c #330099",
+"U. c #6600CC",
+"Y. c #9900CC",
+"T. c #CC00CC",
+"R. c #003399",
+"E. c #3333CC",
+"W. c #6633CC",
+"Q. c #9933CC",
+"!. c #CC33CC",
+"~. c #FF33CC",
+"^. c #0066CC",
+"/. c #3366CC",
+"(. c #666699",
+"). c #9966CC",
+"_. c #CC66CC",
+"`. c #FF6699",
+"'. c #0099CC",
+"]. c #3399CC",
+"[. c #6699CC",
+"{. c #9999CC",
+"}. c #CC99CC",
+"|. c #FF99CC",
+" X c #00CCCC",
+".X c #33CCCC",
+"XX c #66CCCC",
+"oX c #99CCCC",
+"OX c #CCCCCC",
+"+X c #FFCCCC",
+"@X c #00FFCC",
+"#X c #33FFCC",
+"$X c #66FF99",
+"%X c #99FFCC",
+"&X c #CCFFCC",
+"*X c #FFFFCC",
+"=X c #3300CC",
+"-X c #6600FF",
+";X c #9900FF",
+":X c #0033CC",
+">X c #3333FF",
+",X c #6633FF",
+"<X c #9933FF",
+"1X c #CC33FF",
+"2X c #FF33FF",
+"3X c #0066FF",
+"4X c #3366FF",
+"5X c #6666CC",
+"6X c #9966FF",
+"7X c #CC66FF",
+"8X c #FF66CC",
+"9X c #0099FF",
+"0X c #3399FF",
+"qX c #6699FF",
+"wX c #9999FF",
+"eX c #CC99FF",
+"rX c #FF99FF",
+"tX c #00CCFF",
+"yX c #33CCFF",
+"uX c #66CCFF",
+"iX c #99CCFF",
+"pX c #CCCCFF",
+"aX c #FFCCFF",
+"sX c #33FFFF",
+"dX c #66FFCC",
+"fX c #99FFFF",
+"gX c #CCFFFF",
+"hX c #FF6666",
+"jX c #66FF66",
+"kX c #FFFF66",
+"lX c #6666FF",
+"zX c #FF66FF",
+"xX c #66FFFF",
+"cX c #A50021",
+"vX c #5F5F5F",
+"bX c #777777",
+"nX c #868686",
+"mX c #969696",
+"MX c #CBCBCB",
+"NX c #B2B2B2",
+"BX c #D7D7D7",
+"VX c #DDDDDD",
+"CX c #E3E3E3",
+"ZX c #EAEAEA",
+"AX c #F1F1F1",
+"SX c #F8F8F8",
+"DX c #FFFBF0",
+"FX c #A0A0A4",
+"GX c #808080",
+"HX c #FF0000",
+"JX c #00FF00",
+"KX c #FFFF00",
+"LX c #0000FF",
+"PX c #FF00FF",
+"IX c #00FFFF",
+"UX c #FFFFFF",
+/* pixels */
+"X X X X X X X k k X X X X X X X ",
+"X X X X X X X k j k X X X X X X ",
+"X X X X X X X k o j k X X X X X ",
+"X X X X X X X k * o j k X X X X ",
+"l k k k k k k k * * . j k X X X ",
+"l @ @ @ @ @ @ @ 4 e e % j k X X ",
+"l O 3 8 e r r r r r r e ; j k X ",
+"l @ e e r r r r r u p a f < j k ",
+"l @ r u p a a a a a f f w j k i ",
+"l O ; ; ; ; ; < a f b 0 j k t : ",
+"l k k k k k k k s j 7 j k q = X ",
+"X $ = = = = = k g 7 j k 9 & X X ",
+"X X X X X X X k 2 j k 6 $ X X X ",
+"X X X X X X X k j k 5 + X X X X ",
+"X X X X X X X k k 1 + X X X X X ",
+"X X X X X X X = , X X X X X X X "
+};
diff --git a/src/xpm/send16noshadow.xpm b/src/xpm/send16noshadow.xpm
new file mode 100644
index 0000000000..f6cef45e0d
--- /dev/null
+++ b/src/xpm/send16noshadow.xpm
@@ -0,0 +1,278 @@
+/* XPM */
+static const char * send16noshadow_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"16 16 256 2",
+" c #ADF7AD",
+". c #9CFF9C",
+"X c None",
+"o c #ADEFAD",
+"O c #94FF94",
+"+ c #D6CECE",
+"@ c #8CFF8C",
+"# c #CECECE",
+"$ c #CECEC5",
+"% c #84FF84",
+"& c #CEC5C5",
+"* c #73FF73",
+"= c #C5C5C5",
+"- c #6BFF6B",
+"; c #73F773",
+": c #C5BDBD",
+"> c #6BF76B",
+", c #BDBDBD",
+"< c #63F763",
+"1 c #B5B5B5",
+"2 c #52F752",
+"3 c #42FF42",
+"4 c #3AFF3A",
+"5 c #ADADAD",
+"6 c #ADADA5",
+"7 c #4AEF4A",
+"8 c #29FF29",
+"9 c #A5A5A5",
+"0 c #42E642",
+"q c #9CA59C",
+"w c #3AE63A",
+"e c #10FF10",
+"r c #08FF08",
+"t c #949C94",
+"y c #00FF00",
+"u c #00F700",
+"i c #8C948C",
+"p c #00EF00",
+"a c #08E608",
+"s c #10DE10",
+"d c #00E600",
+"f c #00DE00",
+"g c #19C519",
+"h c #00CE00",
+"j c #00C500",
+"k c #008C00",
+"l c #008400",
+"z c #669900",
+"x c #999900",
+"c c #CC9900",
+"v c #FF9900",
+"b c #00CC00",
+"n c #33CC00",
+"m c #66CC00",
+"M c #99CC00",
+"N c #CCCC00",
+"B c #FFCC00",
+"V c #66FF00",
+"C c #99FF00",
+"Z c #CCFF00",
+"A c #000033",
+"S c #330033",
+"D c #660033",
+"F c #990033",
+"G c #CC0033",
+"H c #FF0033",
+"J c #003333",
+"K c #333333",
+"L c #663333",
+"P c #993333",
+"I c #CC3333",
+"U c #FF3333",
+"Y c #006633",
+"T c #336633",
+"R c #666633",
+"E c #996633",
+"W c #CC6633",
+"Q c #FF6633",
+"! c #009933",
+"~ c #339933",
+"^ c #669933",
+"/ c #999933",
+"( c #CC9933",
+") c #FF9933",
+"_ c #00CC33",
+"` c #33CC33",
+"' c #66CC33",
+"] c #99CC33",
+"[ c #CCCC33",
+"{ c #FFCC33",
+"} c #33FF33",
+"| c #66FF33",
+" . c #99FF33",
+".. c #CCFF33",
+"X. c #FFFF33",
+"o. c #000066",
+"O. c #330066",
+"+. c #660066",
+"@. c #990066",
+"#. c #CC0066",
+"$. c #FF0066",
+"%. c #003366",
+"&. c #333366",
+"*. c #663366",
+"=. c #993366",
+"-. c #CC3366",
+";. c #FF3366",
+":. c #006666",
+">. c #336666",
+",. c #666666",
+"<. c #996666",
+"1. c #CC6666",
+"2. c #009966",
+"3. c #339966",
+"4. c #669966",
+"5. c #999966",
+"6. c #CC9966",
+"7. c #FF9966",
+"8. c #00CC66",
+"9. c #33CC66",
+"0. c #99CC66",
+"q. c #CCCC66",
+"w. c #FFCC66",
+"e. c #00FF66",
+"r. c #33FF66",
+"t. c #99FF66",
+"y. c #CCFF66",
+"u. c #FF00CC",
+"i. c #CC00FF",
+"p. c #009999",
+"a. c #993399",
+"s. c #990099",
+"d. c #CC0099",
+"f. c #000099",
+"g. c #333399",
+"h. c #660099",
+"j. c #CC3399",
+"k. c #FF0099",
+"l. c #006699",
+"z. c #336699",
+"x. c #663399",
+"c. c #996699",
+"v. c #CC6699",
+"b. c #FF3399",
+"n. c #339999",
+"m. c #669999",
+"M. c #999999",
+"N. c #CC9999",
+"B. c #FF9999",
+"V. c #00CC99",
+"C. c #33CC99",
+"Z. c #66CC66",
+"A. c #99CC99",
+"S. c #CCCC99",
+"D. c #FFCC99",
+"F. c #00FF99",
+"G. c #33FF99",
+"H. c #66CC99",
+"J. c #99FF99",
+"K. c #CCFF99",
+"L. c #FFFF99",
+"P. c #0000CC",
+"I. c #330099",
+"U. c #6600CC",
+"Y. c #9900CC",
+"T. c #CC00CC",
+"R. c #003399",
+"E. c #3333CC",
+"W. c #6633CC",
+"Q. c #9933CC",
+"!. c #CC33CC",
+"~. c #FF33CC",
+"^. c #0066CC",
+"/. c #3366CC",
+"(. c #666699",
+"). c #9966CC",
+"_. c #CC66CC",
+"`. c #FF6699",
+"'. c #0099CC",
+"]. c #3399CC",
+"[. c #6699CC",
+"{. c #9999CC",
+"}. c #CC99CC",
+"|. c #FF99CC",
+" X c #00CCCC",
+".X c #33CCCC",
+"XX c #66CCCC",
+"oX c #99CCCC",
+"OX c #CCCCCC",
+"+X c #FFCCCC",
+"@X c #00FFCC",
+"#X c #33FFCC",
+"$X c #66FF99",
+"%X c #99FFCC",
+"&X c #CCFFCC",
+"*X c #FFFFCC",
+"=X c #3300CC",
+"-X c #6600FF",
+";X c #9900FF",
+":X c #0033CC",
+">X c #3333FF",
+",X c #6633FF",
+"<X c #9933FF",
+"1X c #CC33FF",
+"2X c #FF33FF",
+"3X c #0066FF",
+"4X c #3366FF",
+"5X c #6666CC",
+"6X c #9966FF",
+"7X c #CC66FF",
+"8X c #FF66CC",
+"9X c #0099FF",
+"0X c #3399FF",
+"qX c #6699FF",
+"wX c #9999FF",
+"eX c #CC99FF",
+"rX c #FF99FF",
+"tX c #00CCFF",
+"yX c #33CCFF",
+"uX c #66CCFF",
+"iX c #99CCFF",
+"pX c #CCCCFF",
+"aX c #FFCCFF",
+"sX c #33FFFF",
+"dX c #66FFCC",
+"fX c #99FFFF",
+"gX c #CCFFFF",
+"hX c #FF6666",
+"jX c #66FF66",
+"kX c #FFFF66",
+"lX c #6666FF",
+"zX c #FF66FF",
+"xX c #66FFFF",
+"cX c #A50021",
+"vX c #5F5F5F",
+"bX c #777777",
+"nX c #868686",
+"mX c #969696",
+"MX c #CBCBCB",
+"NX c #B2B2B2",
+"BX c #D7D7D7",
+"VX c #DDDDDD",
+"CX c #E3E3E3",
+"ZX c #EAEAEA",
+"AX c #F1F1F1",
+"SX c #F8F8F8",
+"DX c #FFFBF0",
+"FX c #A0A0A4",
+"GX c #808080",
+"HX c #FF0000",
+"JX c #00FF00",
+"KX c #FFFF00",
+"LX c #0000FF",
+"PX c #FF00FF",
+"IX c #00FFFF",
+"UX c #FFFFFF",
+/* pixels */
+"X X X X X X X k k X X X X X X X ",
+"X X X X X X X k j k X X X X X X ",
+"X X X X X X X k o j k X X X X X ",
+"X X X X X X X k * o j k X X X X ",
+"l k k k k k k k * * . j k X X X ",
+"l @ @ @ @ @ @ @ 4 e e % j k X X ",
+"l O 3 8 e r r r r r r e ; j k X ",
+"l @ e e r r r r r u p a f < j k ",
+"l @ r u p a a a a a f f w j k X ",
+"l O ; ; ; ; ; < a f b 0 j k X X ",
+"l k k k k k k k s j 7 j k X X X ",
+"X X X X X X X k g 7 j k X X X X ",
+"X X X X X X X k 2 j k X X X X X ",
+"X X X X X X X k j k X X X X X X ",
+"X X X X X X X k k X X X X X X X ",
+"X X X X X X X X X X X X X X X X "
+};
diff --git a/src/xpm/send20.xpm b/src/xpm/send20.xpm
new file mode 100644
index 0000000000..68e7b1379a
--- /dev/null
+++ b/src/xpm/send20.xpm
@@ -0,0 +1,282 @@
+/* XPM */
+static const char * send20_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"20 20 256 2",
+" c #CEFFCE",
+". c #BDFFBD",
+"X c #C5F7C5",
+"o c #B5FFB5",
+"O c #ADFFAD",
+"+ c #A5FFA5",
+"@ c #9CFF9C",
+"# c None",
+"$ c #94FF94",
+"% c #D6CECE",
+"& c #8CFF8C",
+"* c #CECEC5",
+"= c #84FF84",
+"- c #94EF94",
+"; c #7BFF7B",
+": c #CEC5C5",
+"> c #73FF73",
+", c #C5C5C5",
+"< c #C5C5BD",
+"1 c #6BFF6B",
+"2 c #BDC5B5",
+"3 c #63FF63",
+"4 c #6BF76B",
+"5 c #BDBDBD",
+"6 c #BDBDB5",
+"7 c #5AFF5A",
+"8 c #63F763",
+"9 c #B5BDB5",
+"0 c #B5BDAD",
+"q c #52FF52",
+"w c #BDB5B5",
+"e c #5AF75A",
+"r c #B5B5B5",
+"t c #B5B5AD",
+"y c #52F752",
+"u c #42FF42",
+"i c #52EF52",
+"p c #ADADAD",
+"a c #ADADA5",
+"s c #4AEF4A",
+"d c #31FF31",
+"f c #29FF29",
+"g c #A5A5A5",
+"h c #21FF21",
+"j c #5AD65A",
+"k c #42E642",
+"l c #94AD94",
+"z c #4ADE4A",
+"x c #3AE63A",
+"c c #5ACE5A",
+"v c #10FF10",
+"b c #9C9C9C",
+"n c #31E631",
+"m c #08FF08",
+"M c #949C94",
+"N c #84A584",
+"B c #00FF00",
+"V c #3AD63A",
+"C c #52C552",
+"Z c #00F700",
+"A c #8C948C",
+"S c #849484",
+"D c #00EF00",
+"F c #739C73",
+"G c #08E608",
+"H c #4AB54A",
+"J c #31C531",
+"K c #00E600",
+"L c #739473",
+"P c #00DE00",
+"I c #63945A",
+"U c #6B8C6B",
+"Y c #00D600",
+"T c #42A542",
+"R c #638C63",
+"E c #00CE00",
+"W c #21B521",
+"Q c #5A8C5A",
+"! c #00C500",
+"~ c #528C52",
+"^ c #3A9C3A",
+"/ c #4A8C4A",
+"( c #00BD00",
+") c #319431",
+"_ c #219C21",
+"` c #318C31",
+"' c #3A843A",
+"] c #219421",
+"[ c #298C29",
+"{ c #318431",
+"} c #218C21",
+"| c #218C19",
+" . c #198C19",
+".. c #218421",
+"X. c #297B29",
+"o. c #198419",
+"O. c #217B21",
+"+. c #108410",
+"@. c #197B19",
+"#. c #CC0066",
+"$. c #FF0066",
+"%. c #003366",
+"&. c #333366",
+"*. c #663366",
+"=. c #993366",
+"-. c #CC3366",
+";. c #FF3366",
+":. c #006666",
+">. c #336666",
+",. c #666666",
+"<. c #996666",
+"1. c #CC6666",
+"2. c #009966",
+"3. c #339966",
+"4. c #669966",
+"5. c #999966",
+"6. c #CC9966",
+"7. c #FF9966",
+"8. c #00CC66",
+"9. c #33CC66",
+"0. c #99CC66",
+"q. c #CCCC66",
+"w. c #FFCC66",
+"e. c #00FF66",
+"r. c #33FF66",
+"t. c #99FF66",
+"y. c #CCFF66",
+"u. c #FF00CC",
+"i. c #CC00FF",
+"p. c #009999",
+"a. c #993399",
+"s. c #990099",
+"d. c #CC0099",
+"f. c #000099",
+"g. c #333399",
+"h. c #660099",
+"j. c #CC3399",
+"k. c #FF0099",
+"l. c #006699",
+"z. c #336699",
+"x. c #663399",
+"c. c #996699",
+"v. c #CC6699",
+"b. c #FF3399",
+"n. c #339999",
+"m. c #669999",
+"M. c #999999",
+"N. c #CC9999",
+"B. c #FF9999",
+"V. c #00CC99",
+"C. c #33CC99",
+"Z. c #66CC66",
+"A. c #99CC99",
+"S. c #CCCC99",
+"D. c #FFCC99",
+"F. c #00FF99",
+"G. c #33FF99",
+"H. c #66CC99",
+"J. c #99FF99",
+"K. c #CCFF99",
+"L. c #FFFF99",
+"P. c #0000CC",
+"I. c #330099",
+"U. c #6600CC",
+"Y. c #9900CC",
+"T. c #CC00CC",
+"R. c #003399",
+"E. c #3333CC",
+"W. c #6633CC",
+"Q. c #9933CC",
+"!. c #CC33CC",
+"~. c #FF33CC",
+"^. c #0066CC",
+"/. c #3366CC",
+"(. c #666699",
+"). c #9966CC",
+"_. c #CC66CC",
+"`. c #FF6699",
+"'. c #0099CC",
+"]. c #3399CC",
+"[. c #6699CC",
+"{. c #9999CC",
+"}. c #CC99CC",
+"|. c #FF99CC",
+" X c #00CCCC",
+".X c #33CCCC",
+"XX c #66CCCC",
+"oX c #99CCCC",
+"OX c #CCCCCC",
+"+X c #FFCCCC",
+"@X c #00FFCC",
+"#X c #33FFCC",
+"$X c #66FF99",
+"%X c #99FFCC",
+"&X c #CCFFCC",
+"*X c #FFFFCC",
+"=X c #3300CC",
+"-X c #6600FF",
+";X c #9900FF",
+":X c #0033CC",
+">X c #3333FF",
+",X c #6633FF",
+"<X c #9933FF",
+"1X c #CC33FF",
+"2X c #FF33FF",
+"3X c #0066FF",
+"4X c #3366FF",
+"5X c #6666CC",
+"6X c #9966FF",
+"7X c #CC66FF",
+"8X c #FF66CC",
+"9X c #0099FF",
+"0X c #3399FF",
+"qX c #6699FF",
+"wX c #9999FF",
+"eX c #CC99FF",
+"rX c #FF99FF",
+"tX c #00CCFF",
+"yX c #33CCFF",
+"uX c #66CCFF",
+"iX c #99CCFF",
+"pX c #CCCCFF",
+"aX c #FFCCFF",
+"sX c #33FFFF",
+"dX c #66FFCC",
+"fX c #99FFFF",
+"gX c #CCFFFF",
+"hX c #FF6666",
+"jX c #66FF66",
+"kX c #FFFF66",
+"lX c #6666FF",
+"zX c #FF66FF",
+"xX c #66FFFF",
+"cX c #A50021",
+"vX c #5F5F5F",
+"bX c #777777",
+"nX c #868686",
+"mX c #969696",
+"MX c #CBCBCB",
+"NX c #B2B2B2",
+"BX c #D7D7D7",
+"VX c #DDDDDD",
+"CX c #E3E3E3",
+"ZX c #EAEAEA",
+"AX c #F1F1F1",
+"SX c #F8F8F8",
+"DX c #FFFBF0",
+"FX c #A0A0A4",
+"GX c #808080",
+"HX c #FF0000",
+"JX c #00FF00",
+"KX c #FFFF00",
+"LX c #0000FF",
+"PX c #FF00FF",
+"IX c #00FFFF",
+"UX c #FFFFFF",
+/* pixels */
+"# # # # # # # # # # # # # # # # # # # # ",
+"# # # # # # # ` 0 # # # # # # # # # # # ",
+"# # # # # # # ..` l # # # # # # # # # # ",
+"# # # # # # # [ X ) N # # # # # # # # # ",
+"# # # # # # # [ &X. ^ F # # # # # # # # ",
+"# # # # # # # } o & o T I : # # # # # # ",
+"` ` ` ` ` ` ` ` + 7 ; + H ~ < # # # # # ",
+"` = = = = = = - @ d v h $ C ' 5 # # # # ",
+"` = = 3 u h v v v m m m v ; c { 6 # # # ",
+"` = f v v m m m m m m Z G G 4 j ..t # # ",
+"` = v m m m Z Z D D G G G P n ; _ R 5 # ",
+"` = m Z G G G G G G G P Y x 4 _ Q g # # ",
+"` = $ $ $ $ $ & e P P E k 8 .U g # # # ",
+"..[ ......[ [ ] e Y ! s i o.L p # # # # ",
+"# # 5 6 6 6 9 ..i ( i z o.S t # # # # # ",
+"# # # # # # # } i i V O.A r # # # # # # ",
+"# # # # # # # } 7 J X.M 6 # # # # # # # ",
+"# # # # # # # | W ' b < # # # # # # # # ",
+"# # # # # # # @.~ g , # # # # # # # # # ",
+"# # # # # # # 6 < , # # # # # # # # # # "
+};