From 481ba902f6c394203398b5ce1249b0045a2cbda1 Mon Sep 17 00:00:00 2001 From: Ittrium Cryptocurrency <37259191+IttriumCore@users.noreply.github.com> Date: Sat, 13 Oct 2018 17:05:17 +0800 Subject: [PATCH] v1.1.0 --- README.md | 28 +- configure.ac | 12 +- contrib/devtools/check-doc.py | 2 +- contrib/ittrium-qt.pro | 2 +- contrib/linearize/README.md | 58 +- contrib/linearize/example-linearize.cfg | 16 +- contrib/linearize/linearize-data.py | 110 +- contrib/linearize/linearize-hashes.py | 74 +- contrib/macdeploy/background.svg | 47 +- contrib/macdeploy/custom_dsstore.py | 2 +- contrib/macdeploy/fancy.plist | 12 +- contrib/macdeploy/macdeployqtplus | 4 +- contrib/seeds/makeseeds.py | 2 +- contrib/testgen/gen_base58_test_vectors.py | 8 +- depends/packages/openssl.mk | 6 +- doc/Doxyfile | 2 +- doc/README.md | 11 +- doc/README_osx.md | 2 +- doc/README_windows.txt | 2 +- doc/build-osx.md | 10 +- doc/build-unix.md | 1 + doc/developer-notes.md | 2 +- doc/dnsseed-policy.md | 2 +- doc/gitian-building.md | 6 +- doc/guide-startmany.md | 10 +- doc/img/bootstrap2.png | Bin 35610 -> 35412 bytes doc/init.md | 2 +- doc/masternode-budget.md | 161 +- doc/release-notes.md | 184 +- doc/release-process.md | 12 +- doc/swifttx.md | 26 +- doc/tor.md | 25 +- qa/pull-tester/rpc-tests.sh | 1 + share/pixmaps/bitcoin-bc.ico | Bin 62716 -> 370070 bytes share/pixmaps/bitcoin.ico | Bin 62716 -> 370070 bytes share/pixmaps/bitcoin128.png | Bin 8970 -> 10244 bytes share/pixmaps/bitcoin128.xpm | 863 ++++--- share/pixmaps/bitcoin16.png | Bin 746 -> 813 bytes share/pixmaps/bitcoin16.xpm | 217 +- share/pixmaps/bitcoin256.png | Bin 17454 -> 26298 bytes share/pixmaps/bitcoin256.xpm | 1377 +++++++---- share/pixmaps/bitcoin32.png | Bin 1663 -> 1837 bytes share/pixmaps/bitcoin32.xpm | 339 ++- share/pixmaps/bitcoin64.png | Bin 2733 -> 4319 bytes share/pixmaps/bitcoin64.xpm | 461 ++-- share/pixmaps/favicon.ico | Bin 5430 -> 370070 bytes share/pixmaps/nsis-header.bmp | Bin 19492 -> 14676 bytes share/pixmaps/nsis-wizard.bmp | Bin 132552 -> 196664 bytes share/setup.nsi.in | 2 +- src/Makefile.am | 5 + src/Makefile.qt.include | 86 +- src/activemasternode.cpp | 5 +- src/activemasternode.h | 4 +- src/addrman.h | 2 - src/chain.h | 4 +- src/chainparams.cpp | 7 +- src/clientversion.h | 6 +- src/coincontrol.h | 11 + src/crypter.cpp | 48 +- src/ecwrapper.cpp | 32 +- src/hash.cpp | 3 + src/hash.h | 6 +- src/init.cpp | 17 +- src/kernel.cpp | 2 +- src/keystore.cpp | 27 + src/keystore.h | 13 + src/leveldb/db/memtable.cc | 2 +- src/leveldb/util/bloom.cc | 2 +- src/leveldb/util/logging.cc | 2 +- src/main.cpp | 111 +- src/masternode-budget.cpp | 10 +- src/masternode-payments.cpp | 10 +- src/masternode.cpp | 2 +- src/masternode.h | 1 - src/masternodeman.cpp | 78 +- src/miner.cpp | 13 +- src/net.cpp | 149 +- src/net.h | 17 +- src/netbase.cpp | 73 +- src/netbase.h | 13 +- src/obfuscation.cpp | 14 +- src/obfuscation.h | 10 +- src/pow.cpp | 14 +- src/primitives/block.h | 6 +- src/primitives/transaction.h | 14 +- src/qt/addressbookpage.cpp | 3 +- src/qt/askpassphrasedialog.cpp | 10 +- src/qt/askpassphrasedialog.h | 3 +- src/qt/bip38tooldialog.cpp | 1 + src/qt/bitcoingui.cpp | 140 +- src/qt/bitcoingui.h | 9 +- src/qt/bitcoinunits.cpp | 6 +- src/qt/blockexplorer.cpp | 9 +- src/qt/clientmodel.cpp | 21 +- src/qt/clientmodel.h | 4 + src/qt/coincontroldialog.cpp | 91 +- src/qt/coincontroldialog.h | 9 +- src/qt/forms/addressbookpage.ui | 55 +- src/qt/forms/askpassphrasedialog.ui | 97 +- src/qt/forms/bip38tooldialog.ui | 77 +- src/qt/forms/blockexplorer.ui | 10 +- src/qt/forms/coincontroldialog.ui | 62 +- src/qt/forms/helpmessagedialog.ui | 4 +- src/qt/forms/intro.ui | 2 +- src/qt/forms/masternodelist.ui | 16 +- src/qt/forms/multisenddialog.ui | 488 ++-- src/qt/forms/obfuscationconfig.ui | 6 +- src/qt/forms/openuridialog.ui | 220 +- src/qt/forms/optionsdialog.ui | 43 +- src/qt/forms/overviewpage.ui | 564 +++-- src/qt/forms/receivecoinsdialog.ui | 37 +- src/qt/forms/receiverequestdialog.ui | 74 +- src/qt/forms/rpcconsole.ui | 158 +- src/qt/forms/sendcoinsdialog.ui | 53 +- src/qt/forms/sendcoinsentry.ui | 190 +- src/qt/forms/signverifymessagedialog.ui | 86 +- src/qt/forms/tradingdialog.ui | 57 +- src/qt/guiconstants.h | 8 +- src/qt/guiutil.cpp | 23 +- src/qt/guiutil.h | 2 + src/qt/intro.cpp | 1 + src/qt/ittrium.cpp | 8 +- src/qt/ittrium.qrc | 55 +- src/qt/ittriumstrings.cpp | 2 +- src/qt/locale/ittrium_bg.ts | 28 +- src/qt/locale/ittrium_ca.ts | 28 +- src/qt/locale/ittrium_cs.ts | 146 +- src/qt/locale/ittrium_da.ts | 304 +-- src/qt/locale/ittrium_de.ts | 156 +- src/qt/locale/ittrium_en.ts | 161 +- src/qt/locale/ittrium_en_US.ts | 310 +-- src/qt/locale/ittrium_es.ts | 310 +-- src/qt/locale/ittrium_fi.ts | 176 +- src/qt/locale/ittrium_fr_FR.ts | 80 +- src/qt/locale/ittrium_it.ts | 96 +- src/qt/locale/ittrium_ko_KR.ts | 312 +-- src/qt/locale/ittrium_nl.ts | 156 +- src/qt/locale/ittrium_pl.ts | 80 +- src/qt/locale/ittrium_pt.ts | 44 +- src/qt/locale/ittrium_pt_BR.ts | 250 +- src/qt/locale/ittrium_ru.ts | 240 +- src/qt/locale/ittrium_sk.ts | 100 +- src/qt/locale/ittrium_sv.ts | 92 +- src/qt/locale/ittrium_uk.ts | 12 +- src/qt/locale/ittrium_zh_TW.ts | 104 +- src/qt/masternodelist.cpp | 1 + src/qt/multisenddialog.cpp | 284 +-- src/qt/multisenddialog.h | 22 +- src/qt/obfuscationconfig.cpp | 1 + src/qt/openuridialog.cpp | 7 +- src/qt/openuridialog.h | 5 +- src/qt/optionsdialog.cpp | 3 + src/qt/optionsmodel.cpp | 14 +- src/qt/optionsmodel.h | 2 + src/qt/overviewpage.cpp | 38 +- src/qt/overviewpage.h | 4 +- src/qt/paymentrequestplus.cpp | 20 +- src/qt/receiverequestdialog.cpp | 8 +- src/qt/receiverequestdialog.h | 2 +- src/qt/res/css/default.css | 2299 +++++++------------ src/qt/res/icons/add.png | Bin 1232 -> 655 bytes src/qt/res/icons/address-book.png | Bin 532 -> 554 bytes src/qt/res/icons/bitcoin.png | Bin 24906 -> 18271 bytes src/qt/res/icons/browse.png | Bin 1300 -> 242 bytes src/qt/res/icons/clock1.png | Bin 1048 -> 2443 bytes src/qt/res/icons/clock2.png | Bin 1048 -> 2213 bytes src/qt/res/icons/clock3.png | Bin 1045 -> 1870 bytes src/qt/res/icons/clock4.png | Bin 1049 -> 1758 bytes src/qt/res/icons/clock5.png | Bin 1044 -> 1532 bytes src/qt/res/icons/configure.png | Bin 1078 -> 2532 bytes src/qt/res/icons/connect0_16.png | Bin 667 -> 2224 bytes src/qt/res/icons/connect1_16.png | Bin 282 -> 1991 bytes src/qt/res/icons/connect2_16.png | Bin 463 -> 1761 bytes src/qt/res/icons/connect3_16.png | Bin 736 -> 1601 bytes src/qt/res/icons/connect4_16.png | Bin 1012 -> 1412 bytes src/qt/res/icons/debugwindow.png | Bin 5256 -> 337 bytes src/qt/res/icons/edit.png | Bin 1241 -> 374 bytes src/qt/res/icons/editcopy.png | Bin 640 -> 441 bytes src/qt/res/icons/editpaste.png | Bin 478 -> 385 bytes src/qt/res/icons/explorer.png | Bin 8544 -> 325 bytes src/qt/res/icons/export.png | Bin 2053 -> 1228 bytes src/qt/res/icons/eye.png | Bin 496 -> 679 bytes src/qt/res/icons/eye_minus.png | Bin 575 -> 709 bytes src/qt/res/icons/eye_plus.png | Bin 637 -> 736 bytes src/qt/res/icons/filesave.png | Bin 1300 -> 405 bytes src/qt/res/icons/history.png | Bin 25364 -> 321 bytes src/qt/res/icons/import.png | Bin 939 -> 2090 bytes src/qt/res/icons/key.png | Bin 269 -> 1525 bytes src/qt/res/icons/lock_closed.png | Bin 464 -> 394 bytes src/qt/res/icons/lock_open.png | Bin 457 -> 414 bytes src/qt/res/icons/masternodes.png | Bin 8316 -> 876 bytes src/qt/res/icons/notsynced.png | Bin 1013 -> 241 bytes src/qt/res/icons/overview.png | Bin 6327 -> 717 bytes src/qt/res/icons/qrcode.png | Bin 174 -> 163 bytes src/qt/res/icons/quit.png | Bin 1951 -> 441 bytes src/qt/res/icons/receive.png | Bin 6475 -> 438 bytes src/qt/res/icons/remove.png | Bin 250 -> 739 bytes src/qt/res/icons/send.png | Bin 6500 -> 431 bytes src/qt/res/icons/staking_active.png | Bin 1142 -> 1235 bytes src/qt/res/icons/staking_inactive.png | Bin 1003 -> 1199 bytes src/qt/res/icons/synced.png | Bin 881 -> 750 bytes src/qt/res/icons/trade.png | Bin 303 -> 330 bytes src/qt/res/icons/transaction0.png | Bin 285 -> 396 bytes src/qt/res/icons/transaction2.png | Bin 2969 -> 333 bytes src/qt/res/icons/transaction_conflicted.png | Bin 288 -> 432 bytes src/qt/res/icons/tx_inout.png | Bin 3440 -> 564 bytes src/qt/res/icons/tx_input.png | Bin 3124 -> 379 bytes src/qt/res/icons/tx_mined.png | Bin 3593 -> 876 bytes src/qt/res/icons/tx_output.png | Bin 533 -> 344 bytes src/qt/res/images/about.png | Bin 1713 -> 1219 bytes src/qt/res/images/downArrow.png | Bin 265 -> 175 bytes src/qt/res/images/downArrow_small.png | Bin 195 -> 121 bytes src/qt/res/images/leftArrow_small.png | Bin 196 -> 104 bytes src/qt/res/images/qtreeview_selected.png | Bin 283 -> 196 bytes src/qt/res/images/rightArrow_small.png | Bin 196 -> 108 bytes src/qt/res/images/splash.png | Bin 40473 -> 27417 bytes src/qt/res/images/splash_testnet.png | Bin 22666 -> 27417 bytes src/qt/res/images/upArrow_small.png | Bin 198 -> 116 bytes src/qt/res/images/walletFrame.png | Bin 73780 -> 346 bytes src/qt/res/movies/spinner-000.png | Bin 989 -> 2021 bytes src/qt/res/movies/spinner-001.png | Bin 917 -> 2015 bytes src/qt/res/movies/spinner-002.png | Bin 923 -> 2028 bytes src/qt/res/movies/spinner-003.png | Bin 953 -> 1970 bytes src/qt/res/movies/spinner-004.png | Bin 936 -> 1989 bytes src/qt/res/movies/spinner-005.png | Bin 934 -> 1995 bytes src/qt/res/movies/spinner-006.png | Bin 960 -> 2174 bytes src/qt/res/movies/spinner-007.png | Bin 987 -> 2048 bytes src/qt/res/src/bitcoin.svg | 59 +- src/qt/res/src/clock1.svg | 262 +-- src/qt/res/src/clock2.svg | 263 +-- src/qt/res/src/clock3.svg | 262 +-- src/qt/res/src/clock4.svg | 262 +-- src/qt/res/src/clock5.svg | 263 +-- src/qt/res/src/clock_green.svg | 263 +-- src/qt/res/src/inout.svg | 123 +- src/qt/res/src/questionmark.svg | 160 +- src/qt/rpcconsole.cpp | 157 +- src/qt/rpcconsole.h | 19 +- src/qt/sendcoinsdialog.cpp | 1 + src/qt/signverifymessagedialog.cpp | 1 + src/qt/splashscreen.cpp | 2 +- src/qt/test/uritests.cpp | 36 +- src/qt/transactionrecord.cpp | 7 +- src/qt/transactiontablemodel.cpp | 2 +- src/qt/walletframe.cpp | 7 + src/qt/walletframe.h | 3 + src/qt/walletmodel.cpp | 42 +- src/qt/walletmodel.h | 8 + src/qt/walletview.cpp | 15 +- src/qt/walletview.h | 3 + src/rpcclient.cpp | 3 +- src/rpcmasternode-budget.cpp | 8 +- src/rpcmining.cpp | 63 + src/rpcnet.cpp | 107 + src/rpcprotocol.h | 1 + src/rpcserver.cpp | 3 + src/rpcserver.h | 3 + src/rpcwallet.cpp | 53 +- src/script/script.h | 3 +- src/secp256k1/obj/.gitignore | 2 + src/spork.cpp | 16 +- src/spork.h | 2 + src/sync.cpp | 113 +- src/sync.h | 78 +- src/test/Checkpoints_tests.cpp | 19 +- src/test/data/script_invalid.json | 2 + src/test/data/script_valid.json | 3 + src/test/data/sighash.json | 11 +- src/test/data/tx_invalid.json | 16 +- src/test/data/tx_valid.json | 2 +- src/test/data/txcreate1.hex | 2 +- src/test/data/txcreatesign.hex | 2 +- src/test/getarg_tests.cpp | 24 +- src/test/key_tests.cpp | 28 +- src/test/main_tests.cpp | 12 +- src/test/rpc_tests.cpp | 13 +- src/test/rpc_wallet_tests.cpp | 18 +- src/test/transaction_tests.cpp | 29 +- src/test/util_tests.cpp | 70 - src/txdb.cpp | 2 +- src/ui_interface.h | 3 + src/util.cpp | 2 +- src/utilstrencodings.cpp | 6 +- src/utilstrencodings.h | 4 +- src/version.h | 7 +- src/wallet.cpp | 178 +- src/wallet.h | 21 +- src/wallet_ismine.cpp | 30 +- src/wallet_ismine.h | 7 +- src/walletdb.cpp | 63 +- src/walletdb.h | 7 +- 291 files changed, 8224 insertions(+), 8551 deletions(-) diff --git a/README.md b/README.md index 9a01f49..a0f8480 100755 --- a/README.md +++ b/README.md @@ -16,31 +16,6 @@ - Near instantaneous transactions via SwiftTX. - Masternode technology used to secure the network and provide the above features. -### Addnodes -To improve the network speed/performance it's recommended that you connect to the following nodes. - -How to add nodes to the ittrium.conf file. -1. Backup your wallet file by clicking File > Backup Wallet -2. Shut your wallet. -3. Navigate to %AppData%/Ittrium (Windows), ~./ittrium (Linux) or ~/Library/Application Support/Ittrium (Mac) -4. Open ittrium.conf file in a word editor (i.e. Notepad). -5. Paste the following text into the ittrium.conf file, Save and Exit. - -``` -addnode=195.201.28.86 -addnode=195.201.30.56 -addnode=51.38.127.99 -addnode=51.38.68.244 -addnode=51.38.68.255 -addnode=51.38.98.231 -addnode=88.99.123.145 -addnode=95.216.136.26 -addnode=95.216.148.31 -addnode=95.216.169.173 -addnode=159.69.3.16 -addnode= -``` - ### Coin Specs @@ -52,6 +27,7 @@ addnode=
AlgoLyra2z
### Reward Distribution + @@ -67,5 +43,3 @@ addnode= - - diff --git a/configure.ac b/configure.ac index 57d4d1b..f8b36e6 100755 --- a/configure.ac +++ b/configure.ac @@ -1,9 +1,9 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 1) -define(_CLIENT_VERSION_MINOR, 0) -define(_CLIENT_VERSION_REVISION, 3) -define(_CLIENT_VERSION_BUILD, 3) +define(_CLIENT_VERSION_MINOR, 1) +define(_CLIENT_VERSION_REVISION, 0) +define(_CLIENT_VERSION_BUILD, 0) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2018) AC_INIT([Ittrium Core],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_REVISION],[www.ittrium.io],[ittrium]) @@ -19,9 +19,9 @@ BITCOIN_TX_NAME=ittrium-tx AC_CANONICAL_HOST -AH_TOP([#ifndef ITTRIUM_CONFIG_H]) -AH_TOP([#define ITTRIUM_CONFIG_H]) -AH_BOTTOM([#endif //ITTRIUM_CONFIG_H]) +AH_TOP([#ifndef XIT_CONFIG_H]) +AH_TOP([#define XIT_CONFIG_H]) +AH_BOTTOM([#endif //XIT_CONFIG_H]) dnl faketime breaks configure and is only needed for make. Disable it here. unset FAKETIME diff --git a/contrib/devtools/check-doc.py b/contrib/devtools/check-doc.py index 3a38dfa..7f0e5e1 100755 --- a/contrib/devtools/check-doc.py +++ b/contrib/devtools/check-doc.py @@ -20,7 +20,7 @@ REGEX_ARG = re.compile(r'(?:map(?:Multi)?Args(?:\.count\(|\[)|Get(?:Bool)?Arg\()\"(\-[^\"]+?)\"') REGEX_DOC = re.compile(r'HelpMessageOpt\(\"(\-[^\"=]+?)(?:=|\")') # list unsupported, deprecated and duplicate args as they need no documentation -SET_DOC_OPTIONAL = set(['-rpcssl', '-benchmark', '-h', '-help', '-socks', '-tor', '-debugnet', '-whitelistalwaysrelay', '-prematurewitness', '-walletprematurewitness', '-promiscuousmempoolflags', '-blockminsize', '-sendfreetransactions']) +SET_DOC_OPTIONAL = set(['-rpcssl', '-benchmark', '-h', '-help', '-socks', '-tor', '-debugnet', '-whitelistalwaysrelay', '-prematurewitness', '-walletprematurewitness', '-promiscuousmempoolflags', '-blockminsize', '-sendfreetransactions', '-checklevel', '-liquidityprovider', '-anonymizeittriumamount']) def main(): used = check_output(CMD_GREP_ARGS, shell=True) diff --git a/contrib/ittrium-qt.pro b/contrib/ittrium-qt.pro index 5b74832..9237cdb 100755 --- a/contrib/ittrium-qt.pro +++ b/contrib/ittrium-qt.pro @@ -62,6 +62,7 @@ HEADERS += src/activemasternode.h \ src/allocators.h \ src/amount.h \ src/base58.h \ + src/bignum.h \ src/bloom.h \ src/chain.h \ src/chainparams.h \ @@ -222,7 +223,6 @@ HEADERS += src/activemasternode.h \ src/script/sigcache.h \ src/script/sign.h \ src/script/standard.h \ - src/test/bignum.h \ src/univalue/univalue.h \ src/univalue/univalue_escapes.h \ src/leveldb/db/builder.h \ diff --git a/contrib/linearize/README.md b/contrib/linearize/README.md index 157586e..7529934 100755 --- a/contrib/linearize/README.md +++ b/contrib/linearize/README.md @@ -1,33 +1,57 @@ # Linearize -Construct a linear, no-fork, best version of the blockchain. +Construct a linear, no-fork, best version of the Bitcoin blockchain. The scripts +run using Python 3 but are compatible with Python 2. + +REQUIRED: [nist5_hash](https://github.com/IttriumCore/nist5_hash) ## Step 1: Download hash list - $ ./linearize-hashes.py linearize.cfg > hashlist.txt + $ ./linearize-hashes.py linearize.cfg > hashlist.txt Required configuration file settings for linearize-hashes: -* RPC: rpcuser, rpcpassword +* RPC: `datadir` (Required if `rpcuser` and `rpcpassword` are not specified) +* RPC: `rpcuser`, `rpcpassword` (Required if `datadir` is not specified) Optional config file setting for linearize-hashes: -* RPC: host, port -* Block chain: min_height, max_height +* RPC: `host` (Default: `127.0.0.1`) +* RPC: `port` (Default: `8332`) +* Blockchain: `min_height`, `max_height` +* `rev_hash_bytes`: If true, the written block hash list will be +byte-reversed. (In other words, the hash returned by getblockhash will have its +bytes reversed.) False by default. Intended for generation of +standalone hash lists but safe to use with linearize-data.py, which will output +the same data no matter which byte format is chosen. + +The `linearize-hashes` script requires a connection, local or remote, to a +JSON-RPC server. Running `bitcoind` or `bitcoin-qt -server` will be sufficient. ## Step 2: Copy local block data - $ ./linearize-data.py linearize.cfg + $ ./linearize-data.py linearize.cfg Required configuration file settings: -* "input": bitcoind blocks/ directory containing blkNNNNN.dat -* "hashlist": text file containing list of block hashes, linearized-hashes.py -output. -* "output_file": bootstrap.dat +* `output_file`: The file that will contain the final blockchain. or -* "output": output directory for linearized blocks/blkNNNNN.dat output +* `output`: Output directory for linearized `blocks/blkNNNNN.dat` output. Optional config file setting for linearize-data: -* "netmagic": network magic number -* "max_out_sz": maximum output file size (default 1000*1000*1000) -* "split_timestamp": Split files when a new month is first seen, in addition to -reaching a maximum file size. -* "file_timestamp": Set each file's last-modified time to that of the -most recent block in that file. +* `debug_output`: Some printouts may not always be desired. If true, such output +will be printed. +* `file_timestamp`: Set each file's last-accessed and last-modified times, +respectively, to the current time and to the timestamp of the most recent block +written to the script's blockchain. +* `genesis`: The hash of the genesis block in the blockchain. +* `input`: bitcoind blocks/ directory containing blkNNNNN.dat +* `hashlist`: text file containing list of block hashes created by +linearize-hashes.py. +* `max_out_sz`: Maximum size for files created by the `output_file` option. +(Default: `1000*1000*1000 bytes`) +* `netmagic`: Network magic number. +* `out_of_order_cache_sz`: If out-of-order blocks are being read, the block can +be written to a cache so that the blockchain doesn't have to be sought again. +This option specifies the cache size. (Default: `100*1000*1000 bytes`) +* `rev_hash_bytes`: If true, the block hash list written by linearize-hashes.py +will be byte-reversed when read by linearize-data.py. See the linearize-hashes +entry for more information. +* `split_timestamp`: Split blockchain files when a new month is first seen, in +addition to reaching a maximum file size (`max_out_sz`). diff --git a/contrib/linearize/example-linearize.cfg b/contrib/linearize/example-linearize.cfg index cb13dd6..dd543fc 100755 --- a/contrib/linearize/example-linearize.cfg +++ b/contrib/linearize/example-linearize.cfg @@ -1,29 +1,29 @@ # bitcoind RPC settings (linearize-hashes) -rpcuser=someuser -rpcpassword=somepassword +rpcuser=RPCUSERNAME +rpcpassword=RPCPASSWORD #datadir=~/.ittrium host=127.0.0.1 #mainnet default -port=39993 +port=50369 #testnet default -#port=3993 +#port=51369 # bootstrap.dat hashlist settings (linearize-hashes) -max_height=313000 +max_height=1000 # bootstrap.dat input/output settings (linearize-data) # mainnet netmagic=08020117 -genesis=00000908a5fd7c4c863c9a0281def7b5b9c137b782d66a75753c3954d369eb5c -input=/home/example/.ittrium/blocks +genesis000000fdacddaba54eb66a4c09dc795efbfc75fcd0572c99f489424367bc9ec9 +input=/home/ittrium/.ittrium/blocks # "output" option causes blockchain files to be written to the given location, # with "output_file" ignored. If not used, "output_file" is used instead. # output=/home/example/blockchain_directory -output_file=/home/example/Downloads/bootstrap.dat +output_file=/home/ittrium/bootstrap.dat hashlist=hashlist.txt # Maximum size in bytes of out-of-order blocks cache in memory diff --git a/contrib/linearize/linearize-data.py b/contrib/linearize/linearize-data.py index 0aee9b6..a2a68f1 100755 --- a/contrib/linearize/linearize-data.py +++ b/contrib/linearize/linearize-data.py @@ -1,29 +1,35 @@ -#!/usr/bin/python +#!/usr/bin/env python3 # # linearize-data.py: Construct a linear, no-fork version of the chain. # -# Copyright (c) 2013-2014 The Bitcoin developers -# Distributed under the MIT/X11 software license, see the accompanying +# Copyright (c) 2013-2017 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. # from __future__ import print_function, division -import json import struct import re import os -import base64 -import httplib +import os.path import sys import hashlib import datetime import time from collections import namedtuple +from binascii import hexlify, unhexlify +import nist5_hash settings = {} +##### Switch endian-ness ##### +def hex_switchEndian(s): + """ Switches the endianness of a hex string (in pairs of hex chars) """ + pairList = [s[i:i+2].encode() for i in range(0, len(s), 2)] + return b''.join(pairList[::-1]).decode() + def uint32(x): - return x & 0xffffffffL + return x & 0xffffffff def bytereverse(x): return uint32(( ((x) << 24) | (((x) << 8) & 0x00ff0000) | @@ -34,31 +40,23 @@ def bufreverse(in_buf): for i in range(0, len(in_buf), 4): word = struct.unpack('@I', in_buf[i:i+4])[0] out_words.append(struct.pack('@I', bytereverse(word))) - return ''.join(out_words) + return b''.join(out_words) def wordreverse(in_buf): out_words = [] for i in range(0, len(in_buf), 4): out_words.append(in_buf[i:i+4]) out_words.reverse() - return ''.join(out_words) + return b''.join(out_words) def calc_hdr_hash(blk_hdr): - hash1 = hashlib.sha256() - hash1.update(blk_hdr) - hash1_o = hash1.digest() - - hash2 = hashlib.sha256() - hash2.update(hash1_o) - hash2_o = hash2.digest() - - return hash2_o + return nist5_hash.getPoWHash(blk_hdr) def calc_hash_str(blk_hdr): hash = calc_hdr_hash(blk_hdr) hash = bufreverse(hash) hash = wordreverse(hash) - hash_str = hash.encode('hex') + hash_str = hexlify(hash).decode('utf-8') return hash_str def get_blk_dt(blk_hdr): @@ -68,17 +66,21 @@ def get_blk_dt(blk_hdr): dt_ym = datetime.datetime(dt.year, dt.month, 1) return (dt_ym, nTime) +# When getting the list of block hashes, undo any byte reversals. def get_block_hashes(settings): blkindex = [] f = open(settings['hashlist'], "r") for line in f: line = line.rstrip() + if settings['rev_hash_bytes'] == 'true': + line = hex_switchEndian(line) blkindex.append(line) print("Read " + str(len(blkindex)) + " hashes") return blkindex +# The block map shouldn't give or receive byte-reversed hashes. def mkblockmap(blkindex): blkmap = {} for height,hash in enumerate(blkindex): @@ -115,29 +117,30 @@ def __init__(self, settings, blkindex, blkmap): self.setFileTime = True if settings['split_timestamp'] != 0: self.timestampSplit = True - # Extents and cache for out-of-order blocks + # Extents and cache for out-of-order blocks self.blockExtents = {} self.outOfOrderData = {} self.outOfOrderSize = 0 # running total size for items in outOfOrderData def writeBlock(self, inhdr, blk_hdr, rawblock): - if not self.fileOutput and ((self.outsz + self.inLen) > self.maxOutSz): + blockSizeOnDisk = len(inhdr) + len(blk_hdr) + len(rawblock) + if not self.fileOutput and ((self.outsz + blockSizeOnDisk) > self.maxOutSz): self.outF.close() if self.setFileTime: - os.utime(outFname, (int(time.time()), highTS)) + os.utime(self.outFname, (int(time.time()), self.highTS)) self.outF = None self.outFname = None - self.outFn = outFn + 1 + self.outFn = self.outFn + 1 self.outsz = 0 (blkDate, blkTS) = get_blk_dt(blk_hdr) if self.timestampSplit and (blkDate > self.lastDate): - print("New month " + blkDate.strftime("%Y-%m") + " @ " + hash_str) - lastDate = blkDate - if outF: - outF.close() - if setFileTime: - os.utime(outFname, (int(time.time()), highTS)) + print("New month " + blkDate.strftime("%Y-%m") + " @ " + self.hash_str) + self.lastDate = blkDate + if self.outF: + self.outF.close() + if self.setFileTime: + os.utime(self.outFname, (int(time.time()), self.highTS)) self.outF = None self.outFname = None self.outFn = self.outFn + 1 @@ -145,11 +148,11 @@ def writeBlock(self, inhdr, blk_hdr, rawblock): if not self.outF: if self.fileOutput: - outFname = self.settings['output_file'] + self.outFname = self.settings['output_file'] else: - outFname = "%s/blk%05d.dat" % (self.settings['output'], outFn) - print("Output file" + outFname) - self.outF = open(outFname, "wb") + self.outFname = os.path.join(self.settings['output'], "blk%05d.dat" % self.outFn) + print("Output file " + self.outFname) + self.outF = open(self.outFname, "wb") self.outF.write(inhdr) self.outF.write(blk_hdr) @@ -165,7 +168,7 @@ def writeBlock(self, inhdr, blk_hdr, rawblock): (self.blkCountIn, self.blkCountOut, len(self.blkindex), 100.0 * self.blkCountOut / len(self.blkindex))) def inFileName(self, fn): - return "%s/blk%05d.dat" % (self.settings['input'], fn) + return os.path.join(self.settings['input'], "blk%05d.dat" % fn) def fetchBlock(self, extent): '''Fetch block contents from disk given extents''' @@ -189,7 +192,7 @@ def run(self): while self.blkCountOut < len(self.blkindex): if not self.inF: fname = self.inFileName(self.inFn) - print("Input file" + fname) + print("Input file " + fname) try: self.inF = open(fname, "rb") except IOError: @@ -205,7 +208,7 @@ def run(self): inMagic = inhdr[:4] if (inMagic != self.settings['netmagic']): - print("Invalid magic:" + inMagic) + print("Invalid magic: " + hexlify(inMagic).decode('utf-8')) return inLenLE = inhdr[4:] su = struct.unpack(" - - - - - - - - - - - - - - - PACKAGE_NAME - - - - + + + + + +PACKAGE_NAME + diff --git a/contrib/macdeploy/custom_dsstore.py b/contrib/macdeploy/custom_dsstore.py index 79f874d..52282ba 100755 --- a/contrib/macdeploy/custom_dsstore.py +++ b/contrib/macdeploy/custom_dsstore.py @@ -54,7 +54,7 @@ ds['.']['vSrn'] = ('long', 1) ds['Applications']['Iloc'] = (370, 156) -ds['ITTRIUM-Qt.app']['Iloc'] = (128, 156) +ds['Ittrium-Qt.app']['Iloc'] = (128, 156) ds.flush() ds.close() diff --git a/contrib/macdeploy/fancy.plist b/contrib/macdeploy/fancy.plist index c9f5511..ca0bc93 100755 --- a/contrib/macdeploy/fancy.plist +++ b/contrib/macdeploy/fancy.plist @@ -6,8 +6,8 @@ 300 300 - 800 - 620 + 1290 + 980 background_picture background.tiff @@ -19,13 +19,13 @@ Applications - 370 - 156 + 220 + 420 Ittrium-Qt.app - 128 - 156 + 220 + 180 diff --git a/contrib/macdeploy/macdeployqtplus b/contrib/macdeploy/macdeployqtplus index a2df1e0..6cf4630 100755 --- a/contrib/macdeploy/macdeployqtplus +++ b/contrib/macdeploy/macdeployqtplus @@ -155,7 +155,7 @@ class FrameworkInfo(object): class ApplicationBundleInfo(object): def __init__(self, path): self.path = path - appName = "ITTRIUM-Qt" + appName = "Ittrium-Qt" self.binaryPath = os.path.join(path, "Contents", "MacOS", appName) if not os.path.exists(self.binaryPath): raise RuntimeError("Could not find bundle binary for " + path) @@ -849,7 +849,7 @@ if config.dmg is not None: params = { "disk" : volname, - "window_bounds" : "300,300,800,620", + "window_bounds" : "300, 300, 1000, 1000", "icon_size" : "96", "background_commands" : "", "items_positions" : "\n ".join(items_positions) diff --git a/contrib/seeds/makeseeds.py b/contrib/seeds/makeseeds.py index 6cb9254..5f18a0a 100755 --- a/contrib/seeds/makeseeds.py +++ b/contrib/seeds/makeseeds.py @@ -26,7 +26,7 @@ PATTERN_IPV4 = re.compile(r"^((\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})):(\d+)$") PATTERN_IPV6 = re.compile(r"^\[([0-9a-z:]+)\]:(\d+)$") PATTERN_ONION = re.compile(r"^([abcdefghijklmnopqrstuvwxyz234567]{16}\.onion):(\d+)$") -PATTERN_AGENT = re.compile(r"^(/IttriumCore:1.2.(0|1|99)/)$") +PATTERN_AGENT = re.compile(r"^(/IttriumCore:1.3.(0|1|99)/)$") def parseline(line): sline = line.split() diff --git a/contrib/testgen/gen_base58_test_vectors.py b/contrib/testgen/gen_base58_test_vectors.py index e0e7ffc..5bbd30f 100755 --- a/contrib/testgen/gen_base58_test_vectors.py +++ b/contrib/testgen/gen_base58_test_vectors.py @@ -15,10 +15,10 @@ from binascii import b2a_hex # key types -PUBKEY_ADDRESS = 103 -SCRIPT_ADDRESS = 6 -PUBKEY_ADDRESS_TEST = 140 -SCRIPT_ADDRESS_TEST = 128 +PUBKEY_ADDRESS = 30 +SCRIPT_ADDRESS = 13 +PUBKEY_ADDRESS_TEST = 139 +SCRIPT_ADDRESS_TEST = 19 PRIVKEY = 212 PRIVKEY_TEST = 239 diff --git a/depends/packages/openssl.mk b/depends/packages/openssl.mk index 5ee9f17..725a788 100755 --- a/depends/packages/openssl.mk +++ b/depends/packages/openssl.mk @@ -1,8 +1,8 @@ package=openssl -$(package)_version=1.0.1k +$(package)_version=1.0.2o $(package)_download_path=https://www.openssl.org/source $(package)_file_name=$(package)-$($(package)_version).tar.gz -$(package)_sha256_hash=8f9faeaebad088e772f4ef5e38252d472be4d878c6b3a2718c10a4fcebe7a41c +$(package)_sha256_hash=ec3f5c9714ba0fd45cb4e087301eb1336c317e0d20b575a125050470e8089e4d define $(package)_set_vars $(package)_config_env=AR="$($(package)_ar)" RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)" @@ -66,7 +66,7 @@ define $(package)_config_cmds endef define $(package)_build_cmds - $(MAKE) -j1 build_libs libcrypto.pc libssl.pc openssl.pc + $(MAKE) depend -j1 build_libs libcrypto.pc libssl.pc openssl.pc endef define $(package)_stage_cmds diff --git a/doc/Doxyfile b/doc/Doxyfile index 9bff3b8..dac33ef 100755 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -28,7 +28,7 @@ DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. -PROJECT_NAME = XIT +PROJECT_NAME = PIVX # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or diff --git a/doc/README.md b/doc/README.md index a859b19..525ae55 100755 --- a/doc/README.md +++ b/doc/README.md @@ -3,7 +3,7 @@ Ittrium Core Setup --------------------- -[Ittrium Core](http://ittrium.io) is the original Ittrium client and it builds the backbone of the network. However, it downloads and stores the entire history of ittrium transactions; depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more. Thankfully you only have to do this once. +[Ittrium Core](https://www.ittrium.io/) is the original Ittrium client and it builds the backbone of the network. However, it downloads and stores the entire history of Ittrium transactions; depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more. Thankfully you only have to do this once. Running --------------------- @@ -26,8 +26,9 @@ Drag Ittrium-Qt to your applications folder, and then run Ittrium-Qt. ### Need Help? -***TODO*** - +* See the documentation at the [Ittrium KB](https://kb.ittrium.io) +for help and more information. +* Ask for help on [BitcoinTalk](https://bitcointalk.org/index.php?topic=2499481.0) or on the [Ittrium Discord](https://discord.gg/a7vhegP). Building --------------------- @@ -39,7 +40,7 @@ The following are developer notes on how to build Ittrium on your native platfor Development --------------------- -The Ittrium repo's [root README](https://github.com/IttriumCore/ittrium/blob/master/README.md) contains relevant information on the development process and automated testing. +The Ittrium repo's [root README](https://github.com/IttriumCore/Ittrium/blob/master/README.md) contains relevant information on the development process and automated testing. - [Developer Notes](developer-notes.md) - [Multiwallet Qt Development](multiwallet-qt.md) @@ -53,7 +54,7 @@ The Ittrium repo's [root README](https://github.com/IttriumCore/ittrium/blob/mas ### Resources -* Discuss on the [BitcoinTalk] +* Discuss on the [BitcoinTalk](https://bitcointalk.org/index.php?topic=2499481.0) or the [Ittrium Subreddit](http://reddit.com/r/ittriumcoin). ### Miscellaneous - [Assets Attribution](assets-attribution.md) diff --git a/doc/README_osx.md b/doc/README_osx.md index 77d3867..dfbfc5a 100755 --- a/doc/README_osx.md +++ b/doc/README_osx.md @@ -92,6 +92,6 @@ build process to remain somewhat deterministic. Here's how it works: that have been previously (deterministically) built in order to create a final dmg. - **TODO** The Apple keyholder uses this unsigned app to create a detached signature, - using the script that is also included there. Detached signatures are available from this [repository](https://github.com/IttriumCore/ittrium-detached-sigs). + using the script that is also included there. Detached signatures are available from this [repository](FIXME_ADDRESS). - Builders feed the unsigned app + detached signature back into Gitian. It uses the pre-built tools to recombine the pieces into a deterministic dmg. diff --git a/doc/README_windows.txt b/doc/README_windows.txt index 653cb3f..c2c2bd6 100755 --- a/doc/README_windows.txt +++ b/doc/README_windows.txt @@ -3,7 +3,7 @@ Ittrium Core Intro ----- -Ittrium is a free open source peer-to-peer electronic cash system that is +Ittrium is a free open source peer-to-peer electronic cash system based on PIVX 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. diff --git a/doc/build-osx.md b/doc/build-osx.md index d4b08a5..f54bf3d 100755 --- a/doc/build-osx.md +++ b/doc/build-osx.md @@ -38,7 +38,7 @@ Instructions: Homebrew #### Install dependencies using Homebrew - brew install autoconf automake berkeley-db4 libtool boost miniupnpc openssl pkg-config protobuf qt5 + brew install autoconf automake berkeley-db4 libtool boost miniupnpc openssl pkg-config protobuf qt5 libzmq ### Building `ittriumd` @@ -92,7 +92,7 @@ All dependencies should be compiled with these flags: -arch x86_64 -isysroot $(xcode-select --print-path)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -Once dependencies are compiled, see release-process.md for how the ittrium-Qt.app +Once dependencies are compiled, see release-process.md for how the Ittrium-Qt.app bundle is packaged and signed to create the .dmg disk image that is distributed. Running @@ -104,14 +104,14 @@ directory. We have to first create the RPC configuration file, though. Run `./ittriumd` to get the filename where it should be put, or just try these commands: - echo -e "rpcuser=ittriumrpc\nrpcpassword=$(xxd -l 16 -p /dev/urandom)" > "/Users/${USER}/Library/Application Support/ittrium/ittrium.conf" - chmod 600 "/Users/${USER}/Library/Application Support/ittrium/ittrium.conf" + echo -e "rpcuser=ittriumrpc\nrpcpassword=$(xxd -l 16 -p /dev/urandom)" > "/Users/${USER}/Library/Application Support/Ittrium/ittrium.conf" + chmod 600 "/Users/${USER}/Library/Application Support/Ittrium/ittrium.conf" The next time you run it, it will start downloading the blockchain, but it won't output anything while it's doing this. This process may take several hours; you can monitor its process by looking at the debug.log file, like this: - tail -f $HOME/Library/Application\ Support/ittrium/debug.log + tail -f $HOME/Library/Application\ Support/Ittrium/debug.log Other commands: ------- diff --git a/doc/build-unix.md b/doc/build-unix.md index 6f77cb2..375693a 100755 --- a/doc/build-unix.md +++ b/doc/build-unix.md @@ -43,6 +43,7 @@ Optional dependencies: qt | GUI | GUI toolkit (only needed when GUI enabled) protobuf | Payments in GUI | Data interchange format used for payment protocol (only needed when GUI enabled) libqrencode | QR codes in GUI | Optional for generating QR codes (only needed when GUI enabled) + univalue | Utility | JSON parsing and encoding (bundled version will be used unless --with-system-univalue passed to configure) For the versions used in the release, see [release-process.md](release-process.md) under *Fetch and build inputs*. diff --git a/doc/developer-notes.md b/doc/developer-notes.md index 581c4e8..7f06559 100755 --- a/doc/developer-notes.md +++ b/doc/developer-notes.md @@ -418,7 +418,7 @@ Git and github tips [remote "upstream-pull"] fetch = +refs/pull/*:refs/remotes/upstream-pull/* - url = git@github.com:IttriumCore/ittrium.git + url = git@github.com:IttriumCore/Ittrium.git This will add an `upstream-pull` remote to your git repository, which can be fetched using `git fetch --all` or `git fetch upstream-pull`. Afterwards, you can use `upstream-pull/NUMBER/head` in arguments to `git show`, diff --git a/doc/dnsseed-policy.md b/doc/dnsseed-policy.md index 0c79547..e199b1e 100755 --- a/doc/dnsseed-policy.md +++ b/doc/dnsseed-policy.md @@ -46,7 +46,7 @@ related to the DNS seed operation. If these expectations cannot be satisfied the operator should discontinue providing services and contact the active Ittrium Core development team as well as posting on the -[Ittrium Discord](https://discord.gg/cCuxDm2). +[Ittrium Discord](https://discord.gg/a7vhegP). Behavior outside of these expectations may be reasonable in some situations but should be discussed in public in advance. diff --git a/doc/gitian-building.md b/doc/gitian-building.md index 7961fc5..8a3728d 100755 --- a/doc/gitian-building.md +++ b/doc/gitian-building.md @@ -26,7 +26,7 @@ Table of Contents - [Installing gitian](#installing-gitian) - [Setting up gitian images](#setting-up-gitian-images) - [Getting and building the inputs](#getting-and-building-the-inputs) -- [Building ittrium](#building-ittrium) +- [Building Ittrium](#building-ittrium) - [Building an alternative repository](#building-an-alternative-repository) - [Signing externally](#signing-externally) - [Uploading signatures](#uploading-signatures) @@ -329,7 +329,7 @@ for gitian to work offline. Building Ittrium ---------------- -To build ittrium (for Linux, OSX and Windows) just follow the steps under 'perform +To build Ittrium (for Linux, OSX and Windows) just follow the steps under 'perform gitian builds' in [doc/release-process.md](release-process.md) in the ittrium repository. This may take a long time as it also builds the dependencies needed for each descriptor. @@ -408,6 +408,6 @@ Uploading signatures (not yet implemented) --------------------- In the future it will be possible to push your signatures (both the `.assert` and `.assert.sig` files) to the -[ittrium.gitian.sigs](https://github.com/IttriumCore/gitian.sigs/) repository, or if that's not possible to create a pull +[ittrium/gitian.sigs](https://github.com/IttriumCore/gitian.sigs/) repository, or if that's not possible to create a pull request. There will be an official announcement when this repository is online. diff --git a/doc/guide-startmany.md b/doc/guide-startmany.md index 4f9d823..930fe34 100755 --- a/doc/guide-startmany.md +++ b/doc/guide-startmany.md @@ -48,7 +48,7 @@ The wallet will re-scan and you will see your available balance increase by the 2. Click the Receive tab. 3. Fill in the form to request a payment. * Label: mn01 - * Amount: 5000 (optional) + * Amount: 1000 (optional) * Click *Request payment* 5. Click the *Copy Address* button @@ -78,7 +78,7 @@ Remember... this is local. Make sure your QT is not running. Create the masternode.conf file in the same directory as your wallet.dat. -Copy the masternode private key and correspondig collateral output transaction that holds the 5,000 XIT. +Copy the masternode private key and correspondig collateral output transaction that holds the 1K Ittrium. The masternode private key may be an existing key from [Option 1](#option1), or a newly generated key from [Option 2](#option2). @@ -108,8 +108,8 @@ alias ipaddress:port masternode_private_key collateral_output collateral_output_ Example: ``` -mn01 127.0.0.1:39993 93HaYBVUCYjEMeeH1Y4sBGLALQZE1Yc1K64xiqgX37tGBDQL8Xg 2bcd3c84c84f87eaa86e4e56834c92927a07f9e18718810b92e0d0324456a67c 0 -mn02 127.0.0.2:39993 93WaAb3htPJEV8E9aQcN23Jt97bPex7YvWfgMDTUdWJvzmrMqey aa9f1034d973377a5e733272c3d0eced1de22555ad45d6b24abadff8087948d4 0 7gnwGHt17heGpG9Crfeh4KGpYNFugPhJdh:25 +mn01 127.0.0.1:51472 93HaYBVUCYjEMeeH1Y4sBGLALQZE1Yc1K64xiqgX37tGBDQL8Xg 2bcd3c84c84f87eaa86e4e56834c92927a07f9e18718810b92e0d0324456a67c 0 +mn02 127.0.0.2:51472 93WaAb3htPJEV8E9aQcN23Jt97bPex7YvWfgMDTUdWJvzmrMqey aa9f1034d973377a5e733272c3d0eced1de22555ad45d6b24abadff8087948d4 0 7gnwGHt17heGpG9Crfeh4KGpYNFugPhJdh:25 ``` ## What about the ittrium.conf file? @@ -137,7 +137,7 @@ I usually confirm that remote is on the correct block by issuing: ```ittriumd getinfo``` -And compare with the official explorer (see www.ittrium.io for explorer link) +And compare with the official explorer at https://explorer.ittrium.io ### Local diff --git a/doc/img/bootstrap2.png b/doc/img/bootstrap2.png index ecf71b11579a9b6a2b74eed978fe60b2f839175b..e6b21b5df2c3b2ddddec780f42bbef53340e0ad7 100755 GIT binary patch delta 1090 zcmb`G`%ja17{&d*MIf(zX%K{_P$1)`FbV}61Ee6c;51NRfKXBHDi#K)<)*eGf?Ql2 zIYwDQBx6PiLonazuyMKt#$&I_yO00K(4=L`m*ytgmX&xeiQcpSk&T}n;>2*`|mRAf9 zb`lkiO1#h|5o1W=YR<+@&Q3qZ-;#?s=c_}ApC_{X-Xc?4K_5ux2}S~9;TSlEg+K%D zulJ(nACxiBe)teOgU1mR5{%-IQW!#l2?zJk(f{sQ4y_`n49mcyuokM7%@bM_v64Ya zq>4U@TwKYp939`BLulBR9AZBoUt&zpdDUV0)9;rvc9!X)zmK-b%;TtjYX?D2OgC&} zH9+jwh*0?8Q-v>WRh%S{#Mkmi+Kr42?`fN`wUa}C`~Vsf+-Ofi4sl{Pyjo7vYA&QS zWsJ^!+cxy)ox24^xBrO~UJTx$=Mb293WJH|=0V0C?<&HvB`Ff0B@LMNPfq^J#!5XY+wh4-)|J!t1)|VzIvZZEAzKI-_=A0oI z%vICyT{4Dh_DBhO@_sOJbYSmEn5oiCQ?_cM^i!2^&iuR3yT(x zLXj^;Wqt>|3(DwM1t#`2g(4ol*!Kdp`_EI!0Um+BdN*`xA9wb;eAA{Uy)Pf^zf(Ms zdq#ZE|LXeu$CaF5v3vPl*5Z-Dme3_f7}cF7a!*22D?TB#>mVh_ zJbW5UhdrzX`p{=HPiLW!O_^-?bpxat8F%wq&+An`H*6IS(P55iG=2>2KEjgK>>K+= z)ivYV=HY>?gcol4H5^7NFPO9K0Sd!g96DMLi>h>vecyOORTVZ_(&D7$pssQj#9Z=t zHa9nMIom=mm)mmmeAOO8t*YBh{jF)n*5jG9>-cj5U0tsERI9gN*%U15W!CJ&eU4}U X5Igc8*0gu^`reH}N_`}n>$U#^*oxT; delta 1463 zcmc&!i!)qT7Lv%3fpD-vS2;++=}@hCxUBZFR{ zvk@^&M^sDnk|wm;4%G*m2+1%b#2_J2M0Jpn=y$aLLw9C>_nhzho!{>}-?`@wS7>W0 zwe{3NGJlM?7-?x~VN}kUr!YMjX~CFKQQ9y}W8J1OW3MwxQHasmUIq`kLU#}{Dt0D> zCfG6xVU+5S+t$6&ifMNg4$%^1OaY~CM(P&xT$zm@;1)*s*{-yt9zlMHu^T!{C9LYU2pX9HY&RXFiQBEphA1GfI`p z`Q-iDobML`s%8A{B8(VAlX9X_&%Hqwi+LU3x4~1eK!6T6odzjGjA)Tr1UOWg`H*rR zna2QipG6jg7>fhiFj?Od0O)Jk1UPTm19;0y0aRqY2gZA?XL*R#7c7!{Wv!k1hG9lK z&kOph1bl%&zhP)MW*lv}#65s7fl{vUZHZ+2dy}AFX(xrf(NhkjH8Mv#zzj!IP`>JD z$;K#XV)p42rn?+(Lg*ubhQgmY@qxp4dIM_V)d99f8xvcSk|_4U!*oQ5NxM-RRDwzluDdk>ON{jnZoa#I-90W0nws(=;B&pGb zfI`7N-1JU&@r0yh1#+oJ3gLcq%@jQ3UvE+u!|zx1z%x(Lv5R&Oj4;EA(5C+FB>lF+ z4R+?Ium?<4!~zaRhW%g2^u^SX-X_O7Z%1o_P&ksh*eVhcs?wmT%_6E{L@!Is-mUYy>P#%7CT1$?#dg%##!@3u3QMF96P- z`2s>$&a#M6*||8t)pHKE7=0)4^P9f2GIsXf=}}dc=|h*>?nzU580jy!yxu&q{PAzq zo@+cz2c|WF%1W9G7r76#yJczuZZ|AlrMvoj^40SxWBaACun$psAiS5%CmDR=-+bW^ zm@(8vhHRuQs}ejv%(gK?`W>FnpUuqDa?vFG=N@@sIxkzKkAAp&>(!3mFCR4NWBNg@ zKii2kVj~w(J2BeWRi1cv(e_$@?}?BFt0efO&?b2ea5d{)<#TT^{d3-@;3CgIu8+~) z#gfEJ-V^E7X1PG?%r`ec(q^0IFJ6qc#_CEW5|Cr&@=uZ?g9~a&M_v|QgViNPF%bH* xXr2^2TC8HD$r^j7j7fNR)FLB{#?SDsKQZNT#*6B|z9V=b#WbxJ1NEUg_aBOi1wH@( diff --git a/doc/init.md b/doc/init.md index 8d9ff0a..66c1ffd 100755 --- a/doc/init.md +++ b/doc/init.md @@ -89,7 +89,7 @@ use old versions of Upstart and do not supply the start-stop-daemon uitility. Copy ittriumd.init to /etc/init.d/ittriumd. Test by running "service ittriumd start". Using this script, you can adjust the path and flags to the ittriumd program by -setting the ittriumd and FLAGS environment variables in the file +setting the ITTRIUMD and FLAGS environment variables in the file /etc/sysconfig/ittriumd. You can also use the DAEMONOPTS environment variable here. 5. Auto-respawn diff --git a/doc/masternode-budget.md b/doc/masternode-budget.md index d443ca2..9df67f8 100755 --- a/doc/masternode-budget.md +++ b/doc/masternode-budget.md @@ -1,163 +1,4 @@ Masternode Budget API ======================= -Ittrium now supports full decentralized budgets that are paid directly from the blockchain via superblocks once per month. - -Budgets go through a series of stages before being paid: -* prepare - create a special transaction that destroys coins in order to make a proposal -* submit - propagate transaction to peers on network -* voting - lobby for votes on your proposal -* get enough votes - make it into the budget -* finalization - at the end of each payment period, proposals are sorted then compiled into a finalized budget -* finalized budget voting - masternodes that agree with the finalization will vote on that budget -* payment - the winning finalized budget is paid - - -Prepare collateral transaction ------------------------- - -mnbudget prepare \ \ \ \ \ \ [use_ix(true|false)] - -Example: -``` -mnbudget prepare cool-project http://www.cool-project/one.json 12 100000 y6R9oN12KnB9zydzTLc3LikD9cCjjQzYG7 1200 true -``` - -Output: `464a0eb70ea91c94295214df48c47baa72b3876cfb658744aaf863c7b5bf1ff0` - This is the collateral hash, copy this output for the next step - -In this transaction we prepare collateral for "_cool-project_". This proposal will pay _1200_ XIT, _12_ times over the course of a year totaling _24000_ XIT. - -**Warning -- if you change any fields within this command, the collateral transaction will become invalid.** - -Submit proposal to network ------------------------- - -mnbudget submit \ \ \ \ \ \ \ - -Example: -``` -mnbudget submit cool-project http://www.cool-project/one.json 12 100000 y6R9oN12KnB9zydzTLc3LikD9cCjjQzYG7 1200 464a0eb70ea91c94295214df48c47baa72b3876cfb658744aaf863c7b5bf1ff0 -``` - -Output: `a2b29778ae82e45a973a94309ffa6aa2e2388b8f95b39ab3739f0078835f0491` - This is your proposal hash, which other nodes will use to vote on it - -Lobby for votes ------------------------- - -Double check your information: - -mnbudget getinfo \ - -Example: -``` -mnbudget getinfo cool-project -``` -Output: -``` -{ - "Name" : "cool-project", - "Hash" : "a2b29778ae82e45a973a94309ffa6aa2e2388b8f95b39ab3739f0078835f0491", - "FeeHash" : "464a0eb70ea91c94295214df48c47baa72b3876cfb658744aaf863c7b5bf1ff0", - "URL" : "http://www.cool-project/one.json", - "BlockStart" : 100000, - "BlockEnd" : 100625, - "TotalPaymentCount" : 12, - "RemainingPaymentCount" : 12, - "PaymentAddress" : "y6R9oN12KnB9zydzTLc3LikD9cCjjQzYG7", - "Ratio" : 0.00000000, - "Yeas" : 0, - "Nays" : 0, - "Abstains" : 0, - "TotalPayment" : 14400.00000000, - "MonthlyPayment" : 1200.00000000, - "IsValid" : true, - "fValid" : true -} -``` - -If everything looks correct, you can ask for votes from other masternodes. To vote on a proposal, load a wallet with _masternode.conf_ file. You do not need to access your cold wallet to vote for proposals. - -mnbudget vote \ [yes|no] - -Example: -``` -mnbudget vote a2b29778ae82e45a973a94309ffa6aa2e2388b8f95b39ab3739f0078835f0491 yes -``` - -Output: `Voted successfully` - Your vote has been submitted and accepted. - -Make it into the budget ------------------------- - -After you get enough votes, execute `mnbudget projection` to see if you made it into the budget. If you the budget was finalized at this moment which proposals would be in it. Note: Proposals must be active at least 1 day on the network and receive 10% of the masternode network in yes votes in order to qualify (E.g. if there is 2500 masternodes, you will need 250 yes votes.) - -Example: -``` -mnbudget projection -``` - -Output: -``` -{ - "cool-project" : { - "Hash" : "a2b29778ae82e45a973a94309ffa6aa2e2388b8f95b39ab3739f0078835f0491", - "FeeHash" : "464a0eb70ea91c94295214df48c47baa72b3876cfb658744aaf863c7b5bf1ff0", - "URL" : "http://www.cool-project/one.json", - "BlockStart" : 100000, - "BlockEnd" : 100625, - "TotalPaymentCount" : 12, - "RemainingPaymentCount" : 12, - "PaymentAddress" : "y6R9oN12KnB9zydzTLc3LikD9cCjjQzYG7", - "Ratio" : 1.00000000, - "Yeas" : 33, - "Nays" : 0, - "Abstains" : 0, - "TotalPayment" : 14400.00000000, - "MonthlyPayment" : 1200.00000000, - "IsValid" : true, - "fValid" : true - } -} -``` - -Finalized budget ------------------------- - -``` -"main" : { - "FeeTX" : "d6b8de9a4cadfe148f91e8fe8eed407199f96639b482f956ae6f539b8339f87c", - "Hash" : "6e8bbaba5113de592f6888f200f146448440b7e606fcf62ef84e60e1d5ac7d64", - "BlockStart" : 100000, - "BlockEnd" : 100000, - "Proposals" : "cool-project", - "VoteCount" : 46, - "Status" : "OK" - }, -``` - -Get paid ------------------------- - -When block `1000000` is reached you'll receive a payment for `1200` XIT. - - -RPC Commands ------------------------- - -The following new RPC commands are supported: -- mnbudget "command"... ( "passphrase" ) - * prepare - Prepare proposal for network by signing and creating tx - * submit - Submit proposal for network - * vote-many - Vote on a Ittrium initiative - * vote-alias - Vote on a Ittrium initiative - * vote - Vote on a Ittrium initiative/budget - * getvotes - Show current masternode budgets - * getinfo - Show current masternode budgets - * show - Show all budgets - * projection - Show the projection of which proposals will be paid the next cycle - * check - Scan proposals and remove invalid - -- mnfinalbudget "command"... ( "passphrase" ) - * vote-many - Vote on a finalized budget - * vote - Vote on a finalized budget - * show - Show existing finalized budgets +Budgets will begin block 345,200. For information on how this will work, please see pivx-doc/masternode-budget.md diff --git a/doc/release-notes.md b/doc/release-notes.md index 58b9dec..3a8c171 100755 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -23,186 +23,4 @@ Please do not report issues about Windows XP to the issue tracker. Ittrium Core should also work on most other Unix-like systems but is not frequently tested on them. -Notable Changes -=============== - -RPC changes --------------- - -#### Update of RPC commands to comply with the forthcoming RPC Standards PIP #### - -| Old Command | New Command | Notes | -| --- | --- | --- | -| `masternode count` | `getmasternodecount` | | -| `masternode list` | `listmasternodes` | | -| `masternodelist` | `listmasternodes` | renamed | -| `masternode connect` | `masternodeconnect` | | -| `masternode current` | `getcurrentmasternode` | | -| `masternode debug` | `masternodedebug` | | -| `masternode enforce` | | removed | -| `masternode outputs` | `getmasternodeoutputs` | | -| `masternode status` | `getmasternodestatus` | | -| `masternode list-conf` | `listmasternodeconf` | added optional filter | -| `masternode genkey` | `createmasternodekey` | | -| `masternode winners` | `listmasternodewinners` | | -| `masternode start` | `startmasternode` | see notes below | -| `masternode start-alias` | `startmasternode` | see notes below | -| `masternode start-` | `startmasternode` | see notes below | -| `masternode create` | | removed - not implemented | -| `masternode calcscore` | `listmasternodescores` | | -| --- | --- | --- | -| `mnbudget prepare` | `preparebudget` | see notes below | -| `mnbudget submit` | `submitbudget` | see notes below | -| `mnbudget vote-many` | `mnbudgetvote` | see notes below | -| `mnbudget vote-alias` | `mnbudgetvote` | see notes below | -| `mnbudget vote` | `mnbudgetvote` | see notes below | -| `mnbudget getvotes` | `getbudgetvotes` | | -| `mnbudget getinfo` | `getbudgetinfo` | see notes below | -| `mnbudget show` | `getbudgetinfo` | see notes below | -| `mnbudget projection` | `getbudgetprojection` | | -| `mnbudget check` | `checkbudgets` | | -| `mnbudget nextblock` | `getnextsuperblock` | | - -##### `startmasternode` Command ##### -This command now handles all cases for starting a masternode instead of having multiple commands based on the context. Command arguments have changed slightly to allow the user to decide wither or not to re-lock the wallet after the command is run. Below is the help documentation: - -``` -startmasternode "local|all|many|missing|disabled|alias" lockwallet ( "alias" ) - - Attempts to start one or more masternode(s) - -Arguments: -1. set (string, required) Specify which set of masternode(s) to start. -2. lockWallet (boolean, required) Lock wallet after completion. -3. alias (string) Masternode alias. Required if using 'alias' as the set. - -Result: (for 'local' set): -"status" (string) Masternode status message - -Result: (for other sets): -{ - "overall": "xxxx", (string) Overall status message - "detail": [ - { - "node": "xxxx", (string) Node name or alias - "result": "xxxx", (string) 'success' or 'failed' - "error": "xxxx" (string) Error message, if failed - } - ,... - ] -} - -Examples: -> ittrium-cli masternodestart "alias" "my_mn" -> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "masternodestart", "params": ["alias" "my_mn"] }' -H 'content-type: text/plain;' http://127.0.0.1:50369/ -``` - -##### `preparebudget` & `submitbudget` Commands ##### -Due to the requirement of maintaining backwards compatibility with the legacy command, these two new commands are created to handle the preparation/submission of budget proposals. Future intention is to roll these two commands back into a single command to reduce code-duplication. Paramater arguments currently remain unchanged from the legacy command equivilent. - -##### `mnbudgetvote` Command ##### -This command now handles all cases for submitting MN votes on a budget proposal. Backwards compatibility with the legacy command(s) has been retained, with the exception of the `vote-alias` case due to a conflict in paramater type casting. A user running `mnbudget vote-alias` will be instructed to instead use the new `mnvote` command. Below is the full help documentation for this new command: - -``` -mnvote "local|many|alias" "votehash" "yes|no" ( "alias" ) - -Vote on a budget proposal - -Arguments: -1. "mode" (string, required) The voting mode. 'local' for voting directly from a masternode, 'many' for voting with a MN controller and casting the same vote for each MN, 'alias' for voting with a MN controller and casting a vote for a single MN -2. "votehash" (string, required) The vote hash for the proposal -3. "votecast" (string, required) Your vote. 'yes' to vote for the proposal, 'no' to vote against -4. "alias" (string, required for 'alias' mode) The MN alias to cast a vote for. - -Result: -{ - "overall": "xxxx", (string) The overall status message for the vote cast - "detail": [ - { - "node": "xxxx", (string) 'local' or the MN alias - "result": "xxxx", (string) Either 'Success' or 'Failed' - "error": "xxxx", (string) Error message, if vote failed - } - ,... - ] -} - -Examples: -> ittrium-cli mnvote "local" "ed2f83cedee59a91406f5f47ec4d60bf5a7f9ee6293913c82976bd2d3a658041" "yes" -> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "mnvote", "params": ["local" "ed2f83cedee59a91406f5f47ec4d60bf5a7f9ee6293913c82976bd2d3a658041" "yes"] }' -H 'content-type: text/plain;' http://127.0.0.1:50369/ -``` - -##### `getbudgetinfo` Command ##### -This command now combines the old `mnbudget show` and `mnbudget getinfo` commands to reduce code duplication while still maintaining backwards compatibility with the legacy commands. Given no parameters, it returns the full list of budget proposals (`mnbudget show`). A single optional parameter allows to return information on just that proposal (`mnbudget getinfo`). Below is the full help documentation: - -``` -getbudgetinfo ( "proposal" ) - -Show current masternode budgets - -Arguments: -1. "proposal" (string, optional) Proposal name - -Result: -[ - { - "Name": "xxxx", (string) Proposal Name - "URL": "xxxx", (string) Proposal URL - "Hash": "xxxx", (string) Proposal vote hash - "FeeHash": "xxxx", (string) Proposal fee hash - "BlockStart": n, (numeric) Proposal starting block - "BlockEnd": n, (numeric) Proposal ending block - "TotalPaymentCount": n, (numeric) Number of payments - "RemainingPaymentCount": n, (numeric) Number of remaining payments - "PaymentAddress": "xxxx", (string) XIT address of payment - "Ratio": x.xxx, (numeric) Ratio of yeas vs nays - "Yeas": n, (numeric) Number of yea votes - "Nays": n, (numeric) Number of nay votes - "Abstains": n, (numeric) Number of abstains - "TotalPayment": xxx.xxx, (numeric) Total payment amount - "MonthlyPayment": xxx.xxx, (numeric) Monthly payment amount - "IsEstablished": true|false, (boolean) Established (true) or (false) - "IsValid": true|false, (boolean) Valid (true) or Invalid (false) - "IsValidReason": "xxxx", (string) Error message, if any - "fValid": true|false, (boolean) Valid (true) or Invalid (false) - } - ,... -] - -Examples: -> ittrium-cli getbudgetprojection -> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getbudgetprojection", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:50369/ -``` - -#### Masternode network protocol layer reporting #### -The results from the `listmasternodes` and `getmasternodecount` commands now includes details about which network protocol layer is being used (IPv4, IPV6, or Tor). - - -2.3.1 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -### RPC and other APIs -- #239 `e8b92f4` [RPC] Make 'masternode status' more verbose (Mrs-X) -- #244 `eac60dd` [RPC] Standardize RPC Commands (Fuzzbawls) - -### P2P Protocol and Network Code -- #248 `0d44ca2` [core] fix payment disagreements, reduce log-verbosity (Mrs-X) - -### Miscellaneous -- #240 `1957445` [Debug Log] Increase verbosity of error-message (Mrs-X) -- #241 #249 `b60118b` `7405e31` Nullpointer reference fixed (Mrs-X) - -Credits -======= - -Thanks to everyone who directly contributed to this release: -- Fuzzbawls -- Mrs-X -- amirabrams - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/IttriumCore-translations/). +Please see pivx-doc/ for historical PIVX release notes diff --git a/doc/release-process.md b/doc/release-process.md index 566ddc9..9523141 100755 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -3,7 +3,7 @@ Release Process Before every release candidate: -* Update translations (ping Fuzzbawls on Slack) see [translation_process.md](https://github.com/IttriumCore/ittrium/blob/master/doc/translation_process.md#synchronising-translations). +* Update translations (ping Fuzzbawls on Slack) see [translation_process.md](https://github.com/IttriumCore/Ittrium/blob/master/doc/translation_process.md#synchronising-translations). Before every minor and major release: @@ -113,6 +113,10 @@ The gbuild invocations below DO NOT DO THIS by default. ./bin/gsign --signer $SIGNER --release ${VERSION}-osx-unsigned --destination ../gitian.sigs/ ../ittrium/contrib/gitian-descriptors/gitian-osx.yml mv build/out/ittrium-*-osx-unsigned.tar.gz inputs/ittrium-osx-unsigned.tar.gz mv build/out/ittrium-*.tar.gz build/out/ittrium-*.dmg ../ + + ./bin/gbuild --memory 3000 --commit ittrium=v${VERSION} ../ittrium/contrib/gitian-descriptors/gitian-aarch64.yml + ./bin/gsign --signer $SIGNER --release ${VERSION}-linux --destination ../gitian.sigs/ ../ittrium/contrib/gitian-descriptors/gitian-aarch64.yml + mv build/out/ittrium-*.tar.gz build/out/src/ittrium-*.tar.gz ../ popd Build output expected: @@ -136,6 +140,7 @@ Verify the signatures ./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-linux ../ittrium/contrib/gitian-descriptors/gitian-linux.yml ./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-win-unsigned ../ittrium/contrib/gitian-descriptors/gitian-win.yml ./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-osx-unsigned ../ittrium/contrib/gitian-descriptors/gitian-osx.yml + ./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-aarch64 ../ittrium/contrib/gitian-descriptors/gitian-aarch64.yml popd ### Next steps: @@ -146,6 +151,7 @@ Commit your signature to gitian.sigs: git add ${VERSION}-linux/${SIGNER} git add ${VERSION}-win-unsigned/${SIGNER} git add ${VERSION}-osx-unsigned/${SIGNER} + git add ${VERSION}-aarch64/${SIGNER} git commit -a git push # Assuming you can push to the gitian.sigs tree popd @@ -256,10 +262,10 @@ Note: check that SHA256SUMS itself doesn't end up in SHA256SUMS, which is a spur - bitcointalk announcement thread - - Optionally twitter, reddit /r/ittrium, ... but this will usually sort out itself + - Optionally twitter, reddit /r/ittriumcoin, ... but this will usually sort out itself - Archive release notes for the new version to `doc/release-notes/` (branch `master` and branch of the release) - - Create a [new GitHub release](https://github.com/IttriumCore/ittrium/releases/new) with a link to the archived release notes. + - Create a [new GitHub release](https://github.com/IttriumCore/Ittrium/releases/new) with a link to the archived release notes. - Celebrate diff --git a/doc/swifttx.md b/doc/swifttx.md index 47c4d63..3aa5af0 100755 --- a/doc/swifttx.md +++ b/doc/swifttx.md @@ -1,6 +1,6 @@ -##SwiftTX Technical Information +##SwiftX Technical Information -SwiftTX has been integrated into the Core Daemon in two ways: +SwiftX has been integrated into the Core Daemon in two ways: * "push" notifications (ZMQ and `-swifttxnotify` cmd-line/config option); * RPC commands. @@ -8,16 +8,16 @@ SwiftTX has been integrated into the Core Daemon in two ways: When a "Transaction Lock" occurs the hash of the related transaction is broadcasted through ZMQ using both the `zmqpubrawtxlock` and `zmqpubhashtxlock` channels. -* `zmqpubrawtxlock`: publishes the raw transaction when locked via SwiftTX -* `zmqpubhashtxlock`: publishes the transaction hash when locked via SwiftTX +* `zmqpubrawtxlock`: publishes the raw transaction when locked via SwiftX +* `zmqpubhashtxlock`: publishes the transaction hash when locked via SwiftX This mechanism has been integrated into Bitcore-Node-Ittrium which allows for notification to be broadcast through Insight API in one of two ways: -* WebSocket: -* API: +* WebSocket: [https://github.com/IttriumCore/insight-api-ittrium#web-socket-api](https://github.com/IttriumCore/insight-api-ittrium#web-socket-api) +* API: [https://github.com/IttriumCore/insight-api-ittrium#swifttx-transactions](https://github.com/IttriumCore/insight-api-ittrium#swifttx-transactions) ####Command line option -When a wallet SwiftTX transaction is successfully locked a shell command provided in this option is executed (`%s` in `` is replaced by TxID): +When a wallet SwiftX transaction is successfully locked a shell command provided in this option is executed (`%s` in `` is replaced by TxID): ``` -swifttxnotify= @@ -39,20 +39,20 @@ This value can be overridden by passing the following argument to the Ittrium Co -swifttxdepth= ``` -The key thing to understand is that this value indicates the number of "confirmations" a successful Transaction Lock represents. When Wallet RPC commands are performed (such as `listsinceblock`) this attribute is taken into account when returning information about the transaction. The value in `confirmations` field you see through RPC is showing the number of `"Blockchain Confirmations" + "SwiftTX Depth"` (assuming the funds were sent via SwiftTX). +The key thing to understand is that this value indicates the number of "confirmations" a successful Transaction Lock represents. When Wallet RPC commands are performed (such as `listsinceblock`) this attribute is taken into account when returning information about the transaction. The value in `confirmations` field you see through RPC is showing the number of `"Blockchain Confirmations" + "SwiftX Depth"` (assuming the funds were sent via SwiftX). -There is also a field named `bcconfirmations`. The value in this field represents the total number of `"Blockchain Confirmations"` for a given transaction without taking into account whether it was SwiftTX or not. +There is also a field named `bcconfirmations`. The value in this field represents the total number of `"Blockchain Confirmations"` for a given transaction without taking into account whether it was SwiftX or not. **Examples** -* SwiftTX transaction just occurred: +* SwiftX transaction just occurred: * confirmations: 5 * bcconfirmations: 0 -* SwiftTX transaction received one confirmation from blockchain: +* SwiftX transaction received one confirmation from blockchain: * confirmations: 6 * bcconfirmations: 1 -* non-SwiftTX transaction just occurred: +* non-SwiftX transaction just occurred: * confirmations: 0 * bcconfirmations: 0 -* non-SwiftTX transaction received one confirmation from blockchain: +* non-SwiftX transaction received one confirmation from blockchain: * confirmations: 1 * bcconfirmations: 1 diff --git a/doc/tor.md b/doc/tor.md index 50a0823..d204351 100755 --- a/doc/tor.md +++ b/doc/tor.md @@ -38,7 +38,7 @@ outgoing connections be anonymized, but more is possible. An example how to start the client if the Tor proxy is running on local host on port 9050 and only allows .onion nodes to connect: ``` -./ittriumd -onion=127.0.0.1:9050 -onlynet=tor -listen=0 -addnode=dnetzj6l4cvo2fxy.onion:989 +./ittriumd -onion=127.0.0.1:9050 -onlynet=tor -listen=0 -addnode=FIXME_ADDRESS_TOR ``` In a typical situation, this suffices to run behind a Tor proxy: @@ -58,8 +58,8 @@ SOCKSPort 9050 SOCKSPolicy accept 127.0.0.1/8 Log notice file /var/log/tor/notices.log ControlPort 9051 -HiddenServiceDir /var/lib/tor/dnet/ -HiddenServicePort 989 127.0.0.1:39993 +HiddenServiceDir /var/lib/tor/ittrium/ +HiddenServicePort 989 127.0.0.1:51472 HiddenServiceStatistics 0 ORPort 9001 LongLivedPorts 989 @@ -69,7 +69,7 @@ NumEntryGuards 8 ``` The directory can be different of course, but (both) port numbers should be equal to -your ittriumd's P2P listen port (39993 by default). +your ittriumd's P2P listen port (50369 by default). ``` -externalip=X You can tell ittrium about its publicly reachable address using this option, and this can be a .onion address. Given the above @@ -92,7 +92,7 @@ your ittriumd's P2P listen port (39993 by default). In a typical situation, where you're only reachable via Tor, this should suffice: ``` -./ittriumd -proxy=127.0.0.1:9050 -externalip=dnetzj6l4cvo2fxy.onion:989 -listen +./ittriumd -proxy=127.0.0.1:9050 -externalip=FIXME_ADDRESS_TOR -listen ``` (obviously, replace the Onion address with your own). If you don't care too much @@ -102,25 +102,16 @@ specify: ./ittriumd ... -discover ``` -and open port 39993 on your firewall (or use -upnp). +and open port 51472 on your firewall (or use -upnp). If you only want to use Tor to reach onion addresses, but not use it as a proxy for normal IPv4/IPv6 communication, use: ``` -./ittriumd -onion=127.0.0.1:9050 -externalip=dnetzj6l4cvo2fxy.onion:989 -discover +./ittriumd -onion=127.0.0.1:9050 -externalip=FIXME_ADDRESS_TOR -discover ``` List of known Ittrium Tor relays ------------------------------------ ``` -y5kcscnhpygvvnjn.onion:989 -5bmhtjvn2jvwpiej.onion:989 -pyfdxkazur3iib7y.onion:989 -ok3ym5zy6m5klimk.onion:989 -i6vpvzk2jxuqqs5f.onion:989 -bgdhpb76fkbw5fmg.onion:989 -gtlqzb5zbws5di7g.onion:989 -f7j2m26rptm5f7af.onion:989 -dnetzj6l4cvo2fxy.onion:989 -s3v3n7xhqafg6sb7.onion:989 +FIXME_ADDRESS_TOR ``` diff --git a/qa/pull-tester/rpc-tests.sh b/qa/pull-tester/rpc-tests.sh index d6ee00b..755b994 100755 --- a/qa/pull-tester/rpc-tests.sh +++ b/qa/pull-tester/rpc-tests.sh @@ -26,6 +26,7 @@ if [ "x${ENABLE_BITCOIND}${ENABLE_UTILS}${ENABLE_WALLET}" = "x111" ]; then ${BUILDDIR}/qa/rpc-tests/mempool_spendcoinbase.py --srcdir "${BUILDDIR}/src" ${BUILDDIR}/qa/rpc-tests/httpbasics.py --srcdir "${BUILDDIR}/src" ${BUILDDIR}/qa/rpc-tests/mempool_coinbase_spends.py --srcdir "${BUILDDIR}/src" + ${BUILDDIR}/qa/rpc-tests/proxy_test.py --srcdir "${BUILDDIR}/src" #${BUILDDIR}/qa/rpc-tests/forknotify.py --srcdir "${BUILDDIR}/src" else echo "No rpc tests to run. Wallet, utils, and bitcoind must all be enabled" diff --git a/share/pixmaps/bitcoin-bc.ico b/share/pixmaps/bitcoin-bc.ico index 2a00473ad8f9d7de2d6f63db0efa46381466c22c..de51520dac1aaa5149cce6d60f5206b736d4539d 100755 GIT binary patch literal 370070 zcmeEv2bfh=nk`j;3Q9JEiVA`OK`>(upb{i!P`jt+^~}6^)7{hEGyPuojMFpI(`G@y z)Mf?ANr?tPuv?TIstU9xCA1?-}{_%>)wI_O6pXx`M%$M?zQUHIs2To z{`H5wZ>?GdwT`RBe+9K#)@s|bPOZPh@%{JP*C!OzdKB;7bd!C3ORZY7+t#hsp@Y7D zy>+cxfBx&bwOY2cuN&8@^}EOG)@qEApZDWBwQ61ZQr%i@@tJs|R;@yPpD%0G!vFOD zj@cP7>jxB=4FhXqtOF}F8wSA!7Mh|#wQ&p^%qPbG^E2RQpa#u=S>M0Ftm_X?aPWVo zXmA1f;NU;$f5OjzpMj*$fLYfs#65g|Q~3LC82<_53$O{WalrfI@c%!A|G&`u&j8T? zrf48}ApG5=U#CAmKLdUSq8Tu2`xZLv!~dTP|Nj_p{~64{0C+jpcV+g0f-5N z1JdAtvA}*)&O2fQfIDP@DwbA7$5-tQ?MY! z{+d2|EVu{ukAwrV>jKmP$^%7%{}Z_H<0isu0XGwV^fOSoGXU%tnpHhD&R>0ZZ}7mM z5d#?DAGq%YpAY{}{6`!>J)q_|ARJ?HK*e+ba)Rs=2y27T0^oq+!2t|0!I1I5ehXeP zIl%Kk<=%V$X~*sim=!$=%!;0x+h5u94B-A%7_feK0Q?jCz`XDP{Jr3xJP=|3NI77G ziv=(iF*hI_z*qpU2dfq!2NVtY3id>gqW{(mU! zbHV@o1aeT>b3S>CPCtmv+B{)!$gp#i3ul|2mbpMeqk zz&x>!QFMUt0B|ol0JyjKKbQ^>9su^GK6uC+;Btaa3uF)rATIz8C?4{SDH-x}vtd|W z-a2qVZM^pR!DH+>_LqC;GXUJH)?eM99Pne{ejD&_U@06E|KtJU-*EtA0dfJgK*Ry$ z0>=X`25_U)18rSU>VxPDkh-AdfP>csoDL|<0n7)G15h6j9$0FMhHBpsYXq=EpAr8X zegB=#d?ols2bgNy~77C_(7(0_;j*S?_=@Ic8>uLWxUBkixS0yAJf zy0gH1bcg!<<#*Ht_J3|xbo&;gfdTixKY4(-k2ruDATo^w%IARG+5l>X(j&ya0CE6( z1sMmhSCAY4s~`txKEUxnoCBB(Kz=aP0&Bqmw{S|NZ>YrQ1uF1(_#dgkGXUJf=ijM5 z|D(G)n&o#bwYX1%15!8+0VL%<2p0vZpbzyV`T@i6Th0ta|4P=gE12QQQmu9S1NLP~2CX0~Gt37i6ChdxVI4 z_6a`-s}H*k98eVF0IV6v;(+Wm1M!*wk6m3Lmjl2F=noK+x&U(m$^#`s{*0I)>Kj6S zFz-b9H~kFMuo(dE;q&j%8u^D^JDU&hTmk$WU_WgQco!ZZ?&0?(4p8h1?wJ!fs1AtN z1;_!Y6^c;@iS1%EbCGLQ@ky|s{wf6VOS~5fCEynjOBpqI1!@ET1;BYB)&VFVt?hdwV*fRGkNv{b0WjnN z90#nIwZnML+(0?~0r_=6wiYOsoB(10;efBe0Y5M$KhSe19_F=x$4iZx0kiD(LbJ^J z{AFFcm}OlzDDLlo&le*H(13j!{J+Kmj0czp%+CQUV_G1qE+F+m?Ge(vz>v%? z%i5vdS$}Z& z`;4@ab41S&jzfkveegubDnss)ONeuLcL&&|g}b-$q!_6-g5wZdZp zEj8;R%?Gy?nh(0Drv2dd-Z=hG=zpWQ@0!NQW8&W#urINIY5~m&l&=Gn18iL&%Mdj%Y9mf`2ISGe0hurKx!>i1i`-YYRd*}a6gZ_wey0>S~z4T1-h z15^u?3`LF*F+uUL_svGzH?(nRfzJyZ?5_F$pOhIef4sH8{OLCJ`5)YV2K@i4(EkQw z01ilj1L*q|`>F$gcjDe!#W}#{2So>+lefIh#xc>@n% z|KPrQ9c%ktf#VM>2cTB~c>xy(s1C^Gfp{#C-6s^&0agnXhdiKKfE-XVY%g$+zM)~Z zZwOjoqt^oE-7o)s)z5(W<1Hc9zyZTxp9A;AK5&0~T92vy$pO#;9|{kU3nKiJ2g>6B z%?ZTo0z8iO2z8$V{I}#xpg*XPb|kYRT41fq3-mu89Pn#!z;0*)<^=7&g3>2M{O58& zygr!SAD|q-ctA|>A87&A0jdQ`hOPkz+#=V6zCj!x(KQ{(eE8q>Gmviv%=@<#!tblE z{Nt_Xnm^q-4cIrZ3@oL-A3U&(8bEXajwKd2I0t0s1LCy-*CWLI;AZ3khPrcu|F2Yx zXkNf-fpvW@!|NrM10pS;YX+1D%F78Hm;;y#AO|Q9lprtY@&YBy4-6Y)HV(IaL#P#c zE#PjqAFFT%%={z; zAT}{JTsz_c&ja80UH6~wX22}Hu>jatKlsO6>VgA)4*ma)V*eK4{ubh& zJP^bz&F2_@0sV@_i$!1uDz|vY!yJp2Y#m10{lg@<19nL6~sBml%Iwitp1JONs9rDtnLo z>&l%0v*gA?v*afAeM@iZ2p(7h{SU0)oCXIF`@lRk0LDKF{>cNtz36~k4scu$#sU%# z0PE5pz<7YTPm5_RupS(68?OrQ6~O;jYMg(lvjyLe8iCaUYx}hY{^wZ^pcdfw4Y{0P zwiYN?2ULgy7#A=ffW9H{K*_K<$O~xS(8l4&3kW0>}aU?lHyy<#2%PDX8m*<9$L}7htatHGnnI z0gMH>c7XUN50C@C0q+0a{P{lZbJ{o@wZh?vnV<6J&A*@g88Gi%UuYIzry6s~jh&$Z zmLmo*z<=6WpgeFha1VPQn5U@@s3-?Sb%770Hb~sV?*seGx_$)H^*SHG=iBwdNt-!f zp4eAyw7&28IDSJoKw|;b0-6(yc);lZ8SP#o2jc*Z1sn%3A3zSUF~M;34Gq`*hL{)d zS|DkUNwqm2;J&~txnBL+k{cRA13V1u?}r&!3LKCD{>cNxzvBSlUUa}gI3N}eNIeiW zLFNRP-JX#iA&m!i1NZ*~4$$>FST79!pLn0Mrw4|Lx{9OVR63xqm=@xRpp>=_g-fP7$XP7sniq6ELaYgX1N)g-c559uhh<$we<#T|<0#*yS zx`5UOr~_CZM2`^q1++Fe7ueVJI`sLlnlS(10IVmn`N4Jln*;N&TMi)p$pgf{<_9__8Vd>fY&u*ZfnBxQPtOA7F`RUf35ZT*PRIs z@G8t8=NEtjfPIeO0crr%0ptO-L*oF}1++HsC+QJjj}U8vTd`K~FU?2Vw+9XgeP&h9 zO=bRlU_8Ve@IL_dsqlbu0Q!b1$N_ot0n#Hx9Z*&a1eOCh8eo4MM%{0SwL%{gROT(N zcAsSyT@zvrJTS~G>ioH4zjF#>8XN%J3lBIBAP>MS{xudjm=3UY0nq`(zwHr1EbymW zrF8UQ|D_X?Wy=B70Ff3@9iUpE+aYXnGRPZwVk5%&-Fbl6ne$V>+Mc1AS>`#XVFc>r7 z0AfF|Jb+Q~PaaV0FA*(Zj}NK?Y;6G8mmZ;;(JR0lz%83$L)p#| zb^Uwc^?z9&AP1-xh;u-`^}`Yi91;gOEs!yrpanLLm}55GWBZ1X7w}rZJ&rYcGz+g1 zteGV@g9EPlF>E_T<0dfF)gs1~p8+aKUpzC$8UKlaJ zF`177-l+vN?pi}xL2X#vdzPzUh)2DLVrQx`Y@2WX!V`-7+hV8s3K3@oJ_ zFdThDBmUlO8e;o~Mxa)B&oOyFYBcC^apv8t3eCG$>+`nonhT);=9@)V8{j_!O9A(R z9%?IdlHV3E{*u=PC1hv3Y`2S9F4y+M)EpVV) zR;~V@dFP4(U|)UyqATm-_~+n(Z-IYc|7ze~@J}AFxEC!zJwP3BC>#*43y=fYBgDEO zIbf_=dUF$bzPMMw`?q)>6MKq?fAWCL&)R-Xfc>#B)(12%5Y+|r`-Pkq$m$O$s{`_K zfYk!SH6KVVunAf~Y6K(p0{8!FKDnp9oX4hnzyn?j#BNiyJ2Y=!QE1+|QlG1Luj&Zw zFNOX$7}MZ@6!0Gi4=l3SUwDnheHjkO;(;6;pml+$HW2j)ExB<$IN(-!o|eGpzpv|s ztKCE%r4tq{uwkHTf%OA!2mXts7Dz3yVPIO0$p!p=p$%eDk5JxxK!rGfT)_OGYJp87 z)&Tc6%RSqOTA|khN9pcY-k&jVcPfD2SD*jRmG!^@_rvx8_ryMMe^mzf$FbnwaR4=d zn&t!G`@sW}7c5r?IP5bYn1QiJh_%7}STFPdtbsg7OR;Vcn!oa{u;zY}Xo2+u^xmx> z&=4H(7;s;TQDXw91&Smmpm~9OIv}f0C?^)64p1$y(Q1KB%nOWw7C=0(3FD@F#$b&4 zhCcQ^#MR-cGjDaG&sQJv_7$DM1IzK+z|vyxUKI!rER+$)5(h9Ai11%l2RIIhbb!_c z!ulX^uYH2#fscUyYc1}vZtzAQ=O4y{1H4Byg7pJ#0tc+M96%kQT0m=qss$Vel&1q+ zE`X!187RvEfvpQr2LS)%fqU3D6zw%>q8ovVE7r^hU-*~%Y1K|E)=>JlT z!2T5}U_WDdfcSSDKs`VmVDVoe4q#ot)dn)i39?6sxZjPO;6I^%Sl8<;xv@5K0N&>x z!OaKWv5p|r0w)6Z58(BF;eibU853k+tPA9FK)y8t<#Pb*0*nJJ2k=-p0Ix+4j58nK zqx%hk1HcQO2ae#rR`#!&1s&n@JE_lqt5X;A_T?L3#C;kZK;tp&%D|e%J+QC&fHE8a z9#~{!frVi%0GM|*0>OXOBeeLs_rL-A{W?po!yX|w_~)Y%Z!$0**8wL2LSV^4JZ!~|LhZh=BFm;JQt?V!Q#$^(Et89I10}JFi$O@oWFj+ zl{j8zIl$%x!n%O{?(xIc0Z~k#IYHuIwZO;s>;wn=4A|GcA!q@-_Oag4xc~Dz6qp5< z>HS~O@eF8y*I)(~0QbZ`unr#Js5*c=ptwIY4q#ot)dsXjNb`bQ!2y41{@7XLjrTfx z9e5P(d;CuT^N|)<+wXY1{tY-_cc=w6SS_Hj0C~X10vIb+7jQZtn*%nEa9SV@>@z>O z6r=4MLSEqGd%X{c->6DHHuF1#ScCr`4j%X%M(n3xY2kqo_rd|>0mXksIY4uRt}a0Q zvrhnh!Pl@pFa_Ax^*UHT0RQjrcO~EBL-{!B0O)?F1ug^rmk0+Gu|6;e`9Wv_sS9u% zj6K7M|FRr#&{#mZKym`We_RWY13tcI4|w3;%*K0kzajPweSELi0*7)V5Aw5SUi(5C ze+(ROE^Io?fCDlxVE?i}uulyjIske=V*wox$N{l#v^q|d$gcyC8jJC| zrotNGyH~#q?CW}+g;&>x2JqZoIk&b_KLvO%r13-H_b)L;1K)+QKag60X0?Fm035^b zXT<^))&bB1z`n);7PagOLwL$%Uop-P=*dkp!ba+?e zf9q(?064&E0eoNZhJil;2Ye&`U*iF*1rERgu0AMr0rm<>pI|&60L;t!;W!5{7eF1L zJn-?oe+KTQZwOrAwZI|Vd^7iw0+`;zx7yW(|Nn)Vcj>nl`zecmXn(=K;{e72YMKwI z2nQ(cH7Cep^ax2TKn@rKpRen67GmAt!mGW{KZJW&)jtZ%$F#tJHh4YHa)9OqBrk|O zKrwiLd4U7!fCF-XY5|P}m`-Y$eKDkfyNmb8JQvbf0a|wL@ zC92`(UfR*jZMOtwzyWD+0IWUmE*c=vW99&?Es%V`fjJ<%F2LF#>H?R?dxX}51N8fK z-o3H_xcB!fsSis9&MVRaT?=shSKxrJ5eKkONc#n}E|ALst~Vg;6|OJ`0QV9Hs1{HT zK;O{4_qx*s2Z(QTul6B#sr!VU~Q0fLFNQ9z(0G0m=o9!+&^I6xjJo^3;Vlx1&hkh5>{|j)yR*cLKk^?e`1@dqJc);ZYLLMkDA0Rma za)9!H#sbU>5dX{zG9K6o?4xh!UhNzD_}M z?8E0@66mqu-*EtA0qTH=141sa_z!h}jR&+Y;Oc`J=m7Qz0r#DDWBd*Bg}Pqn?JH`d zKk%5m7crRB=tIN+hy!fDz=lERfCHvl4uBRIoB{_h7GPa~Iv~;l<#7OWgSut_IG42p z%m>6cU<5S)Ie_^9ascXu;DJx>L*LN7+Bd`+!7-K>FmJSl&%aoG{_KmonAsN<;kALK z#gqepdEo%?0CNCwa~xoKAb%`?T!GXE5En>oFxDf~aWSy3>vi6~yb%81Yq1)Q{OpSZ z=3`o5@Nm5T0y=>HpBz9gs4NbE&le6*9?)1owZJF$?F9#5zoGlIZ-_BL4c7wZjWz|u zKJNy6e=}%+r_GxeWq|(xmIC%M3J=itTmLV50Gc3+a1ipd& z%*?)0*Xz8c>xHwQ4*%*{m;w0yxE5#*4wzs$fU$tp0?_|)E#P!O+1g-S2RJ435v zKrKKWkOtlv6Rg2_6X%@xht)`5WM;J~q~@3Fe4}k|9RDZG0RJf%{QgDo|KNc+AqOxH zC}Y5V77yg;fI#X3j0v zfV9*G^KrnTCc5NNdhDNDG)ZE`ZN(qdxzQHfNeQ+r9=3 zU|<385A0vakvu>RKm*3f1)>A8@h^G7@;CssLDmPedxXdXTVX#kZ(OF_v!G+B{f^zI z-d}lq27r5N0eLQ<3r+(EyewLP`2cExs4igh0;mTP|7AHKt^;!O0cAKqasu@K)B!Fg z_yosM-%vG=2h1#D-|GEYZH9pdJ{Rm0_iwaK+hgM2aR4=dTE#gaRu_=^AbJC(N02$f zDZu{Oyw~vkg|zs6_s4z);xhouqi<-C`ibI!y`cmC3;1WB5IG>NbwQUKJWLMwnEAml zC&*ZU91vIz;K=;o%P{RBuBPz-vCp|RZ?vip+&>5XZ(tc56Z?T+Uq_35Y5>szhr$7@ z3)tEK`h(_PivB>!2Ydz&h}P@G)(yt*w?FnXP<95u0R`j%zHf^0y(C40{{W*7V1EGe z0%2VM?+v9Lo(}j}I6$#a{A*o+c>%@(Bo-k4Q7lo>F^ z&;mt+)rS=gz6-~jL<=YfL|UMPd~gsB$d?n`1Rao{1IPuXmIF3nY{~P+SZ$tTGxL0% zx0$WSnVG=;tPA$TfO*jX0eC=<1^4+l05QOuHV%m6pY;K)3utX%uJj0{Y)`TAUVPD8m{6#aXwdPS~w*EUav$cW2?*seP01*c;7N8EWzCRxasVW+bcAu-54|HQq7&tyAGYCCE>^lpwAL|jyst?*&fO!Fp1(*kj>wsU$-%j}20W-6e_4}>P!tob^ z|5>dwI))se*w=hOML2*p0UGlHtPg6B&}_l}I_UmeWNy$yjAQTfIT`+6rOyB`4=pfQ zeOvL6hB$sq@ULqJH7`&i>jpG0P_{=P&H=i9INmE5#RAzJ;MNX&2|mzugb9uV%#2n# zKQmhW8}JX`->TGdKwvq58bD2BfrIG)TN@DUvrh;;LOi~BAM646d0nqF=hE7U0ld$z z^rzl`VA&Y}?&EoZ8^Hl}_XvH6{s3LCGZ*Uy?Rw!P&4E9cnmq$q zTA*a$Nx=UDu>H0^m@*|p&_j5{96>pEiGWNu2>;9(jSG z`rH={xfZWiDDIgP7)oH@?+e16y?v=}^~>vgbZ5dJ^0JebsH)t}e*GXty` zets!50eOI0fFt99ayS6^e}nl!sSny7A*l`Q1PA=o%(_t5>%4JMqGO-$=Lz$lS{-IU zv;gz~&lT9e61e}sazGk+0MP;ga)K~uf$}&2JptKu0mVP}7Suk$`{eTzm;;FP|9RuU z1qK`d|4;m%AK^bg2gGWF!T}ju8=MObpzC$sgwKanhv&eb_zv<^q5d6_+ zH9#&0xY_`4FFAoN!2gfT#LM;b-nh{F{9_kV)$+=Ld*lVI7AP5VSx`J=DLDXRCSXng z8h}~=IzY96!#~Gt4gmH?fCKowW6~q=w}Sr!e)lLa@9_V6fPg92vgHbHNn85Ks z!~u%`P2u+rD*iuC-ggh1X)P81)6RweKbN?N{|EkO0RPMfN=`7w0ootHd;s*n;Gf6) zfd7ju{yp|RjH>+%PzUT?c!T7xzMFIT-=x>}H^Ii?DbWF{1)@H|Tn=#GF`(Z&x@m;< z|05EoiGlS9|I=dl7ymE$fLspHSit&zsSUDU=u*M|%+~UG)&2qS7jVqa!1kw`3H~?# zrq-};r=phq=lfEDtSJn2KzSSh{PTOrt^eON;wOTQO-aQ6xtjZ&-g3P7|7qu{|0n)c z2Ppo_>HyXUq8=fv6KdT~u5p&f|1l4o8ZrS}9zRa}_12NckNE20LbLx*U9sQCh#-)C zMNkvaSRfwri}!&9~{kX-yvYpM93)^Z$T0bm{Yrw*8QuHwIZ4q$zN96W*U5oz{hJW>Nf!Y4tDJj+fkPnnRfZ#tr2dMwwMEuMC;)?%`3H1Ndtp9iT zpVkuo-{N260dRuk19XgZfZ|_cf&JhB_5U9K9ym2*2DUt|_{TVO%gE!+mk-oR@1BS6 zoBi{>&;ZzX7}zg|1FZfB{+ScpG~D|C;mM2tr&|0^wf>*@R~-;o9bj>v!vPWgXK=kx zD;xjoTEZIg2>8o5hG$@_#sAik#|=R&V75G3JH2)Ei2-tfQU`<%i144S16Uuh`d`)# zTmPRx{5$`r-I~Vv7HgVOIYS|CwN8V*>F%^&E}= zr=IhgnR<@mpFBYPs}4~7=W+n+gBJhn8E(~HuF>PaCPCnszLu>cUHq^3hXzP*d8|&b zb>s;_YE^IGo;?BFJAi$HvWI}<0N`Kxg|Vhk`U8HESo}{5@&AhA|D2T70gC_fIe_^= zasYdUxn{unf89gun0|2l#n*@#DC_^B0n%GX9Uo8wd^-*MS)jK+;CGTr9FWBU+4wIR zruZ)zmc00XipBqwb6zo1=>Lg-(E$4{C*WcM#eXr@4hjB;TKsEYagwITOttu*0{l-s+du=PtPW88QwwBq zK&S<>@jv6dj=U~t0^yS+U86r2KLdv|1HgGM{vSUM@jo>{ZL@9cNhY%neZkcK`0mj# z7oguYKn~#ALFNP$|8`x$;hf9&^*d&Y!~a?E|G@v$vlahStpAr-K;nUj2c`=Lus%o* zaQDbC2!}a<6JT9H&1r$@tPcSHS{H!+xBlPb|L8uX{;z#+ zGZ5kb1l9k<|H$LT|6?>?JyK}Ce(sde|6_ka(E*4BV)$oXaH!(HB!T*Wvc>=8vtBfl ziT|_U{}~6I4g5B0r3680n7=O!qorUe!}nVruYx`GjNn|1&pdi)6a zD60clAD}TW=<#2n+4etFon~Om$P*;~-!kfie(e8c|Ie0Di2V`&6Z>07oggv5Hxsc2 z27SK4hJk{A>=^*;hu=GxZ2V7Yq4=NN;zhwd@vk~S@h`DJSsfr+Ai}?_891*K?=85% z=l`nHL+;PD+!+AwE&l8EL(h-kAGo*rpY=d!g2&JoIQm4BUfoA>|I`4oMp*DK-#^US zz(4YjV3f}*_YYRV{{ZGA{7-J7`k(lpd=~I8IskrO;sN|W;yyIg2dw|sH3N!&+fQ5t zm*W4VpMgr9fvuzJ+5CUKe&7Q7dmH~BPYnS4!$u(nKpt?`|MA37>GK~})iY2Q z|KI@h|D8bXZ}mT80OkM+%#K%Da7|DkF~Ej0_%9y(8(s_YgUR#%6D|HHwRjHLSNy9E zQ2dwA0T%xf3wZoj^~37_ex=Vqr2kLo$5@~EhXrDq4 ze-Qk?EALwV`D9^x_CshAq>;rtO{(qt#YX8sxviKjAJpVt*`G4ZSx#FKZFu4W%KSts{KL>yx!X6>68L;@*^#n)xR{1~YXQ0w& zVC(4m8vl>3-wPa&?f;bzBnL=7KrcYB%ROSq99c}afqw8nkpBzB_Z_OPCTc82-#oDS0L6bU2QWWC4q$D7YX&_2EA!#=pH<~Eu=R;h|M%Vo{|^)Y zFZib(AO|=upe_LZznO4eM)1F`KXL#AQ(6xg_%FN|yiPLyp9%4=Iso{Wd;oI-5eJY5 zG#0SxruT=J^xwGjN165b6IDdw~lS|D)>#-~k$6n{D6#n7rn?pzTjL z&Scj1%TWKD^#iIA{?AbVKMDSy_@8*D#XmW~@_=AJhX1HXfNKV<|M&Pm!pF}4dO~IZ z_?KMP)-m;a;uyZZen$K~H~=GkzZ&sxwE*@A3iiK$JH9&{dxWp+UkVOjU$FZB^#c;< z|Ie`bzcb+f&miuh|1JJi2SoVK(gD&R#2x|afHdqX-ZqRr|Cf;G*Pq6b&A_(NC(5&o zv4_L|Hstuk|Btr*Uv+@spYJmU*!|{Z8SeiV;(z^sp{~pc?(Z z$A3beT7MdqH3Jd;PwD{;U|<;KAn{QT!s@eDZpe?12H9|Qc4QT%U% z2G}+R`9S0Z)DR2sJ;nsg4U9Z4gB(B_eE_Aw+J45Y>#z7<*FSmwf5Pe6_@8(>@Gm+5 z_!k|Z{y&!kSRYg){wKGv`d|AAtN7OWKksMYh-YB?*poyXW9;Ve4^9B~X%71w756fZ zL2U3??O@N`E4cS(^~3)J;C~|Ve|lhbKsNq`2P7B3`hepAkN+cn+WZG3Z3ZIzH@J&? zebWCE|JKZQaDW(e!1giq@P0kBeJtXG$Lj>&PHF}G57{5Aga2P|{r~y|`v2EYQ~&?^ zX-}EgPb2Qt|4$_TMF%h^n9Bized1p@AOkJXnfDK)&;KRuLH6f!STnHw$p-5GpS1WN zdy?Q^{lCNm-~{-8s|B_r1^^!f+psUdju%c%A@<)V_+QumcRT^a0m;+<4*wG@{$D@M z>VM#0bpUgMmIEvgg!Ms(|K`O1wQ`Lf|A+Og`Cm%j3^@P)bsYa=PqO+S_#dkr;B)|U z0OWveqfdYiI4Pa}sK;KZ|F7-)0Iv>QkX-z~e%e^^|HQxQ0PFuH7Rbi|%nzzfBL16O z{Ofw+ll5^B(s92W$E${?{fE z|EF60f9e>;y~Y3Qr$zXu4iGJnr30Y-E&eB-8T0=h|A+RJ`JYbe3^@F6f2!e~+n#K| z@B7HW0&C0%h>-&j_w!itg3J$WeXLGq&)iPCx&KG7y0^uD-vs*qQxyN>iT_g#H~{(| zc>v;HbpUe$YS|oMeZO!(23kPKylq647+MF&s|L>hqjR~=ySA9BF;yqSmzJpL2?RQr>w z=nQ=QwBrBkryF(I{$xYoxP71zeegHiIJO0pQcV=~OgS_9v z{F}+dzw`g6j5gy>G0*^|W;}6!s@4DHasc>&*mriO;@|uKiauWc=Mp{x5&j!m{5KT; zZ#f_v|KtMYfB?Jz4iG-roBrr7?Ef|3QC=$YfXR#ho&O(q%1FikDZoE@fcjr_0DOO5 z4gmJ0N67Jj#lNm6O!%$!r{`zjpfj-ZnMSJrpJ~(;IY9V-;=f_Q7yuk##Nrx2Ie^$F z2bk?o9KWx0>8;%VNAbTlf%qS1^*`}Hj<|RDhyPa{p!%ONfHTbpvOW;!0LA|VkN<-{ zSpEm9#SH9tM)m)WXB*xIEdabXg#K>`?9&wgJ2375)?*gzK>WYsDd>Swb@%Omr!&6) zb4Y^y|H(H0e=_iYvH=HJ|9=Yb5C5+@!3g^i2PpnS4mkY=-c)dckN>O1)9p|4U^B4u zna0-tH@+1)00Rz);h%h9IpAq<0Pt>2u)pJJXoOL9O83sb%wRvTNBFmbMEZY=|8c760Ep+xS+*0tS}Z z@pQvL4DkT!12ABp_>VY1@V^uI-|@t8rMstJ$nOPI{I5x1{(oGE|54)q#}oge17i4> zydZOe)({I!kosVp18(9C_x``yKlc6t>+Ur2L}W@pJ_-ls0&(afYI7hCk5X? z3w#6o?;L%6>F!DAbN~N`_>tHXAbI&ehyT}3eoS!>{HqQKtPWsKz?#Fq=m7ZsEDpGd z*XZ%jS@8dA!VHA?|3l;3oc~w+3kSsTPaaVGfAdU(;G3s`e~x2MDE)3+3lpsEEBH@+ zcvtf9|5`JR|6gnNsCliK)&CL)0RN%`V)(Z@Kyw1t_lF#C6Yn`<04xnuICm17;pOaxyHe_e`pkZ z3+!7XALMcX@c%7*|F_S=o~obP_2S7UwXExZa8CBk?UX$Hzt+_H|E7)8fo*E1)T^7l#?-zfRNy%Wz(9R34~e~gd9fbnLf0pozznpypC zHGpUV=m4t)zyU!p{!}&O1%ua5yOlQ_qsM=>fAakWa0b46zNtLR-@VW@hJSECh<|WG z$OFLtA3_cQ{u>6sf9gBnfB!qz$ojwCFKMq$l4jSuYW@GKihuK3)6!rZcmVh(4@CYS zIshCH(*Udw2>xx4fZ!jRz~etjH`t%cVb1_?FVFJs7nd1@qCsl+a}CYDIUS_`|GTI3`vedBguaJg3@rXJJ^};ofq&|N*P1H+g#*g) z0ONph#J)55|M91){~z!1|2^C$|B+QN1AAUn{O@_O*-g7&XkvCh-y~2I9x&fM5B!q{ z;Nx}VvEqL>cmP()ao_X{9_Q(Q_e4SR^#7|(18hCD#F z0s9dLc>Gtv^XdQO_d5d-{+r$a{0CwY2Y?S6tAPV{XIaAlem?;A#sBY}e4gn4@5a3RKaLHoH1i7Z|0?hgJ)j2cze*m!7#aBClpr(ilne~qaO!Qm8#wm*|NDI` z{ih$L8QA-h`u}||HM@S#i%kOBUXI`bnA!6}V{47f9&ka-f<4bS3idwVD76Q?uy_1f zlKI5tvE6+@v%G9>5r+UT$hq&;pS)!!Zmzkb3pxz*+_)IN=n<|7+g= zf8Wog|NNsf1N&b-+2a4?>!AUH$eQA~sR1XLy)V+5sDT3%_f3L*z(1^X-wTZl_+u>3 zcyF@t|DfRirN*VezQsSsrlyn@@_^-lSDIzvKV|Wsde!6q=scbNuYBJ#Q2L7EALI3< zFE-~hEI7-8Uo{Vz5SV0hiQlw;|OjmGd?_r0jT_WM5XL;3ttdrqY< zHGUAsJa;{3=$ukqkDBEG%LSMRavJ8~cxVQU03TuwFTjq)5=UT5@b9peq)XoaVk3$FF+NDHqGs8z+9lWrE{m+G zq2>t<_@^EM4`5z^|5r}w%In(yiueCXy1)Kh4u1xmmQB5S>a~b*8Rx3zB@ZADrY2Uy zvGt9m(9ST#&d|=((u}Dc{%x#%_-9o4zq#*u#XrUek*@&$8zE+4?!x6TY-}Sjj>bEd z16(|m0S}mcubgrx&u-t#9{-hpm;5JI#S9>)CGkJTYtwQ3zlzwGc`z}TAH!>KfSScW zb7{bT+TtI_iOc`*eNOR@@j;kDz7jc0;2(WX%w6g+M&$&IAsXn>ReLq(z+LGVOhpn8Qy~?fCcedTIS`(Px8E6 zt*tW8@kl>w&vOlhlTfGpJ&p~mbocY%rJa3TK51GaZoxu6t%b$GAIQ#=ifiNinE zD9AZ|_lE|*gK-UGO4crM{SwzR(ZB;@TjpMZRyR+v#XKg&z#c`cXXk0sE*V2Fo&{r?`$Cx<$fBVcy za!$LRY4AI)S;oEvDcQRK`2QAbnj>q3V;DFRJ#^#DuIIQms#$m5v|V=1WFl^$ zKM6krM=%2+{$IEFckA6`-HY27!;a7aA^yj4?QCo<-K$M4{&lVG5u8$`|LV6-EB?U) zzr!*2E=kG$CEUXVdmDu&TwpnXJivWWfPYx#+dlyR&o%AAlf&ra|4P40{sXIG2C%MO zo@I>LfZNL!ds<$J;~4&h z1EM`~b2&iw&LjRc9oa>8~sMU!~Dq;Q~Vxt`3_U^f&Gpn9pyXF_&sRk zg8<)&M9c8Ik#;=OxF_%Tj;HlI6RP{Y_vi0t!0ly=@d{W99Ki3t(S2`a5B%7^*x4N5 z_RduNzt&9g|620!ziqU||Fcd1-}W&l8dwSzkOQ`>9?buf&bTmfBhcp2><1CK!kth2$PKeCr%K&?tJ0YUpxG71OB(+ zJB+uD#djEwfnntFwkI2i;X9D|UC7`E*i#MDUq8j~MpXP`^!PuVht2;^;$|Q({=@IQ z!gpX1|6(~h067Aw2O$2J@i|@`juRIfZyQ-x@cPZGE&ds}H`_*^n1Th?%vRuEurK(} z;(%Zq@DEFa1I%`de~cdgiF=a$2_4Q1xbL#V2>pM$)&Km?Tlvl_{VvS>9H9Px{K*dg z&-3pm6913so@6`6o%5@$qwAY3qwA-(jy}=A0*+gNe;Ropw6P7$*0BwOtz#R~(%=BI z?J4#D7(M`6J*x+Qv|M=wT|DDfjPttcY+x=4f{iu4WEu(<{ zCuqQa+`s{$1{iaa#eW0AKQusJPBcc3|HFRb{4XYH2F%3ME&fmMgk$9Y&QSa-2T%)S za{#^v%jN?V|KlzG$DLy1|K$1qZ(lu2@VaOImA~0Krh(Zq@`O_0-+U$bhaQOIAID#T z1HNKRF#4nbdVm}N{4*YC*pK%P#~%MldWikG9QF)^{(pk?{}bu|&p`YS4WO|=c^m+Z zAUQ$kf6)Qf|0fUsyC$|0yzYIs^FMBZj{kDx38}9})eF9a2Ke%c`bOm6|*@0B{$GO{6DzB`~O5e z#r|XtcLuWXKhff!*jElv{O9KY_6RT*Q2f7c@&9`A@L#(07Qt&~dAEPu_J@Ze2|X=SR-I<5IqCQ#(!pI55d1#-~S)Ke(fBy`JvjSg8Ro$Q2Z+oX4Tz_|Kfqa+Bvb6`TU{6Qu_Zdfqz&m4v5795);7pj|Bcl693c# zCkg(+1s?yr+5TU(pMjYESN}hW_&-zeud#sQK9>X3|A%XaPJ5Y?0X|3^{)1IL75^oJ z|6$jROU&j63QE6x9J>E8`2WXF2)>{WcpNc6mPtH7>?{69A|@DlqT+w#i5~ye{>k?j zAb5@Yf6@QI|D@&tv;aAPS|HN@*&JZ?zxDqUPJ2Z@FNyeHY4Kk?=oh=^UT!u&Sg=np zPwcCa2g=}|d{7_Qr@{Xd|D!DaM|u2v^wf+Q$kzYOt^OzWVX6i4aDe0kTz`P-{|Ton z{wHWZQIcjSaQNRa;FtT}y$<*<-1j-~{`q6a2N-EMwgwIGISn}hjKSyNfX_$P_xMlJ z4fW?zX)^%)7x2T(O2q|D+b}!2ybY>VL@r zNGyPOKym`vI)MFw8V{gn2t4q5g7v?{|C-*v%zV@hI==pQpFdJp{l9WRvNI6FKm31-2>;3f)B?;0WOIP)5eV@w@xZJ6Y;Zy1@_#P>kMS45 z>fYw7r<#8E*+aF>X6S#I*$gcp2JCN+8~p!fHQ=8yf%pGqpCA9ade4BFe3sS!XTkpy z|1E&^7Kr_s1C&^xJPu%w0RA7>3`ra?jx&)&{0G+mXIAw1sae<8Yj13} zOkmF-@IUeNYJmUlKQZh3nVnPG?)voiwKAVSiku(tzxmPQvUEV03)I{oIUr5^BL>j; z-{aror-sacnPUC_l(Q}k@h{jX{>cT@{&{skgn#W1RQ%iZ#7UZ-U{x>i*O?VPe`414 zGrQ+qvFpHyIIu~%f;{b^TI7)4Ru>f>|)CW@<6Vw~Q)7$)*$N%?moBT&s!3@OW|8_Xu z4~y`xu|PKdT`fR+gqR!9HA556u>L=J_%{y!t9$)4Skv2NKI*;)HGut_AFcze*9HFT z2AiP+1pk^3a2(+Lzu^D#$LbB|Ednoi|6c{qs{fOfKLc6*-{F7CS?d3Z|BwS>IzZM4 z(Em$a0QhHp@Ql}ab~sL4{@?k3@WB5GR^M%cwSD$&dG?gOpFLPW%p(U_*K7s{KnKJ) zKy-lX4@lXZfX9F3KZ5=ft8fOg@K60O{-5}VX)F-q0GkWYJRtBdeF2L9NoP*rWuR9; z@`+V=NjZPotm!TO8sp!h7GTVV{-rx!KY!0>|51zBhwn!mpgMr@K*Ry$2B{Go@ASXm zAF+V<|2ebl->8l=V5Xd{`TwbBBmO@d@jvyy!#|F5I3Uyku0Ck}zs3K=1mb_S#s6yJ zzZdbJ`fg6AJ)izZt+ZhOkvil6(E-vI6mbCFqdoxs*(31S2{!)s_^*!7xr->(Av#X2482NAW-9oQrY1AADe7z`t;S;y)h;xE_JY@c-H) zFp=kh;{?Y4A^!h2xB&R?mBL;?>1{7H-}~9`nF9dEtqzEDz-Gw_So}+U(EI-*dDi^z zCT|AJREz(q7XMSuQT!_hsPEUDpw$8J|56vAK9C-vl+^)~cy)=!|JuHPrTFiiGDQP} zT{GG-2au8aKm0!Gf!R7BstrQ_d;g!jr`Mm+kG#P4mIEXnklJ7!)d-K){UL8LY6Kqt z)$m#Or<^+jW}4Oi(^>-mEiL}3|1JI{9*~@1qyt=!0BZzOtpA^UR&w?Kx_;{a*Y*1= z_W#2i{)6vkqYvPBSPMj-|4<#917Hn+$D#=s7XbgP4IHQVf5hWI_et{aRL2=G)6UiS zf7-cizy-iR^gsPS@lP$F`2fX!JQk4ppwtLb(jzdr#Z+EDj+2-FUuX6Iy1qZ+`hRHu z6k>qDtm|(||I~FKzYhQg{MQaPKV)-&-~*cvpf0fZxBmZ;I^O?R$A{gYbIuHe{(pMQ zwu1j@=UV&=2jH0Tfa8HI9YEiY9N^i||Evj|rTCw$`GlN5RE2MtwbuWy?e`ag|8;#+ z&;S8*0KvNcsVz@6V;xZXfWQIxeh}q=(Ek(v8XKtpf7tu~D!iTkPgmj$nCaI4Plx}X z4*x$5{(suJ@cqO;wSdKcE(a+7MgM~rLi{Jt|Htvawx9Ta^Z*9T1)7q%1HQ{KxhG z+3NpoKVj8fQSM&`)&;K^{{mV7@qfQmuulAcU^Wai`D|62I}Fb3$G`f^O8eb^Js;Xkee*b|h}nxKvUz5cI;Pr5(ld^2FCpQri1 z8Rx72XZ%n6Pp1ZuSRmqnY#pHfe=6dC=?^%2IzJ!z!sO-u)?56q?~nMuzv3VIpISij zfW?C|J11Yb=YJ3be8#mvSQD`M!B7V<;jS%>k`k>YS+E0|EX#mzmuVYmF z!~a7E0Q>#X1Hc#n8lZSc@a@d@5(CiZe})(UraIt3tPv3W*ZvW&>+^?ed;OoJ8|=^J zuxB9j|I^PuSMWar`hWWQi2sEH7z;2Tpq8x#)c;R~|JT}Jg5&=IivRTkeqh!Q5dBa8 z?>InW0mJ~Q54&S6K%M=cJpc^=>=XZ%15%O`cu4UNF7Wt2>?h9uVv=US%n0@WdBDB; z{~5r(a)9DLKL;*E#gVWnyJc}9tvA_6! z(Ex}A6#owvivI@}R2cte)!hYV_1%RSX|-is*|X5B?3uVcNs{iFKbHf~fO+%60$8DW zqit;%MtP0*+Tb;8R@(~g!<&Ww8N~nj@b$pIasZDb4v>66m=m!0Z)x#=&McmBGV}i- z{_hq4zkUGp{{Z418UQ15f~*Gu|G}PxH|#|(5b+M*UjY4I5D@>22k>5n@y|WSVF$ej z;DOp^WsllsMGwyh2Y%#_>HlkHUsPyjUtF8xp-cpL;DEl$%xGovf2|Pz1OGFKf2;pB z7Elg|^8n)k=?{<^A@Gm<;8cr$yPwFRoa6WXv%t91|Mv*~Hw;w#D+jO#*w|P=@_=8C zX|fkstnS$eKK}}E!QB`K!|n#=JHZ;|yKb|p zM*+BioDhCSzMu2&)%+PSb1os~bMS87Jcqu&Ijk#u|3AQIeIl}vh6S{jI zh)>Efa17iRn7Qr3`)=l3)Bt|}T5!RS&6^iJ3*7$^wgYBh0k9na`vxNouiF?it4#_V z@FB(@nVD_taoY051ZGBS`8ycT2L5-NnXQ0%U|%^vu`e7z9S@JWWWJ|*qa!M{n;00Fs6X{$li3vZ318)22PmO<|F*f zm7G0{;pfZinO6VLY^C_0LHxG@{%H~mDDHDPKzjtHpIZk139SDWS^r-&Q1Ktv|EvcP z|1K6_9-w4sW+&DJi3VUEkpBMx`hSc6-)G|=YYCM@SNHxE^nVKaAA5}Sg3rf3qpN!X z_m&5!0U{lc0ru0dlv%~GM*yrFaDd~3on}S%k?{Yg$$eVcJ%@AnzW-NqW&l24b?V%9 z=K}kaVZi*wz`V6N7o~uIS{gcl9N;Xb1Na^_fariUv;cJgIbaXoyN9zC*8ygx_5U;B z|7XJgJN(ZS4xkoL4M5+Y%>k}QD6RFumb2xvlj#482I;&O4Z6n^4Z`<-ApWQCkNJOa zfcSoi1)vd9D|%vIfV%rt1JttkFI4{@!++%W`#geU_Bc;QysRK=E(a6C~-bm<<;H8wL%>u>l9f@GtQ|qyeY}tOnRIv5nOL^#8RY|8Mnw z4Ew(p?62uliZNq(KyklD;sEjj;{k(s03*JGjK=RG(^x=xKsiAD|B9X&=z&tz1>L~~ z-GzHFRtg805AP^2%esa!W|Hn#($B@b)u}-2?M{W}?T&@!t&T@Dk7n+ra!)Z1hW<~% z0^mOd1Kx!PIL37V;{fP?*qhEI7eF20@&GsvbpUan2Id(L?1dJ%j&qE$(9DYY|5?O; zYXco%^}oY^J`RxlAUQzsKkZz_{|wzvAW8Qy2mc#@f9(HlH2|<5azM5QSPl*FU|r?` zEdFa*|6i*%G{4@nwS8~lULwFee7?m#_ZCtufH**60mZ)N1oCkJa{+1*2Ou86dnHxkDbpUGvrSSXYfS>SOaIDYr%+}3;`|axgiGSe$YJu`NK=uC&_VGHef-L@bOl*C;%-!0) z{kWeP@Gtv`SskFhpZIqs_>Xe{ju{8!#sa`SIKgQFtqV9Ez?=X%U`|Em5x6dJ*f-1W zJQ4oCkNN11XJGFG`~MBw4*LTBeg(#f82>N)|6OKTm$S_WH|BkI!2{rfE_wf7Mb0Uy zKV#m#s?aRFI`4JC=huh-?*RWl0>`6Z?*jW@z)FGtjM!Tp_aFu+0p?$Y^@0Y_=Yx9S z0I@;j`!D@1j)C(_OU2*Q=c|zi@IE;pj(;5IZ~!>L#R9X-ascvw$^nc6GBD-?*Sfl( zJj=5#Xl`a*5aEB8aDd`pI6&e8%LSqXfPd@%H7{79=dvoE0rd4L{)>tK!5aS;S^R50 zAi_T|FSP)U>U1!2W=R;{Ufi-K?(6+1h?HLf@|%0DB664;=2@xH_K> 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 literal 62716 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 HE$V*&v7k_5 diff --git a/share/pixmaps/bitcoin.ico b/share/pixmaps/bitcoin.ico index 2a00473ad8f9d7de2d6f63db0efa46381466c22c..de51520dac1aaa5149cce6d60f5206b736d4539d 100755 GIT binary patch literal 370070 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%0DB664;=2@xH_K> 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 literal 62716 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 HE$V*&v7k_5 diff --git a/share/pixmaps/bitcoin128.png b/share/pixmaps/bitcoin128.png index 59f00bf429a77e2f8f27e355dfb792ce876b873a..65404a0b1069b8aed724e288fb428fd0a1c53ca4 100755 GIT binary patch literal 10244 zcmV+fDErrmP)7*J@GMLblikRlRwC&(nQx-Q~UKoZtTa{myxfJ&ay)XdxDI^z3c!J7pB4B*P+EQcTb^gzGpt>f_K4YBaIcWUY*d03AmI=u@MZ{s z8I+#=&3K{2d4gvnT7m~8R+#aXQxD-MxBnYF`UEW78-N0kz?%<(WgdK7yjxG%y_aye z9{mOPDoi5ILc&RyhjOe7kBq{>KU zp0e$r>%l}3f2T}~CxhE|V9`Itp3BZ_y027oI z(}NHQK#9R%k;(TXZWLT6__jAD$3|d$9E-o{IHakA!;`T?ZPaW>#_ubT$ti(Nn?Axkm9+5TO?itbOi0%p+}}u36e6iFTf{;M>Frz zdMLLNY0%L!#A}y=7UJiG_~MsXa7DR*0!~8Xh9C1$D1*>>5mVH-4hG!)J3F2oJM6Z+rsUt+05JKaP-zoh!Hr(TiG{0=PuEhD!?BTMYJ6 zK$u$uADLs()Tb|7#{3jKb_H$Vy}-MH!Wm`HgZH@jTL9b{HT|Sp!w*I4P((LW!3=4v ztIpbSY}sMIl$h^a_}A@*Me=bJg|Ux3&ljAB@!N<4Bqo5>5`SY|Zt^WGGO{4}_fG(C zmgoURWPajXisYrBi9vt@GathEy2KYH9tU1d2pkX3tcM8Mf++-(mN8!#J_1Io@SIc> zVL)Yxvk({_Eb)gDFO+cr;xWV>GH%B6FJ?>@1x$1Rs_#^B%D=p5$FOFH3BZN-i&iT< z?{>q4CH6Jr6@nK_oQ^n95wwZsS&^Ym@HtBUxINC~?ZSvb51fo=$v9u)Wr$Ov&rg66ky%dgIN}I{N6IkX*CVcq@0U?{EM^=@Xk3O# zJSg#Y!PS5pEAZpJu(rJ<4wZw7nM=mJ`_7vi3%BdruUoIm8Mg#I2NqE{8CkT1Ja`2Y zPuZ)O|3|>zVo0Kl0^`X1x3UO6E_@GYOT5A0vt2=9Apne~K7BtetPsZm_W>?5*$@C6 z$=5+ejMNyny-f$O=j zsFBg-=a*aA>rpC5zehOpSlLT5%(H-xM<)A-#V61uX}(2GOU#F$H2{Ayx;S!JjexI_ z&nql^5XcZ{;ytAqr3+yv&V}NR2o_2nj|-V*;c(_~D&rVz+TTd2qD7(qiGJLKS$Q-WM4Q|hSm;jEtUM#;(Yzwt! z%Y0N-*6^ahQ||Q${>szg!hglulN>2=_QmUT9AZS`Uooy5>2mj^!!Qbr9^yX&iv`_i z*43x^RS*}=vnA6RwdXnGn>oykA4@oz7ALnHwKIqrXHme7&z-6zw?4mq?aVu4jwZa7 zVHD9aOksZd!w2hvi5Ep}cMYgH!xSR((|kif8-iFQ{<1J`22^^S3zluHG)_SrRe+P@ z2Tt5&1y81Q7~$F;>v&3Mu>894RHQCAH;=mIK@GAM;TF^QM) z28r(p?vVH^#ECH{?nQrGMzhu<1ber7&r*r~1W%1YjZvHMz~rFKtr#@r%&!6=0rD6H zZHaxR)BH+1t?%D9kQ9U0vi^1h!>E6+EzdF)K#fJzbBa~~tIWP7<)AtDGG6N_UqUg; zdnEo*a2Uc@>ly_6Ac>0*e=k@s$MrpUk&A(8wNA6}1~Ur4>()nyW#CIFJLoB+TnT&z zcxKefvI_n~8dSuICg0wXIK~_w@g5&v&oOwZ4wSlxe^98xS%$?YrX*`|m3sUF@!a@* zmqq6lv*j`QKE}%$j$H&)ToC0jh84?%32a)Bwf>#4;8n4?FgzpG~HBlBYHm@1RI9>&W z+b95;6)7bqr_uZr*Z~|Uak^khC8$&qqd1;Nz2^*xzl+x>vuou7x|iVc`2DoL zbX7#k)}&)WnI`)LDOoKS=YFCBAeGWTNmw%L8Qh(_ro;~~@eX;8Rj{^h(6ncc0m2Mi z_(gt~&`Hya!A};%L|`nz1FF7V7ghot4V6WxL5-<`usSg}X>jc8tIe+}c(z6j!{23$ zS*|zFgo(m{Tecwp1X8Kk;u>62F}4}lrQc5APGVACh)R6>aeN%f=bm8@MyP2Vg;bFztac0Lh$*y=lxC zunMO!XY?d~mXtm7yJ<2Nyc?z8`k0Sk3l6+zE$}z-JDtem+&40#1yV^ZP| z5f1>)Ipl0REC8`DAq0|>h(D0{m4b#Mq7;hYNq%{FHM)Y@ha zVK{HxC*ySBwv_D_hlB% zfUgFC!uqe2<2uD`Dk7E5fEmyTMk|Z0wn8&P!A*^?%u8kKS}n839_x00@Z-%R?IV{i zKH{1U2)1waWCVXSmVuQ+IlCrwf*Bq%1fL@f?ZgVC*aL z3&hG6d}Fe}w|dyJF?x?~#sNRXxC-$mK_|{VDMP9n=FB&Odu<_Bm5%Q?&u{d(ko3HI z*}7zT!gdP4bmEh&fP^{2uUWql-xDK?tn<*XCiu;R7yb2;MXlc@RLD9C1;cDwjWELE z0^BEYNg1nJ^lHn8;T|pd*;CtmwkNpmMC0sL3L7-qFw%|wFytdX_6g$s+?b!}&KDZb z|Eluf3k3_~yu)uU>5O+-ci;%??mE-H0C2)B;ln+!q8G~CPfUc&GBV`tzzK+xqH7~E z-%{pLS=+#Tihex#;B9qk;>7?@Ns2=}b&jiuf%6;F zI8RY@G1mbTUXIcQ<^%ARlWktNaNTu=@vSorGuS*41tG*Eeu;zqTDYF4IB|uF6IZAp z#3Rl?7Mnc0VlhpaN;XKGC*z-p?n0rooEljZpFYZc?h%$-qX&aAw?DmfYzal(1Bu z<-p<-yR-4E7S~xFC>J-|x!u$|eSt=mRJg&k00L=(B3IO`)gX6w4;akO+L%#0a zZ!Kyi$u(ybYB2$-1?XJ|D310|lVUGY#{Cc7cBW&^Rh_ z*0KtL&I>z(4bPDJY3)m9wt$CSqh`(z{dI)gT}zw6TA;aDfc|o=nbGUY|Kj0EqXe89nw5gL)!x+Y|}A6J$IvMHbKCwkick?%sF^+Lr)tv_KH^F>d#m|;4~D0`KAUh zXaYu4igdu{HjH>^4{!mq>Iw8=zneJ+k32T%%dVVrA=FRIZ~puB26SghQG?sxb5nl})K&AM-(I_0wTP zdydsW2p4b#n3?NzJWp)snscdm7fpYr{;{sHv)60Sqf}AzV7{)ZW|;KFmK+5Sts9(=4QvVPm14^Tlpbx`+{4Ta z3tRRq!BVD15IDFObx7MwvCX}K&t$y=l?&)?1pVj1E?^)IuyIqUN)&}LK3>KKgG}=) zb+-fw3~2#K%_nKMLzDTLTiDox3+`c#9YMfPe=)&GyTj9;wwTF|$2m)RembRVN-e-N z6oYvuP5qxJWD)%6Ne23W83n+5c;IJSC<JI9|2InkVSQ@%kQRpWLo@U0V0w-4lFD|d1ZvC7 z*PBrQS}hBETUugbvW$$51IY(u77`S*Iu{(${E{)X9K4m5FbUKFb?4{;Mn+2L7SJx3 z?5ap=-(WtLnlvLCq+u4g0MrQbQj1Rh9!)I37cmy=&3xS%1z^i~2?vZp+vs#uMhj5g ze1T{YvIHPD=nrYWsq*uU#+&JxkC2N;>2~Lm1#H|bSX@BcQF>bDV)_?P&ZrYYWM-KM z+S$vs2UESa(;cZ-Eq^Zt~pD8EAA~Dppr8~!RBy9 z)!t$8%%G|a9A1pwK=oNo3?*OzsLuz8KHQ~Y5n{toG~F}Ni~^7_UaK@eT)V0QqSOme zZ&g%g35GOpG-XAlXy6q}#OX6h2-0Rtn}Y!0it2z~>udC>gTUAYl(q+@gG+`qzf|pv z1*!}{&35rDCh$=LOfy&f2Uq|Xo6xM0QuH%F^a3QSFy#M2kd*gDA1K1wp@B*hU*Tn09H45xMu0MQ514@lj^V< zv@oP}=y8g*Voad)yvhoUkrrJZ>%pWrc;9$Jmf0TNvJl*L*s2&x058o}!>&{W#pSnSJ(}g9~UlbDKu= zpQL)bO*)#j9{@^^BP~1|dhmFUrHkeO1R3F0+$s2&j`{UjmYMe-#sTwAlFxO_kQ#?X zLEIqXVXW;uy$*D{;jG&kXn+71mJS(G#_z2JgF{+4l24_UfW`I)e--p6STyR45f7t2 z+)`!+8sGxRwb`ba{p@j=1uQTH7a*(8A+OHXm!)&NL#D8J%;10m+J4}9@dGSC4f>=& zb2{e7_LL#(7n0;r=)DW;>}56cRn-ED!dSe>8P6PrO|5~L%wP*Z-RiSd=I2|&hhnfG zlyHD_Tu%xL^FYuGMq99W%;|_@ma<`UIX3|?sylnf8wAAH`;ox@AaF?YPnIQEjlF>B z^jgE0VyxX_Y}D!aXD#O8$GUUe8I(ef>aS^;KZJgF0C}%el7SEeMkFx4U{HFoc#)&s zGJEO)MyJ!7TT58<{psfFHWTxQGO(~zF`69rxBPvR(B4a16b?p5z!ifJ>lsiD3@(5O zK&1gpVZK#o77YEs0#RRxm7Nh7_u@rRcAupM5*nXOCHlE^1OcSY1+K|_rV2qE+0I_7 zJ(K!M?3NwS2MF)QNZYj6l7g~?CpOU7$+a~aPzwl0jk+QR`WdqwG&_ZcdqNkO)c6^Pc5OKqg2Xuofkgq{g_|f( ztNBzx;E)!S;@vZ=Xt2JiaIb{LiyiweYf*Y|Y5U$Rt~v`ZLEZ2@J@bigrQ>UcxWEEX z-2^HmW%p+`dZl#Wer*u_#O~b=LU}31badO>zTOBEH zV22zus&sTy#hY|1tr=)w8d$`=WxoGli2h!{ocBYAumIFo{*6r<{?z zvx0{y;rx?S*Zo5*V03%ZAqS80l)YP&UWCotR$($Q4?*DOrQx8VV&*h(*b}-VC~O17 z43ihF!dQOjqP$ytt5E&cXdo2)(|?AgKrLK#gJ@QFEwmh`j}>$iVr+3{IV-xVg#@{&j+RkgDzYxp-@AbKYGo2@rtwer`z>RKG|b@ z+_y$YjAM>iOj!mLFjq*@K`k~|AqTSR${S$s$D2XmG>@{lHvwS01Iw>dx)s`xwv%4F zPP}$qSi@G!IOds496uSS_t0eTm?M|4Y_Aq&nYQa&(#<)ORVLdo5t>0C;o_P;3TSh&vQqm9@fMu6gzi0is%c{!kDG(Z%c3 z*ov=kE`x!UhaR%{Fu@hhbdJJCFmpLHIE~4lvkO=xtP`03#5C1FGYhv#$2ivD>t=k! z8H)g4hIkf zgYD97uNJPgjO?O9UE*_vua^R zVbH^PhQTdn{2z1dZAK|5u=js z!a4(0YOYGzjlzsciE9XdYtU&egONaoH^Z56AMiiTaD;;>ePVuW7gH37mW8;W2fWcd z-;;Q`f;GUPaKv5Z;@4IPE?y&Ey{5kNii9)a1m(ex^X!pHzGm=Yj4^{Uu4}qUM^e7D z_TG%Hg_}uTVa8g(N%*+|K^9Uw=kU(p$xU1iTwyR0 zBT@6;9yjs~WIoISxO?W8!%-}cTARRFn?AtPC(HeL{#_=mNF7qw^ zzVP5eovEw_W3cM1JvUQ$^;*?;R0+$PPG0lCbIkZO;^fFwEVxZYuBTW})w%{N+%jWA z;(fpe&G0!i{C^Lhc|B*>5tLP#TuA}^18^+HXDwg=X3%TgO{TU6j%W?c*x%rDMah>< zJRK;_D4bQN%yH66aq?|@o;A2=ZGEIm?AIxL53e2t;@!Zv5GO~gY8mq_GC#Rk;#w*) z|LYRZHRJu!1q=-Qa+=jgkGQVy9sovR4v$05^AdwknsF#hFhC7}TXmlAi{4*O|M&HMnSPSh$f`$m!LG>UiKJ!KX2fx1bCVlqH?HotT-TeIG4q z3wY9uzbs3x7#l;KPILWWu=b~Qo)s-mux`Cc)tup+qXhN_K4@@B9C#VyfGTJq`mi`T zAAh(oW2M0*W_%wgT!>sf0xN>_-1)-YQxGm%)9B1Jgp*NXj5*JL0p4ato1oD}O0TJR zVyA#l7^Q^_%mH6Em7+hh-a<(GT z)Hs5-+8S&&cu!$`v~ZNAnz4a1_~vdT1Q*^PqWex49@zj--H+6#S~~0#ivA z6DnVyThB7CS<8%vfXlq+^RejGSSOf0;}dPysy_QhIewF4HL@m>>uMzDN6 zOV~)g>z^#zSCuh^>s)2V+kl593QLxf*#~^n(VSNEn45wi6cbQPLT6b_?LuC9vWY9r zIG)TJKx$mfK#ZUn$r?-=e8|KH%$PJs5j7`i2;Vq;*As$^)~L~#q52k!9ykNI(%?vf zLgYbS;6pRoFQfTy8T<%%v-jK-3O~5y>(lRT591Tf%Ss-5lcrb$9Hlebc-~>g<-k~+ zyo+gL1t7(N7|A3C4f&qIC4xK5aD{_nB&0aL8z%m>({{cfBy*oJ-z1zwX~t4BJ_!72 zH1(wseSK{WYhNE8%NXR9W_-fLyUf_+gVtAy5WhDk=ErrPA9~JLVq#mwwzV>7fHOSC z(FAL7S~P3KfTn?GTQlHk#mA4E<6XdJN1ru_i*VbiJ4X;+wK_0A?Zb;cSrLRen-C8j z-hgrQcqsSvDfbVq@Ln@672HXv3sAUV?$h!AfA@^}ne)7_-0@#&SOYMM%}XhlbZ|wN zw_^M^gQXEFp3xe_1!@`m5V*vN6&TJ6EM^};^8_n*pb%Vmzou;0&P?+%i4Ot)A;ROe zAI~Cu>NqG*jVFK);P{ZB<3d5mS52OR&pdN}=eZ!OcEXBi4IJt8D(9?f{Fe1&B4LnKz!&G{ zV?0z~eBF#o5%()%1!YwDR-Dpj=1J>wTF})xaYfS_m{E)x18Q^XLTJGkaQvCU zFRjj_eVUXR+ZNrL1t$zsPvJyV;6pLbgF!+4? z`mNCp4WFO?)$Eo6@%Lj|SYjODj1L2^pU#Z-nbW2|BYcTGQfj3LsXyNt?LGUxWY6mhtTb7+er+s~TYv2NavbS6) zF2%*Hi%ZRgPOdUFKNM!H#JJR8eX<6MZPLk)Uw6Xv)BgR{byFrp!E8}73VsW3F!(UA zf92~_L+sS5UGnucpkoox@pbl+BZoVK`F-oZbLh9f(Y(!oBNmq&-ujD6VZ>W4HD}gf zvl;)jFh0^Y%1-dj4Qp`i@%7YSxw^jjQl!+sS^`feSfrOx|3*qntCM>hFfJ9K^IhN) zgF6Xs0!z1hip<|xjL(*0*Ps{N-iWk=H3$q?gyTI1m&L%ZH?1|O8R4mO>u;IyCuZCm zGY7oKdk^h)n0>owZfKP#3Mj`)*i!Jun5r%#_w^Z!n+1FgK*x*^7<|Z#POkN7zMnl} z*I4>pV-%5IczeVRy3p%DYiXzm#>G21T7wg4YT3+ds4{xdU43ve6s<0$Z{a9-i^2QMSW2IdrVog*R9p%^`iBOWdbp+RQH+knB9&M| z>T=Gnlhy65S)_Uh@*yQJ3Vv}=zp(m8jB^emlR9-A!^x^}q1r_4A9 z`f~GTU7_C^0DRg)GwZolm#Ld^ML&!i!6}TZi~#7MJ{UKy>aNaw*i8f=(YfEAa!<;l z4duuh>8D&@q3o%?9*9;y3}koeN$%BVgw8E34?b5o5VC7I_zG|Ph;LK z>BX!1;AEp{32z?x78jZEQQ+WdtU>=So4VGNy`Q@T3xLk0h&zb8rHLIn#Qj{m8{?~W z+t~w{3%&H7*oavpNL6Q!83#n@_Vp1ttQt$GH?)RDNHA`AuikP+0Cb!WfKJI&7*_^Y z@21R$-CO_?z4SZH*ucUD6K_JeP+S5IjTpXV6~pj(%NjDHO8~xM#-+gOSOTW(;3pn~ zB?pIv`}^g)|MKnrGl+D-y;;8j)Yc#bczavu&b=hs{)8R$!?^{6J&P{*uJTeYE^arAX8nxVk9brx<@ue^4C7jZw+jB%n3~${DO#V? zo;90DulU~dJC`Dyya>3+jF*}5n}p`gwFaL*dUvo8;W&+lQ3uNG!!4`3nb z_hVPjWD6z@_UYo{_Iz~=-uMV~48CwsIL(T>Wx!Vgvkh0yq$a!Pv&K22aA1EXx|-bnn@}Kkj?7g=J!ah9{%% zT5n0~y*r$9_V?_w_dffa1JjtsG^R0)X-s1p)0oCIrZJ6aOk*0;cuPPgy8sgnRds+e zU?H$L+Xg#<7T~Cec#~bmiNqOA096&B1gHnj1ug*22NnTUKsbA81~@`Mf|r07fUQ6q z&?6#tvgXgzFjTALP|n575@Kiyhl{vTyHU3Zv!BpFfZKg|n!w zpUI4xGU9~=7&Bti3<9qLuMlX77YRtwAtH&%Zj(2HDM5e}#_a{bQsC_by}TYM9;qIQ zM3RI157FMfhvrvW*tw&XJ-haCxU-AIU;^LwD2Ns_qpXftxD*wLMnja86)|&mCAITr zGH*c*bL(ePIir+O1ebEpX|2#UC28EWXJ7d0^y#=@Ns(v z5PI!BsZ^TI&Liw@+sn=!t?by*!tVCH96Z>`Kz~2J?_-REF$TvmhzN=j4aKP}ttB2U zLkY$M>sx$lQQsntAsUNNUQx`fIaSoopUJ$1vza}&ii#PfL?WS)s^9~MfmQ+y@dB^~ zXa{=p&7PQ40%V0918NC+^fCffzL-;t+tyl+bat_4*FJVOx3S}u7TVi(b8!D5dV2cs zJP#va9Ct|ABfk3-1Q_8$d~31RqE<1Ep&%ZmqOye9wKJ$&FpK&HHO!h*MP*e9#xWy3 zB@G-PuqQTWKU)bj$AE~O;^pIy2_=B4hB-cNuOKkg&dq*TIKuS|^bhdrtA}W7X%AF+ za~o}~yExX}OFErK0LKk_w}?5FL3eUlP@>^Ns!Ho9h?byw`Z7=jYkjP*SXDxXlva=^Nv<_zS6?(-FxZm>|$^riE5zAUDp|vu!HMNP}%HF*7|-V z9Ph6zsnx=Q(zxJ+L*-V%y`IY%m|R}-3x&$2zvMV1V&r=NbgCfJvt9{vTN6# zVBCJCmECQ7IC$_d0|Nv2zK@8(bq&V2rzPy5Q6+n=0E)Gm7PMPMIt1E8O|v+%)AzjA zqEKvq^^AI}rnK4^78sERYi$E!7NE9PgbEQSB4Q8}s{p}pa60gPi&~5CE5?CXG)iej z5wmJ%P(Lpq#q7FZ=m+FEyWVE;jSd;0Ob3}OtfV-VwF%&Fg#>&?gimq2~1O(JsGLWe*u)Pc@0A_Zbx5x}Yv z5JQ32A4+`R5444Eaa@Ojf+!VL#mug)rf$J3<}Ik9W=<6qmBl!&Gtwiz2izwj?PDRg zF(-hk-rLtV!0xu)wCvo)E3fRNZD%_j9S7(+)ku!DF{8Sa*>y9Sw{RA<^Jg-*ZU%)#ag34g z0Ur~QU1L$FF(*J@Z~wiI{A3-U`}9}Hq%#N_Smeea=HziZCul)V7@w^Q(r?8cHY&S; z7IC!Mw@ypc`0Y{8>|OuT`oYPxo?nYKYwnMQ5=ZA4W9p6SSw6bh!7Q}c`B-KeV~WHW zlOu*zMX@6qpQ>3+;UCv1H^1j{Zhp@dl$95aDFNKEZU|K+lgVIxB^r$keV^;axp5l6 zT5C~y6!v3i$NH^CLOXE1mT;zEw<(KuZrr%Gf28-w=~{qU+;GF6N2;9SN?({O>MTHP zgCGk8TwmEO=niYNEu0SR?Fw=D(MKBxNAvu(YyUby5CCcc9?yOMS8MK%bO5obs`>9mKJ@v<6lY%%5p08X;dMaZaXw_rLH zZ3Ee9#5TL?wpdB+iOf4nfxX_kGXx21->9yzl0Z?Ga?BitaSl?o`L@P7P)bE_ou>*GS`Oy9b{Qh_N^O zc`EmPbt*snugfxVa=K~4!uiC!iJe{$j-BB7paxS7+u(x^y{ocwPU2f!5Ew%>SwKj z1S;3pQ_c8_BO=9Mid`cOAgcw%$0}-*k!a{}>&@QY_j6y1s_b+_rrGoSU7=WPf2e); zvC-76acyHRICKDb{&?Mf=)}CurA|8DkRf@$7%l{y(|zt}G0p@)Rkhy@g||P|^yuMd zMtSp^HEW#E;ELiWq;(FqaFU)`Do-OC*kFX3pq%|1BTgYB9}@k!COB?aHXWN@45K(HNy` z*S^;Wy6%2w<90mlQ8nXg=ZrT2K*X3#>U9}><&{^uHO~1JZlrLoI%d8RzrkA5K*B6Q z`sdn|sR+4lRE!C_g0)yIfj#BpO~8~(V617D7{^~IB4LD?jyN+h=0YcXt#O=mM73K| z4g2oA>ArRqb~?sy_BGs!H`q~5qVo&uzHmxkKJ4RqfmtxF7=Ho`hq-j=>PkNpS>$+$ zvn)=76}u>TOy+mR56`NK7M8i*wF(TF#31@fof*BrIa81*tZ! zTo_pY4vO`y6YlNS(1AN|xo;P0nvL~$;+mZwf{llrB4ye5ljds zlmNc<#S!DEMf5dscHesVHiPSgepfJU$|E2~u9F9U9mhq%4f~l1ouD&s{t=^tFjDYF z@vV>Vr^&+p8Y4kp?QI3-k-w3j5X z4MwL2R2AR1_+#!52GKWT1Y-=w$f!fm`HnmxKoG?7ycC|FA>>9*J3~iRiA2LREUBY@ z!E7BX`KVR#JfHsl1l>n^IDDv^?#>%65(t zzO`8Y_!p{*S{)LYs!EUy9K6+a9W97Qq^i1{x%Jh|t*@rAs9?l0EL=R7_uh3aM-Clh ze@ExI4MpRDydnSuc0e-KM?6+`TGxvR=~S96O)YGGcE@XfJn8b2{&}58t15^PiMY(D zso;W(7xT8OmQy>g`Xm9@FPO!x?|nNz{PqUAI(w!G@J69(NoEG{Z3ZJQr{fKX2(BBf z7Z@)b*w@J;dk*uPUvK5QTUT+#JC;*aGJFl{rEg!#-dzWI@_&CzVlXu&yn{Tl0U#Jd zEtyP$RAw-*dXeKggu*UI4jQam`c|WzChXe?Qfs~gdneM~n(J*i#9LLaku$vd3 z-^t;FM~D4ZGrNMi`8Bv9H}5C6@{j-lte;^Z*^}2nAys8}%YJsZ9T@h#<2cmKpGhf5 zNS^kwEb^EDf~vN2@MO+#$W=Gw4((QuugGux1X$}aFxW-rH3_4t z+2vki1kJA5ewh*p{PSB#x!_QYgh3K1ZHwP|_> zj^K?pZ*Z*3p~|`EFJSq~#e~DdN7C(E+BwkCh41;3PSoFpDMo<6AnZ$Y(LdNdX+weM z`7Ao8mTPXlggJFHhW(aEq6+)B+Dh~GePlA3ARi#lF$D<_Y^at@_t86WkdPB59L{Fn9FG(; z783-y8At2;AVPIbIhS9(oVTyOfU4?~lUDcbKFE{no~O5`Z%Xujn4$#8p)b*m<3uQT zX5%`cp~)g61pDm035XHGA(x`kICE>OS+Z;a=U;dhRn_Gq8g>Ky2_E|1lk9HWkJ{<9 z@Ckr`T6+5rBjQj$XCc?zyh>NBTpTPCF~}Pgf&z{)L}Ov%MFm8o;n%%>pg+MAKYNas zo@>VQ{JakQycScK01zaOcpU3J$Y8ph%Bm9PEu1x>t>1a5oBw_I8Gg0l1=5+RC489j z1c1OOOwrwUkby+^guOMHOtW=!E9-vpG|k)gqH3pv(f3-M0R#wQZNVl} z0URGP2%7S}iDlY26F@{njU^NUDD3u=wo(s*rh)LAeE9g37$Cc*Kb209N_WuRe~@T6 zPC=}Uc%+1IxBw&0&=4{fP;2qke>EB}IOU0@@z$#xX=A5zNr$4Nk`^sm<-1zV9doN{8BF#tnC#)GaS6LIV$mWBq9sH^aa<>Sd?N_eQSS>R zVo}m~=XW5h=v@ z3xMYU^)35dhbKYK%98~?r-ht=RV~SMAIWqd-F*jfj7ua`KqMTeAW}>y6eHw>5#wNn z9s8GCLVj|kjWJ-&(@8JYzH#F}djM(2);kg@@vSe8YbdKI&dosfX4`s9FqQ;J0{cVZ zkk-tsmhy^n_P@FxW2D?7D}nC=*htqwKUMjt3EB6cQjz!jsEvRVw|((_k3s(!gUMrb z%YKYFxK5a`8^sMpiMUZ*CxYunaKy!N93YoK5=0|aZOXSi6!tPh$Hl2QD}f3WVg*sE zYs!g4!VnxOml$P{Pl>T4z#z~jBHg9sCFP467O-dcK1{@vfOGMcE3R9(@rCuRO-)Ui zw=KVRvsE5I%wHToK5c3uXFTQ*YxpB$H_Z zJb=5_d~~)^^FH7A=lIrAF{6ZYmoKEKxB%c6*)|?CjCIR*0ULq6HM3{3`i849jzI)b zD`#ia{>3e~+)@D0+PW@f`<*96w9$z6=le41v4vm^9%}wQN#c>Go1gB3;Iwo z)QFgSFI~QR?=zb>{0Lyvw)IC>ExGQ${g8?y@()&}aJ2D(;M9;LFK^j?(&0^8UfM=7 znaUFq1U=s>pY;;**``<45A88~$BiGo0x=&^we_GFW4QL_mCUKD#u(X8;6;u3q0-}Z z%vuTXhrp+gc6Eoo|G-0h<7?l=aa=@1jbW=*`S7zZZg@O*&$4A#mPT#(4{-FKuu?hN z897zO_dI-m_wU|u$`=H^L{*(k+T(3k zozLxeuV%)~a)5sV{!>K8RQ(5~8V86-5AZ1PgYt?pe($y$xayiKNT<_?s94JqLH_O1 zrK_*b-Sgs$8;@l|k#DIle~QtT(Rv3Wf*T4EiAIKfLZQhQzKDYu4vN(er(OO0aN##D zRpovoW~Hh+UdCtMS+ltDw##xWkT(F|9}nTf_?q8)fX@R>v**s@otT!Yha&o<5r?U69Ev!I=nKF-k)F)Anwp*%I%edq zn;Tc6{+AGQnYCWX_kGH%N?7y$YpI(*6A{@3{5#M#Zsi-#%ByMwxCZ!&@A-3Hd~qxP z_VLft+R{!W5&{(vX%W%?yJ_>|-_PD-M8qyX`^LIRB>guc<{q^~r(TkVAR^WXKeQ71 zr{BErSTiRWH-C7`$5yMDe?>Xpsx`iEi5Et>>w`CO(PifnjfQ)HzXaBbNdNeia-5;6 zg}}Rk`!gA@{Dt4X$frK>1$MRXAsh|`K@-e=Yx!)feAa(%-1yC8?%oULUsDn)c5f50 zA61owQzdGc?ezyN@)=Ed-+XSz&%1KJH8wVywkH2Bko$o7suth3L}L-|_`qr|y=oZ+ z@n{I=?T{E8fWG5Bj*~ze<#>?TPtq<&LRd|LyKX(<2(P{?d^MR+qP}#+^=`s^tWY> z34hp#`JlD7N(qD?i$%Eo?rXX1>g5!~qdssyaKDHg9RCte5LC4kct7xQ-}6gee)$zX z`>8Ln<;88sNq|Wyy2&x-AD(_;{jX2Ff7!AtOA83USK+UL2CGUwO(bO}h&l}Ng@g=# z<3#@+;I3Q$eks;%6vtd=eZN3ae9xz_IL_~X;5t@aaUQXPh$XO_J}n~qC#2jH*+^MU za69lX)@o&2>n^_d*{|`dUp|BDhH;#sBJD+-&lFeL|Jtx&!-*3g&fAt=ztA`S{fJzJ z64Ob}+soz*cp_}F9)IP9yS6knH4O!88n0}0TMO;&M)ad1rop$q0q` zzH%{svQS2vL0B=b}|hSaa94%&D6} z*2w!u-~kbtxGheGYBNbtRRf#{d>ptXl}hvcvoG-FFMNaTTVEj*iXbLC-!9GoR-cqG z|GMe78=e{dq&3dPD|(iRP?q!+O}xyz5Dsb*T2ip9(|ll#wQeVjwfBH9!B_j)QNs}W7DHYPJGV7g*QZI6!{k`@+YWX zk5D!?LS;cz7DDuRgP zsp{jR=JOO3{c6*uwZqb*R;^kUBUy5(V*gl_)o+{#CkP&XZQ-lZ?>zZz>$+iQ+J5kY z4~7P3&br7L`)6XDcd743Y}QS+z6F5`FFA+X?zo!TdDR$W(!e)?Pm0Ly$!`0+AOL`> zy1@CsKLEG-zGYY2ZocvL@A2~uzdWuDfM63qx`3bf8TTu7XU8|MUAuNzlxWqeRWVJJ zTr8sZsB(jdR-PUaj;nfwUx?wqoq_1ar<)(?d+n8X-_p3)!~38k?(K@svi5ip(kYLM zs$y<>_vKu1&5B$?$3Ebbz=M-9-j7_{JcFuM0Usa;gVyx-4e*Pf|C(?8*MqdTwd1n3lHZ^T%<~0&tvSdxTDB81Je0jg3zX#088Dzs7VkmFmFe2;4*Kejm zk>4~mJ$h1}{@w3vtoJ?tP7HU8ngxm-dYdccObqSLB@(RowW{p~^MJVK+s`zu8)@>y zT(^0 zLujxgS@o=PZoKVsF1z~t+%Ym;z!!lpiO8YJZrj%)FA0!?s#X$25C0OVO(s*k@Y|R8 z+^4@xd)sbAjvpHn5CIfvGnnt-$OES!0+%jbJ;S=rwfNq$RX<~+ys0WxWLPJy!7H$9(>@(JoEH#NhT7wZs>%q-GZS(l@5&l#HjP_k{a2v zZr!@qO{u=}%0{=Y$ZzoB4uRW6WWK7%iGo*EJkL^E8fVp&=X1@CE16w81A-Mhj{^S& zyqHg8{i!fz2#|xS&IbO4Ae>y*-#@_9zxoY7_})+0x@CJdoa_!G0tkq9fjnW1e5Zio zr=Dn9+jHV`-@p3*#EHZ%6wI9}dXqtFtSTp}dR6c}k7z-JWfwNE`qovPwRmpM9@!1t z2Rxe1h?)|Zas+^(`GjkLzW^=;B1byAczpdv{%7rDfqekO5=4i*1|gwVn=IxB;jsU+ zy2=%4LZNp!*7*aBSp^iU`X_k_UdAUBb~$@#J=flJ3Fj_bNHi7(I7*PQ`vqXLNS+@R z`Wj400_32o)xdic{Zm2C0p!(=13dQddVc!I20Hfb$8nrt=L_cI2#RXhjdoR))%%69 zib_Ep-&$T9C-6KU$8}h=crI7pu#)8$H4ra~L9jmWm%x7lzYvkZ(<^m;VM-Gq2UVR< z5IcB3PzSK9Z4VFs&pI~z>`4wCI*c*HiJ&Oaa3NKtbreKOhA-(>@H`L4by?UjhpVo? zkQFNzQ&bX%V4Qz}z{vZlh#Z~l`o9^R5d?r?lS>~Y@D^rTYiVoQ#lt^d#}gYi(s}sE z5D^q58j4d{T1z}yhURALJRdh4;;e?bTzTCEEWfBBCwL#&27C>8Xd>tA#}j7^0di2) z5U>*X5O5<clvPc(jPh(pn0_rDS}MXe`3n=hpM~YgcgI z^0RWP-U2%a;`a}V$iB(0<5=R1BR~$S8YM6gKLo4>O0BiDweI0(kF3vXgkCC(=Q3w@ z9p^1y$mQ28XVKYpIpfYJ5d61*ABf1_$*$9Q;EW|e4ysxJTt+Z7yaOmjVc))2dHy$B zKwVZ`bRKhRt8!jL26&l3@IMxjjyL@BY2*)7wLn#`Rn-SowM$RNfU5pNRX>pRE~arN zLRF)xdbz58T~+t1>ftOYZq6pHzNK)+4*{n_c8*~t!F<5MsSviE#x$lejcH6{8q=7@ kG^R0)X-s1p(|9xZ|2L$fzrxmRSpWb407*qoM6N<$f c #4E3F68", -", c #474053", -"< c #4A4356", -"1 c #4D4659", -"2 c #4F485B", -"3 c #524A5D", -"4 c #4D4065", -"5 c #4F4269", -"6 c #554D61", -"7 c #52446D", -"8 c #5A5465", -"9 c #5F596A", -"0 c #554576", -"q c #564873", -"w c #594976", -"e c #574678", -"r c #584779", -"t c #5C4C7C", -"y c #5E5372", -"u c #5F507F", -"i c #625B6C", -"p c #604F7F", -"a c #61517F", -"s c #686272", -"d c #6F6878", -"f c #736E7E", -"g c #75707F", -"h c #5F4F80", -"j c #604F81", -"k c #635482", -"l c #675886", -"z c #695A86", -"x c #6C5E89", -"c c #6F618B", -"v c #72648E", -"b c #7C7684", -"n c #756790", -"m c #766992", -"M c #7A6D94", -"N c #7D7293", -"B c #7F7298", -"V c #827E8B", -"C c #81759A", -"Z c #867A9D", -"A c #887C9F", -"S c #897DA0", -"D c #85818D", -"F c #8A8592", -"G c #8E8995", -"H c #908B97", -"J c #95919C", -"K c #8D82A4", -"L c #9085A6", -"P c #958BAB", -"I c #998EAD", -"U c #9E9AA4", -"Y c #9A91AE", -"T c #9F95B1", -"R c #A09DA7", -"E c #A197B3", -"W c #A39AB5", -"Q c #A89FB9", -"! c #A4A1AA", -"~ c #A9A6AF", -"^ c #AEAAB4", -"/ c #AAA2BB", -"( c #AEA8BA", -") c #B2AFB7", -"_ c #B5B3BA", -"` c #B8B5BC", -"' c #BAB8BF", -"] c #AFA8C0", -"[ c #B4ADC3", -"{ c #B7B0C6", -"} c #BAB3C6", -"| c #BCB9C1", -" . c #BCB5C9", -".. c #BEB8CB", -"X. c #C2BCCE", -"o. c #C4BED0", -"O. c #C3C1C7", -"+. c #C5C2C9", -"@. c #C9C7CD", -"#. c #CCCACF", -"$. c #C7C1D2", -"%. c #CAC4D4", -"&. c #CDCBD3", -"*. c #CFCBD9", -"=. c #D2CEDB", -"-. c #D3D0D6", -";. c #D5D2DD", -":. c #D8D6DC", -">. c #DBD9DD", -",. c #DAD6E1", -"<. c #DEDBE3", -"1. c #E1DFE7", -"2. c #E2DFE8", -"3. c #E3E2E5", -"4. c #E4E1E9", -"5. c #E9E7ED", -"6. c #EBE9ED", -"7. c #EDECF1", -"8. c #F0EFF3", -"9. c #F2F1F3", -"0. c #F7F6F8", -"q. c #F8F7F9", -"w. c white", -"e. c None", -/* pixels */ -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.w.9.:._ G d N T ..,.9.w.w.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.w.0.>.| J d 2 # . . + > 0 0 u x Z W o.1.0.w.w.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.w.q.3.O.U g 6 $ . . . o o o o $ 7 t u w r r 0 0 u c K / %.4.q.w.w.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.w.w.6.@.! b 8 & o . o o @ @ @ @ @ o o % 7 t t u t t h t t w 0 0 w k n L ] *.5.w.w.w.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.w.9.>._ G s , O . X X o o O O # @ o o o @ o o o % 7 t u w t t t t t t t t t t r 0 0 t k C T ..<.9.w.w.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.w.0.<.' J d 2 # . . X X O X o o o o o O O @ o # @ # @ @ o % 7 u j j j h u t t t t t t t t t t t t 0 0 0 h x Z W o.1.0.w.w.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.w.q.4.+.R g 6 $ X . . X o o o O O @ @ o o o @ O o @ @ @ # @ @ + e.e.e.e.e.e.e.t u t t h h u u u t t t t t t t t t t r 0 0 0 j x S / %.4.q.w.w.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.5.@.! b 8 & X . . X o o o o o o o o # # # # # # o @ o o e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.t u t t t h j h h t t t t t t t u t w r 0 r k n L ] *.5.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.9.#.~ V i & O . X o O o o O o O @ @ # # $ @ o # @ # e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.u t t u h h h j t t t t t t t t t w 0 0 r k M P { ;.9.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.! o . . o O o o o @ O # O @ @ # @ o @ @ e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.t h u t t j h h h u t t t u t t r r 0 0 W 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o O O o # @ $ @ @ # # @ # e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.t t u t e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.h t u w u h h h h t t t h 0 T 6.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o o o O @ @ @ e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.u t t p h h j h h h h u u t w u e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.t t t t t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R X o o e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.t u t w h h h h t u t t t t t t t t u t h h h u w t u t e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o O e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.u t u t p k j p t u t t t t t t t t t t t t t t t t t t t t t h h h h u u w t u e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.t h r T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.R X o o e.e.e.e.e.e.e.e.e.e.e.e.e.u t u w h h h t t u t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t u t j j j t t u t t e.e.e.e.e.e.e.e.e.e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R X o @ e.e.e.e.e.e.# O # - t h j h u h t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t h h j j u t t t u e.e.e.e.e.e.t h 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o O e.e.e.e.# @ $ o @ * w t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t u u h u h u e.e.e.t t 0 E 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.! o o O e.e.e.e.# O O O O & q u t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t u h u e.e.e.t t r T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o O e.e.e.e.O O o # O $ 7 t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t w h h e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U . o O e.e.e.e.O o o @ @ + > t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t u h h e.e.e.t u 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R . o o e.e.e.e.# O O o o @ ; t t t t t t t t t t t t t t t t t t t t t t t t t t w u t t t t t t w u t u t t t t t t t t t t t t t t t t t t t t t t t t h h e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o o @ e.e.e.e.# o o o o @ = t t t t t t t t t t t t t t 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 t t t t t t t t t t t t t t t t t t t t t t t h h e.e.e.t h r T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.R o o @ e.e.e.e.# o O o o @ * w t t t t t t t t t t t t k S Q / / / / / / Q / / / / / Q / / / / / / W Y Z v k 0 r w t t t t t t t t t t t t t t t t t t t h h e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U . o @ e.e.e.e.O o o O o O $ 7 t t t t t t t t t t t w z ..w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.q.<.{ Z k r w t t t t t t t t t t t t t t t t t h h e.e.e.t h 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o o @ e.e.e.e.# o o o o o @ 4 p t t t t t t t t t t w z .w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.q.=.L k r t t t t t t t t t t t t t t t t h h e.e.e.t t 0 E 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R X o # e.e.e.e.# o o o o o @ - t t t t t t t t t t t t z .w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.0.X.M r t t t t t t t t t t t t t t t h h e.e.e.t t r T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U . o O e.e.e.e.# O o O o o o * w t t t t t t t t t t t z ..w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.,.S t w t t t t t t t t t t t t t h h e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o o O e.e.e.e.# O o o o o o $ 7 p t t t t t t t t t w k Z W W W E T T E T Y T Y Y Y I I I I I P Y W } ;.9.w.w.w.w.w.w.w.<.n t t t t t t t t t t t t t t h h e.e.e.t u 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R . o O e.e.e.e.# o o o o o o @ : u t t t t t t t t t t t 0 0 0 0 0 0 0 0 0 0 0 0 r 0 0 0 0 0 r 0 0 0 0 t v Q 1.w.w.w.w.w.w.X.x t u w t t t t w t t t t t u h e.e.e.t u e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o o O e.e.e.e.# o o o o o X # * w t t t t t t t t t t t t t t t t t u t t t t t t t t t t t t t t t t t w 0 x [ 9.w.w.w.w.w.W k w u t t t t t t t t t t h h e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.R o o O e.e.e.e.# o o o o O O O $ 7 u t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t r h T 6.w.w.w.w.5.C t t t t t t t t t t t t h u e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U . o O e.e.e.e.# o o o # O O # # ; p t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t h / 9.w.w.w.w.] k t t t t t t t t t t u h h e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U X o O e.e.e.e.# O O o o # o o # & t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t w c X.w.w.w.w.4.M w t t t t t t t t t t h h e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o O e.e.e.e.# o o o o o o o o $ 7 t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t P 5.w.w.w.w.I k t t t t t t t t t t h u e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U . o O e.e.e.e.# o O o o o o X # @ - t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t w n $.w.w.w.w.} z t t t t t t t t t t u h e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.! o o O e.e.e.e.O o o o o o # O O O & q t t t t t t t t t w t t r t t t t w t w t t w t w t t t t t t t t t t t t t u k / q.w.w.w.=.v w t t t t t t t t t u u e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o o O e.e.e.e.# o o # o o o o # o # > u w t t t t u p u u u u p p p u u u p u u u u j p p u u t t t t t t t t t t t t Y 7.w.w.w.2.M t t t t t t t t u w h h e.e.e.t u r T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o O e.e.e.e.# o o o o # o o o o # * w u t t w K =.4.2.4.4.2.2.4.4.4.4.2.4.4.2.4.4.2.4.2.Q k t t t t t t t t t t t t L 2.w.w.w.7.Z u t t t t t t t w u h h e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R . o O e.e.e.e.# O o o # o o o o o o + 4 u t t t I 7.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w. .z t t t t t t t t t t t t Z <.w.w.w.9.Z h t t t t t t t u t h h e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R . o O e.e.e.e.# O o o o o o o o # o # * w t t t I 5.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.} k t t t t t t t t t t t w S <.w.w.w.0.A t w t t t t t t t t h h e.e.e.u h 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o o O e.e.e.e.O O o # o o o o o o o o @ 4 p t t Y 6.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.} l t t t t t t t t w u t w K 2.w.w.w.7.Z t t t t t t t t t t h h e.e.e.w t 0 E 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U . o O e.e.e.e.O o o o o o # # o # o o O * w t t M E / / / Q / / / / / Q / / / / / / / / / S k t t t t t t t t t t t t P 5.w.w.w.5.B t t t t t t t t t t h h e.e.e.u t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.! o o O e.e.e.e.# o o o o o o # o o o o o # > t t w w 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 w t t t t t t t t t t t h Q 0.w.w.w.,.n r t t t t t t t t t h h e.e.e.t h r E 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U X o O e.e.e.e.# o o o o o o o o o o o o O $ w t t t t t t t t u w u t t t t t t t t w u t t t t t t t t t t t t t w z X.w.w.w.w.X.z t t t t t t t t t t h h e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o o e.e.e.e.# O o o o o o o o o o o o o & - t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t r S <.w.w.w.w.W k t t t t t t t t t t h h e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R X o o e.e.e.e.# o O # o # o o o o o o o o o $ 7 p t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t k ] q.w.w.w.7.Z u t t t t t t t t t t h h e.e.e.t h r T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o o e.e.e.e.# o o o # o o o o o o o o o o O - w p t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t r L 4.w.w.w.w.$.x t t t t t t t t t t t h u e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R X o @ e.e.e.e.# o o o o o o o o o o o o o o O @ > y t t t t t t t t t t t t t t t t t t t t t t t t t t t t t r C =.w.w.w.w.0.L u w t t t t t t t t t t h h e.e.e.t h 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R . o @ e.e.e.e.@ o o o o o o # o o o o o o o o o & 7 u w t t t t t t t t t t t t t t t t t t t t t t t u u w t Z ;.w.w.w.w.w...x w t t t t t t t t t t t h h e.e.e.t t 0 E 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o o @ e.e.e.e.# o o # o o o o o o o o o o o o o o , 0 u t t t w t w w t r t t t t t t t t w t w t w r 0 0 c / 5.w.w.w.w.w.1.N t t t t t t t t t t t t t h h e.e.e.t t r T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.R o o @ e.e.e.e.# # O o o o o o o o o o o o o o o o # ; w t u t t h u h u t u t p u t h t h u u u j k v K } 5.w.w.w.w.w.w.0.L u t t t t t t t t t t t t t h h e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U . o @ e.e.e.e.# O o o o o # o # o o o o o o o o o o # : l / <.1.1.1.2.2.2.2.2.2.1.1.1.1.1.2.1.1.4.7.q.w.w.w.w.w.w.w.w.0.( h w t t t t t t t t t t t t t h h e.e.e.t u 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R X o O e.e.e.e.# o o o o o o o o o # o # o o o o # o o O y X.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.6.E a t t t t t t t t t t t t t t t p u e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o O e.e.e.e.# o o o # o o # o o o o o o o o o o o o o 1 _ w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.q.%.C t t t t t t t t t t t t t t t t t p p e.e.e.t h r T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.R X o O e.e.e.e.# o o o o o o o o o o o o # o # o o o o o < ) w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.8.$.K k q t t t t t t t t t t t t t t t t t p t e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R X o O e.e.e.e.# o o o o # o o o o o # o o o o o o # O . < ) w.w.w.w.q.9.8.8.8.8.8.8.8.8.8.8.8.8.8.6.4.=.} P c u 0 w t t t t t t t t t t t t t t t t t t p p e.e.e.t h 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o O e.e.e.e.# O O o o o o o o o o o o o # o o o o o X 1 ) w.w.w.w.o.m k z l l l l l l k l l z l k k r 0 0 t t t t t t t t t t t t t t t t t t t t t t h h e.e.e.t t 0 E 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.! o o O e.e.e.e.# o o o o o o o # o # o o o o # o o o o o 1 ) w.w.w.w.X.z 0 t t w r t t w t t t t r t w t u t t t t t t t t t t t t t t t t t t t t t t t h h e.e.e.t t r T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U . o O e.e.e.e.# o O o o o o o o # o o o o o o o o o O O < ) w.w.w.w. .x t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t h h e.e.e.t t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o O e.e.e.e.O o o o o o o o o o o o # o o o o # o o X < ) w.w.w.w.) 7 7 t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t h h e.e.e.t u 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o o O e.e.e.e.# o o o o o o # o o o # o o o # o o o O X 1 ) w.w.w.w.) , # 2 t u t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t u h e.e.e.t u e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U o o O e.e.e.e.# o o o o o o o o o # o o o o o o # o o X < ) w.w.w.w.) < o o * q t u t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t h h e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R . o O e.e.e.e.# O o o o o o o o o o o o o o o # o o o o 1 ) w.w.w.w.) , X o O $ : w t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t h u e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R . o O e.e.e.e.# O o o o o # o # o o o # o o o o o o # X 1 ) w.w.w.w.) < o o O o O * 5 t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t u h h e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o o O e.e.e.e.O o o # o o o o o o o o o o o o o o o O o < ) w.w.w.w.) < X o o o # o + * 7 u t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t h h e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U . o O e.e.e.e.O O o o o o # o # o o o o # o # o o # o X 1 ) w.w.w.w.) < o o o o o o O o + * 7 t h t t t t t t t t t t t t t t t t t t t t t t t t t t t u h e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.! o o O e.e.e.e.# O o o o o o # o # o o # o # o o o o o X 1 ) w.w.w.w.) < o o # o o o o o O o O % 5 w t t t t t t t t t t t t t t t t t t t t t t t t t t u u e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.U X o O e.e.e.e.O o o o o o o o o o o o o o o o o o o # X < ) w.w.w.w.) < X o o o o # o o O o O o O $ : 7 t u t t t t t t t t t t t t t t t t t t t t t t u u e.e.e.t t e T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o O o e.e.e.e.# # o # o o o o # o o o # o o o o o o # X 1 ) w.w.w.w.) < X o # o o o o o @ o o o o o o o & 1 7 t p p t t t t t t t t t t t t t t t t t t u e.e.e.e.t t r E 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.~ o o o e.e.e.e.@ # O o o o # o o o o o o # o o o o # # o 1 ) w.w.w.w.) , X o o o o o o o @ o o @ o o o o # o # & - 7 w t t u t t t t t t t t t t t t t t t e.e.e.e.t t r W 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.q.' $ @ + e.e.e.e.@ # # o o o o o o o o o # o o o o o o # X 2 ) w.w.w.w.) < o o o o o o o o o o o @ o o o o o o o X O X @ = - 5 q t t u p u t t t t t t t j h e.e.e.e.h t t { 0.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.-.2 X @ @ e.e.e.e.# # o # o o # o o o o o o o o o o o # X < ) w.w.w.w.) < o o o # o o o o o o o o o o o o o o O O O O O X O o # $ * - 4 7 7 t t t t t u u e.e.e.e.e.h t k *.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.3.g . o @ e.e.e.e.@ @ o o o o o o o # o o o # o o o o o X 2 ) w.w.w.w.) < o o o o # o o o o o o @ o o o # o o o o o # o o o o o o o o X o o # # * * = - : e.e.e.e.u t r B 2.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.0.~ o # @ e.e.e.e.e.@ # # o o # o o o # o o o o o o o # o < ) w.w.w.w.) , X o o o o o # o o # o o o o o o o o # o o o o o o O O o o o o o o o o o O O o e.e.e.e.e.u t r Q 8.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.:.8 o o O e.e.e.e.e.# o o o o o o o o o o o o o o o o X < ) w.w.w.w.) , X o o o # o o o o o # o o o o o # o o o o o o o o o o o o o o o o o O o # @ e.e.e.e.e.u u t x =.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.9.R o O O o e.e.e.e.e.& o o o o # o o o o o o o o o o X < ) w.w.w.w.) < o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o O o o O o o @ e.e.e.e.e.t u t 0 T 7.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.>.i . # # e.e.e.e.e.e.# @ o o o @ o # o o o # o o o o < _ w.w.w.w.) < o o o # o o o o o o o o o o # o o o o o o o o o o o o o o # o o o o @ @ $ e.e.e.e.e.h t t x ;.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.q.' & O o # e.e.e.e.e.e.# @ # o o o o # o o o o o o o & D _ _ ` ` D & o o o o o o # o # o # o o o o o o # o # o # o o o o # o o o o o o # @ @ e.e.e.e.e.t u w t { 0.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.8.J X o @ # e.e.e.e.e.e.# # @ o o # o o o o o # o o o X . X o o o o o o # o # o o o o o o o o o o o o # o o o o @ o o o o # @ @ # e.e.e.e.e.e.u t u 0 L 5.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.3.g X # # # e.e.e.e.e.e.# @ @ o o o o # o o o # o o o o o o o o o o # o o o o o o o o o o # o o # o o o o o o @ o o o o o @ o O # # e.e.e.e.e.e.u u t r M ,.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.-.i X o o o e.e.e.e.e.e.$ @ o o # o o o o # o o o o o o # o o o o # o o o o o o o o # o o o o o o # o o o o o o o o o o @ o @ # e.e.e.e.e.e.t u u w z *.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.#.6 X # # # e.e.e.e.e.e.o # o o o o o o o o # o # o o o o o o o o o o # o o o o o o o # o o # o o o o o # o o # o # o @ @ # e.e.e.e.e.e.p u t r k X.0.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.q.@.3 X O # # e.e.e.e.e.e.e.& # # o o o o o o # o # o o o o o o o o # o o # o o o o o o o o o o o o o o o o o o o o # $ e.e.e.e.e.e.e.u t t r h } 0.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.q.@.6 . O # # # e.e.e.e.e.e.# # o o # o o o o o o o o # o o o # o o o # o o o # o # o o o o # o # o o o o # o @ # # e.e.e.e.e.e.p j t t r k } 0.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.&.9 . o o @ @ e.e.e.e.e.e.e.# # # # O O o o o # o o o o o o o o o o # o o o o o o o o o o o o O # # @ @ + @ e.e.e.e.e.e.e.t j t u w k ..0.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.>.d . o o @ @ e.e.e.e.e.e.e.# # # O O o o o o o o o o # o o o o o o o o # o o # o # o o X o O O @ @ @ @ e.e.e.e.e.e.e.p j t t r x $.q.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.5.D o o o # # # e.e.e.e.e.e.e.# O o o o o o o # o # o # # o o o o o o o o # o o o o o O O o @ @ # e.e.e.e.e.e.e.u h t t t 0 M =.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.7.R & X @ # o # e.e.e.e.e.e.e.o o @ @ # o o o o o o o o o o # o o o o o o # o o o o O O o @ @ e.e.e.e.e.e.e.t u t t t r K 2.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.q.+.8 . o o # @ @ e.e.e.e.e.e.e.# # # o o o o o o o o o o o # o o o # o o o o o o # @ @ e.e.e.e.e.e.e.t j h t t r h Q 7.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.3.b o o o # # @ # e.e.e.e.e.e.e.$ # # o o o o o o o o X o o o # @ o o o # $ # o e.e.e.e.e.e.e.e.h t t t t 0 c o.0.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.0.^ 1 X O O o # # e.e.e.e.e.e.e.e.# # o o o o o o O O o # o o o o o $ # @ e.e.e.e.e.e.e.e.p j h t u w t K <.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.>.b o . o # # # # e.e.e.e.e.e.e.e.$ o $ o o # O O o o o o @ # @ @ e.e.e.e.e.e.e.e.u t u u t t 0 l [ 9.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.9.) 3 . o @ o @ # # e.e.e.e.e.e.e.e.# # @ @ # # o o # # # # e.e.e.e.e.e.e.e.e.u t t t t r t S ,.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.3.D $ X o o # # # # e.e.e.e.e.e.e.e.e.@ # # # # # # e.e.e.e.e.e.e.e.e.u u t t t t 0 x } 9.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.0.+.6 X o O O # # @ e.e.e.e.e.e.e.e.e.e.# # e.e.e.e.e.e.e.e.e.e.t u t t t t w t P 1.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.3.G = . o O # # # @ @ e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.h h h t t t t r v { q.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.q.#.f # . o o o @ @ # # e.e.e.e.e.e.e.e.e.e.e.e.u t u t t t u w 0 l E 4.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.9.` i o o o o o # # o o e.e.e.e.e.e.e.e.p p t u t t t t 0 k L ;.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.6.! 3 X o o # O O O @ # e.e.e.e.t h j t t t t t 0 u Z %.0.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.5.J 1 . o O o o @ @ @ & 7 h j t t t t t r t C X.0.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.<.G < . o o o o o % 7 t t t t t r w C X.9.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.>.F , X o O o $ 7 u t t 0 u C X.8.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.:.F = . o $ 7 t 0 j Z $.0.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.>.H 1 + > k P =.0.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.3.^ ( <.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.", -"e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e." -}; +static char * C:\Users\Admin\Documents\GitHub\ittrium\share\pixmaps\bitcoin128_xpm[] = { +"128 128 476 2", +" c None", +". c #4BCDFF", +"+ c #4ACDFF", +"@ c #4ACCFF", +"# c #49CCFF", +"$ c #49CBFF", +"% c #48CBFF", +"& c #47CAFF", +"* c #4DCEFF", +"= c #4CCEFF", +"- c #46CAFF", +"; c #45C9FF", +"> c #45C8FF", +", c #4ECFFF", +"' c #46C9FF", +") c #44C8FF", +"! c #43C8FF", +"~ c #43C7FF", +"{ c #42C7FF", +"] c #4FD0FF", +"^ c #48CCFF", +"/ c #42C8FF", +"( c #42C6FF", +"_ c #41C6FF", +": c #4DCFFF", +"< c #4CCDFF", +"[ c #40C6FF", +"} c #40C5FF", +"| c #3FC5FF", +"1 c #3FC4FF", +"2 c #4ED0FF", +"3 c #3EC4FF", +"4 c #53D3FF", +"5 c #53D4FF", +"6 c #52D2FF", +"7 c #48CAFF", +"8 c #47CBFF", +"9 c #3DC3FF", +"0 c #39C0FF", +"a c #38C1FF", +"b c #38C0FF", +"c c #38BFFF", +"d c #55D5FF", +"e c #54D4FF", +"f c #54D3FF", +"g c #51D1FF", +"h c #50D1FF", +"i c #3EC5FF", +"j c #3AC1FF", +"k c #37BFFF", +"l c #36BEFF", +"m c #35BEFF", +"n c #55D4FF", +"o c #51D2FF", +"p c #50D0FF", +"q c #3CC3FF", +"r c #37C0FF", +"s c #35BDFF", +"t c #34BDFF", +"u c #3CC2FF", +"v c #33BCFF", +"w c #3BC2FF", +"x c #33BDFF", +"y c #32BCFF", +"z c #32BBFF", +"A c #59D8FF", +"B c #59D7FF", +"C c #58D6FF", +"D c #4FD1FF", +"E c #4BCEFF", +"F c #3BC1FF", +"G c #31BAFF", +"H c #5BD9FF", +"I c #5AD8FF", +"J c #5AD7FF", +"K c #57D6FF", +"L c #56D5FF", +"M c #30BAFF", +"N c #2EB8FF", +"O c #2DB8FF", +"P c #2CB7FF", +"Q c #2BB6FF", +"R c #2BB7FF", +"S c #5BD8FF", +"T c #57D5FF", +"U c #50D2FF", +"V c #30BBFF", +"W c #2FB9FF", +"X c #2DB7FF", +"Y c #2AB6FF", +"Z c #2AB5FF", +"` c #29B5FF", +" . c #29B4FF", +".. c #5CD9FF", +"+. c #31BBFF", +"@. c #28B4FF", +"#. c #27B3FF", +"$. c #27B4FF", +"%. c #26B3FF", +"&. c #58D7FF", +"*. c #2FBAFF", +"=. c #2EB9FF", +"-. c #25B2FF", +";. c #58D6FE", +">. c #57D6FE", +",. c #4CCFFF", +"'. c #45CAFF", +"). c #56D5FE", +"!. c #55D4FE", +"~. c #24B2FF", +"{. c #24B1FF", +"]. c #37BEFF", +"^. c #51D0FC", +"/. c #54D4FE", +"(. c #25B3FF", +"_. c #23B0FF", +":. c #5CDBFF", +"<. c #27AAEF", +"[. c #53D2FE", +"}. c #4FCFFF", +"|. c #2AB7FF", +"1. c #22B0FF", +"2. c #4AC9FA", +"3. c #0288E4", +"4. c #52D2FE", +"5. c #52D1FF", +"6. c #2CB8FF", +"7. c #28B5FF", +"8. c #20A2ED", +"9. c #0084E3", +"0. c #53D2FF", +"a. c #21AFFF", +"b. c #57D7FF", +"c. c #48C8F9", +"d. c #0188E4", +"e. c #0189E4", +"f. c #54D3FE", +"g. c #23A7EE", +"h. c #038BE5", +"i. c #20AFFF", +"j. c #4ECEFB", +"k. c #068CE5", +"l. c #0089E4", +"m. c #028BE4", +"n. c #20AEFF", +"o. c #5AD9FF", +"p. c #31B3F2", +"q. c #038CE5", +"r. c #028AE5", +"s. c #22B1FF", +"t. c #1FAEFF", +"u. c #1298E9", +"v. c #0087E3", +"w. c #1FADFF", +"x. c #55D5FE", +"y. c #44C5F9", +"z. c #0188E3", +"A. c #048BE5", +"B. c #1EADFF", +"C. c #59D9FF", +"D. c #2AADF0", +"E. c #0085E3", +"F. c #048CE6", +"G. c #048BE6", +"H. c #048CE5", +"I. c #21B0FF", +"J. c #53D3FE", +"K. c #1198E9", +"L. c #0088E4", +"M. c #058CE6", +"N. c #1DADFF", +"O. c #1DACFF", +"P. c #46C7FA", +"Q. c #048DE5", +"R. c #51D1FE", +"S. c #32B5F3", +"T. c #0086E4", +"U. c #068DE6", +"V. c #048DE6", +"W. c #058DE5", +"X. c #1CACFF", +"Y. c #56D6FF", +"Z. c #1DA2ED", +"`. c #058DE6", +" + c #068DE5", +".+ c #1EAEFF", +"++ c #1CABFF", +"@+ c #50D0FD", +"#+ c #0D94E8", +"$+ c #068EE5", +"%+ c #1BABFF", +"&+ c #45C7FA", +"*+ c #058EE6", +"=+ c #068EE6", +"-+ c #078EE5", +";+ c #1CADFF", +">+ c #1AAAFF", +",+ c #57D8FF", +"'+ c #37BBF6", +")+ c #0088E3", +"!+ c #078EE6", +"~+ c #088FE6", +"{+ c #29AEF1", +"]+ c #1DA3ED", +"^+ c #078FE6", +"/+ c #0990E5", +"(+ c #1AABFF", +"_+ c #19AAFF", +":+ c #19A9FF", +"<+ c #4FD0FD", +"[+ c #149AEA", +"}+ c #038BE4", +"|+ c #078FE5", +"1+ c #088FE5", +"2+ c #18AAFF", +"3+ c #46C8FB", +"4+ c #0990E6", +"5+ c #0A90E6", +"6+ c #18A9FF", +"7+ c #3CBFF8", +"8+ c #0A91E7", +"9+ c #0A90E7", +"0+ c #0B91E7", +"a+ c #17A8FF", +"b+ c #32B6F5", +"c+ c #0890E7", +"d+ c #0991E7", +"e+ c #28ADF2", +"f+ c #078FE7", +"g+ c #0A92E7", +"h+ c #0B92E7", +"i+ c #0C93E8", +"j+ c #16A8FF", +"k+ c #20A6EF", +"l+ c #0890E8", +"m+ c #0A92E8", +"n+ c #0B92E8", +"o+ c #0C94E9", +"p+ c #15A7FF", +"q+ c #19A1EE", +"r+ c #0891E9", +"s+ c #0A93E9", +"t+ c #0B93E9", +"u+ c #0C94EA", +"v+ c #0D95EA", +"w+ c #139BED", +"x+ c #0992EA", +"y+ c #0B94EA", +"z+ c #0B93EA", +"A+ c #0C95EB", +"B+ c #0D96EB", +"C+ c #0E96EB", +"D+ c #15A6FF", +"E+ c #1099ED", +"F+ c #0A94EB", +"G+ c #0B94EB", +"H+ c #0C96EB", +"I+ c #0D96EC", +"J+ c #0E96EC", +"K+ c #0E97EC", +"L+ c #16A7FF", +"M+ c #14A6FF", +"N+ c #0E98EE", +"O+ c #0B95ED", +"P+ c #0C96ED", +"Q+ c #0D97ED", +"R+ c #0E97ED", +"S+ c #0F99EE", +"T+ c #0C97EE", +"U+ c #0C98EE", +"V+ c #0D99EE", +"W+ c #0E99EE", +"X+ c #0E99EF", +"Y+ c #0F99EF", +"Z+ c #0F9AEF", +"`+ c #17A8FE", +" @ c #16A7FE", +".@ c #15A7FE", +"+@ c #15A6FE", +"@@ c #14A6FE", +"#@ c #13A5FE", +"$@ c #0C98F1", +"%@ c #0C99F1", +"&@ c #0D99F1", +"*@ c #0E99F0", +"=@ c #0E9AF0", +"-@ c #0F9AF1", +";@ c #109BF1", +">@ c #16A8FE", +",@ c #13A5FF", +"'@ c #12A5FE", +")@ c #0C9AF2", +"!@ c #0D9BF2", +"~@ c #0E9AF2", +"{@ c #0E9BF2", +"]@ c #0F9BF2", +"^@ c #109CF2", +"/@ c #119DF2", +"(@ c #14A7FE", +"_@ c #12A5FF", +":@ c #0D9CF4", +"<@ c #0E9CF4", +"[@ c #0E9CF3", +"}@ c #0F9DF4", +"|@ c #109DF3", +"1@ c #119EF4", +"2@ c #119FF4", +"3@ c #14A6FD", +"4@ c #14A5FD", +"5@ c #13A5FD", +"6@ c #12A5FD", +"7@ c #12A4FD", +"8@ c #11A4FE", +"9@ c #0F9DF6", +"0@ c #0F9EF6", +"a@ c #109FF6", +"b@ c #119FF6", +"c@ c #11A0F6", +"d@ c #12A0F6", +"e@ c #14A5FC", +"f@ c #13A4FC", +"g@ c #12A4FC", +"h@ c #12A3FC", +"i@ c #11A3FC", +"j@ c #11A3FD", +"k@ c #0F9FF8", +"l@ c #109FF8", +"m@ c #11A0F8", +"n@ c #12A0F8", +"o@ c #12A1F8", +"p@ c #13A1F8", +"q@ c #14A2F8", +"r@ c #14A4FB", +"s@ c #13A4FB", +"t@ c #13A3FB", +"u@ c #12A3FB", +"v@ c #12A2FB", +"w@ c #11A2FB", +"x@ c #10A1FB", +"y@ c #10A1FA", +"z@ c #11A1FA", +"A@ c #12A2FA", +"B@ c #13A2FA", +"C@ c #14A3FA", +"D@ c #14A4FA", +"E@ c #14A2FA", +"F@ c #13A2F9", +"G@ c #12A2F9", +"H@ c #12A1F9", +"I@ c #11A1F9", +"J@ c #10A0F9", +"K@ c #10A0FA", +"L@ c #10A2FC", +"M@ c #14A4FC", +"N@ c #15A5FC", +"O@ c #11A0F7", +"P@ c #109FF7", +"Q@ c #11A4FD", +"R@ c #13A4FD", +"S@ c #15A5FD", +"T@ c #15A7FD", +"U@ c #0F9EF5", +"V@ c #0E9DF6", +"W@ c #14A1F6", +"X@ c #12A4FE", +"Y@ c #109EF4", +"Z@ c #109DF4", +"`@ c #0F9CF4", +" # c #0D9BF4", +".# c #17A4F6", +"+# c #0F9CF3", +"@# c #0E9BF3", +"## c #0C9AF3", +"$# c #1DA8F6", +"%# c #109CF1", +"&# c #0F9BF1", +"*# c #0E9AF1", +"=# c #0D9BF1", +"-# c #0B98F1", +";# c #25ADF5", +"># c #18A8FF", +",# c #0F9AF0", +"'# c #0D99F0", +")# c #0B97F1", +"!# c #2EB4F7", +"~# c #0D99EF", +"{# c #0C98EF", +"]# c #0B98EF", +"^# c #38BCF8", +"/# c #0D98EE", +"(# c #0B96EE", +"_# c #42C5FA", +":# c #0995EE", +"<# c #129DEF", +"[# c #4CCDFC", +"}# c #0C96EC", +"|# c #0792EC", +"1# c #1AA2F0", +"2# c #0B95EC", +"3# c #0490EB", +"4# c #24ABF2", +"5# c #038FEB", +"6# c #32B7F6", +"7# c #5CDAFF", +"8# c #0A95EC", +"9# c #0A94ED", +"0# c #0A95ED", +"a# c #0590EB", +"b# c #41C3F9", +"c# c #0B94EC", +"d# c #0A94EC", +"e# c #0893EB", +"f# c #4ECEFC", +"g# c #0A93EB", +"h# c #0993EB", +"i# c #058FEB", +"j# c #18A0EF", +"k# c #0993EC", +"l# c #0A93EC", +"m# c #028DEA", +"n# c #2BB0F3", +"o# c #5BDAFF", +"p# c #0892EB", +"q# c #048EEA", +"r# c #0993EA", +"s# c #0892EA", +"t# c #0590EA", +"u# c #0E98EC", +"v# c #53D3FD", +"w# c #0992EB", +"x# c #018DE9", +"y# c #24ABF1", +"z# c #5DDBFF", +"A# c #58D7FE", +"B# c #0791EB", +"C# c #0792EB", +"D# c #028DE9", +"E# c #40C2F8", +"F# c #5DDAFF", +"G# c #59D7FE", +"H# c #0791EA", +"I# c #048FEA", +"J# c #1099EC", +"K# c #57D5FD", +"L# c #0691EA", +"M# c #008BE9", +"N# c #2DB2F3", +"O# c #5FDCFF", +"P# c #5AD8FE", +"Q# c #008CE9", +"R# c #23AAF1", +"S# c #5BD8FE", +"T# c #23B1FF", +"U# c #4BCAFA", +"V# c #5EDBFF", +"W# c #24AAF1", +"X# c #60DDFF", +"Y# c #22AFFF", +"Z# c #51D0FB", +"`# c #5CD9FE", +" $ c #34B8F5", +".$ c #61DDFF", +"+$ c #5AD7FE", +"@$ c #5AD7FD", +"#$ c #5DDAFE", +"$$ c #5BD9FE", +"%$ c #5EDAFF", +"&$ c #5FDBFF", +"*$ c #60DCFF", +"=$ c #60DBFF", +"-$ c #30B9FF", +";$ c #3AC0FF", +">$ c #5DD9FF", +",$ c #3EC3FF", +"'$ c #41C7FF", +")$ c #52D3FF", +" ", +" . + @ # ", +" . . . + @ # $ % % & ", +" * = = . . + @ # $ % % & & - ; ; > ", +" , , * * = = . . + @ # % % % & & - ' ; ; ) ! ~ { ", +" ] , , * * = = . . + @ # $ ^ % & & - ' ; ; ) ! ~ / { ( _ ", +" ] , , : * = < . . + @ # % % % & & - ; ; ; ) ! ~ { { ( _ [ } ", +" ] , , : * = < . . @ @ # % % % & & ' ; ; ; ) ! ~ { { ( _ [ } | 1 ", +" 2 , : * = . . . @ @ # % % & & & - ; ; ; ) ! ~ { { ( _ [ } | 1 3 3 ", +" 4 5 4 6 6 , , * * = . . . @ @ # % % 7 & 8 ; ; ) ! ~ { { ( _ [ } | 1 | 3 9 0 a b c ", +" d e f 5 4 6 6 g g h : * * = . . . @ @ # % % % ~ { { _ _ [ } | 1 i 3 9 9 j 0 0 b c k k l m ", +" n d e f 4 4 6 6 g o h p ] * * = . . + @ @ # % [ } | 1 3 3 9 9 q j 0 0 b c r k l l s s t ", +" n d e f 4 4 6 6 g h h p ] ] : = . . . @ @ # | 1 3 3 9 9 q u j 0 a b c r k l m s s t v v ", +" n n e f 4 4 6 6 g h h p ] ] , , = . . . @ @ # % 1 i 3 9 9 q w w j 0 a b c r k l m s s t v x y z ", +" A B C n n e f 4 4 6 6 g g h p D ] , : * . E + @ @ $ % % 3 3 9 9 q w w F 0 a b c k k l m s s t v v y z z G ", +" H I J B B C C K L n e 4 5 4 6 6 g o h p D ] , : * * E + @ @ $ % % & 9 9 9 q w w F j b b c k k l m s s t v v y z z G M N O O P P Q R ", +" S S I J B B C C K T L L e f 5 4 6 6 g U h p D ] , : * : = + @ @ $ % % & & 9 9 u w w F j j b c k k l m s m t v v y z z G V M W N O X P P Q Q Y Z ` . ", +" ..H S I J B B C C K L L L n d 4 4 4 6 6 g U h p ] ] , : * * = . . + @ @ $ % % & 8 & 9 q w w F j j 0 b b c k k l m s m t v x y z +.G M M W N O X P P Q Q Y Z ` .@.@.#. ", +" H S I J B B C C K L L L n n e 4 6 6 6 g h h p ] , : * : = . . . @ # $ % % & & - ' u w w F j j 0 b b k k k l m s s t v y z +.G M M W W N O X P P Q Q Y Z ` @.@.@.$.#.%. ", +" S S I J B &.C C K L L n n n f 4 4 6 6 6 g h h p ] , : * * = . E + @ # $ ^ % & & - ' ; w w F j j 0 b b k k k l m s t t v v z z G M M W *.=.N O X P P Q R Y Z ` @.@.@.#.#.%.-. ", +" S I J B &.C ;.>.L L n n n f 4 4 4 6 6 g U h p ] ] * ,.= . E + @ # $ % % & & - ' ; '. j j j 0 b c k k k l m s t t v v y +.G V M W *.=.N O X P P Q R Y Z ` @.@.@.#.#.%.-.-.-. ", +" H I J B &.;.C >.).L !.n n e 4 4 4 6 6 g h h p ] ] , = = . E + @ # $ % % & & - ' ; ; j j 0 b b k k k l m s t t v v y G V M W *.=.N O X P P Q Y Y Z ` @.@.@.#.#.%.-.-.~.{. ", +" I J B &.C &.>.>.;.n n n f 4 4 4 6 6 g U h p ] ] , : = . . + @ # $ % % & 8 - ' ; ; 0 b b k k ].l m s t t v v y z V M W W =.N O X P P Q Q Y Z ` @.@.@.#.#.%.-.-.-.{.{. ", +" J B B C ;.>.&.^. /.f 4 4 6 6 6 g h p ] ] ] , : * . + @ # $ ^ % & 8 - ' '.; b k k k l m s t t v x y z W W =.O O X P P Q Q Y Z ` @.@. #.%.-.(.~.{.{._. ", +" A &.C C >.!.:.<. [.4 4 6 6 6 g h p ] ] }., : * @ # % % % & 8 - ' l m s t t v v y z W =.N O X P P Q |.Y Z ` @.@.$. %.-.(.~.{.{._.1. ", +" &.C C >.).A 2.3. 4.4 6 6 5.g h p ] ] , , : * ,. % v x y =.N O X 6.P Q |.Y Z ` @.7.$.#. -.-.~.{.{._.1.1. ", +" C C K ).!.H 8.9. 0.6 6 g h h p ] ] , : * ,. O X P P Q |.Y Z ` @.7.$.#. -.~.{.{._.1.1.a. ", +" b.K ).!.&.c.d.e. 6 g h h ] ] , , * * ,. 6.P Q Y Y Z ` @.@.$.#. ~.{.{._.1.1.a.a. ", +" K L ).f.H g.9.h. h p ] ] , , : Q Y Z ` @.@.$.#. {.{._.1.1.a.a.i. ", +" L ).!.K j.k.l.m. {._.1.1.a.a.i.n. ", +" L !.f.o.p.9.q.r. _.s.1.a.a.i.n.t. ", +" n !./.d u.v.h.h. s.1.a.a.i.n.t.w. ", +" x.f.K y.z.h.h.A. 1.a.a.i.n.t.w.B. ", +" /.4.C.D.E.F.G.H. a.I.i.n.t.w.B.B. ", +" J.4 !.K.L.M.M.H. I.i.n.t.w.B.N.O. ", +" J.d P.h.G.M.F.Q. i.n.t.w.B.N.O.O. ", +" R.b.S.T.U.H.V.W. n.t.w.B.N.O.O.X. ", +" R.Y.Z.L.U.Q.`. + t.w..+N.O.O.X.++ ", +" 6 @+#+r.`.W.U.$+ w.B.N.O.N.X.++%+ ", +" d &+h.V.*+ +=+-+ .+N.O.;+X.++%+>+ ", +" ,+'+)+=+ +=+!+~+ N.O.;+X.++%+>+>+ ", +" &.{+)+!+$+-+~+~+ O.X.X.++%+>+>+>+ ", +" d ]+e.^+!+~+~+/+ X.X.++%+>+(+_+:+ ", +" <+[+}+|+1+1+/+/+ X.++%+>+(+_+:+2+ ", +" 3+#+W.~+~+4+4+5+ %+%+>+(+_+:+6+6+ ", +" 7+8+!+~+4+4+9+0+ %+>+(+_+6+2+6+a+ ", +" b+c+c+d+d+8+0+0+ >+(+_+6+6+6+a+a+ ", +" e+f+d+d+g+h+h+i+ >+_+:+6+6+a+a+j+ ", +" k+l+m+m+n+n+i+o+ _+:+6+6+a+a+j+p+ ", +" q+r+s+t+t+o+u+v+ :+6+6+a+a+j+p+p+ ", +" w+x+y+z+u+A+B+C+ 6+6+a+a+j+p+p+D+ ", +" E+F+G+A+H+I+J+K+ 6+a+a+L+p+p+D+M+ ", +" N+O+P+P+Q+R+N+S+ a+a+j+p+p+M+M+M+ ", +" T+T+U+V+W+X+Y+Z+ `+ @.@.@+@@@@@#@ ", +" $@%@&@*@=@-@-@;@ >@p+p+M+M+M+,@'@ ", +" )@!@~@{@]@]@^@/@ p+.@@@(@@@#@'@_@ ", +" :@<@[@}@}@|@1@2@ +@@@3@4@5@6@7@8@ ", +" 9@0@0@0@a@b@c@d@ 4@e@f@f@g@h@i@j@ ", +" k@l@l@m@n@o@p@q@ r@s@t@u@v@w@w@x@ ", +" y@y@z@A@A@B@C@D@ E@F@G@H@I@I@J@K@ ", +" L@i@h@g@f@M@e@N@ o@o@O@O@P@P@l@m@ ", +" Q@7@7@R@4@4@S@T@ c@b@a@U@0@U@V@W@ ", +" X@'@#@@@@@+@.@.@ 1@Y@Z@}@}@`@ #.# ", +" _@,@M+M+D+p+L+a+ |@+#+#+#@#@###$# ", +" #@@@@@+@.@ @>@`+ %#&#&#*#*#=#-#;# ", +" M+M+D+p+L+j+a+># ,#,#*@*@'#&@)#!# ", +" M+D+p+L+a+a+6+6+ Z+X+N+~#{#{#]#^# ", +" D+p+L+a+a+6+6+:+ N+R+/#U+T+(#X+_# ", +" p+L+a+a+6+6+:+_+ R+Q+T+T+T+:#<#[# ", +" j+a+a+6+6+:+>+>+ Q+P+}#}#P+|#1#/. ", +" a+a+6+6+:+>+>+%+ }#}#2#2#P+3#4#A ", +" a+6+6+:+>+>+%+%+ }#O+O+O+O+5#6#7# ", +" 6+6+:+>+>+%+%+X. 2#O+8#9#0#a#b#H ", +" 6+:+>+>+(+%+X.X. c#c#d#d#e#2#f#C ", +" :+>+>+%+++X.O.O. F+g#h#d#i#j#;.). ", +" >+>+%+++X.O.O.B. g#k#k#l#m#n#o#!. ", +" >+%+++X.O.O.N.B. h#h#p#h#q#b#H ). ", +" %+++X.O.O.B.B.t. r#s#x+t#u#v#&.;. ", +" ++X.O.O.B.B.t.t. s#s#w#x#y#z#>.A# ", +" X.O.O.B.w.t.t.i. p#B#C#D#E#F#;.G# ", +" O.O.B.w.t.n.i.i. H#C#I#J#K#A G#J ", +" N.B.w.t.n.i.a.a. L#p#M#N#O#;.P#I ", +" B.w.t.t.i.i.a.1. L#t#H#j...G#P#S ", +" w.t.n.i.a.a.1.1. C#Q#R#O#G#S#S H ", +" t.n.i.a.a.1.1.T# t#I#U#V#P#S#.... ", +" n.i.a.1.1._.T#{. M#W#X#G#S#H ..F# ", +" i.a.Y#1._.T#{.~. H#Z#F#S#`#..F#F# ", +" a.Y#1._.T#{.~.-. $.$+$....F#F#V# ", +" 1.1.1.T#{.~.-.-. @$..`##$F#F#V#V# ", +" 1._.T#{.~.-.-.%.#. I `#$$$$F#F#%$V#&$&$ ", +" _.{.{.~.-.-.%.#.$.@.@. I S S#`#F#F#%$V#V#&$*$ ", +" {.{.-.-.-.%.#.$.@.@.` Z J I S H ..F#F#%$V#V#&$*$ ", +" -.-.%.%.#.$.@.@.` Z Y Q P J I S H ..F#F#%$V#&$&$*$.$ ", +" -.%.%.#.$.@. .` Z Y Q P P X B J I S H ..F#F#%$V#&$*$*$.$*$ ", +" %.#.$.@.@.` Z Y Q P P X O N W B I I S H ..F#F#%$V#&$*$*$.$*$ ", +" @. .` Z Y Q P P X O N W W W A B I I S H ..F#F#%$V#&$=$*$.$ ", +" ` Z Y Q P P X O N W W -$M G +. C &.B J I S H ..F#F#%$V#&$*$*$.$ ", +" Q P P X O N W W -$M G +.z y C &.B I I S H ..F#F#%$V#&$*$*$ ", +" P X O N W W M M M +.z y v v t C C B B I S S H ..F#F#%$V#&$*$*$ ", +" N W W M M G +.z y v v t s m C C B J I S S ....F#F#%$V#&$*$ ", +" W M M G z z y v v t s m l k k b.C C B J I S S H ..F#F#%$V#&$*$ ", +" G z z v v v t s m l k k c b 0 K C C B J I S S H ..F#F#V#V#&$ ", +" v v v t s m l k k c b 0 0 j K K C &.B J I S S ....F#F#V#V#O# ", +" v t s m l k k c b 0 ;$j F w u L K C &.B J I S S ....F#F#V#V# ", +" m l k k c b 0 j j F w w q 9 L L K C &.B J I S S ..>$F#%$V# ", +" k k c b 0 j j F w u 9 9 9 3 1 L Y.K C &.B J I S S ....F#%$V# ", +" b 0 j j F w u 9 9 ,$3 1 | } L L K K C &.B J I S H ....F#F# ", +" j j F w u 9 9 ,$3 1 | } [ _ ( L L K K C &.B J I S H ..F#F#z# ", +" w u 9 9 9 3 1 | } [ '$( { ~ n L L Y.K C &.B J I S H ..F#F# ", +" 9 9 3 3 1 | } [ _ ( { ~ ! ) ; n L L K K C &.B J I S H ..F#F# ", +" 3 1 | } [ _ ( { ~ ! ) ; ; ' d n L L K C C &.B I I S H ..F# ", +" | } _ _ { { ~ ! ) ; ; ' & & % n n L L K C C B B J I S ....F# ", +" _ { { ~ ! ) ; ; ' - & % % $ e n n L L K C C &.B I I S .... ", +" { ~ ! ) ; ; ' - & 7 % $ # @ + e n n L L K C C &.B J I S H ", +" ) ; ; ' & & % % $ # @ + . . = 4 e n n L L K C C B B I I S H ", +" ' & & % % $ # @ + . . = * : 4 e n n L L K C C B J I I S ", +" & % % $ @ @ . . = = * : , ] ] 5 f e n n L L K C &.B J I S H ", +" $ @ @ . . = = * : , ] ] p h 5 f e n n L L K C C B B I S ", +" @ . . . = * : , ] ] p h g 6 6 4 4 f e n n L L K C &.B J I o. ", +" E = * : , ] ] p h g 6 6 )$4 4 e n n L L K C &.B J I ", +" * : , ] ] p h g 6 6 4 4 4 e n n L L K C &.B J I ", +" ] ] p h g 6 6 4 4 f e n n L L K C &.B J ", +" h h g 6 6 4 4 f n n L L K K C &.B ", +" 6 6 4 4 f n n n L K K C B B ", +" 4 4 f e n L L Y.K C &. ", +" n n L L K K C &. ", +" L K K C ", +" "}; diff --git a/share/pixmaps/bitcoin16.png b/share/pixmaps/bitcoin16.png index 887de8b22ba86bb77bbdbe4ef769e0c9ad24424f..852734ed40e72819e6f1cb0c81180ec4f52ef971 100755 GIT binary patch delta 801 zcmV++1K#}V1+4~<8Gi-<001BJ|6u?C00v@9M??Vs0RI60puMM)0008wNkl2LsdEf6RJ*P=IvGLG~rjiDff)J^Tf`f|`MLPJ`!PO$gAL!uV;vm*Z3+>{j zh>CU42D?}VDdM8mKsg>_qBMnIYnq&sa7e!Id*AnQh@g1EJ%8NG#my}z`bIK1I0?(E zaB~P_IkZbohQwdpb3$;n!tq+c`PJetsAb3a4RM%EpkVm>)Ro+6e5>m!kWm-A+ppe`EX;4Pntk4 zL{5i@3xWBVSbwP+-iZn1(8uc>o^H*r51XY!cemW;D4jFYWU%Iy;nY6p-C)9uJFAA2 z5~u4x6%#We9P@u%-9SZ(_O?B}6(kuTP&Keq!_jZilz))z3PQw%h%^y=yStYNniZ0= zdkSt3&B`2$5$5Lvfcq~QF_A_)A|enXmJC$Em*eB41R`Sm!xs+-|D|_qw|73MfZb_^ zA%JFiMwVxi7v8eMlNFx(zB2yLiM|oGM^vK`^=Kp-c5Hohh-S{noTbc}Ix)POslbDm z|CK!dtAF7XHn$oZ{Z&!bK|AA`*lh5b6O!UYh~7ba3_sDL#^8}F#=%L5X*Z8PG~xeT ztLqreW~WQdyx_fqWc0n`OquhG2*0ObK2qUY?s?<;KJlj|(!MrsyT&cwB7d!{VPI!6$ASp&*PDZv%K9cUbJ1uO zXy!>G%;ug?bI(}rd9H~p9OyvRaMU?2IAy~-o;73940THKUZHA8X1H#L#mq5RHN4`K zD`n2RRUlX8lnSqJZF63Li5AW~B7n?&ZIt=$+aaN?0@+g#MVKx!KKG80Ii5D-hJka6 fB^o0Ec!j?KS&L-kk`M#y00000NkvXXu0mjfh>wAF delta 733 zcmV<30wVpb2I>Wn8Gi!+001a04^sdD0g_NmR7C&)0RR90|NsBs;O4rwzr(%F>*nzC z|MIH;RpaC1uB^0@kD7mbhG}GTS5RefV~d7*o|ulUsGhmJw#wt<>ani2T2f;}H&#+Z zaZ*BaR77`CKyp?@cUnq&cxsfrwaKxrwo64-Y+i}FvdB$ESbsb-Ojk#EY+i~@M_M&4 zL0wIJH7-InE<;*MdatduO-5NZE<{{Qd~98axv|Hv}}x22r6cx#hfOnkw+%{((qXIg`NZqKze=sOLnU$YnT7PgvHeFOib22JGk&T&MS7$OS zKsqr=LO4}II!-(_NjNY?H!ni~yb@mk0038XQchC<0~9h~VKNj0B!Qu|xU8(WwV{F~ zVx^IsugI{Sk)&i>pP*f$`~0J#`~3U+{9T~^{-Iw=lgG%D ztB?-@Nq?%Tsj*TFSzQiyq7l{r006K_L_t&-(_>)31{j%`Sy c #3A3149", -", c #3C3549", -"< c #3C334C", -"1 c #3E3453", -"2 c #423A4E", -"3 c #433756", -"4 c #423855", -"5 c #423758", -"6 c #44365D", -"7 c #453A5A", -"8 c #4B4555", -"9 c #4D4558", -"0 c #4D4659", -"q c #4D475A", -"w c #575065", -"e c #5A5263", -"r c #5D5767", -"t c #5C5668", -"y c #524371", -"u c #514072", -"i c #524273", -"p c #544473", -"a c #544477", -"s c #564477", -"d c #594D71", -"f c #574778", -"g c #5A4A79", -"h c #5A4A7A", -"j c #5A4A7B", -"k c #5B4A7B", -"l c #5C4B7C", -"z c #5C4C7C", -"x c #5D4D7C", -"c c #5E5274", -"v c #625B6D", -"b c #625A70", -"n c #60507F", -"m c #686271", -"M c #696473", -"N c #AAFF55", -"B c #5E4D80", -"V c #645484", -"C c #675A83", -"Z c #6C5D88", -"A c #6C5E89", -"S c #6C5E8A", -"D c #71638B", -"F c #71638D", -"G c #73678C", -"H c #7F7B86", -"J c #786B93", -"K c #796B93", -"L c #786A94", -"P c #7A6D94", -"I c #7C6F96", -"U c #7D7095", -"Y c #7C7096", -"T c #7D7197", -"R c #867A9E", -"E c #8C8793", -"W c #918D99", -"Q c #928F9A", -"! c #99959F", -"~ c #8C80A4", -"^ c #968BAB", -"/ c #988EAD", -"( c #9A8FAF", -") c #9894A0", -"_ c #9F99A4", -"` c #9E94B4", -"' c #A39FA9", -"] c #A198B4", -"[ c #A39AB5", -"{ c #A399B6", -"} c #A49AB7", -"| c #A59CB6", -" . c #A69CB8", -".. c #A69DB8", -"X. c #A89EB9", -"o. c #AEACB4", -"O. c #AFADB5", -"+. c #AAA1BB", -"@. c #ABA3BC", -"#. c #AEA5BF", -"$. c #B1AEB6", -"%. c #BAB7BF", -"&. c #80FF80", -"*. c #B1A8C1", -"=. c #B4ADC2", -"-. c #B9B1C7", -";. c #BDBAC3", -":. c #BAB2C8", -">. c #BDB5C9", -",. c #BCB6CA", -"<. c #C0BDC4", -"1. c #C1BBCD", -"2. c #C3BDCD", -"3. c #C3BDCE", -"4. c #C4C4CB", -"5. c #C9C5D3", -"6. c #CDC7D7", -"7. c gray89", -"8. c #E0E0E6", -"9. c #E3E3EA", -"0. c #E6FFE6", -"q. c #EDFFED", -"w. c #FFFFEA", -"e. c #EBE6F0", -"r. c #F2FFF2", -"t. c gray100", -"y. c None", -/* pixels */ -"y. ", -" t.t.8.%.2.e.r.N ", -" 7.o.Q H M w D R / X.,.9. ", -" $.e 3 y i a a u s j L >. ", -" $.8 7 B ~ .. .( V k A :. ", -" $.9 < g F Y K ] @.f S :. ", -" $.q & d } | J z 1.x S :. ", -" $.q * < C I P [ +.f S :. ", -" $.q = . ) =.{ ^ n h S :. ", -" O.0 ; X ! b 6 p z l Z -. ", -" <.v + @ W r # > 4 5 U 5. ", -" t._ 0 o 2 , : - O c #.0. ", -" t.' m @ $ % 1 T *.t. ", -" &.4.E t G ` 6.N ", -" w.;.3.q. ", -" " -}; +static char * C:\Users\Admin\Documents\GitHub\ittrium\share\pixmaps\bitcoin16_xpm[] = { +"16 16 51 1", +" c None", +". c #4ACDFF", +"+ c #46CAFF", +"@ c #52D2FE", +"# c #4FD0FF", +"$ c #4BCDFF", +"% c #3FC5FF", +"& c #3AC1FF", +"* c #36BEFF", +"= c #5BD9FE", +"- c #57D6FE", +"; c #52D2FF", +"> c #4FD0FE", +", c #47CAFF", +"' c #32BBFF", +") c #2EB8FF", +"! c #29B5FF", +"~ c #26B3FF", +"{ c #46C6F9", +"] c #34B7F4", +"^ c #55D5FF", +"/ c #2BB6FF", +"( c #25B2FF", +"_ c #22B0FF", +": c #23A7EF", +"< c #1EADFE", +"[ c #1096E8", +"} c #1AAAFE", +"| c #0D96EC", +"1 c #15A7FF", +"2 c #12A2FA", +"3 c #11A1F8", +"4 c #17A8FF", +"5 c #139DF0", +"6 c #1CABFE", +"7 c #25ABF2", +"8 c #21AFFF", +"9 c #4BCBFA", +"0 c #5DDAFE", +"a c #60DDFE", +"b c #33BCFF", +"c c #59D7FE", +"d c #5CD9FF", +"e c #5EDBFE", +"f c #3BC2FF", +"g c #41C6FF", +"h c #58D7FF", +"i c #5BD9FF", +"j c #4ACCFF", +"k c #57D6FF", +"l c #53D3FF", +" .+ ", +" @#$ %&* ", +" =-;>., &*')!~ ", +" {]^ /(_ ", +" : < ", +" [ } ", +" | 1 ", +" 2 3 ", +" 4 5 ", +" 6 7 ", +" 8 9 ", +" (! 0a ", +" b cde ", +" fg hi ", +" j#^k ", +" lk "}; diff --git a/share/pixmaps/bitcoin256.png b/share/pixmaps/bitcoin256.png index 825c3ec1ffac80b458a0c3dcd5f7c7ab556717b8..86e37be8dd82d5bc4c545e9cc3fcb1c53155a18c 100755 GIT binary patch literal 26298 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
qtmaterialflatbutton.h
+ + diff --git a/src/qt/forms/askpassphrasedialog.ui b/src/qt/forms/askpassphrasedialog.ui index ad07731..7c8d81a 100755 --- a/src/qt/forms/askpassphrasedialog.ui +++ b/src/qt/forms/askpassphrasedialog.ui @@ -6,8 +6,8 @@ 0 0 - 598 - 222 + 638 + 164 @@ -113,64 +113,65 @@ true + + false + Serves to disable the trivial sendmoney when OS account compromised. Provides no real security. - For anonymization and staking only - - - false + For anonymization, multisend and staking only - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + OK + + + true + + + + + + + Cancel + + + false + + + + + + + QtMaterialFlatButton + QWidget +
qtmaterialflatbutton.h
+
+
- - - buttonBox - accepted() - AskPassphraseDialog - accept() - - - 20 - 20 - - - 20 - 20 - - - - - buttonBox - rejected() - AskPassphraseDialog - reject() - - - 20 - 20 - - - 20 - 20 - - - - + diff --git a/src/qt/forms/bip38tooldialog.ui b/src/qt/forms/bip38tooldialog.ui index 29b3b61..6281de8 100755 --- a/src/qt/forms/bip38tooldialog.ui +++ b/src/qt/forms/bip38tooldialog.ui @@ -60,41 +60,41 @@ - + Choose previously used address - + - + :/icons/address-book:/icons/address-book - + Alt+A - + false - + Paste address from clipboard - + - + :/icons/editpaste:/icons/editpaste - + Alt+P - + false @@ -147,18 +147,18 @@ - + Copy the current signature to the system clipboard - + - + :/icons/editcopy:/icons/editcopy - + false @@ -168,35 +168,35 @@ - + Sign the message to prove you own this Ittrium address - - Encrypt &Key + + Encrypt Key - + :/icons/edit:/icons/edit - + false - + Reset all sign message fields - - Clear &All + + Clear All - + :/icons/remove:/icons/remove - + false @@ -307,35 +307,35 @@ - + Verify the message to ensure it was signed with the specified Ittrium address - - Decrypt &Key + + Decrypt Key - + :/icons/transaction_0:/icons/transaction_0 - + false - + Reset all verify message fields - - Clear &All + + Clear All - + :/icons/remove:/icons/remove - + false @@ -401,8 +401,8 @@ - - + + Import Address @@ -426,6 +426,11 @@ + + QtMaterialFlatButton + QWidget +
qtmaterialflatbutton.h
+
QValidatedLineEdit QLineEdit diff --git a/src/qt/forms/blockexplorer.ui b/src/qt/forms/blockexplorer.ui index 5808598..1acc91d 100755 --- a/src/qt/forms/blockexplorer.ui +++ b/src/qt/forms/blockexplorer.ui @@ -21,12 +21,12 @@ QLayout::SetMinimumSize
- + <--- - + :/icons/back:/icons/back @@ -35,12 +35,12 @@ - + ---> - + :/icons/forward:/icons/forward @@ -71,7 +71,7 @@ - + 0 diff --git a/src/qt/forms/coincontroldialog.ui b/src/qt/forms/coincontroldialog.ui index dd7522f..e858caa 100755 --- a/src/qt/forms/coincontroldialog.ui +++ b/src/qt/forms/coincontroldialog.ui @@ -353,33 +353,33 @@ 14 - + 0 0 - + (un)select all - + false - + 0 0 - + toggle lock state - + false @@ -526,20 +526,37 @@ - - - - 0 - 0 - - - - Qt::Horizontal - - - QDialogButtonBox::Ok - - + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + OK + + + + @@ -549,6 +566,11 @@ QTreeWidget
coincontroltreewidget.h
+ + QtMaterialFlatButton + QWidget +
qtmaterialflatbutton.h
+
diff --git a/src/qt/forms/helpmessagedialog.ui b/src/qt/forms/helpmessagedialog.ui index 3eae24c..b0a80b9 100755 --- a/src/qt/forms/helpmessagedialog.ui +++ b/src/qt/forms/helpmessagedialog.ui @@ -7,7 +7,7 @@ 0 0 585 - 225 + 395 @@ -54,7 +54,7 @@ 0 0 - 549 + 447 68 diff --git a/src/qt/forms/intro.ui b/src/qt/forms/intro.ui index 54a2737..67684e9 100755 --- a/src/qt/forms/intro.ui +++ b/src/qt/forms/intro.ui @@ -112,7 +112,7 @@
- + 0 diff --git a/src/qt/forms/masternodelist.ui b/src/qt/forms/masternodelist.ui index 90b6a5a..7155862 100755 --- a/src/qt/forms/masternodelist.ui +++ b/src/qt/forms/masternodelist.ui @@ -160,30 +160,30 @@ 0 - + - S&tart alias + Start alias - + - Start &all + Start all - + - Start &MISSING + Start MISSING - + - &Update status + Update status diff --git a/src/qt/forms/multisenddialog.ui b/src/qt/forms/multisenddialog.ui index ccaede7..457478d 100755 --- a/src/qt/forms/multisenddialog.ui +++ b/src/qt/forms/multisenddialog.ui @@ -2,266 +2,330 @@ MultiSendDialog - - Qt::NonModal - 0 0 - 652 - 300 + 777 + 538 MultiSend - - - - 170 - 130 - 201 - 20 - - - - Enter whole numbers 1 - 100 - - - Enter % to Give (1-100) - - - - - - 170 - 160 - 401 - 21 - - - - - - - Enter Address to Send to - - - - - - 30 - 0 - 451 - 121 - - - - 1 - - - MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other XIT addresses after it matures. -To Add: enter percentage to give and XIT address to add to the MultiSend vector. -To Delete: Enter address to delete and press delete. -MultiSend will not be activated unless you have clicked Activate - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - - - true - - - - - - 290 - 200 - 351 - 91 - - - - - - - - - - 20 - 230 - 120 - 23 - - - - - - - Add to MultiSend Vector - - - Add - - - - - - 150 - 260 - 120 - 23 - - - - Deactivate MultiSend - - - Deactivate - - - - - - 570 - 160 - 28 - 21 - - - - Choose an address from the address book - - - - - - - :/icons/address-book:/icons/address-book - - - Alt+A - - - false - - - - - 30 - 130 - 121 - 20 - - - - Percentage of stake to send - - - Percentage: + + true - - - 30 - 160 - 111 - 16 + 10 + 10 + 521 + 61 - - Address to send portion of stake to - - Address: + Add a Ittrium Adresses at the bottom and configure the Multisend settings for each of them - + - 150 - 230 - 120 - 23 + 10 + 90 + 759 + 261 - - - - - Delete Address From MultiSend Vector + + + 0 + 0 + - - Delete + + true + + + + 0 + 0 + 757 + 259 + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + - + - 20 - 260 - 120 - 23 + 630 + 360 + 141 + 80 - - Activate MultiSend - - - Activate - + + + + + Activate + + + false + + + + + + + Disable + + + false + + + + - + 20 - 200 - 251 - 23 + 360 + 431 + 91 - - - - - View MultiSend Vector - - - View MultiSend - + + + 10 + + + 10 + + + 10 + + + 10 + + + + + 15 + + + 10 + + + 5 + + + 10 + + + 5 + + + + + + 0 + 0 + + + + MultiSend Status: + + + + + + + + 0 + 0 + + + + + 75 + true + + + + Disabled + + + + + + + + + 5 + + + 10 + + + 5 + + + 10 + + + 5 + + + + + + 100 + 0 + + + + Address to send portion of stake to + + + Click to add an address for MultiSend + + + + + + + + 0 + 0 + + + + + 16777215 + 32 + + + + Choose an address from the address book + + + + + + + :/icons/address-book:/icons/address-book + + + false + + + + + + + Qt::Horizontal + + + QSizePolicy::Maximum + + + + 100 + 20 + + + + + + + - + - 30 - 100 - 351 - 24 + 460 + 360 + 151 + 80 - + - - - Send For Stakes - - + + + + + Send For Staking + + + + + + + + 0 + 0 + + + + + + + + - - - Send For Masternode Rewards - - + + + + + Send for Masternodes + + + + + + + + 0 + 0 + + + + + + + + - + diff --git a/src/qt/forms/obfuscationconfig.ui b/src/qt/forms/obfuscationconfig.ui index 2f82096..5aa997e 100755 --- a/src/qt/forms/obfuscationconfig.ui +++ b/src/qt/forms/obfuscationconfig.ui @@ -13,7 +13,7 @@ Configure Obfuscation - + 20 @@ -26,7 +26,7 @@ Basic Privacy - + 20 @@ -39,7 +39,7 @@ High Privacy - + 20 diff --git a/src/qt/forms/openuridialog.ui b/src/qt/forms/openuridialog.ui index 114a363..fdb3dea 100755 --- a/src/qt/forms/openuridialog.ui +++ b/src/qt/forms/openuridialog.ui @@ -6,74 +6,137 @@ 0 0 - 564 - 109 + 481 + 153 Open URI - - - - - Open payment request from URI or file - - - - - - - - - URI: - - - - - - - - - - Select payment request file - - - ... - - - false - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - + + + + 9 + 9 + 241 + 16 + + + + Open payment request from URI or file + + + + + + 10 + 40 + 461 + 31 + + + + + + + + 0 + 0 + + + + URI: + + + + + + + + + + + 0 + 0 + + + + Select payment request file + + + ... + + + false + + + + + + + + + 10 + 100 + 461 + 29 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + Try to manually submit a Obfuscation request. + + + OK + + + + + + + + 0 + 0 + + + + Try to manually submit a Obfuscation request. + + + Cancel + + + + + + + QtMaterialFlatButton + QWidget +
qtmaterialflatbutton.h
+
QValidatedLineEdit QLineEdit @@ -81,38 +144,5 @@
- - - buttonBox - accepted() - OpenURIDialog - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - OpenURIDialog - reject() - - - 316 - 260 - - - 286 - 274 - - - - + diff --git a/src/qt/forms/optionsdialog.ui b/src/qt/forms/optionsdialog.ui index 3d347f1..6764d1f 100755 --- a/src/qt/forms/optionsdialog.ui +++ b/src/qt/forms/optionsdialog.ui @@ -20,7 +20,7 @@ - 0 + 1 @@ -242,6 +242,13 @@ + + + + Filter Orphans from Transaction History + + +
@@ -476,7 +483,7 @@ Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/IttriumCore/IttriumCore-translations +https://www.transifex.com/ittrium-project/ittrium-project-translations true @@ -638,14 +645,14 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations - + Reset all client options to default. - - &Reset Options + + Reset Options - + false @@ -702,24 +709,24 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations - - - &OK + + + OK - + false - + true - - - &Cancel + + + Cancel - + false @@ -734,6 +741,12 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations QLineEdit
qvalidatedlineedit.h
+ + QtMaterialFlatButton + QWidget +
qtmaterialflatbutton.h
+ 1 +
QValueComboBox QComboBox diff --git a/src/qt/forms/overviewpage.ui b/src/qt/forms/overviewpage.ui index e592f8e..4b89711 100755 --- a/src/qt/forms/overviewpage.ui +++ b/src/qt/forms/overviewpage.ui @@ -1,4 +1,4 @@ - + OverviewPage @@ -7,7 +7,7 @@ 0 0 960 - 615 + 725
@@ -40,8 +40,11 @@ + + 6 + - + QFrame::StyledPanel @@ -52,11 +55,15 @@ - + + 11 75 + false true + false + PreferDefault @@ -78,9 +85,6 @@ (out of sync) - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - @@ -90,7 +94,7 @@ - 40 + 30 20 @@ -100,298 +104,261 @@
- - 12 + + 50 - - + + 15 + + + + + Spendable: + + + + + 75 true - - IBeamCursor - - Unconfirmed transactions to watch-only addresses + Your current total balance 0.000 000 00 BTC - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + Qt::NoTextInteraction - - + + + 8 75 true - - IBeamCursor - - Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance + Your current spendable balance 0.000 000 00 BTC - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + Qt::NoTextInteraction - - + + + + false + - 75 - true + 50 + false - - IBeamCursor - - Staked or masternode rewards in watch-only addresses that has not yet matured + Unconfirmed transactions to watch-only addresses 0.000 000 00 BTC - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + Qt::NoTextInteraction - - - - Qt::Horizontal - - - - - - - - 0 - 0 - - - - - 140 - 0 - - - - Qt::Horizontal - - - - - - - Total: - - - - - + + + 8 75 true - - IBeamCursor - - Staked or masternode rewards that has not yet matured + Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance 0.000 000 00 BTC - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + Qt::NoTextInteraction - - - - Qt::Horizontal - - - - 40 - 20 - + + + + false - - - - - Immature: + Watch-only: - - + + + + false + - 75 - true + 50 + false - - IBeamCursor - - Your current total balance + Staked or masternode rewards in watch-only addresses that has not yet matured 0.000 000 00 BTC - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + Qt::NoTextInteraction - + + + false + - 75 - true + 50 + false - - IBeamCursor - Current total balance in watch-only addresses 0.000 000 00 BTC - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + Qt::NoTextInteraction - - - Watch-only: + + + Qt::Horizontal - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + QSizePolicy::Expanding - - - - - - Available: + + + 30 + 20 + - + - - + + + 8 75 true - - IBeamCursor - - Your current spendable balance + Staked or masternode rewards that has not yet matured + + + Qt::LeftToRight 0.000 000 00 BTC - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + Qt::NoTextInteraction - + + + false + - 75 - true + 50 + false - - IBeamCursor - Your current balance in watch-only addresses 0.000 000 00 BTC - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + Qt::NoTextInteraction - + + + + Total: + + + + Pending: - - + + - Spendable: + Available: - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + Immature: + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 20 + + + +
@@ -416,50 +383,105 @@ 10 - 40 - 451 - 161 + 42 + 441 + 143 - + QFormLayout::AllNonFixedFieldsGrow - 11 + 115 12 + + + 50 + false + + Status: + + + + + 50 + false + + + + Enabled/Disabled + + + + + + 50 + false + + Completion: + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + - + + true + + 154 + 0 + + + + + 220 16777215 + + + 50 + false + + 0 + + Qt::AlignCenter + + + false + + + + 50 + false + + Obfuscation Balance: @@ -480,6 +502,12 @@ + + + 50 + false + + Amount and Rounds: @@ -487,6 +515,12 @@ + + + 50 + false + + 0 XIT / 0 Rounds @@ -494,6 +528,12 @@ + + + 50 + false + + Submitted Denom: @@ -501,6 +541,12 @@ + + + 50 + false + + The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations. @@ -509,16 +555,9 @@
- - - - Enabled/Disabled - - - - + 251 @@ -948,20 +987,20 @@ true - + - + true - + - 120 - 250 - 221 - 56 + 10 + 270 + 215 + 35 @@ -970,30 +1009,17 @@ 0 - - Start/Stop Mixing - - - - - - 10 - 200 - 441 - 16 - - - - Qt::Horizontal + + Start / Stop Obfuscation 10 - 220 - 451 - 61 + 230 + 441 + 43 @@ -1012,13 +1038,13 @@ true - + 10 - 310 - 221 - 28 + 315 + 215 + 35 @@ -1030,17 +1056,17 @@ Try to manually submit a Obfuscation request. - + Try Mix - + 230 - 310 - 221 - 28 + 315 + 215 + 35 @@ -1055,24 +1081,47 @@ false - + Reset + + + + 230 + 270 + 215 + 35 + + + + + 0 + 0 + + + + Enable Staking + + 10 10 - 431 + 451 22 + + 5 + - + + 11 75 true @@ -1084,6 +1133,14 @@ + + + 50 + false + false + false + + The displayed information may be out of date. Your wallet automatically synchronizes with the Ittrium network after a connection is established, but this process has not completed yet. @@ -1103,9 +1160,12 @@ Qt::Horizontal + + QSizePolicy::Expanding + - 40 + 30 20 @@ -1115,25 +1175,21 @@ - - - - Qt::Vertical - - - - 20 - 40 - - - - - + + + false + + + + 16777215 + 500 + + QFrame::StyledPanel @@ -1141,26 +1197,19 @@ QFrame::Raised - - - - Qt::Vertical - - - QSizePolicy::Fixed - - - - 20 - 75 - - - - + + 9 + - + + + + 0 + 0 + + 75 @@ -1174,6 +1223,12 @@ + + + 0 + 0 + + WhatsThisCursor @@ -1196,9 +1251,12 @@ Qt::Horizontal + + QSizePolicy::Expanding + - 40 + 30 20 @@ -1208,6 +1266,12 @@ + + + 16777215 + 650 + + QListView { background: transparent; } @@ -1220,6 +1284,9 @@ Qt::ScrollBarAlwaysOff + + false + QAbstractItemView::NoSelection @@ -1229,7 +1296,7 @@ - + Qt::Vertical @@ -1250,6 +1317,13 @@ + + + QtMaterialFlatButton + QWidget +
qtmaterialflatbutton.h
+
+
diff --git a/src/qt/forms/receivecoinsdialog.ui b/src/qt/forms/receivecoinsdialog.ui index 002a2d2..6c2b61d 100755 --- a/src/qt/forms/receivecoinsdialog.ui +++ b/src/qt/forms/receivecoinsdialog.ui @@ -130,24 +130,24 @@ - + 150 0 - - &Request payment + + Generate Address - + :/icons/receiving_addresses:/icons/receiving_addresses - + 0 @@ -157,14 +157,14 @@ Clear all fields of the form. - + Clear - + :/icons/remove:/icons/remove - + false @@ -290,41 +290,41 @@ - + false Show the selected request (does the same as double clicking an entry) - + Show - + :/icons/edit:/icons/edit - + false - + false Remove the selected entries from the list - + Remove - + :/icons/remove:/icons/remove - + false @@ -350,6 +350,11 @@ + + QtMaterialFlatButton + QWidget +
qtmaterialflatbutton.h
+
BitcoinAmountField QLineEdit diff --git a/src/qt/forms/receiverequestdialog.ui b/src/qt/forms/receiverequestdialog.ui index 1e484dd..91fb500 100755 --- a/src/qt/forms/receiverequestdialog.ui +++ b/src/qt/forms/receiverequestdialog.ui @@ -70,31 +70,31 @@ - - - Copy &URI + + + Copy URI - + false - - - Copy &Address + + + Copy Address - + false - - - &Save Image... + + + Save Image... - + false @@ -113,11 +113,11 @@ - - - QDialogButtonBox::Close - - + + + Close + + @@ -129,40 +129,12 @@ QLabel
receiverequestdialog.h
+ + QtMaterialFlatButton + QWidget +
qtmaterialflatbutton.h
+
- - - buttonBox - rejected() - ReceiveRequestDialog - reject() - - - 452 - 573 - - - 243 - 298 - - - - - buttonBox - accepted() - ReceiveRequestDialog - accept() - - - 452 - 573 - - - 243 - 298 - - - - + diff --git a/src/qt/forms/rpcconsole.ui b/src/qt/forms/rpcconsole.ui index f6c27c7..ac5cd03 100755 --- a/src/qt/forms/rpcconsole.ui +++ b/src/qt/forms/rpcconsole.ui @@ -17,7 +17,7 @@ - 3 + 0 @@ -343,14 +343,14 @@ - + Open the XIT debug log file from the current data directory. This can take a few seconds for large log files. - - &Open + + Open - + false @@ -389,18 +389,11 @@ 3 - - - - > - - - - + 24 @@ -410,17 +403,17 @@ Clear console - + - + :/icons/remove:/icons/remove - + Ctrl+L - + false @@ -481,11 +474,11 @@ - - - &Clear + + + Clear - + false @@ -688,17 +681,91 @@ - - - Qt::ScrollBarAsNeeded - - - true + + + 0 - - false - - + + + + Qt::CustomContextMenu + + + Qt::ScrollBarAsNeeded + + + true + + + false + + + + + + + + 0 + 0 + + + + + 300 + 32 + + + + + 16777215 + 32 + + + + + 12 + + + + IBeamCursor + + + Banned peers + + + Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft + + + true + + + Qt::NoTextInteraction + + + + + + + + 0 + 0 + + + + Qt::CustomContextMenu + + + Qt::ScrollBarAsNeeded + + + true + + + false + + + + @@ -1138,14 +1205,14 @@ - + 100 23 - + Salvage wallet @@ -1168,14 +1235,14 @@ - + 100 23 - + Rescan blockchain files @@ -1198,14 +1265,14 @@ - + 100 23 - + Recover transactions 1 @@ -1228,14 +1295,14 @@ - + 100 23 - + Recover transactions 2 @@ -1258,14 +1325,14 @@ - + 100 23 - + Upgrade wallet format @@ -1288,14 +1355,14 @@ - + 100 23 - + Rebuild index @@ -1337,6 +1404,11 @@
+ + QtMaterialFlatButton + QWidget +
qtmaterialflatbutton.h
+
TrafficGraphWidget QWidget diff --git a/src/qt/forms/sendcoinsdialog.ui b/src/qt/forms/sendcoinsdialog.ui index 3b4a922..b17ed95 100755 --- a/src/qt/forms/sendcoinsdialog.ui +++ b/src/qt/forms/sendcoinsdialog.ui @@ -102,14 +102,14 @@ 10 - + - + Inputs... - + false @@ -651,7 +651,7 @@ 0 0 830 - 95 + 161 @@ -799,18 +799,18 @@ - - + + Choose... - + collapse fee-settings - + Minimize @@ -1301,7 +1301,7 @@ - + 150 @@ -1311,23 +1311,23 @@ Confirm the send action - - S&end + + Send - + :/icons/send:/icons/send - + false - + true - + 0 @@ -1337,31 +1337,31 @@ Clear all fields of the form. - - Clear &All + + Clear All - + :/icons/remove:/icons/remove - + false - + Send to multiple recipients at once - - Add &Recipient + + Add Recipient - + :/icons/add:/icons/add - + false @@ -1449,6 +1449,11 @@ + + QtMaterialFlatButton + QWidget +
qtmaterialflatbutton.h
+
QValidatedLineEdit QLineEdit diff --git a/src/qt/forms/sendcoinsentry.ui b/src/qt/forms/sendcoinsentry.ui index 5248f67..087fab8 100755 --- a/src/qt/forms/sendcoinsentry.ui +++ b/src/qt/forms/sendcoinsentry.ui @@ -7,7 +7,7 @@ 0 0 729 - 156 + 175 @@ -16,6 +16,9 @@ false + + 0 + This is a normal payment. @@ -30,6 +33,19 @@ 12 + + + + + + + A message that was attached to the Ittrium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Ittrium network. + + + Qt::PlainText + + + @@ -43,6 +59,49 @@ + + + + A&mount: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + payAmount + + + + + + + &Label: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + addAsLabel + + + + + + + Enter a label for this address to add it to the list of used addresses + + + + + + + Message: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + @@ -50,13 +109,41 @@ + + + 0 + 0 + + The Ittrium address to send the payment to + + + + Qt::Horizontal + + + QSizePolicy::Maximum + + + + 20 + 20 + + + + + + + 0 + 0 + + Choose previously used address @@ -72,8 +159,30 @@
+ + + + Qt::Horizontal + + + QSizePolicy::Maximum + + + + 20 + 20 + + + + + + + 0 + 0 + + Paste address from clipboard @@ -89,8 +198,30 @@ + + + + Qt::Horizontal + + + QSizePolicy::Maximum + + + + 20 + 20 + + + + + + + 0 + 0 + + Remove this entry @@ -105,62 +236,6 @@
- - - - &Label: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - addAsLabel - - - - - - - Enter a label for this address to add it to the list of used addresses - - - - - - - A&mount: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - payAmount - - - - - - - - - - Message: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - A message that was attached to the Ittrium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Ittrium network. - - - Qt::PlainText - - -
@@ -1215,6 +1290,7 @@ BitcoinAmountField QLineEdit
bitcoinamountfield.h
+ 1 diff --git a/src/qt/forms/signverifymessagedialog.ui b/src/qt/forms/signverifymessagedialog.ui index 8a4442d..b5d7e4e 100755 --- a/src/qt/forms/signverifymessagedialog.ui +++ b/src/qt/forms/signverifymessagedialog.ui @@ -20,7 +20,7 @@ - 0 + 1 @@ -53,41 +53,41 @@ - + Choose previously used address - + - + :/icons/address-book:/icons/address-book - + Alt+A - + false - + Paste address from clipboard - + - + :/icons/editpaste:/icons/editpaste - + Alt+P - + false @@ -129,18 +129,18 @@ - + Copy the current signature to the system clipboard - + - + :/icons/editcopy:/icons/editcopy - + false @@ -150,35 +150,35 @@ - + Sign the message to prove you own this Ittrium address - - Sign &Message + + Sign Message - + :/icons/edit:/icons/edit - + false - + Reset all sign message fields - - Clear &All + + Clear All - + :/icons/remove:/icons/remove - + false @@ -263,21 +263,21 @@ - + Choose previously used address - + - + :/icons/address-book:/icons/address-book - + Alt+A - + false @@ -293,35 +293,35 @@ - + Verify the message to ensure it was signed with the specified Ittrium address - - Verify &Message + + Verify Message - + :/icons/transaction_0:/icons/transaction_0 - + false - + Reset all verify message fields - - Clear &All + + Clear All - + :/icons/remove:/icons/remove - + false @@ -377,6 +377,12 @@ + + QtMaterialFlatButton + QWidget +
qtmaterialflatbutton.h
+ 1 +
QValidatedLineEdit QLineEdit diff --git a/src/qt/forms/tradingdialog.ui b/src/qt/forms/tradingdialog.ui index 4a3e5c1..436d2d8 100755 --- a/src/qt/forms/tradingdialog.ui +++ b/src/qt/forms/tradingdialog.ui @@ -35,7 +35,7 @@ QTabWidget::North - 0 + 7 @@ -432,7 +432,7 @@ Buy - + 30 @@ -441,10 +441,10 @@ 23 - + Buy XIT - + :/icons/bitcoin:/icons/bitcoin @@ -566,7 +566,7 @@ Order Type - + 110 @@ -580,7 +580,7 @@ 10
- + Max
@@ -1623,7 +1623,7 @@ Units
- + 110 @@ -1637,7 +1637,7 @@ 10 - + Max @@ -1741,7 +1741,7 @@ - + 30 @@ -1750,11 +1750,11 @@ 23 - + Sell XIT - - + + :/icons/bitcoin:/icons/bitcoin @@ -2931,7 +2931,7 @@ Bittrex XIT Deposit Address: - + 30 @@ -2940,10 +2940,10 @@ 23 - + Generate Ittrium Deposit Address - + :/icons/bitcoin:/icons/bitcoin @@ -3071,7 +3071,7 @@ - + 575 @@ -3098,19 +3098,19 @@ margin:0px;text-align:center;padding:2px;border-radius:3px;font-style:italic;width:100px;font-size:14px;font-family:calibri;font-weight:600; - + Update - + 150 35 - + true - + true @@ -3155,7 +3155,7 @@ border: 1px solid #61696c;margin-left:4px; - + 260 @@ -3173,7 +3173,7 @@ border:1px solid #61696c;background:white;font-weight:600; - + = @@ -3240,7 +3240,7 @@ :/images/bittrex - + 460 @@ -3249,10 +3249,10 @@ 23 - + Update API Keys - + :/icons/bitcoin:/icons/bitcoin @@ -3407,6 +3407,13 @@ + + + QtMaterialFlatButton + QWidget +
qtmaterialflatbutton.h
+
+
diff --git a/src/qt/guiconstants.h b/src/qt/guiconstants.h index 7477d79..5b20d5d 100755 --- a/src/qt/guiconstants.h +++ b/src/qt/guiconstants.h @@ -19,8 +19,8 @@ static const int STATUSBAR_ICONSIZE = 16; static const bool DEFAULT_SPLASHSCREEN = true; -/* Invalid field background style (was FF8080)*/ -#define STYLE_INVALID "background:#4169E3" +/* Invalid field background style */ +#define STYLE_INVALID "background:#FF8080" /* Transaction list -- unconfirmed transaction */ #define COLOR_UNCONFIRMED QColor(128, 128, 128) @@ -51,7 +51,7 @@ static const int MAX_URI_LENGTH = 255; #define QAPP_ORG_NAME "Ittrium" #define QAPP_ORG_DOMAIN "ittrium.io" -#define QAPP_APP_NAME_DEFAULT "ittrium-Qt" -#define QAPP_APP_NAME_TESTNET "ittrium-Qt-testnet" +#define QAPP_APP_NAME_DEFAULT "Ittrium-Qt" +#define QAPP_APP_NAME_TESTNET "Ittrium-Qt-testnet" #endif // BITCOIN_QT_GUICONSTANTS_H diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index 875ffa4..3417d39 100755 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -94,7 +94,7 @@ QString dateTimeStr(qint64 nTime) QFont bitcoinAddressFont() { - QFont font("Monospace"); + QFont font("Roboto",10,QFont::Medium); #if QT_VERSION >= 0x040800 font.setStyleHint(QFont::Monospace); #else @@ -255,6 +255,19 @@ void copyEntryData(QAbstractItemView* view, int column, int role) } } +QString getEntryData(QAbstractItemView *view, int column, int role) +{ + if (!view || !view->selectionModel()) + return QString(); + QModelIndexList selection = view->selectionModel()->selectedRows(column); + + if (!selection.isEmpty()) { + // Return first item + return (selection.at(0).data(role).toString()); + } + return QString(); +} + QString getSaveFileName(QWidget* parent, const QString& caption, const QString& dir, const QString& filter, QString* selectedSuffixOut) { QString selectedFilter; @@ -893,13 +906,13 @@ QString formatServicesStr(quint64 mask) uint64_t check = 1 << i; if (mask & check) { switch (check) { + case NODE_BLOOM: + case NODE_BLOOM_WITHOUT_MN: + strList.append(QObject::tr("BLOOM")); + break; case NODE_NETWORK: strList.append(QObject::tr("NETWORK")); break; - case NODE_BLOOM: - case NODE_BLOOM_WITHOUT_MN: - strList.append(QObject::tr("BLOOM")); - break; default: strList.append(QString("%1[%2]").arg(QObject::tr("UNKNOWN")).arg(check)); } diff --git a/src/qt/guiutil.h b/src/qt/guiutil.h index 42c382f..68eadbe 100755 --- a/src/qt/guiutil.h +++ b/src/qt/guiutil.h @@ -65,6 +65,8 @@ QString HtmlEscape(const std::string& str, bool fMultiLine = false); */ void copyEntryData(QAbstractItemView* view, int column, int role = Qt::EditRole); +QString getEntryData(QAbstractItemView *view, int column, int role); + void setClipboard(const QString& str); /** Get save filename, mimics QFileDialog::getSaveFileName, except that it appends a default suffix diff --git a/src/qt/intro.cpp b/src/qt/intro.cpp index 4b14b5f..e01566c 100755 --- a/src/qt/intro.cpp +++ b/src/qt/intro.cpp @@ -11,6 +11,7 @@ #include "guiutil.h" #include "util.h" +#include "qtmaterialflatbutton.h" #include diff --git a/src/qt/ittrium.cpp b/src/qt/ittrium.cpp index b50b592..0c36776 100755 --- a/src/qt/ittrium.cpp +++ b/src/qt/ittrium.cpp @@ -33,6 +33,9 @@ #include "rpcserver.h" #include "ui_interface.h" #include "util.h" +#include "qtmaterialstyle.h" +#include +#include "qtmaterialtheme.h" #ifdef ENABLE_WALLET #include "wallet.h" @@ -358,7 +361,7 @@ BitcoinApplication::~BitcoinApplication() #endif // Delete Qt-settings if user clicked on "Reset Options" QSettings settings; - if (optionsModel && optionsModel->resetSettings) { + if (optionsModel->resetSettings) { settings.clear(); settings.sync(); } @@ -582,8 +585,7 @@ int main(int argc, char* argv[]) /// 5. Now that settings and translations are available, ask user for data directory // User language is set up: pick a data directory - if (!Intro::pickDataDirectory()) - return 0; + Intro::pickDataDirectory(); /// 6. Determine availability of data directory and parse ittrium.conf /// - Do not call GetDataDir(true) before this step finishes diff --git a/src/qt/ittrium.qrc b/src/qt/ittrium.qrc index 1a88f8b..e7e509a 100755 --- a/src/qt/ittrium.qrc +++ b/src/qt/ittrium.qrc @@ -1,5 +1,15 @@ - + + res/icons/history_m.png + res/icons/send_m.png + res/icons/receive_m.png + res/icons/masternodes_m.png + res/icons/overview_m.png + res/icons/lock_open.png + res/icons/lock_closed.png + res/icons/open.png + res/icons/information.png + res/icons/explorer.png res/icons/bitcoin.png res/icons/address-book.png res/icons/quit.png @@ -37,12 +47,12 @@ res/icons/tx_input.png res/icons/tx_output.png res/icons/tx_inout.png - res/icons/unit_xit.png - res/icons/unit_mxit.png - res/icons/unit_uxit.png - res/icons/unit_txit.png - res/icons/unit_tmxit.png - res/icons/unit_tuxit.png + res/icons/unit_ittrium.png + res/icons/unit_mittrium.png + res/icons/unit_uittrium.png + res/icons/unit_tittrium.png + res/icons/unit_tmittrium.png + res/icons/unit_tuittrium.png res/icons/lock_closed.png res/icons/lock_open.png res/icons/key.png @@ -79,32 +89,9 @@ res/movies/spinner-005.png res/movies/spinner-006.png res/movies/spinner-007.png - res/movies/spinner-008.png - res/movies/spinner-009.png - res/movies/spinner-010.png - res/movies/spinner-011.png - res/movies/spinner-012.png - res/movies/spinner-013.png - res/movies/spinner-014.png - res/movies/spinner-015.png - res/movies/spinner-016.png - res/movies/spinner-017.png - res/movies/spinner-018.png - res/movies/spinner-019.png - res/movies/spinner-020.png - res/movies/spinner-021.png - res/movies/spinner-022.png - res/movies/spinner-023.png - res/movies/spinner-024.png - res/movies/spinner-025.png - res/movies/spinner-026.png - res/movies/spinner-027.png - res/movies/spinner-028.png - res/movies/spinner-029.png - res/movies/spinner-030.png - res/movies/spinner-031.png - res/movies/spinner-032.png - res/movies/spinner-033.png - res/movies/spinner-034.png + + + res/fonts/Roboto-Bold.ttf + res/fonts/Roboto-Medium.ttf diff --git a/src/qt/ittriumstrings.cpp b/src/qt/ittriumstrings.cpp index 2007d03..9bcff9a 100755 --- a/src/qt/ittriumstrings.cpp +++ b/src/qt/ittriumstrings.cpp @@ -241,7 +241,7 @@ QT_TRANSLATE_NOOP("ittrium-core", "Connection options:"), QT_TRANSLATE_NOOP("ittrium-core", "Copyright (C) 2009-%i The Bitcoin Core Developers"), QT_TRANSLATE_NOOP("ittrium-core", "Copyright (C) 2014-%i The Dash Core Developers"), QT_TRANSLATE_NOOP("ittrium-core", "Copyright (C) 2015-%i The PIVX Core Developers"), -QT_TRANSLATE_NOOP("ittrium-core", "Copyright (C) 2017-%i The Ittrium Core Developers"), +QT_TRANSLATE_NOOP("ittrium-core", "Copyright (C) 2018-%i The Ittrium Core Developers"), QT_TRANSLATE_NOOP("ittrium-core", "Corrupted block database detected"), QT_TRANSLATE_NOOP("ittrium-core", "Could not parse -rpcbind value %s as network address"), QT_TRANSLATE_NOOP("ittrium-core", "Could not parse masternode.conf"), diff --git a/src/qt/locale/ittrium_bg.ts b/src/qt/locale/ittrium_bg.ts index 3d1dd8b..e1c53fc 100755 --- a/src/qt/locale/ittrium_bg.ts +++ b/src/qt/locale/ittrium_bg.ts @@ -62,12 +62,12 @@ Получаващ адрес - These are your ITTRIUM addresses for sending payments. Always check the amount and the receiving address before sending coins. - Това са вашите ITTRIUM адреси за изпращане на плащания. Винаги проверявайте количеството и адреса на получателя, преди да изпратите монети. + These are your Ittrium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Това са вашите Ittrium адреси за изпращане на плащания. Винаги проверявайте количеството и адреса на получателя, преди да изпратите монети. - These are your ITTRIUM addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Това са вашите ITTRIUM адреси за получаване на плащания. Препоръчително е да използвате нови адреси за получаване за всяка транзакция. + These are your Ittrium addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Това са вашите Ittrium адреси за получаване на плащания. Препоръчително е да използвате нови адреси за получаване за всяка транзакция. &Copy Address @@ -168,8 +168,8 @@ Потвърдете криптирането на портфейла - ITTRIUM will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. - ITTRIUM сега ще се затвори, за да довърши процеса на криптиране. Запомнете, че криптирането на вашия портфейл не може напълно да защити вашия ITTRIUM от това, да бъде откраднат от злонамерен софутуер, инфектирал вашия компютър. + Ittrium will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. + Ittrium сега ще се затвори, за да довърши процеса на криптиране. Запомнете, че криптирането на вашия портфейл не може напълно да защити вашия Ittrium от това, да бъде откраднат от злонамерен софутуер, инфектирал вашия компютър. Are you sure you wish to encrypt your wallet? @@ -239,8 +239,8 @@ Адрес: - The ITTRIUM address to sign the message with - ITTRIUM адреса, с който да подпишете съобщението + The Ittrium address to sign the message with + Ittrium адреса, с който да подпишете съобщението Choose previously used address @@ -271,8 +271,8 @@ Копирай сегашния подпис в системния буфер - Sign the message to prove you own this ITTRIUM address - Подпишете съобщението, за да докажете, че притежавате този ITTRIUM адрес + Sign the message to prove you own this Ittrium address + Подпишете съобщението, за да докажете, че притежавате този Ittrium адрес Encrypt &Key @@ -413,8 +413,8 @@ SignVerifyMessageDialog - The ITTRIUM address to sign the message with - ITTRIUM адреса, с който да подпишете съобщението + The Ittrium address to sign the message with + Ittrium адреса, с който да подпишете съобщението Choose previously used address @@ -437,8 +437,8 @@ Копирай сегашния подпис в системния буфер - Sign the message to prove you own this ITTRIUM address - Подпишете съобщението, за да докажете, че притежавате този ITTRIUM адрес + Sign the message to prove you own this Ittrium address + Подпишете съобщението, за да докажете, че притежавате този Ittrium адрес diff --git a/src/qt/locale/ittrium_ca.ts b/src/qt/locale/ittrium_ca.ts index 5e174db..0038470 100755 --- a/src/qt/locale/ittrium_ca.ts +++ b/src/qt/locale/ittrium_ca.ts @@ -354,12 +354,12 @@ A&juda - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core - &About ITTRIUM Core - &Sobre ITTRIUM Core + &About Ittrium Core + &Sobre Ittrium Core &BIP38 tool @@ -552,12 +552,12 @@ versió - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core - About ITTRIUM Core - Sobre ITTRIUM Core + About Ittrium Core + Sobre Ittrium Core Usage: @@ -575,12 +575,12 @@ Benvingut - Welcome to ITTRIUM Core. - Benvingut a ITTRIUM Core. + Welcome to Ittrium Core. + Benvingut a Ittrium Core. - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core Error @@ -1132,8 +1132,8 @@ SplashScreen - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core Version %1 diff --git a/src/qt/locale/ittrium_cs.ts b/src/qt/locale/ittrium_cs.ts index 0f19678..b2f459c 100755 --- a/src/qt/locale/ittrium_cs.ts +++ b/src/qt/locale/ittrium_cs.ts @@ -62,12 +62,12 @@ Adresy pro přijetí peněz - These are your ITTRIUM addresses for sending payments. Always check the amount and the receiving address before sending coins. - Toto jsou Vaše ITTRIUM adresy pro poslání platby. Vždy si překontrolujte množství peněz a cílovou adresu než platbu odešlete. + These are your Ittrium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Toto jsou Vaše Ittrium adresy pro poslání platby. Vždy si překontrolujte množství peněz a cílovou adresu než platbu odešlete. - These are your ITTRIUM addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Toto jsou Vaše ITTRIUM adresy pro přijetí plateb. Je doporučeno použít novou adresu pro každou novou transakci. + These are your Ittrium addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Toto jsou Vaše Ittrium adresy pro přijetí plateb. Je doporučeno použít novou adresu pro každou novou transakci. &Copy Address @@ -176,8 +176,8 @@ Potvrdit zašifrování peněženky - ITTRIUM will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. - ITTRIUM se teď zavře pro dokončení šifrovacího procesu. Prosím, vemte na vědomí, že zašifrování Vaší peněženky plně neochrání Vaše XITy před krádží, pokud je Váš počítač infikován malwarem. + Ittrium will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. + Ittrium se teď zavře pro dokončení šifrovacího procesu. Prosím, vemte na vědomí, že zašifrování Vaší peněženky plně neochrání Vaše XITy před krádží, pokud je Váš počítač infikován malwarem. Are you sure you wish to encrypt your wallet? @@ -240,15 +240,15 @@ Enter a Ittrium Address that you would like to encrypt using BIP 38. Enter a passphrase in the middle box. Press encrypt to compute the encrypted private key. - Zadejte ITTRIUM adresu, kterou si přejete zašifrovat pomocí BIP38. Frázové heslo zadejte do prostředního boxu. Stiskněte šifrovat pro výpočet šifrovaného privátního klíče. + Zadejte Ittrium adresu, kterou si přejete zašifrovat pomocí BIP38. Frázové heslo zadejte do prostředního boxu. Stiskněte šifrovat pro výpočet šifrovaného privátního klíče. Address: Adresa: - The ITTRIUM address to sign the message with - ITTRIUM adresa pro podepsání zprávy + The Ittrium address to sign the message with + Ittrium adresa pro podepsání zprávy Choose previously used address @@ -279,8 +279,8 @@ Kopírovat aktuální podpis do systémové mezipaměti - Sign the message to prove you own this ITTRIUM address - Podepsat zprávu k prokázání, že vlastníte tuto ITTRIUM adresu + Sign the message to prove you own this Ittrium address + Podepsat zprávu k prokázání, že vlastníte tuto Ittrium adresu Encrypt &Key @@ -303,12 +303,12 @@ Vložte BIP 38 šifrovaný privítní klíc. Frázové heslo vložte do prostředního boxu. Kliknětě na Dešifrovat Klíč pro výpočet privátního klíče. Poté co bude klíč dešifrován, kliknutím na 'Importovat Adresu' přidáte privátní klíč do Vaší peněženky. - The ITTRIUM address the message was signed with - ITTRIUM adresa zprávy byla podpsána + The Ittrium address the message was signed with + Ittrium adresa zprávy byla podpsána - Verify the message to ensure it was signed with the specified ITTRIUM address - Verifikujte zprávu pro ujištění, že byla podepsána zmíněnou ITTRIUM adresou + Verify the message to ensure it was signed with the specified Ittrium address + Verifikujte zprávu pro ujištění, že byla podepsána zmíněnou Ittrium adresou Decrypt &Key @@ -598,16 +598,16 @@ Nástrojová lišta záložek - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core - Send coins to a ITTRIUM address - Odeslat platbuna ITTRIUM adresu + Send coins to a Ittrium address + Odeslat platbuna Ittrium adresu - Request payments (generates QR codes and xit: URIs) - Vyžádat platbu (generování QK kódu a xit: URIs) + Request payments (generates QR codes and ittrium: URIs) + Vyžádat platbu (generování QK kódu a ittrium: URIs) &Masternodes @@ -618,24 +618,24 @@ Procházet masternody - &About ITTRIUM Core - &O ITTRIUM Core + &About Ittrium Core + &O Ittrium Core - Show information about ITTRIUM Core - Zobraz informace o ITTRIUM Core + Show information about Ittrium Core + Zobraz informace o Ittrium Core - Modify configuration options for ITTRIUM - Upravit možnosti konfigurace pro ITTRIUM + Modify configuration options for Ittrium + Upravit možnosti konfigurace pro Ittrium - Sign messages with your ITTRIUM addresses to prove you own them - Podepsat zprávy Vaší ITTRIUM adresou pro prokázaní, že jste jejich vlastníkem + Sign messages with your Ittrium addresses to prove you own them + Podepsat zprávy Vaší Ittrium adresou pro prokázaní, že jste jejich vlastníkem - Verify messages to ensure they were signed with specified ITTRIUM addresses - Ověřit zprávy k zajištění, že bylypodepsány vybranými ITTRIUM adresami + Verify messages to ensure they were signed with specified Ittrium addresses + Ověřit zprávy k zajištění, že bylypodepsány vybranými Ittrium adresami &BIP38 tool @@ -666,8 +666,8 @@ Otevřít Masternodový konfigurační soubor - Open a ITTRIUM: URI or payment request - Otevřít ITTRIUM: URI nebo platební žádost + Open a Ittrium: URI or payment request + Otevřít Ittrium: URI nebo platební žádost &Blockchain explorer @@ -678,12 +678,12 @@ Okno blokového průzkumníka - Show the ITTRIUM Core help message to get a list with possible ITTRIUM command-line options - Zobrazit ITTRIUM Core pomocnou zpráv pro získání seznamu možných parametrů ITTRIUM pro příkazy do příkazové řádky + Show the Ittrium Core help message to get a list with possible Ittrium command-line options + Zobrazit Ittrium Core pomocnou zpráv pro získání seznamu možných parametrů Ittrium pro příkazy do příkazové řádky - ITTRIUM Core client - ITTRIUM Core klient + Ittrium Core client + Ittrium Core klient Synchronizing with network... @@ -1070,8 +1070,8 @@ MultiSend: %1 Upravit adresu k odeslání platby - The entered address "%1" is not a valid ITTRIUM address. - Zadaná adresa "%1" není validní ITTRIUM adresa. + The entered address "%1" is not a valid Ittrium address. + Zadaná adresa "%1" není validní Ittrium adresa. The entered address "%1" is already in the address book. @@ -1116,12 +1116,12 @@ MultiSend: %1 verze - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core - About ITTRIUM Core - O ITTRIUM Core + About Ittrium Core + O Ittrium Core Command-line options @@ -1155,16 +1155,16 @@ MultiSend: %1 Vítejte - Welcome to ITTRIUM Core. - Vítejte v ITTRIUM Core. + Welcome to Ittrium Core. + Vítejte v Ittrium Core. - As this is the first time the program is launched, you can choose where ITTRIUM Core will store its data. - Při prvním spuštění programu si můžete vybrat, kam bude ITTRIUM Core ukládat svá data. + As this is the first time the program is launched, you can choose where Ittrium Core will store its data. + Při prvním spuštění programu si můžete vybrat, kam bude Ittrium Core ukládat svá data. - ITTRIUM Core will download and store a copy of the ITTRIUM block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - ITTRIUM Core stáhne a uloží kopii ITTRIUM blockchainu. Nejméně %1GB dat bude do této složky uloženo a v průběhu času bude ukládat další data. Peněženka bude v této složce uložena také. + Ittrium Core will download and store a copy of the Ittrium block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + Ittrium Core stáhne a uloží kopii Ittrium blockchainu. Nejméně %1GB dat bude do této složky uloženo a v průběhu času bude ukládat další data. Peněženka bude v této složce uložena také. Use the default data directory @@ -1175,8 +1175,8 @@ MultiSend: %1 Použít vlastní složku pro data - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core Error: Specified data directory "%1" cannot be created. @@ -1442,24 +1442,24 @@ Prosím zkontrolujte adresu a zkuste to znovu. Vyberte úrpvěň ochrany soukromí - Use 2 separate masternodes to mix funds up to 10000 XIT - Použí 2 oddělené masternody k promíchání prostředků až do 10000 XIT + Use 2 separate masternodes to mix funds up to 5000 XIT + Použí 2 oddělené masternody k promíchání prostředků až do 5000 XIT Use 16 separate masternodes Použít 16 oddělených masternodů - This option is the quickest and will cost about ~0.025 XIT to anonymize 10000 XIT - Tato možnost je nejrychleší a bude stát zhruba ~0.025 XIT pro anonymizaci 10000 XIT + This option is the quickest and will cost about ~0.025 XIT to anonymize 5000 XIT + Tato možnost je nejrychleší a bude stát zhruba ~0.025 XIT pro anonymizaci 5000 XIT This is the slowest and most secure option. Using maximum anonymity will cost Toto je nejpomalejší a nejvíce bezpečná volba. Použití maximalní anonymity bude stát - 0.1 XIT per 10000 XIT you anonymize. - 0.1 XIT za 10000 XIT anonymizujete. + 0.1 XIT per 5000 XIT you anonymize. + 0.1 XIT za 5000 XIT anonymizujete. Obfuscation Configuration @@ -1524,16 +1524,16 @@ Prosím zkontrolujte adresu a zkuste to znovu. Expert - Automatically start ITTRIUM after logging in to the system. - Automaticky spustit ITTRIUM po přihlášení do systému + Automatically start Ittrium after logging in to the system. + Automaticky spustit Ittrium po přihlášení do systému - &Start ITTRIUM on system login - &Spusti ITTRIUM při přihlášení do systému + &Start Ittrium on system login + &Spusti Ittrium při přihlášení do systému - Amount of ITTRIUM to keep anonymized - Počet ITTRIUM pro anonymní držení + Amount of Ittrium to keep anonymized + Počet Ittrium pro anonymní držení Show Masternodes Tab @@ -2199,8 +2199,8 @@ Prosím zkontrolujte adresu a zkuste to znovu. SignVerifyMessageDialog - The ITTRIUM address to sign the message with - ITTRIUM adresa pro podepsání zprávy + The Ittrium address to sign the message with + Ittrium adresa pro podepsání zprávy Choose previously used address @@ -2227,16 +2227,16 @@ Prosím zkontrolujte adresu a zkuste to znovu. Kopírovat aktuální podpis do systémové mezipaměti - Sign the message to prove you own this ITTRIUM address - Podepsat zprávu k prokázání, že vlastníte tuto ITTRIUM adresu + Sign the message to prove you own this Ittrium address + Podepsat zprávu k prokázání, že vlastníte tuto Ittrium adresu - The ITTRIUM address the message was signed with - ITTRIUM adresa zprávy byla podpsána + The Ittrium address the message was signed with + Ittrium adresa zprávy byla podpsána - Verify the message to ensure it was signed with the specified ITTRIUM address - Verifikujte zprávu pro ujištění, že byla podepsána zmíněnou ITTRIUM adresou + Verify the message to ensure it was signed with the specified Ittrium address + Verifikujte zprávu pro ujištění, že byla podepsána zmíněnou Ittrium adresou Sign &Message @@ -2278,8 +2278,8 @@ Prosím zkontrolujte adresu a zkuste to znovu. SplashScreen - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core diff --git a/src/qt/locale/ittrium_da.ts b/src/qt/locale/ittrium_da.ts index 82618e1..f660f8b 100755 --- a/src/qt/locale/ittrium_da.ts +++ b/src/qt/locale/ittrium_da.ts @@ -62,11 +62,11 @@ Modtageradresse - These are your ITTRIUM addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Ittrium addresses for sending payments. Always check the amount and the receiving address before sending coins. Dine adresser til at sende betalinger med. Kontroller altid både beløb og modtageradresse før afsendelse. - These are your ITTRIUM addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + These are your Ittrium addresses for receiving payments. It is recommended to use a new receiving address for each transaction. Dette er dine modtager adresser. Det anbefales at anvende en ny adresse til hver transaktion @@ -176,8 +176,8 @@ Bekræft, og tegnebogen krypteres. - ITTRIUM will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. - ITTRIUM vil lukke ned for at færdiggøre kryptograferingsprocesserne. Husk at kryptering alene ikke sikrer mod tyveri af mønterne fra malware eller virus på computeren. + Ittrium will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. + Ittrium vil lukke ned for at færdiggøre kryptograferingsprocesserne. Husk at kryptering alene ikke sikrer mod tyveri af mønterne fra malware eller virus på computeren. Are you sure you wish to encrypt your wallet? @@ -240,15 +240,15 @@ Enter a Ittrium Address that you would like to encrypt using BIP 38. Enter a passphrase in the middle box. Press encrypt to compute the encrypted private key. - Indtast den ITTRIUM adresse De ønsker at kryptografere ved hjælp af BIP 38. Indtast et kodeord i den midterste boks. Klik på krypter for at generere den kryptograferede private nøgle. + Indtast den Ittrium adresse De ønsker at kryptografere ved hjælp af BIP 38. Indtast et kodeord i den midterste boks. Klik på krypter for at generere den kryptograferede private nøgle. Address: Adresse - The ITTRIUM address to sign the message with - Den ITTRIUM adresse, der skal bruges til at underskrive beskeden med. + The Ittrium address to sign the message with + Den Ittrium adresse, der skal bruges til at underskrive beskeden med. Choose previously used address @@ -279,8 +279,8 @@ Kopier den aktuelle underskrift til udklipsholderen. - Sign the message to prove you own this ITTRIUM address - Underskriv beskeden for at bevise, at De ejer denne ITTRIUM adresse. + Sign the message to prove you own this Ittrium address + Underskriv beskeden for at bevise, at De ejer denne Ittrium adresse. Encrypt &Key @@ -303,12 +303,12 @@ Indtast den krypterede BIP 38 nøgle. Indtast kodeordet i den midterste boks. Klik på dekryptér for at generere den private nøgle. Når nøglen er dekrypteret vil klip på "importér adresse" overføre den private nøgle til tegnebogen. - The ITTRIUM address the message was signed with - Beskeden er underskrevet med denne ITTRIUM adresse + The Ittrium address the message was signed with + Beskeden er underskrevet med denne Ittrium adresse - Verify the message to ensure it was signed with the specified ITTRIUM address - verificer beskeden for at sikre, at den blev underskrevet med den rigtige ITTRIUM adresse. + Verify the message to ensure it was signed with the specified Ittrium address + verificer beskeden for at sikre, at den blev underskrevet med den rigtige Ittrium adresse. Decrypt &Key @@ -598,16 +598,16 @@ Værktøjslinier - ITTRIUM Core - ITTRIUM kerne + Ittrium Core + Ittrium kerne - Send coins to a ITTRIUM address - Send mønter til en ITTRIUM adresse + Send coins to a Ittrium address + Send mønter til en Ittrium adresse - Request payments (generates QR codes and xit: URIs) - Anmod om betaling (genrerer QR kode og ITTRIUM URL) + Request payments (generates QR codes and ittrium: URIs) + Anmod om betaling (genrerer QR kode og Ittrium URL) &Masternodes @@ -618,24 +618,24 @@ Vis masternoder - &About ITTRIUM Core - &Om ITTRIUM kerne + &About Ittrium Core + &Om Ittrium kerne - Show information about ITTRIUM Core - Vis information om ITTRIUM kerne + Show information about Ittrium Core + Vis information om Ittrium kerne - Modify configuration options for ITTRIUM - Ret konfigurationsindstillinger for ITTRIUM + Modify configuration options for Ittrium + Ret konfigurationsindstillinger for Ittrium - Sign messages with your ITTRIUM addresses to prove you own them - Underskriv beskeder med Deres ITTRIUM adresser for at bekræfte at De ejer dem. + Sign messages with your Ittrium addresses to prove you own them + Underskriv beskeder med Deres Ittrium adresser for at bekræfte at De ejer dem. - Verify messages to ensure they were signed with specified ITTRIUM addresses - Verificer besked for at sikre, at den er underskrevet med den opgivne ITTRIUM adresse + Verify messages to ensure they were signed with specified Ittrium addresses + Verificer besked for at sikre, at den er underskrevet med den opgivne Ittrium adresse &BIP38 tool @@ -666,8 +666,8 @@ ÅbnMasternode konfigurationsfil - Open a ITTRIUM: URI or payment request - Åbn en ITTRIUM URl eller betalingsanmodning + Open a Ittrium: URI or payment request + Åbn en Ittrium URl eller betalingsanmodning &Blockchain explorer @@ -678,12 +678,12 @@ Blockexplorer vindue - Show the ITTRIUM Core help message to get a list with possible ITTRIUM command-line options - Vis hjelpetekster fra ITTRIUM kernen for at få en liste med mulige ITTRIUM kommandolinie-startparametre + Show the Ittrium Core help message to get a list with possible Ittrium command-line options + Vis hjelpetekster fra Ittrium kernen for at få en liste med mulige Ittrium kommandolinie-startparametre - ITTRIUM Core client - ITTRIUM kerneklient + Ittrium Core client + Ittrium kerneklient Synchronizing with network... @@ -1114,8 +1114,8 @@ Adresse: %4 Ret afsenderadresse - The entered address "%1" is not a valid ITTRIUM address. - Den indtastede adresse %1 er ikke en gyldig ITTRIUM adresse + The entered address "%1" is not a valid Ittrium address. + Den indtastede adresse %1 er ikke en gyldig Ittrium adresse The entered address "%1" is already in the address book. @@ -1160,16 +1160,16 @@ Adresse: %4 version - ITTRIUM Core - ITTRIUM kerne + Ittrium Core + Ittrium kerne (%1-bit) (%1-bit) - About ITTRIUM Core - om ITTRIUM kerne + About Ittrium Core + om Ittrium kerne Command-line options @@ -1215,16 +1215,16 @@ Adresse: %4 Velkommen - Welcome to ITTRIUM Core. - Velkommen til ITTRIUM kerne + Welcome to Ittrium Core. + Velkommen til Ittrium kerne - As this is the first time the program is launched, you can choose where ITTRIUM Core will store its data. - Da det er første gang programmet startes, kan De vælge hvor ITTRIUM kernen skal lagre sine data + As this is the first time the program is launched, you can choose where Ittrium Core will store its data. + Da det er første gang programmet startes, kan De vælge hvor Ittrium kernen skal lagre sine data - ITTRIUM Core will download and store a copy of the ITTRIUM block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - ITTRIUM kernen vil nu hente og gemme en kopi af ITTRIUM blockchain. Der skal være mindst %1GB ledigt på lagermediet, og behovet vil stige efterhånden som tiden går. Selve tegnebogen vil også blive gemt her. + Ittrium Core will download and store a copy of the Ittrium block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + Ittrium kernen vil nu hente og gemme en kopi af Ittrium blockchain. Der skal være mindst %1GB ledigt på lagermediet, og behovet vil stige efterhånden som tiden går. Selve tegnebogen vil også blive gemt her. Use the default data directory @@ -1235,8 +1235,8 @@ Adresse: %4 Anvend en mappe valgt af brugeren - ITTRIUM Core - ITTRIUM kerne + Ittrium Core + Ittrium kerne Error: Specified data directory "%1" cannot be created. @@ -1377,12 +1377,12 @@ Adresse: %4 Indtast modtageradresse - MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other ITTRIUM addresses after it matures. -To Add: enter percentage to give and ITTRIUM address to add to the MultiSend vector. + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other Ittrium addresses after it matures. +To Add: enter percentage to give and Ittrium address to add to the MultiSend vector. To Delete: Enter address to delete and press delete. MultiSend will not be activated unless you have clicked Activate - Multisend tillader at De automatisk kan sende op til 100% af Deres belønninger fra såvel indskud som masternodebelønninger til en liste over andre ITTRIUM adressater når den er tilstrækkelig stor. -For at tilføje: Indtast procentsatsen De ønsker at overføre samt den ITTRIUM adresse som skal modtage via Multisendsystemet. + Multisend tillader at De automatisk kan sende op til 100% af Deres belønninger fra såvel indskud som masternodebelønninger til en liste over andre Ittrium adressater når den er tilstrækkelig stor. +For at tilføje: Indtast procentsatsen De ønsker at overføre samt den Ittrium adresse som skal modtage via Multisendsystemet. For at fjerne: Indtast adressen som skal slettes og klik på slet. Multisend vil ikke fungere med mindre systemet er aktiveret. @@ -1520,48 +1520,48 @@ Kontroller adressen og prøv igen. Vælg tilsløringsniveau - Use 2 separate masternodes to mix funds up to 10000 XIT - Brug 2 separate masternoder for at tilsløre beløb op til 10000 XIT + Use 2 separate masternodes to mix funds up to 5000 XIT + Brug 2 separate masternoder for at tilsløre beløb op til 5000 XIT - Use 8 separate masternodes to mix funds up to 10000 XIT - Brug 8 separate masternoder for at tilsløre op til 10000 XIT + Use 8 separate masternodes to mix funds up to 5000 XIT + Brug 8 separate masternoder for at tilsløre op til 5000 XIT Use 16 separate masternodes Brug 16 separate masternoder - This option is the quickest and will cost about ~0.025 XIT to anonymize 10000 XIT - Dette valg er det hurtigste og vil koste i omegnen af 0.025 XIT for at anonymiser 10000 XIT + This option is the quickest and will cost about ~0.025 XIT to anonymize 5000 XIT + Dette valg er det hurtigste og vil koste i omegnen af 0.025 XIT for at anonymiser 5000 XIT - This option is moderately fast and will cost about 0.05 XIT to anonymize 10000 XIT - Dette valg er relativt hurtigt og vil koste i omegnen af 0.05 XIT for at anonymiser 10000 XIT + This option is moderately fast and will cost about 0.05 XIT to anonymize 5000 XIT + Dette valg er relativt hurtigt og vil koste i omegnen af 0.05 XIT for at anonymiser 5000 XIT This is the slowest and most secure option. Using maximum anonymity will cost Denne mulighed er den langsomste og det mest sikre valg. Valg af maksimal tilsløring vil koste - 0.1 XIT per 10000 XIT you anonymize. - 0.1 pr 10000 XIT for at tilsløre. + 0.1 XIT per 5000 XIT you anonymize. + 0.1 pr 5000 XIT for at tilsløre. Obfuscation Configuration Tilsløringskonfiguration - Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening ITTRIUM's configuration screen. - Tilsløring blev sat til grundlæggende (%1 og 2 gennemløb) De kan ændre dette hvornår De vil ved at åbne ITTRIUM konfigurationsbillede. + Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Ittrium's configuration screen. + Tilsløring blev sat til grundlæggende (%1 og 2 gennemløb) De kan ændre dette hvornår De vil ved at åbne Ittrium konfigurationsbillede. - Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening ITTRIUM's configuration screen. - Tilsløring blev sat til høj (%1 og 8 gennemløb) De kan ændre dette hvornår De vil ved at åbne ITTRIUM konfigurationsbillede. + Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Ittrium's configuration screen. + Tilsløring blev sat til høj (%1 og 8 gennemløb) De kan ændre dette hvornår De vil ved at åbne Ittrium konfigurationsbillede. - Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening ITTRIUM's configuration screen. - Tilsløring blev sat til maksimum (%1 og 16 gennemløb) De kan ændre dette hvornår De vil ved at åbne ITTRIUM konfigurationsbillede. + Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Ittrium's configuration screen. + Tilsløring blev sat til maksimum (%1 og 16 gennemløb) De kan ændre dette hvornår De vil ved at åbne Ittrium konfigurationsbillede. @@ -1622,8 +1622,8 @@ Kontroller adressen og prøv igen. Hvis De slår "brug af ubekræftede penge tilbage" vil penge tilbage <br/> ikke kunne benyttes før transaktionen er bekræftet mindst en gang. <br/>Dette har også indflydelse på opgørelsen af saldoen. - Automatically open the ITTRIUM client port on the router. This only works when your router supports UPnP and it is enabled. - Åbn ITTRIUM klientporten på ruteren automatisk. Virker kun hvis UPnP er slået til i ruteren. + Automatically open the Ittrium client port on the router. This only works when your router supports UPnP and it is enabled. + Åbn Ittrium klientporten på ruteren automatisk. Virker kun hvis UPnP er slået til i ruteren. Accept connections from outside @@ -1642,12 +1642,12 @@ Kontroller adressen og prøv igen. Ekspert - Automatically start ITTRIUM after logging in to the system. - Start ITTRIUM automatisk, når der logges på systemet + Automatically start Ittrium after logging in to the system. + Start Ittrium automatisk, når der logges på systemet - &Start ITTRIUM on system login - &start ITTRIUM når der logges på systemet + &Start Ittrium on system login + &start Ittrium når der logges på systemet This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees. @@ -1662,8 +1662,8 @@ Kontroller adressen og prøv igen. når dette antal er nået slås tilsløringsfunktonen fra. - Amount of ITTRIUM to keep anonymized - Antallet af ITTRIUM som skal holdes tilslørede + Amount of Ittrium to keep anonymized + Antallet af Ittrium som skal holdes tilslørede Whether to show coin control features or not. @@ -1690,22 +1690,22 @@ Kontroller adressen og prøv igen. &netværk - The user interface language can be set here. This setting will take effect after restarting ITTRIUM. - Vælg sprog her. Ændringerne træder i kraft næste gang ITTRIUM klienten startes + The user interface language can be set here. This setting will take effect after restarting Ittrium. + Vælg sprog her. Ændringerne træder i kraft næste gang Ittrium klienten startes Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/IttriumCore/IttriumCore-translations +https://www.transifex.com/ittrium-project/ittrium-project-translations Det valgte sprog mangler, eller oversættelsen er mangelfuld. Hjælp ved at bidrage med oversættelser her: -https://www.transifex.com/IttriumCore/IttriumCore-translations +https://www.transifex.com/ittrium-project/ittrium-project-translations Map port using &UPnP MAP port ved hjælp af UPnP - Connect to the ITTRIUM network through a SOCKS5 proxy. - Tilslut ITTRIUM netværket gennem en SOCKS5 PROXY + Connect to the Ittrium network through a SOCKS5 proxy. + Tilslut Ittrium netværket gennem en SOCKS5 PROXY Proxy &IP: @@ -1859,8 +1859,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Saldi - The displayed information may be out of date. Your wallet automatically synchronizes with the ITTRIUM network after a connection is established, but this process has not completed yet. - De viste informationer kan være uddaterede. Deres tegnebog synkronisere automatism med ITTRIUM netværket så snart en forbindelse er etalbleret, men denne proces er ikke færdiggjort endnu. + The displayed information may be out of date. Your wallet automatically synchronizes with the Ittrium network after a connection is established, but this process has not completed yet. + De viste informationer kan være uddaterede. Deres tegnebog synkronisere automatism med Ittrium netværket så snart en forbindelse er etalbleret, men denne proces er ikke færdiggjort endnu. Unconfirmed transactions to watch-only addresses @@ -2059,11 +2059,11 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Ugyldig betalingsadresse: %1 - Cannot start xit: click-to-pay handler - Kan ikke starte ITTRIUM "klik for at betale" systemet + Cannot start ittrium: click-to-pay handler + Kan ikke starte Ittrium "klik for at betale" systemet - URI cannot be parsed! This can be caused by an invalid ITTRIUM address or malformed URI parameters. + URI cannot be parsed! This can be caused by an invalid Ittrium address or malformed URI parameters. URl kan ikke fortolkes! Det kan skyldes en ugyldig adresse, eller forkerte URl parametre. @@ -2149,8 +2149,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Beløb - Enter a ITTRIUM address (e.g. %1) - Indtast en ITTRIUM adresse (F.eks. %1) + Enter a Ittrium address (e.g. %1) + Indtast en Ittrium adresse (F.eks. %1) %1 d @@ -2283,8 +2283,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Block chain - Open the ITTRIUM debug log file from the current data directory. This can take a few seconds for large log files. - Åbn ITTRIUM debug logfilen fra den aktuelle datamappe. Det kan godt tage lidt tid hvis filen er meget stor. + Open the Ittrium debug log file from the current data directory. This can take a few seconds for large log files. + Åbn Ittrium debug logfilen fra den aktuelle datamappe. Det kan godt tage lidt tid hvis filen er meget stor. Number of Masternodes @@ -2451,8 +2451,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Ud: - Welcome to the ITTRIUM RPC console. - Velkommen til ITTRIUM RPC konsollet + Welcome to the Ittrium RPC console. + Velkommen til Ittrium RPC konsollet Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. @@ -2522,12 +2522,12 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Valgfri opmærkning som tilknyttes den nye modtageradresse. - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the ITTRIUM network. - Valgfri besked som vedhæftes betalingsanmodnigen, og som bliver vist når anmodningen åbnes. Note: Beskeden fremsendes ikke sammen med betalingen, når denne sendes ud på ITTRIUM netværket. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Ittrium network. + Valgfri besked som vedhæftes betalingsanmodnigen, og som bliver vist når anmodningen åbnes. Note: Beskeden fremsendes ikke sammen med betalingen, når denne sendes ud på Ittrium netværket. - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the ITTRIUM network. - Valgfri besked som vedhæftes betalingsanmodnigen, og som bliver vist når anmodningen åbnes. <br>Note: Beskeden fremsendes ikke sammen med betalingen, når denne sendes ud på ITTRIUM netværket. + An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Ittrium network. + Valgfri besked som vedhæftes betalingsanmodnigen, og som bliver vist når anmodningen åbnes. <br>Note: Beskeden fremsendes ikke sammen med betalingen, når denne sendes ud på Ittrium netværket. Use this form to request payments. All fields are <b>optional</b>. @@ -2815,7 +2815,7 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Hvis den brugerfastsatte gebyrbetaling er sat til 1000 uXITs og transaktionen kun fylder 250 bytes, så vil "pr. kilobyte" kun udbetale 250 uXIT i gebyr, <br /> mens "Total-mindst" udbetaler 1000 uXITs. For transaktioner større end en kilobyte betales i begge tilfælde i forhold til antallet af kilobytes - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for ITTRIUM transactions than the network can process. + Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for Ittrium transactions than the network can process. Betaling af mindste transaktionsgebyr vil være fint så længe der er færre transaktioner end der er plads til i blokkene. <br /> Men opmærksomheden henledes på, at det kan resultere i en transaktion der aldrig bliver bekræftet i det øjeblik der er større behov for transaktioner end netværket har plads til. @@ -2919,8 +2919,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Anonyme saldi - Warning: Invalid ITTRIUM address - Advarsel! Ugyldig ITTRIUM adresse + Warning: Invalid Ittrium address + Advarsel! Ugyldig Ittrium adresse any available funds (not recommended) @@ -3026,8 +3026,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Betal &Til - The ITTRIUM address to send the payment to - ITTRIUM adressen, som betalingen skal sendes til + The Ittrium address to send the payment to + Ittrium adressen, som betalingen skal sendes til Choose previously used address @@ -3066,8 +3066,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Besked - A message that was attached to the ITTRIUM: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the ITTRIUM network. - En besked, der var vedhæftet til ITTRIUM: URl wil blive gemt sammen med transaktionen som reference. Note: Beskeden bliver medsendt transaktionen over netværket. + A message that was attached to the Ittrium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Ittrium network. + En besked, der var vedhæftet til Ittrium: URl wil blive gemt sammen med transaktionen som reference. Note: Beskeden bliver medsendt transaktionen over netværket. This is an unverified payment request. @@ -3093,8 +3093,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations ShutdownWindow - ITTRIUM Core is shutting down... - ITTRIUM kernen lukker ned + Ittrium Core is shutting down... + Ittrium kernen lukker ned Do not shut down the computer until this window disappears. @@ -3116,8 +3116,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations De kan underskrive beskeder med Deres adresser or at bevise ejerskab. Vær forsigtig med at underskrive noget De er usikker på såsom forsøg op at narre Dem til at oplyse Deres identitet. Skriv kun under på noget De kan stå inde for, og som De er enig i. - The ITTRIUM address to sign the message with - Den ITTRIUM adresse, der skal bruges til at underskrive beskeden med. + The Ittrium address to sign the message with + Den Ittrium adresse, der skal bruges til at underskrive beskeden med. Choose previously used address @@ -3148,16 +3148,16 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Kopier den aktuelle underskrift til udklipsholderen. - Sign the message to prove you own this ITTRIUM address - Underskriv beskeden for at bevise, at De ejer denne ITTRIUM adresse. + Sign the message to prove you own this Ittrium address + Underskriv beskeden for at bevise, at De ejer denne Ittrium adresse. - The ITTRIUM address the message was signed with - Beskeden er underskrevet med denne ITTRIUM adresse + The Ittrium address the message was signed with + Beskeden er underskrevet med denne Ittrium adresse - Verify the message to ensure it was signed with the specified ITTRIUM address - verificer beskeden for at sikre, at den blev underskrevet med den rigtige ITTRIUM adresse. + Verify the message to ensure it was signed with the specified Ittrium address + verificer beskeden for at sikre, at den blev underskrevet med den rigtige Ittrium adresse. Sign &Message @@ -3243,8 +3243,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations SplashScreen - ITTRIUM Core - ITTRIUM kerne + Ittrium Core + Ittrium kerne Version %1 @@ -3259,8 +3259,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations DASH "core" udviklerne - The ITTRIUM Core developers - ITTRIUM "core" udviklerne + The Ittrium Core developers + Ittrium "core" udviklerne [testnet] @@ -3861,8 +3861,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Forbind til den opgivne adresse og lyt efter JSON-.RPC forbindelser. Brug [host]:port notation for IPv6. Der kan indsættes flere linier (standard: Forbind til alle interfaces) - Cannot obtain a lock on data directory %s. ITTRIUM Core is probably already running. - Kan ikke låse datamappen %s. ITTRIUM core kører sandsynligvis allerede. + Cannot obtain a lock on data directory %s. Ittrium Core is probably already running. + Kan ikke låse datamappen %s. Ittrium core kører sandsynligvis allerede. Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) @@ -3881,8 +3881,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Slet alle tegnebogens transaktioner og genskab kun fra blokkæden ved at tilføje -rescan i forbindes med opstart. - Disable all ITTRIUM specific functionality (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, default: %u) - Slå alle ITTRIUM funktioner fra (Masternoder, Tilsløring, SwiftTX, Budgetting)(0-1,default:%u) + Disable all Ittrium specific functionality (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, default: %u) + Slå alle Ittrium funktioner fra (Masternoder, Tilsløring, SwiftTX, Budgetting)(0-1,default:%u) Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. @@ -3983,7 +3983,7 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins. - Tilsløring bruger hele det tilslørede designerede beløb til at sende betalinger. De kan blot tilsløre yderligere ITTRIUM + Tilsløring bruger hele det tilslørede designerede beløb til at sende betalinger. De kan blot tilsløre yderligere Ittrium Output debugging information (default: %u, supplying <category> is optional) @@ -3991,7 +3991,7 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Provide liquidity to Obfuscation by infrequently mixing coins on a continual basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, low fees) - Tilfør tilsløring likviditet ved at tilføje flere ITTRIUM løbende (0-100, default:%u, 1=meget hyppigt, høje gebyrer, 100=sjældent, lave gebyrer) + Tilfør tilsløring likviditet ved at tilføje flere Ittrium løbende (0-100, default:%u, 1=meget hyppigt, høje gebyrer, 100=sjældent, lave gebyrer) Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect) @@ -4037,41 +4037,41 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations To use ittriumd, or the -server option to ittrium-qt, you must set an rpcpassword in the configuration file: %s It is recommended you use the following random password: -rpcuser=xitrpc +rpcuser=ittriumrpc rpcpassword=%s (you do not need to remember this password) The username and password MUST NOT be the same. If the file does not exist, create it with owner-readable-only file permissions. It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com +for example: alertnotify=echo %%s | mail -s "Ittrium Alert" admin@foo.com For at bruge ittriumd eller -server muligheden sammen med ittrium-qt skal der angives et rpc kodeord i konfigurationsfilen: %s De anbefales at benytte følgende tilfældige kodeord -Rpcuser=xitrpc +Rpcuser=ittriumrpc rpcpasswrd=%s (Det er ikke nødvendigt at huske dette kodeord) Brugernavn og kodeord MÅ IKKE VÆRE ENS! Hvis filen ikke eksisterer, opret den med sikkerhedsindstillingen - ejer kun læserettigheder tilladelsen. Det anbefales tillige at vælge alertnotify til for at blive orienteret om eventuelle problemer. -For eksempel: alertnotify=Echo %% | mail - s "ITTRIUM ALARM!" e-mail@administrator.dk +For eksempel: alertnotify=Echo %% | mail - s "Ittrium ALARM!" e-mail@administrator.dk - Unable to bind to %s on this computer. ITTRIUM Core is probably already running. - Det var ikke muligt at forbinde %s på denne computer. ITTRIUM kører sandsynligvis allerede. + Unable to bind to %s on this computer. Ittrium Core is probably already running. + Det var ikke muligt at forbinde %s på denne computer. Ittrium kører sandsynligvis allerede. Unable to locate enough Obfuscation denominated funds for this transaction. Det er ikke muligt at allokere tilstrækkeligt med tilsløret designeret indestående for at gennemføre denne transaktion. - Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 XIT. - Det er ikke muligt at allokere tilstrækkeligt med tilsløret ikke-designeret indestående for at gennemføre denne transaktion, der ikke ækvivalerer 10000 XIT. + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 5000 XIT. + Det er ikke muligt at allokere tilstrækkeligt med tilsløret ikke-designeret indestående for at gennemføre denne transaktion, der ikke ækvivalerer 5000 XIT. - Unable to locate enough funds for this transaction that are not equal 10000 XIT. - Det var ikke muligt at allokere tilstrækkelige midler til denne transaktion som er forskellig fra 10000 XIT. + Unable to locate enough funds for this transaction that are not equal 5000 XIT. + Det var ikke muligt at allokere tilstrækkelige midler til denne transaktion som er forskellig fra 5000 XIT. Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) @@ -4086,8 +4086,8 @@ For eksempel: alertnotify=Echo %% | mail - s "ITTRIUM ALARM!" e-mail@administrat Advarsel! -paytxfee er sat meget højt. Det er dette gebyr De kommer til at betale for transaktionen, hvis De gennemfører. - Warning: Please check that your computer's date and time are correct! If your clock is wrong ITTRIUM Core will not work properly. - Advarsel! Kontroller at computerens dato og tid er korrekt indstillet. Hvis tiden ikke er rigtig, vil ITTRIUM core ikke fungere ordentligt. + Warning: Please check that your computer's date and time are correct! If your clock is wrong Ittrium Core will not work properly. + Advarsel! Kontroller at computerens dato og tid er korrekt indstillet. Hvis tiden ikke er rigtig, vil Ittrium core ikke fungere ordentligt. Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. @@ -4118,8 +4118,8 @@ For eksempel: alertnotify=Echo %% | mail - s "ITTRIUM ALARM!" e-mail@administrat Der skal angives en masternodeprivkey i konfigurationen. For mere information, se i dokumentationen. - (39993 could be used only on mainnet) - (39993 kunne kun bruges på hovednettet) + (51472 could be used only on mainnet) + (51472 kunne kun bruges på hovednettet) (default: %s) @@ -4130,8 +4130,8 @@ For eksempel: alertnotify=Echo %% | mail - s "ITTRIUM ALARM!" e-mail@administrat (default: 1) - (must be 39993 for mainnet) - (skal være 39993 for hovednettet) + (must be 51472 for mainnet) + (skal være 51472 for hovednettet) Accept command line and JSON-RPC commands @@ -4234,8 +4234,12 @@ For eksempel: alertnotify=Echo %% | mail - s "ITTRIUM ALARM!" e-mail@administrat Copyright (C) 2014-%i The Dash Core Developers - Copyright (C) 2015-%i The ITTRIUM Core Developers - Copyright (C) 2015-%i The ITTRIUM Core Developers + Copyright (C) 2015-%i The Ittrium Core Developers + Copyright (C) 2015-%i The Ittrium Core Developers + + + Copyright (C) 2017-%i The Ittrium Core Developers + Copyright (C) 2017-%i The Ittrium Core Developers Corrupted block database detected @@ -4306,8 +4310,8 @@ For eksempel: alertnotify=Echo %% | mail - s "ITTRIUM ALARM!" e-mail@administrat Fejl ved indlæsning af wallet.dat: Tegnebogen er beskadiget - Error loading wallet.dat: Wallet requires newer version of ITTRIUM Core - Fejl ved indlæsning af wallet.dat: Tegnebogen kræver en nyere version af ITTRIUM core + Error loading wallet.dat: Wallet requires newer version of Ittrium Core + Fejl ved indlæsning af wallet.dat: Tegnebogen kræver en nyere version af Ittrium core Error opening block database @@ -4418,8 +4422,8 @@ For eksempel: alertnotify=Echo %% | mail - s "ITTRIUM ALARM!" e-mail@administrat Info: - Initialization sanity check failed. ITTRIUM Core is shutting down. - Initiering af sanitetskontrollen fejlede. ITTRIUM core lukker ned. + Initialization sanity check failed. Ittrium Core is shutting down. + Initiering af sanitetskontrollen fejlede. Ittrium core lukker ned. Input is not valid. @@ -4994,8 +4998,8 @@ For eksempel: alertnotify=Echo %% | mail - s "ITTRIUM ALARM!" e-mail@administrat Tegnebogen er låst - Wallet needed to be rewritten: restart ITTRIUM Core to complete - Tegnebogen måtte genskrives. Genstart ITTRIUM core for at gøre færdig + Wallet needed to be rewritten: restart Ittrium Core to complete + Tegnebogen måtte genskrives. Genstart Ittrium core for at gøre færdig Wallet options: @@ -5050,4 +5054,4 @@ For eksempel: alertnotify=Echo %% | mail - s "ITTRIUM ALARM!" e-mail@administrat Tegnebogsfilen wallet.dat er beskadiget. Opbygning mislykkedes. - \ No newline at end of file + diff --git a/src/qt/locale/ittrium_de.ts b/src/qt/locale/ittrium_de.ts index 927b683..177e586 100755 --- a/src/qt/locale/ittrium_de.ts +++ b/src/qt/locale/ittrium_de.ts @@ -43,11 +43,11 @@ Choose the address to send coins to - Wählen Sie die Adresse aus, an die Sie ITTRIUM überweisen möchten + Wählen Sie die Adresse aus, an die Sie Ittrium überweisen möchten Choose the address to receive coins with - Wählen Sie die Adresse aus, über die Sie ITTRIUM empfangen wollen + Wählen Sie die Adresse aus, über die Sie Ittrium empfangen wollen C&hoose @@ -62,12 +62,12 @@ Empfangsadressen - These are your ITTRIUM addresses for sending payments. Always check the amount and the receiving address before sending coins. - Dies sind ihre ITTRIUM-Adressen zum Tätigen von Überweisungen. Bitte prüfen Sie den Betrag und die Empfangsadresse, bevor Sie ITTRIUM überweisen. + These are your Ittrium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Dies sind ihre Ittrium-Adressen zum Tätigen von Überweisungen. Bitte prüfen Sie den Betrag und die Empfangsadresse, bevor Sie Ittrium überweisen. - These are your ITTRIUM addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Dies sind ihre ITTRIUM-Adressen zum Empfangen von Zahlungen. Es wird empfohlen für jede Transaktion eine neue Empfangsadresse zu verwenden. + These are your Ittrium addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Dies sind ihre Ittrium-Adressen zum Empfangen von Zahlungen. Es wird empfohlen für jede Transaktion eine neue Empfangsadresse zu verwenden. &Copy Address @@ -176,7 +176,7 @@ Wallet-Verschlüsselung bestätigen - ITTRIUM will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. + Ittrium will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. Die Anwendungs wird nun geschlossen um die Verschlüsselung abzuschließen. Bitte beachten Sie, dass auch Verschlüsselung nicht nicht vollständig vor Diebstahl ihrer XITs durch Schadsoftware schützt, die ihren Computer befällt. @@ -240,15 +240,15 @@ Enter a Ittrium Address that you would like to encrypt using BIP 38. Enter a passphrase in the middle box. Press encrypt to compute the encrypted private key. - Gib eine ITTRIUM Adresse ein welche mit BIP 38 verschlüsselt werden soll. Gib ein Passwort in die mittleren Box ein. Drücke auf verschlüsseln, um den privaten schlüssel zu errechenen. + Gib eine Ittrium Adresse ein welche mit BIP 38 verschlüsselt werden soll. Gib ein Passwort in die mittleren Box ein. Drücke auf verschlüsseln, um den privaten schlüssel zu errechenen. Address: Adresse: - The ITTRIUM address to sign the message with - ITTRIUM Adresse mit welcher die Nachricht signiert werden soll + The Ittrium address to sign the message with + Ittrium Adresse mit welcher die Nachricht signiert werden soll Choose previously used address @@ -279,8 +279,8 @@ Kopiert die aktuelle Signatur in den Zwischenspeicher - Sign the message to prove you own this ITTRIUM address - Signiere die Nachricht um zu Beweisen, dass du diese ITTRIUM Adresse besitzt + Sign the message to prove you own this Ittrium address + Signiere die Nachricht um zu Beweisen, dass du diese Ittrium Adresse besitzt Encrypt &Key @@ -303,12 +303,12 @@ Geben Sie den BIP 38 verschlüsselten privaten Schlüssel ein. Geben Sie die Passphrase im mittleren Feld ein. Klicken Sie auf Entschlüsselung, um den privaten Schlüssel zu berechnen. Nachdem der Schlüssel entschlüsselt wurde, klicken Sie auf 'Adresse importieren', fügen Sie diesen privaten Schlüssel der Wallet hinzu. - The ITTRIUM address the message was signed with - Die ITTRIUM Adresse mit welcher die Nachricht signiert wurde. + The Ittrium address the message was signed with + Die Ittrium Adresse mit welcher die Nachricht signiert wurde. - Verify the message to ensure it was signed with the specified ITTRIUM address - Überprüfen Sie die Nachricht, um sicherzustellen, dass sie mit der angegebenen ITTRIUM-Adresse signiert wurde. + Verify the message to ensure it was signed with the specified Ittrium address + Überprüfen Sie die Nachricht, um sicherzustellen, dass sie mit der angegebenen Ittrium-Adresse signiert wurde. Decrypt &Key @@ -602,16 +602,16 @@ Registerkartenleiste - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core - Send coins to a ITTRIUM address - An eine ITTRIUM-Adresse überweisen + Send coins to a Ittrium address + An eine Ittrium-Adresse überweisen - Request payments (generates QR codes and xit: URIs) - Zahlung anfordern (QR-Code Generierung und xit: URIs) + Request payments (generates QR codes and ittrium: URIs) + Zahlung anfordern (QR-Code Generierung und ittrium: URIs) &Masternodes @@ -622,24 +622,24 @@ Masternodes durchsuchen - &About ITTRIUM Core - Über.ITTRIUM Core + &About Ittrium Core + Über.Ittrium Core - Show information about ITTRIUM Core - Zeigt Informationen über ITTRIUM Core + Show information about Ittrium Core + Zeigt Informationen über Ittrium Core - Modify configuration options for ITTRIUM - Konfiguration von ITTRIUM verändern + Modify configuration options for Ittrium + Konfiguration von Ittrium verändern - Sign messages with your ITTRIUM addresses to prove you own them - Unterschreibt eine Nachricht mit Ihrer ITTRIUM-Adresse und beweist, dass sie Ihnen gehört + Sign messages with your Ittrium addresses to prove you own them + Unterschreibt eine Nachricht mit Ihrer Ittrium-Adresse und beweist, dass sie Ihnen gehört - Verify messages to ensure they were signed with specified ITTRIUM addresses - Überprüft eine Nachricht um zu prüfen ob diese mit einer bestimmten ITTRIUM-Adresse signiert wurde + Verify messages to ensure they were signed with specified Ittrium addresses + Überprüft eine Nachricht um zu prüfen ob diese mit einer bestimmten Ittrium-Adresse signiert wurde &BIP38 tool @@ -666,8 +666,8 @@ Öffne Masternode Einstellungsdatei - Open a ITTRIUM: URI or payment request - Öffne eine ITTRIUM: URI or Zahlungsanfrage + Open a Ittrium: URI or payment request + Öffne eine Ittrium: URI or Zahlungsanfrage &Blockchain explorer @@ -678,12 +678,12 @@ Blockchain Betrachter Fenster - Show the ITTRIUM Core help message to get a list with possible ITTRIUM command-line options - Zeige die ITTRIUM-Core Hilfe, um mögliche ITTRIUM Kommando-Zeilen-Optionen anzuzeigen + Show the Ittrium Core help message to get a list with possible Ittrium command-line options + Zeige die Ittrium-Core Hilfe, um mögliche Ittrium Kommando-Zeilen-Optionen anzuzeigen - ITTRIUM Core client - ITTRIUM Core Client + Ittrium Core client + Ittrium Core Client Synchronizing with network... @@ -1113,8 +1113,8 @@ Adresse: %4 Zahlungsadresse bearbeiten - The entered address "%1" is not a valid ITTRIUM address. - Die eingegebene Adresse "%1" ist keine gültige ITTRIUM-Adresse. + The entered address "%1" is not a valid Ittrium address. + Die eingegebene Adresse "%1" ist keine gültige Ittrium-Adresse. The entered address "%1" is already in the address book. @@ -1159,16 +1159,16 @@ Adresse: %4 Version - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core (%1-bit) (%1-Bit) - About ITTRIUM Core - Über ITTRIUM Core + About Ittrium Core + Über Ittrium Core Command-line options @@ -1214,16 +1214,16 @@ Adresse: %4 Willkommen - Welcome to ITTRIUM Core. - Willkommen zu ITTRIUM Core. + Welcome to Ittrium Core. + Willkommen zu Ittrium Core. - As this is the first time the program is launched, you can choose where ITTRIUM Core will store its data. - Da dies das erste Mal ist, dass Sie ITTRIUM Core starten, legen Sie jetzt bitte fest, an welchem Ort die Daten gespeichert werden sollen. + As this is the first time the program is launched, you can choose where Ittrium Core will store its data. + Da dies das erste Mal ist, dass Sie Ittrium Core starten, legen Sie jetzt bitte fest, an welchem Ort die Daten gespeichert werden sollen. - ITTRIUM Core will download and store a copy of the ITTRIUM block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - ITTRIUM Core wird die Blockchain laden und lokal speichern. Dafür sind mindestens %1GB freier Speicherplatz erforderlich. Der Speicherbedarf wird mit der Zeit anwachsen. Die Wallet wird ebenfalls in diesem Verzeichnis gespeichert. + Ittrium Core will download and store a copy of the Ittrium block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + Ittrium Core wird die Blockchain laden und lokal speichern. Dafür sind mindestens %1GB freier Speicherplatz erforderlich. Der Speicherbedarf wird mit der Zeit anwachsen. Die Wallet wird ebenfalls in diesem Verzeichnis gespeichert. Use the default data directory @@ -1234,8 +1234,8 @@ Adresse: %4 Ein benutzerdefiniertes Datenverzeichnis verwenden: - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core Error: Specified data directory "%1" cannot be created. @@ -1372,12 +1372,12 @@ Adresse: %4 Zieladresse eingeben - MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other ITTRIUM addresses after it matures. -To Add: enter percentage to give and ITTRIUM address to add to the MultiSend vector. + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other Ittrium addresses after it matures. +To Add: enter percentage to give and Ittrium address to add to the MultiSend vector. To Delete: Enter address to delete and press delete. MultiSend will not be activated unless you have clicked Activate - MultiSend ermöglicht es automatisch bis zu 100% Ihrer Stake- oder Masternode-Belohnung zu einer Liste von anderen ITTRIUM-Adressen zu senden. -Zum hinzufügen: Gebe den Prozentsätze ein, um die ITTRIUM-Adressen des MultiSend-Vektor hinzuzufügen. + MultiSend ermöglicht es automatisch bis zu 100% Ihrer Stake- oder Masternode-Belohnung zu einer Liste von anderen Ittrium-Adressen zu senden. +Zum hinzufügen: Gebe den Prozentsätze ein, um die Ittrium-Adressen des MultiSend-Vektor hinzuzufügen. Zum entfernen: Gebe die zu löschende Adresse ein und drücke löschen. MultiSend wird nicht aktiviert bis Sie auf Aktivieren geklickt haben. @@ -1705,8 +1705,8 @@ MultiSend wird nicht aktiviert bis Sie auf Aktivieren geklickt haben.Betrag - Enter a ITTRIUM address (e.g. %1) - ITTRIUM-Adresse eingeben (z.B. %1) + Enter a Ittrium address (e.g. %1) + Ittrium-Adresse eingeben (z.B. %1) %1 d @@ -2106,8 +2106,8 @@ MultiSend wird nicht aktiviert bis Sie auf Aktivieren geklickt haben.E&mpfänger: - The ITTRIUM address to send the payment to - ITTRIUM-Adresse, an die überwiesen werden soll + The Ittrium address to send the payment to + Ittrium-Adresse, an die überwiesen werden soll Choose previously used address @@ -2146,8 +2146,8 @@ MultiSend wird nicht aktiviert bis Sie auf Aktivieren geklickt haben.Nachricht: - A message that was attached to the ITTRIUM: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the ITTRIUM network. - Eine an die ITTRIUM-URI angefügte Nachricht, die zusammen mit der Transaktion gespeichert wird. Hinweis: Diese Nachricht wird nicht über das ITTRIUM-Netzwerk gesendet. + A message that was attached to the Ittrium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Ittrium network. + Eine an die Ittrium-URI angefügte Nachricht, die zusammen mit der Transaktion gespeichert wird. Hinweis: Diese Nachricht wird nicht über das Ittrium-Netzwerk gesendet. This is an unverified payment request. @@ -2173,8 +2173,8 @@ MultiSend wird nicht aktiviert bis Sie auf Aktivieren geklickt haben. ShutdownWindow - ITTRIUM Core is shutting down... - ITTRIUM Core wird beendet... + Ittrium Core is shutting down... + Ittrium Core wird beendet... Do not shut down the computer until this window disappears. @@ -2188,8 +2188,8 @@ MultiSend wird nicht aktiviert bis Sie auf Aktivieren geklickt haben.Nachricht &signieren - The ITTRIUM address to sign the message with - ITTRIUM Adresse mit welcher die Nachricht signiert werden soll + The Ittrium address to sign the message with + Ittrium Adresse mit welcher die Nachricht signiert werden soll Choose previously used address @@ -2216,16 +2216,16 @@ MultiSend wird nicht aktiviert bis Sie auf Aktivieren geklickt haben.Kopiert die aktuelle Signatur in den Zwischenspeicher - Sign the message to prove you own this ITTRIUM address - Signiere die Nachricht um zu Beweisen, dass du diese ITTRIUM Adresse besitzt + Sign the message to prove you own this Ittrium address + Signiere die Nachricht um zu Beweisen, dass du diese Ittrium Adresse besitzt - The ITTRIUM address the message was signed with - Die ITTRIUM Adresse mit welcher die Nachricht signiert wurde. + The Ittrium address the message was signed with + Die Ittrium Adresse mit welcher die Nachricht signiert wurde. - Verify the message to ensure it was signed with the specified ITTRIUM address - Überprüfen Sie die Nachricht, um sicherzustellen, dass sie mit der angegebenen ITTRIUM-Adresse signiert wurde. + Verify the message to ensure it was signed with the specified Ittrium address + Überprüfen Sie die Nachricht, um sicherzustellen, dass sie mit der angegebenen Ittrium-Adresse signiert wurde. Reset all sign message fields @@ -2263,8 +2263,8 @@ MultiSend wird nicht aktiviert bis Sie auf Aktivieren geklickt haben. SplashScreen - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core Version %1 @@ -2279,8 +2279,8 @@ MultiSend wird nicht aktiviert bis Sie auf Aktivieren geklickt haben.Die Dash Core Entwickler - The ITTRIUM Core developers - Die ITTRIUM Core Entwickler + The Ittrium Core developers + Die Ittrium Core Entwickler [testnet] @@ -2997,8 +2997,8 @@ MultiSend wird nicht aktiviert bis Sie auf Aktivieren geklickt haben.Wallet gesperrt. - Wallet needed to be rewritten: restart ITTRIUM Core to complete - Wallet musste neu geschrieben werden: Bitte ITTRIUM Core neu starten + Wallet needed to be rewritten: restart Ittrium Core to complete + Wallet musste neu geschrieben werden: Bitte Ittrium Core neu starten Wallet options: diff --git a/src/qt/locale/ittrium_en.ts b/src/qt/locale/ittrium_en.ts index 2f06346..a124bac 100755 --- a/src/qt/locale/ittrium_en.ts +++ b/src/qt/locale/ittrium_en.ts @@ -80,12 +80,12 @@ - These are your ITTRIUM addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Ittrium addresses for sending payments. Always check the amount and the receiving address before sending coins. - These are your ITTRIUM addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + These are your Ittrium addresses for receiving payments. It is recommended to use a new receiving address for each transaction. @@ -221,7 +221,7 @@ - ITTRIUM will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. + Ittrium will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. @@ -318,7 +318,7 @@ - The ITTRIUM address to sign the message with + The Ittrium address to sign the message with @@ -360,7 +360,7 @@ - Sign the message to prove you own this ITTRIUM address + Sign the message to prove you own this Ittrium address @@ -391,12 +391,12 @@ - The ITTRIUM address the message was signed with + The Ittrium address the message was signed with - Verify the message to ensure it was signed with the specified ITTRIUM address + Verify the message to ensure it was signed with the specified Ittrium address @@ -771,17 +771,17 @@ - ITTRIUM Core + Ittrium Core - Send coins to a ITTRIUM address + Send coins to a Ittrium address - Request payments (generates QR codes and xit: URIs) + Request payments (generates QR codes and ittrium: URIs) @@ -796,27 +796,27 @@ - &About ITTRIUM Core + &About Ittrium Core - Show information about ITTRIUM Core + Show information about Ittrium Core - Modify configuration options for ITTRIUM + Modify configuration options for Ittrium - Sign messages with your ITTRIUM addresses to prove you own them + Sign messages with your Ittrium addresses to prove you own them - Verify messages to ensure they were signed with specified ITTRIUM addresses + Verify messages to ensure they were signed with specified Ittrium addresses @@ -856,7 +856,7 @@ - Open a ITTRIUM: URI or payment request + Open a Ittrium: URI or payment request @@ -871,17 +871,17 @@ - Show the ITTRIUM Core help message to get a list with possible ITTRIUM command-line options + Show the Ittrium Core help message to get a list with possible Ittrium command-line options - ITTRIUM Core client + Ittrium Core client - %n active connection(s) to ITTRIUM network + %n active connection(s) to Ittrium network @@ -1456,7 +1456,7 @@ Address: %4 - The entered address "%1" is not a valid ITTRIUM address. + The entered address "%1" is not a valid Ittrium address. @@ -1512,7 +1512,7 @@ Address: %4 - ITTRIUM Core + Ittrium Core @@ -1523,7 +1523,7 @@ Address: %4 - About ITTRIUM Core + About Ittrium Core @@ -1581,17 +1581,17 @@ Address: %4 - Welcome to ITTRIUM Core. + Welcome to Ittrium Core. - As this is the first time the program is launched, you can choose where ITTRIUM Core will store its data. + As this is the first time the program is launched, you can choose where Ittrium Core will store its data. - ITTRIUM Core will download and store a copy of the ITTRIUM block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + Ittrium Core will download and store a copy of the Ittrium block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. @@ -1606,7 +1606,7 @@ Address: %4 - ITTRIUM Core + Ittrium Core @@ -1782,8 +1782,8 @@ Address: %4 - MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other ITTRIUM addresses after it matures. -To Add: enter percentage to give and ITTRIUM address to add to the MultiSend vector. + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other Ittrium addresses after it matures. +To Add: enter percentage to give and Ittrium address to add to the MultiSend vector. To Delete: Enter address to delete and press delete. MultiSend will not be activated unless you have clicked Activate @@ -1948,12 +1948,12 @@ Please check the address and try again. - Use 2 separate masternodes to mix funds up to 10000 XIT + Use 2 separate masternodes to mix funds up to 5000 XIT - Use 8 separate masternodes to mix funds up to 10000 XIT + Use 8 separate masternodes to mix funds up to 5000 XIT @@ -1963,12 +1963,12 @@ Please check the address and try again. - This option is the quickest and will cost about ~0.025 XIT to anonymize 10000 XIT + This option is the quickest and will cost about ~0.025 XIT to anonymize 5000 XIT - This option is moderately fast and will cost about 0.05 XIT to anonymize 10000 XIT + This option is moderately fast and will cost about 0.05 XIT to anonymize 5000 XIT @@ -1978,7 +1978,7 @@ Please check the address and try again. - 0.1 XIT per 10000 XIT you anonymize. + 0.1 XIT per 5000 XIT you anonymize. @@ -1990,17 +1990,17 @@ Please check the address and try again. - Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening ITTRIUM's configuration screen. + Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Ittrium's configuration screen. - Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening ITTRIUM's configuration screen. + Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Ittrium's configuration screen. - Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening ITTRIUM's configuration screen. + Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Ittrium's configuration screen. @@ -2076,7 +2076,7 @@ Please check the address and try again. - Automatically open the ITTRIUM client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Ittrium client port on the router. This only works when your router supports UPnP and it is enabled. @@ -2101,12 +2101,12 @@ Please check the address and try again. - Automatically start ITTRIUM after logging in to the system. + Automatically start Ittrium after logging in to the system. - &Start ITTRIUM on system login + &Start Ittrium on system login @@ -2126,7 +2126,7 @@ Please check the address and try again. - Amount of ITTRIUM to keep anonymized + Amount of Ittrium to keep anonymized @@ -2161,13 +2161,13 @@ Please check the address and try again. - The user interface language can be set here. This setting will take effect after restarting ITTRIUM. + The user interface language can be set here. This setting will take effect after restarting Ittrium. Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/IttriumCore/IttriumCore-translations +https://www.transifex.com/ittrium-project/ittrium-project-translations @@ -2177,7 +2177,7 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations - Connect to the ITTRIUM network through a SOCKS5 proxy. + Connect to the Ittrium network through a SOCKS5 proxy. @@ -2374,7 +2374,7 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations - The displayed information may be out of date. Your wallet automatically synchronizes with the ITTRIUM network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Ittrium network after a connection is established, but this process has not completed yet. @@ -2661,12 +2661,12 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations - Cannot start xit: click-to-pay handler + Cannot start ittrium: click-to-pay handler - URI cannot be parsed! This can be caused by an invalid ITTRIUM address or malformed URI parameters. + URI cannot be parsed! This can be caused by an invalid Ittrium address or malformed URI parameters. @@ -2774,7 +2774,7 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations - Enter a ITTRIUM address (e.g. %1) + Enter a Ittrium address (e.g. %1) @@ -2969,7 +2969,7 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations - Open the ITTRIUM debug log file from the current data directory. This can take a few seconds for large log files. + Open the Ittrium debug log file from the current data directory. This can take a few seconds for large log files. @@ -3181,7 +3181,7 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations - Welcome to the ITTRIUM RPC console. + Welcome to the Ittrium RPC console. @@ -3272,12 +3272,12 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the ITTRIUM network. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Ittrium network. - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the ITTRIUM network. + An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Ittrium network. @@ -3641,7 +3641,7 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for ITTRIUM transactions than the network can process. + Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for Ittrium transactions than the network can process. @@ -3774,7 +3774,7 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations - Warning: Invalid ITTRIUM address + Warning: Invalid Ittrium address @@ -3918,7 +3918,7 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations - The ITTRIUM address to send the payment to + The Ittrium address to send the payment to @@ -3972,7 +3972,7 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations - A message that was attached to the ITTRIUM: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the ITTRIUM network. + A message that was attached to the Ittrium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Ittrium network. @@ -4007,7 +4007,7 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations ShutdownWindow - ITTRIUM Core is shutting down... + Ittrium Core is shutting down... @@ -4035,7 +4035,7 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations - The ITTRIUM address to sign the message with + The Ittrium address to sign the message with @@ -4077,17 +4077,17 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations - Sign the message to prove you own this ITTRIUM address + Sign the message to prove you own this Ittrium address - The ITTRIUM address the message was signed with + The Ittrium address the message was signed with - Verify the message to ensure it was signed with the specified ITTRIUM address + Verify the message to ensure it was signed with the specified Ittrium address @@ -4202,7 +4202,7 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations SplashScreen - ITTRIUM Core + Ittrium Core @@ -4222,7 +4222,7 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations - The ITTRIUM Core developers + The Ittrium Core developers @@ -4990,7 +4990,7 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations ittrium-core - + (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) (1 = keep tx meta data e.g. account owner and payment request information, 2 = drop tx meta data) @@ -5021,7 +5021,7 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations - Cannot obtain a lock on data directory %s. ITTRIUM Core is probably already running. + Cannot obtain a lock on data directory %s. Ittrium Core is probably already running. @@ -5046,7 +5046,7 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations - Disable all ITTRIUM specific functionality (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, default: %u) + Disable all Ittrium specific functionality (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, default: %u) @@ -5239,19 +5239,19 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations To use ittriumd, or the -server option to ittrium-qt, you must set an rpcpassword in the configuration file: %s It is recommended you use the following random password: -rpcuser=xitrpc +rpcuser=ittriumrpc rpcpassword=%s (you do not need to remember this password) The username and password MUST NOT be the same. If the file does not exist, create it with owner-readable-only file permissions. It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com +for example: alertnotify=echo %%s | mail -s "Ittrium Alert" admin@foo.com - Unable to bind to %s on this computer. ITTRIUM Core is probably already running. + Unable to bind to %s on this computer. Ittrium Core is probably already running. @@ -5261,12 +5261,12 @@ for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo. - Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 XIT. + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 5000 XIT. - Unable to locate enough funds for this transaction that are not equal 10000 XIT. + Unable to locate enough funds for this transaction that are not equal 5000 XIT. @@ -5286,7 +5286,7 @@ for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo. - Warning: Please check that your computer's date and time are correct! If your clock is wrong ITTRIUM Core will not work properly. + Warning: Please check that your computer's date and time are correct! If your clock is wrong Ittrium Core will not work properly. @@ -5326,8 +5326,8 @@ for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo. - (39993 could be used only on mainnet) - (39993 could be used only on mainnet) + (51472 could be used only on mainnet) + (51472 could be used only on mainnet) @@ -5341,7 +5341,7 @@ for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo. - (must be 39993 for mainnet) + (must be 51472 for mainnet) @@ -5471,7 +5471,12 @@ for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo. - Copyright (C) 2015-%i The ITTRIUM Core Developers + Copyright (C) 2015-%i The Ittrium Core Developers + + + + + Copyright (C) 2017-%i The Ittrium Core Developers @@ -5561,7 +5566,7 @@ for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo. - Error loading wallet.dat: Wallet requires newer version of ITTRIUM Core + Error loading wallet.dat: Wallet requires newer version of Ittrium Core @@ -5701,7 +5706,7 @@ for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo. - Initialization sanity check failed. ITTRIUM Core is shutting down. + Initialization sanity check failed. Ittrium Core is shutting down. @@ -6476,7 +6481,7 @@ for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo. - Wallet needed to be rewritten: restart ITTRIUM Core to complete + Wallet needed to be rewritten: restart Ittrium Core to complete diff --git a/src/qt/locale/ittrium_en_US.ts b/src/qt/locale/ittrium_en_US.ts index 1aeae56..d016414 100755 --- a/src/qt/locale/ittrium_en_US.ts +++ b/src/qt/locale/ittrium_en_US.ts @@ -62,12 +62,12 @@ Receiving addresses - These are your ITTRIUM addresses for sending payments. Always check the amount and the receiving address before sending coins. - These are your ITTRIUM addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Ittrium addresses for sending payments. Always check the amount and the receiving address before sending coins. + These are your Ittrium addresses for sending payments. Always check the amount and the receiving address before sending coins. - These are your ITTRIUM addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - These are your ITTRIUM addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + These are your Ittrium addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + These are your Ittrium addresses for receiving payments. It is recommended to use a new receiving address for each transaction. &Copy Address @@ -176,8 +176,8 @@ Confirm wallet encryption - ITTRIUM will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. - ITTRIUM will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. + Ittrium will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. + Ittrium will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. Are you sure you wish to encrypt your wallet? @@ -247,8 +247,8 @@ Address: - The ITTRIUM address to sign the message with - The ITTRIUM address to sign the message with + The Ittrium address to sign the message with + The Ittrium address to sign the message with Choose previously used address @@ -279,8 +279,8 @@ Copy the current signature to the system clipboard - Sign the message to prove you own this ITTRIUM address - Sign the message to prove you own this ITTRIUM address + Sign the message to prove you own this Ittrium address + Sign the message to prove you own this Ittrium address Encrypt &Key @@ -303,12 +303,12 @@ Enter the BIP 38 encrypted private key. Enter the passphrase in the middle box. Click Decrypt Key to compute the private key. After the key is decrypted, clicking 'Import Address' will add this private key to the wallet. - The ITTRIUM address the message was signed with - The ITTRIUM address the message was signed with + The Ittrium address the message was signed with + The Ittrium address the message was signed with - Verify the message to ensure it was signed with the specified ITTRIUM address - Verify the message to ensure it was signed with the specified ITTRIUM address + Verify the message to ensure it was signed with the specified Ittrium address + Verify the message to ensure it was signed with the specified Ittrium address Decrypt &Key @@ -602,16 +602,16 @@ Tabs toolbar - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core - Send coins to a ITTRIUM address - Send coins to a ITTRIUM address + Send coins to a Ittrium address + Send coins to a Ittrium address - Request payments (generates QR codes and xit: URIs) - Request payments (generates QR codes and xit: URIs) + Request payments (generates QR codes and ittrium: URIs) + Request payments (generates QR codes and ittrium: URIs) &Masternodes @@ -622,24 +622,24 @@ Browse masternodes - &About ITTRIUM Core - &About ITTRIUM Core + &About Ittrium Core + &About Ittrium Core - Show information about ITTRIUM Core - Show information about ITTRIUM Core + Show information about Ittrium Core + Show information about Ittrium Core - Modify configuration options for ITTRIUM - Modify configuration options for ITTRIUM + Modify configuration options for Ittrium + Modify configuration options for Ittrium - Sign messages with your ITTRIUM addresses to prove you own them - Sign messages with your ITTRIUM addresses to prove you own them + Sign messages with your Ittrium addresses to prove you own them + Sign messages with your Ittrium addresses to prove you own them - Verify messages to ensure they were signed with specified ITTRIUM addresses - Verify messages to ensure they were signed with specified ITTRIUM addresses + Verify messages to ensure they were signed with specified Ittrium addresses + Verify messages to ensure they were signed with specified Ittrium addresses &BIP38 tool @@ -670,8 +670,8 @@ Open Masternode configuration file - Open a ITTRIUM: URI or payment request - Open a ITTRIUM: URI or payment request + Open a Ittrium: URI or payment request + Open a Ittrium: URI or payment request &Blockchain explorer @@ -682,16 +682,16 @@ Block explorer window - Show the ITTRIUM Core help message to get a list with possible ITTRIUM command-line options - Show the ITTRIUM Core help message to get a list with possible ITTRIUM command-line options + Show the Ittrium Core help message to get a list with possible Ittrium command-line options + Show the Ittrium Core help message to get a list with possible Ittrium command-line options - ITTRIUM Core client - ITTRIUM Core client + Ittrium Core client + Ittrium Core client - %n active connection(s) to ITTRIUM network - %n active connection(s) to ITTRIUM network%n active connection(s) to ITTRIUM network + %n active connection(s) to Ittrium network + %n active connection(s) to Ittrium network%n active connection(s) to Ittrium network Synchronizing with network... @@ -1138,8 +1138,8 @@ Address: %4 Edit sending address - The entered address "%1" is not a valid ITTRIUM address. - The entered address "%1" is not a valid ITTRIUM address. + The entered address "%1" is not a valid Ittrium address. + The entered address "%1" is not a valid Ittrium address. The entered address "%1" is already in the address book. @@ -1184,16 +1184,16 @@ Address: %4 version - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core (%1-bit) (%1-bit) - About ITTRIUM Core - About ITTRIUM Core + About Ittrium Core + About Ittrium Core Command-line options @@ -1239,16 +1239,16 @@ Address: %4 Welcome - Welcome to ITTRIUM Core. - Welcome to ITTRIUM Core. + Welcome to Ittrium Core. + Welcome to Ittrium Core. - As this is the first time the program is launched, you can choose where ITTRIUM Core will store its data. - As this is the first time the program is launched, you can choose where ITTRIUM Core will store its data. + As this is the first time the program is launched, you can choose where Ittrium Core will store its data. + As this is the first time the program is launched, you can choose where Ittrium Core will store its data. - ITTRIUM Core will download and store a copy of the ITTRIUM block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - ITTRIUM Core will download and store a copy of the ITTRIUM block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + Ittrium Core will download and store a copy of the Ittrium block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + Ittrium Core will download and store a copy of the Ittrium block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. Use the default data directory @@ -1259,8 +1259,8 @@ Address: %4 Use a custom data directory: - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core Error: Specified data directory "%1" cannot be created. @@ -1401,12 +1401,12 @@ Address: %4 Enter Address to Send to - MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other ITTRIUM addresses after it matures. -To Add: enter percentage to give and ITTRIUM address to add to the MultiSend vector. + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other Ittrium addresses after it matures. +To Add: enter percentage to give and Ittrium address to add to the MultiSend vector. To Delete: Enter address to delete and press delete. MultiSend will not be activated unless you have clicked Activate - MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other ITTRIUM addresses after it matures. -To Add: enter percentage to give and ITTRIUM address to add to the MultiSend vector. + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other Ittrium addresses after it matures. +To Add: enter percentage to give and Ittrium address to add to the MultiSend vector. To Delete: Enter address to delete and press delete. MultiSend will not be activated unless you have clicked Activate @@ -1544,48 +1544,48 @@ Please check the address and try again. Please select a privacy level. - Use 2 separate masternodes to mix funds up to 10000 XIT - Use 2 separate masternodes to mix funds up to 10000 XIT + Use 2 separate masternodes to mix funds up to 5000 XIT + Use 2 separate masternodes to mix funds up to 5000 XIT - Use 8 separate masternodes to mix funds up to 10000 XIT - Use 8 separate masternodes to mix funds up to 10000 XIT + Use 8 separate masternodes to mix funds up to 5000 XIT + Use 8 separate masternodes to mix funds up to 5000 XIT Use 16 separate masternodes Use 16 separate masternodes - This option is the quickest and will cost about ~0.025 XIT to anonymize 10000 XIT - This option is the quickest and will cost about ~0.025 XIT to anonymize 10000 XIT + This option is the quickest and will cost about ~0.025 XIT to anonymize 5000 XIT + This option is the quickest and will cost about ~0.025 XIT to anonymize 5000 XIT - This option is moderately fast and will cost about 0.05 XIT to anonymize 10000 XIT - This option is moderately fast and will cost about 0.05 XIT to anonymize 10000 XIT + This option is moderately fast and will cost about 0.05 XIT to anonymize 5000 XIT + This option is moderately fast and will cost about 0.05 XIT to anonymize 5000 XIT This is the slowest and most secure option. Using maximum anonymity will cost This is the slowest and most secure option. Using maximum anonymity will cost - 0.1 XIT per 10000 XIT you anonymize. - 0.1 XIT per 10000 XIT you anonymize. + 0.1 XIT per 5000 XIT you anonymize. + 0.1 XIT per 5000 XIT you anonymize. Obfuscation Configuration Obfuscation Configuration - Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening ITTRIUM's configuration screen. - Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening ITTRIUM's configuration screen. + Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Ittrium's configuration screen. + Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Ittrium's configuration screen. - Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening ITTRIUM's configuration screen. - Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening ITTRIUM's configuration screen. + Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Ittrium's configuration screen. + Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Ittrium's configuration screen. - Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening ITTRIUM's configuration screen. - Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening ITTRIUM's configuration screen. + Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Ittrium's configuration screen. + Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Ittrium's configuration screen. @@ -1646,8 +1646,8 @@ Please check the address and try again. If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed. - Automatically open the ITTRIUM client port on the router. This only works when your router supports UPnP and it is enabled. - Automatically open the ITTRIUM client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Ittrium client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the Ittrium client port on the router. This only works when your router supports UPnP and it is enabled. Accept connections from outside @@ -1666,12 +1666,12 @@ Please check the address and try again. Expert - Automatically start ITTRIUM after logging in to the system. - Automatically start ITTRIUM after logging in to the system. + Automatically start Ittrium after logging in to the system. + Automatically start Ittrium after logging in to the system. - &Start ITTRIUM on system login - &Start ITTRIUM on system login + &Start Ittrium on system login + &Start Ittrium on system login This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees. @@ -1686,8 +1686,8 @@ Please check the address and try again. This amount acts as a threshold to turn off Obfuscation once it's reached. - Amount of ITTRIUM to keep anonymized - Amount of ITTRIUM to keep anonymized + Amount of Ittrium to keep anonymized + Amount of Ittrium to keep anonymized Whether to show coin control features or not. @@ -1714,22 +1714,22 @@ Please check the address and try again. &Network - The user interface language can be set here. This setting will take effect after restarting ITTRIUM. - The user interface language can be set here. This setting will take effect after restarting ITTRIUM. + The user interface language can be set here. This setting will take effect after restarting Ittrium. + The user interface language can be set here. This setting will take effect after restarting Ittrium. Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/IttriumCore/IttriumCore-translations +https://www.transifex.com/ittrium-project/ittrium-project-translations Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/IttriumCore/IttriumCore-translations +https://www.transifex.com/ittrium-project/ittrium-project-translations Map port using &UPnP Map port using &UPnP - Connect to the ITTRIUM network through a SOCKS5 proxy. - Connect to the ITTRIUM network through a SOCKS5 proxy. + Connect to the Ittrium network through a SOCKS5 proxy. + Connect to the Ittrium network through a SOCKS5 proxy. Proxy &IP: @@ -1883,8 +1883,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Balances - The displayed information may be out of date. Your wallet automatically synchronizes with the ITTRIUM network after a connection is established, but this process has not completed yet. - The displayed information may be out of date. Your wallet automatically synchronizes with the ITTRIUM network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Ittrium network after a connection is established, but this process has not completed yet. + The displayed information may be out of date. Your wallet automatically synchronizes with the Ittrium network after a connection is established, but this process has not completed yet. Unconfirmed transactions to watch-only addresses @@ -2092,12 +2092,12 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Invalid payment address %1 - Cannot start xit: click-to-pay handler - Cannot start xit: click-to-pay handler + Cannot start ittrium: click-to-pay handler + Cannot start ittrium: click-to-pay handler - URI cannot be parsed! This can be caused by an invalid ITTRIUM address or malformed URI parameters. - URI cannot be parsed! This can be caused by an invalid ITTRIUM address or malformed URI parameters. + URI cannot be parsed! This can be caused by an invalid Ittrium address or malformed URI parameters. + URI cannot be parsed! This can be caused by an invalid Ittrium address or malformed URI parameters. Payment request file cannot be read! This can be caused by an invalid payment request file. @@ -2182,8 +2182,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Amount - Enter a ITTRIUM address (e.g. %1) - Enter a ITTRIUM address (e.g. %1) + Enter a Ittrium address (e.g. %1) + Enter a Ittrium address (e.g. %1) %1 d @@ -2316,8 +2316,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Block chain - Open the ITTRIUM debug log file from the current data directory. This can take a few seconds for large log files. - Open the ITTRIUM debug log file from the current data directory. This can take a few seconds for large log files. + Open the Ittrium debug log file from the current data directory. This can take a few seconds for large log files. + Open the Ittrium debug log file from the current data directory. This can take a few seconds for large log files. Number of Masternodes @@ -2484,8 +2484,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Out: - Welcome to the ITTRIUM RPC console. - Welcome to the ITTRIUM RPC console. + Welcome to the Ittrium RPC console. + Welcome to the Ittrium RPC console. Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. @@ -2555,12 +2555,12 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations An optional label to associate with the new receiving address. - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the ITTRIUM network. - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the ITTRIUM network. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Ittrium network. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Ittrium network. - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the ITTRIUM network. - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the ITTRIUM network. + An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Ittrium network. + An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Ittrium network. Use this form to request payments. All fields are <b>optional</b>. @@ -2848,8 +2848,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations If the custom fee is set to 1000 uXITs and the transaction is only 250 bytes, then "per kilobyte" only pays 250 uXITs in fee,<br />while "total at least" pays 1000 uXITs. For transactions bigger than a kilobyte both pay by kilobyte. - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for ITTRIUM transactions than the network can process. - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for ITTRIUM transactions than the network can process. + Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for Ittrium transactions than the network can process. + Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for Ittrium transactions than the network can process. normal @@ -2952,8 +2952,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations anonymous funds - Warning: Invalid ITTRIUM address - Warning: Invalid ITTRIUM address + Warning: Invalid Ittrium address + Warning: Invalid Ittrium address any available funds (not recommended) @@ -3059,8 +3059,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Pay &To: - The ITTRIUM address to send the payment to - The ITTRIUM address to send the payment to + The Ittrium address to send the payment to + The Ittrium address to send the payment to Choose previously used address @@ -3099,8 +3099,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Message: - A message that was attached to the ITTRIUM: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the ITTRIUM network. - A message that was attached to the ITTRIUM: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the ITTRIUM network. + A message that was attached to the Ittrium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Ittrium network. + A message that was attached to the Ittrium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Ittrium network. This is an unverified payment request. @@ -3126,8 +3126,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations ShutdownWindow - ITTRIUM Core is shutting down... - ITTRIUM Core is shutting down... + Ittrium Core is shutting down... + Ittrium Core is shutting down... Do not shut down the computer until this window disappears. @@ -3149,8 +3149,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - The ITTRIUM address to sign the message with - The ITTRIUM address to sign the message with + The Ittrium address to sign the message with + The Ittrium address to sign the message with Choose previously used address @@ -3181,16 +3181,16 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Copy the current signature to the system clipboard - Sign the message to prove you own this ITTRIUM address - Sign the message to prove you own this ITTRIUM address + Sign the message to prove you own this Ittrium address + Sign the message to prove you own this Ittrium address - The ITTRIUM address the message was signed with - The ITTRIUM address the message was signed with + The Ittrium address the message was signed with + The Ittrium address the message was signed with - Verify the message to ensure it was signed with the specified ITTRIUM address - Verify the message to ensure it was signed with the specified ITTRIUM address + Verify the message to ensure it was signed with the specified Ittrium address + Verify the message to ensure it was signed with the specified Ittrium address Sign &Message @@ -3276,8 +3276,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations SplashScreen - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core Version %1 @@ -3292,8 +3292,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations The Dash Core developers - The ITTRIUM Core developers - The ITTRIUM Core developers + The Ittrium Core developers + The Ittrium Core developers [testnet] @@ -3910,8 +3910,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Bind to given address to listen for JSON-RPC connections. Use [host]:port notation for IPv6. This option can be specified multiple times (default: bind to all interfaces) - Cannot obtain a lock on data directory %s. ITTRIUM Core is probably already running. - Cannot obtain a lock on data directory %s. ITTRIUM Core is probably already running. + Cannot obtain a lock on data directory %s. Ittrium Core is probably already running. + Cannot obtain a lock on data directory %s. Ittrium Core is probably already running. Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) @@ -3930,8 +3930,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Delete all wallet transactions and only recover those parts of the blockchain through -rescan on startup - Disable all ITTRIUM specific functionality (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, default: %u) - Disable all ITTRIUM specific functionality (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, default: %u) + Disable all Ittrium specific functionality (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, default: %u) + Disable all Ittrium specific functionality (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, default: %u) Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. @@ -4085,41 +4085,41 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations To use ittriumd, or the -server option to ittrium-qt, you must set an rpcpassword in the configuration file: %s It is recommended you use the following random password: -rpcuser=xitrpc +rpcuser=ittriumrpc rpcpassword=%s (you do not need to remember this password) The username and password MUST NOT be the same. If the file does not exist, create it with owner-readable-only file permissions. It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com +for example: alertnotify=echo %%s | mail -s "Ittrium Alert" admin@foo.com To use ittriumd, or the -server option to ittrium-qt, you must set an rpcpassword in the configuration file: %s It is recommended you use the following random password: -rpcuser=xitrpc +rpcuser=ittriumrpc rpcpassword=%s (you do not need to remember this password) The username and password MUST NOT be the same. If the file does not exist, create it with owner-readable-only file permissions. It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com +for example: alertnotify=echo %%s | mail -s "Ittrium Alert" admin@foo.com - Unable to bind to %s on this computer. ITTRIUM Core is probably already running. - Unable to bind to %s on this computer. ITTRIUM Core is probably already running. + Unable to bind to %s on this computer. Ittrium Core is probably already running. + Unable to bind to %s on this computer. Ittrium Core is probably already running. Unable to locate enough Obfuscation denominated funds for this transaction. Unable to locate enough Obfuscation denominated funds for this transaction. - Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 XIT. - Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 XIT. + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 5000 XIT. + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 5000 XIT. - Unable to locate enough funds for this transaction that are not equal 10000 XIT. - Unable to locate enough funds for this transaction that are not equal 10000 XIT. + Unable to locate enough funds for this transaction that are not equal 5000 XIT. + Unable to locate enough funds for this transaction that are not equal 5000 XIT. Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) @@ -4134,8 +4134,8 @@ for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction. - Warning: Please check that your computer's date and time are correct! If your clock is wrong ITTRIUM Core will not work properly. - Warning: Please check that your computer's date and time are correct! If your clock is wrong ITTRIUM Core will not work properly. + Warning: Please check that your computer's date and time are correct! If your clock is wrong Ittrium Core will not work properly. + Warning: Please check that your computer's date and time are correct! If your clock is wrong Ittrium Core will not work properly. Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. @@ -4166,8 +4166,8 @@ for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com You must specify a masternodeprivkey in the configuration. Please see documentation for help. - (39993 could be used only on mainnet) - (39993 could be used only on mainnet) + (51472 could be used only on mainnet) + (51472 could be used only on mainnet) (default: %s) @@ -4178,8 +4178,8 @@ for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com (default: 1) - (must be 39993 for mainnet) - (must be 39993 for mainnet) + (must be 51472 for mainnet) + (must be 51472 for mainnet) Accept command line and JSON-RPC commands @@ -4282,8 +4282,12 @@ for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com Copyright (C) 2014-%i The Dash Core Developers - Copyright (C) 2015-%i The ITTRIUM Core Developers - Copyright (C) 2015-%i The ITTRIUM Core Developers + Copyright (C) 2015-%i The Ittrium Core Developers + Copyright (C) 2015-%i The Ittrium Core Developers + + + Copyright (C) 2017-%i The Ittrium Core Developers + Copyright (C) 2017-%i The Ittrium Core Developers Corrupted block database detected @@ -4354,8 +4358,8 @@ for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com Error loading wallet.dat: Wallet corrupted - Error loading wallet.dat: Wallet requires newer version of ITTRIUM Core - Error loading wallet.dat: Wallet requires newer version of ITTRIUM Core + Error loading wallet.dat: Wallet requires newer version of Ittrium Core + Error loading wallet.dat: Wallet requires newer version of Ittrium Core Error opening block database @@ -4466,8 +4470,8 @@ for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com Information - Initialization sanity check failed. ITTRIUM Core is shutting down. - Initialization sanity check failed. ITTRIUM Core is shutting down. + Initialization sanity check failed. Ittrium Core is shutting down. + Initialization sanity check failed. Ittrium Core is shutting down. Input is not valid. @@ -5086,8 +5090,8 @@ for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com Wallet is locked. - Wallet needed to be rewritten: restart ITTRIUM Core to complete - Wallet needed to be rewritten: restart ITTRIUM Core to complete + Wallet needed to be rewritten: restart Ittrium Core to complete + Wallet needed to be rewritten: restart Ittrium Core to complete Wallet options: @@ -5146,4 +5150,4 @@ for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com wallet.dat corrupt, salvage failed - \ No newline at end of file + diff --git a/src/qt/locale/ittrium_es.ts b/src/qt/locale/ittrium_es.ts index 8b7319c..8f4701a 100755 --- a/src/qt/locale/ittrium_es.ts +++ b/src/qt/locale/ittrium_es.ts @@ -62,12 +62,12 @@ Recibiendo direcciones - These are your ITTRIUM addresses for sending payments. Always check the amount and the receiving address before sending coins. - Estas son sus direcciones ITTRIUM para realizar pagos. Siempre verifique la cantidad y la dirección de recepción antes de enviar monedas. + These are your Ittrium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Estas son sus direcciones Ittrium para realizar pagos. Siempre verifique la cantidad y la dirección de recepción antes de enviar monedas. - These are your ITTRIUM addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Estas son sus direcciones ITTRIUM para recibir pagos. Es recomendable usar una nueva dirección de recepción para cada transacción. + These are your Ittrium addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Estas son sus direcciones Ittrium para recibir pagos. Es recomendable usar una nueva dirección de recepción para cada transacción. &Copy Address @@ -176,8 +176,8 @@ Confirmar la encriptación de la Wallet - ITTRIUM will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. - ITTRIUM se cerrará ahora para finalizar el proceso de encriptación. Recuerde que encriptar su Wallet no previene completamente que tus XITs sean robados mediante malware infectando su ordenador. + Ittrium will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. + Ittrium se cerrará ahora para finalizar el proceso de encriptación. Recuerde que encriptar su Wallet no previene completamente que tus XITs sean robados mediante malware infectando su ordenador. Are you sure you wish to encrypt your wallet? @@ -240,15 +240,15 @@ Enter a Ittrium Address that you would like to encrypt using BIP 38. Enter a passphrase in the middle box. Press encrypt to compute the encrypted private key. - Introduzca la dirección ITTRIUM que querría encriptar usando BIP 38. Introduzca una contraseña en la caja central. Clickee en encriptar para computar la clave privada encriptada. + Introduzca la dirección Ittrium que querría encriptar usando BIP 38. Introduzca una contraseña en la caja central. Clickee en encriptar para computar la clave privada encriptada. Address: Dirección: - The ITTRIUM address to sign the message with - La dirección ITTRIUM con la que firmar el mensaje + The Ittrium address to sign the message with + La dirección Ittrium con la que firmar el mensaje Choose previously used address @@ -279,8 +279,8 @@ Copiar la firma actual al clipboard del sistema - Sign the message to prove you own this ITTRIUM address - Firmar el mensaje para demostrar que eres el propietario de esta dirección ITTRIUM + Sign the message to prove you own this Ittrium address + Firmar el mensaje para demostrar que eres el propietario de esta dirección Ittrium Encrypt &Key @@ -303,12 +303,12 @@ Introducir la clave encriptada privada BIP 38. Introducir la contraseña en la caja central. Pulsar en Desencriptar Clave para computar la clave privada. Después de que la clave sea desencriptada, pulsando en 'Importar Dirección' añadirá esta clave privada a la wallet. - The ITTRIUM address the message was signed with - La dirección ITTRIUM con la que el mensaje fue firmado + The Ittrium address the message was signed with + La dirección Ittrium con la que el mensaje fue firmado - Verify the message to ensure it was signed with the specified ITTRIUM address - Verificar el mensaje para asegurarse que fue firmado con la dirección ITTRIUM especificada + Verify the message to ensure it was signed with the specified Ittrium address + Verificar el mensaje para asegurarse que fue firmado con la dirección Ittrium especificada Decrypt &Key @@ -602,15 +602,15 @@ Herramienta de pestañas - ITTRIUM Core - Núcleo ITTRIUM + Ittrium Core + Núcleo Ittrium - Send coins to a ITTRIUM address - Enviar coins a una dirección ITTRIUM + Send coins to a Ittrium address + Enviar coins a una dirección Ittrium - Request payments (generates QR codes and xit: URIs) + Request payments (generates QR codes and ittrium: URIs) Solicitud de pago (genera un código QR y URIs) @@ -622,24 +622,24 @@ Explorar nodos maestros - &About ITTRIUM Core - &Sobre el núcleo de ITTRIUM + &About Ittrium Core + &Sobre el núcleo de Ittrium - Show information about ITTRIUM Core - Mostrar información sobre el núcleo de ITTRIUM + Show information about Ittrium Core + Mostrar información sobre el núcleo de Ittrium - Modify configuration options for ITTRIUM - Modificar las opciones de configuración de ITTRIUM + Modify configuration options for Ittrium + Modificar las opciones de configuración de Ittrium - Sign messages with your ITTRIUM addresses to prove you own them - Firmar mensajes con sus direcciones ITTRIUM para demostrar que le pertenecen + Sign messages with your Ittrium addresses to prove you own them + Firmar mensajes con sus direcciones Ittrium para demostrar que le pertenecen - Verify messages to ensure they were signed with specified ITTRIUM addresses - Verificar mensajes para asegurar que están firmados con la dirección ITTRIUM especificada + Verify messages to ensure they were signed with specified Ittrium addresses + Verificar mensajes para asegurar que están firmados con la dirección Ittrium especificada &BIP38 tool @@ -670,8 +670,8 @@ Abrir Fichero de Configuración de Nodos Maestros - Open a ITTRIUM: URI or payment request - Abrir un ITTRIUM: URI o solicitud de pago + Open a Ittrium: URI or payment request + Abrir un Ittrium: URI o solicitud de pago &Blockchain explorer @@ -682,16 +682,16 @@ Ventana del explorador de bloques - Show the ITTRIUM Core help message to get a list with possible ITTRIUM command-line options - Mostrar la ayuda de ITTRIUM Core para obtener una lista de posibles opciones en línea de comandos + Show the Ittrium Core help message to get a list with possible Ittrium command-line options + Mostrar la ayuda de Ittrium Core para obtener una lista de posibles opciones en línea de comandos - ITTRIUM Core client - Cliente ITTRIUM Core + Ittrium Core client + Cliente Ittrium Core - %n active connection(s) to ITTRIUM network - %n conexión(es) activa a la red ITTRIUM%n conexion(es) activas a la red ITTRIUM + %n active connection(s) to Ittrium network + %n conexión(es) activa a la red Ittrium%n conexion(es) activas a la red Ittrium Synchronizing with network... @@ -1138,8 +1138,8 @@ MultiEnvío: %1 Editar dirección de envío - The entered address "%1" is not a valid ITTRIUM address. - La dirección introducida "%1" no es una dirección ITTRIUM válida. + The entered address "%1" is not a valid Ittrium address. + La dirección introducida "%1" no es una dirección Ittrium válida. The entered address "%1" is already in the address book. @@ -1184,16 +1184,16 @@ MultiEnvío: %1 versión - ITTRIUM Core - Núcleo ITTRIUM + Ittrium Core + Núcleo Ittrium (%1-bit) (%1-bit) - About ITTRIUM Core - Acerca de ITTRIUM Core + About Ittrium Core + Acerca de Ittrium Core Command-line options @@ -1239,16 +1239,16 @@ MultiEnvío: %1 Bienvenido/a - Welcome to ITTRIUM Core. - Bienvenido/a a ITTRIUM Core. + Welcome to Ittrium Core. + Bienvenido/a a Ittrium Core. - As this is the first time the program is launched, you can choose where ITTRIUM Core will store its data. - Al ser la primera vez que se inicia el programa, usted puede elegir dónde guardará ITTRIUM Core sus datos. + As this is the first time the program is launched, you can choose where Ittrium Core will store its data. + Al ser la primera vez que se inicia el programa, usted puede elegir dónde guardará Ittrium Core sus datos. - ITTRIUM Core will download and store a copy of the ITTRIUM block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - ITTRIUM Core descargará y guardará una copia de la cadena de bloques ITTRIUM. Por lo menos %1GB de datos serán guardados en esta carpeta, y crecerá con el tiempo. El monedero también se guardará en esta carpeta. + Ittrium Core will download and store a copy of the Ittrium block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + Ittrium Core descargará y guardará una copia de la cadena de bloques Ittrium. Por lo menos %1GB de datos serán guardados en esta carpeta, y crecerá con el tiempo. El monedero también se guardará en esta carpeta. Use the default data directory @@ -1259,8 +1259,8 @@ MultiEnvío: %1 Usar una carpeta de datos personalizada: - ITTRIUM Core - Núcleo ITTRIUM + Ittrium Core + Núcleo Ittrium Error: Specified data directory "%1" cannot be created. @@ -1401,12 +1401,12 @@ MultiEnvío: %1 Introduzca Dirección a la cual Enviar - MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other ITTRIUM addresses after it matures. -To Add: enter percentage to give and ITTRIUM address to add to the MultiSend vector. + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other Ittrium addresses after it matures. +To Add: enter percentage to give and Ittrium address to add to the MultiSend vector. To Delete: Enter address to delete and press delete. MultiSend will not be activated unless you have clicked Activate - MultiEnvío le permite enviar automáticamente hasta el 100% de recompensa de participación o de nodo maestro a una lista de otras direcciones ITTRIUM después de su maduración. -Para Añadir: introduzca porcentaje a enviar y las direcciones ITTRIUM a añadir al vector MultiEnvío. + MultiEnvío le permite enviar automáticamente hasta el 100% de recompensa de participación o de nodo maestro a una lista de otras direcciones Ittrium después de su maduración. +Para Añadir: introduzca porcentaje a enviar y las direcciones Ittrium a añadir al vector MultiEnvío. Para Eliminar: Introduzca la dirección a eliminar y pulse la tecla delete. MultiEnvío no se activará a menos que haga usted click en Activar @@ -1544,48 +1544,48 @@ Por favor compruebe la dirección e inténtelo de nuevo. Por favor selecciones un nivel de privacidad. - Use 2 separate masternodes to mix funds up to 10000 XIT - Use 2 nodos maestros diferentes para mezclar los fondos hasta los 10000 XIT + Use 2 separate masternodes to mix funds up to 5000 XIT + Use 2 nodos maestros diferentes para mezclar los fondos hasta los 5000 XIT - Use 8 separate masternodes to mix funds up to 10000 XIT - Use 8 nodos maestros diferentes para mezclar fondos hasta los 10000 XIT + Use 8 separate masternodes to mix funds up to 5000 XIT + Use 8 nodos maestros diferentes para mezclar fondos hasta los 5000 XIT Use 16 separate masternodes Use 16 nodos maestros diferentes - This option is the quickest and will cost about ~0.025 XIT to anonymize 10000 XIT - Esta opción es la más rápida y costará alrededor de ~0.025 XIT para anonimizar 10000 XIT + This option is the quickest and will cost about ~0.025 XIT to anonymize 5000 XIT + Esta opción es la más rápida y costará alrededor de ~0.025 XIT para anonimizar 5000 XIT - This option is moderately fast and will cost about 0.05 XIT to anonymize 10000 XIT - Esta opción es moderadamente rápida y costará cerca de 0.05 XIT para anonimizar 10000 XIT. + This option is moderately fast and will cost about 0.05 XIT to anonymize 5000 XIT + Esta opción es moderadamente rápida y costará cerca de 0.05 XIT para anonimizar 5000 XIT. This is the slowest and most secure option. Using maximum anonymity will cost Esta es la opción más lenta pero más segura. Usar el máximo anonimato costará - 0.1 XIT per 10000 XIT you anonymize. - 0.1 XIT por 10000 XIT que anonimizas. + 0.1 XIT per 5000 XIT you anonymize. + 0.1 XIT por 5000 XIT que anonimizas. Obfuscation Configuration Configuración de Ofuscación - Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening ITTRIUM's configuration screen. - La Ofuscación se configuró correctamente en modo básico (%1 y 2 rondas). Puedes cambiar esto en cualquier momento accediendo a la ventana de configuración de ITTRIUM. + Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Ittrium's configuration screen. + La Ofuscación se configuró correctamente en modo básico (%1 y 2 rondas). Puedes cambiar esto en cualquier momento accediendo a la ventana de configuración de Ittrium. - Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening ITTRIUM's configuration screen. - La Ofuscación se activó correctamente en modo alto (%1 y 8 rondas). Usted puede cambiar esto en cualquier momento abriendo la ventana de configuración de ITTRIUM. + Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Ittrium's configuration screen. + La Ofuscación se activó correctamente en modo alto (%1 y 8 rondas). Usted puede cambiar esto en cualquier momento abriendo la ventana de configuración de Ittrium. - Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening ITTRIUM's configuration screen. - La Ofuscación se activó correctamente en su grado máximo (%1 y 16 rondas). Usted puede cambiar ésto en cualquier momento en la ventana de configuración de ITTRIUM. + Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Ittrium's configuration screen. + La Ofuscación se activó correctamente en su grado máximo (%1 y 16 rondas). Usted puede cambiar ésto en cualquier momento en la ventana de configuración de Ittrium. @@ -1646,8 +1646,8 @@ Por favor compruebe la dirección e inténtelo de nuevo. Si deselecciona el gasto de cambio no confirmado, las entradas de una transacción<br/>no podrán ser usadas hasta que esa transacción tenga al menos una confirmación.<br/>Esto también afecta a cómo se calcula su balance actual. - Automatically open the ITTRIUM client port on the router. This only works when your router supports UPnP and it is enabled. - Abrir automáticamente el puerto del cliente ITTRIUM en el enrutador. Ésto sólo funciona si su enrutador soporta UPnP y esta función está activada. + Automatically open the Ittrium client port on the router. This only works when your router supports UPnP and it is enabled. + Abrir automáticamente el puerto del cliente Ittrium en el enrutador. Ésto sólo funciona si su enrutador soporta UPnP y esta función está activada. Accept connections from outside @@ -1666,12 +1666,12 @@ Por favor compruebe la dirección e inténtelo de nuevo. Experto - Automatically start ITTRIUM after logging in to the system. - Arrancar ITTRIUM automáticamente después de identificarse en Windows. + Automatically start Ittrium after logging in to the system. + Arrancar Ittrium automáticamente después de identificarse en Windows. - &Start ITTRIUM on system login - &Arrancar ITTRIUM al inicio del sistema + &Start Ittrium on system login + &Arrancar Ittrium al inicio del sistema This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees. @@ -1686,8 +1686,8 @@ Por favor compruebe la dirección e inténtelo de nuevo. Esta cantidad actúa como un techo para desactivar la Ofuscación una vez alcanzado. - Amount of ITTRIUM to keep anonymized - Cantidad de ITTRIUM a mantener anonimizados + Amount of Ittrium to keep anonymized + Cantidad de Ittrium a mantener anonimizados Whether to show coin control features or not. @@ -1714,22 +1714,22 @@ Por favor compruebe la dirección e inténtelo de nuevo. &Red - The user interface language can be set here. This setting will take effect after restarting ITTRIUM. - El idioma de interface de usuario puede seleccionarse aquí. Este ajuste tomará efecto después de reiniciar ITTRIUM. + The user interface language can be set here. This setting will take effect after restarting Ittrium. + El idioma de interface de usuario puede seleccionarse aquí. Este ajuste tomará efecto después de reiniciar Ittrium. Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/IttriumCore/IttriumCore-translations +https://www.transifex.com/ittrium-project/ittrium-project-translations ¿Falta su lenguaje o la traducción está incompleta? Contribuya con las traducciones aquí: -https://www.transifex.com/IttriumCore/IttriumCore-translations +https://www.transifex.com/ittrium-project/ittrium-project-translations Map port using &UPnP Mapear un puerto utilizando &UPnP - Connect to the ITTRIUM network through a SOCKS5 proxy. - Conectar a la red ITTRIUM mediante un proxy SOCKS5. + Connect to the Ittrium network through a SOCKS5 proxy. + Conectar a la red Ittrium mediante un proxy SOCKS5. Proxy &IP: @@ -1883,8 +1883,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Balances - The displayed information may be out of date. Your wallet automatically synchronizes with the ITTRIUM network after a connection is established, but this process has not completed yet. - La información mostrada puede estar desactualizada. Su monedero se sincroniza automáticamente con la red ITTRIUM después de establecer una conexión, pero este proceso aún no se ha completado. + The displayed information may be out of date. Your wallet automatically synchronizes with the Ittrium network after a connection is established, but this process has not completed yet. + La información mostrada puede estar desactualizada. Su monedero se sincroniza automáticamente con la red Ittrium después de establecer una conexión, pero este proceso aún no se ha completado. Unconfirmed transactions to watch-only addresses @@ -2093,12 +2093,12 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Dirección de pago inválida %1 - Cannot start xit: click-to-pay handler - No se puede iniciar xit: módulo click-to-pay + Cannot start ittrium: click-to-pay handler + No se puede iniciar ittrium: módulo click-to-pay - URI cannot be parsed! This can be caused by an invalid ITTRIUM address or malformed URI parameters. - ¡El identificador de la dirección no puede ser analizado! Esto puede ser causado por una dirección ITTRIUM inválida o parámetros del identificador malformados. + URI cannot be parsed! This can be caused by an invalid Ittrium address or malformed URI parameters. + ¡El identificador de la dirección no puede ser analizado! Esto puede ser causado por una dirección Ittrium inválida o parámetros del identificador malformados. Payment request file cannot be read! This can be caused by an invalid payment request file. @@ -2183,8 +2183,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Cantidad - Enter a ITTRIUM address (e.g. %1) - Introduzca una dirección ITTRIUM (p.e. %1) + Enter a Ittrium address (e.g. %1) + Introduzca una dirección Ittrium (p.e. %1) %1 d @@ -2317,8 +2317,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Cadena de bloques - Open the ITTRIUM debug log file from the current data directory. This can take a few seconds for large log files. - Abrir el fichero de depuración ITTRIUM en el directorio actual de datos. Esto puede llevar unos segundos para ficheros de depuración grandes. + Open the Ittrium debug log file from the current data directory. This can take a few seconds for large log files. + Abrir el fichero de depuración Ittrium en el directorio actual de datos. Esto puede llevar unos segundos para ficheros de depuración grandes. Number of Masternodes @@ -2485,8 +2485,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Fuera: - Welcome to the ITTRIUM RPC console. - Bienvenido a la consola RPC de ITTRIUM. + Welcome to the Ittrium RPC console. + Bienvenido a la consola RPC de Ittrium. Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. @@ -2556,12 +2556,12 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Una etiqueta opcional a asociar con la nueva dirección de recepción. - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the ITTRIUM network. - Un mensaje opcional a adjuntar a la solicitud de pago, que será mostrado cuando se abra la solicitud. Nota: El mensaje no se envía junto al pago por la red ITTRIUM. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Ittrium network. + Un mensaje opcional a adjuntar a la solicitud de pago, que será mostrado cuando se abra la solicitud. Nota: El mensaje no se envía junto al pago por la red Ittrium. - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the ITTRIUM network. - Un mensaje opcional a adjuntar a la solicitud de pago, que será mostrado cuando se abra la solicitud. <br>Nota: El mensaje no se envía junto al pago por la red ITTRIUM. + An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Ittrium network. + Un mensaje opcional a adjuntar a la solicitud de pago, que será mostrado cuando se abra la solicitud. <br>Nota: El mensaje no se envía junto al pago por la red Ittrium. Use this form to request payments. All fields are <b>optional</b>. @@ -2849,8 +2849,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Si la comisión personalizada se fija en 1000 uXITs y la transacción necesita sólo 250 bytes, entonces la opción "por kilobyte" sólo pagará 250 uXITs de comisión,<br/>mientras "por lo menos" pagará 1000 uXITs. Para transacciones que midan más de un kilobyte ambas pagan por kilobyte. - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for ITTRIUM transactions than the network can process. - Pagar sólo la comisión mínima está bien mientras haya menos volumen de transacciones que espacio en los bloques.<br/>Pero tenga en cuenta que esto podría acabar en una transacción que nunca se confirme si hay más demanda de transacciones ITTRIUM de las que la red puede procesar. + Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for Ittrium transactions than the network can process. + Pagar sólo la comisión mínima está bien mientras haya menos volumen de transacciones que espacio en los bloques.<br/>Pero tenga en cuenta que esto podría acabar en una transacción que nunca se confirme si hay más demanda de transacciones Ittrium de las que la red puede procesar. normal @@ -2953,8 +2953,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations fondos anónimos - Warning: Invalid ITTRIUM address - Advertencia: Direcciones ITTRIUM inválidas + Warning: Invalid Ittrium address + Advertencia: Direcciones Ittrium inválidas any available funds (not recommended) @@ -3060,8 +3060,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Pagar &A: - The ITTRIUM address to send the payment to - La dirección ITTRIUM a la cual enviar el pago + The Ittrium address to send the payment to + La dirección Ittrium a la cual enviar el pago Choose previously used address @@ -3100,8 +3100,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Mensaje: - A message that was attached to the ITTRIUM: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the ITTRIUM network. - Un mensaje adjunto al ITTRIUM: En recurso web especificado será guardado junto a la transacción para su referencia. Nota: Este mensaje no se enviará por la red ITTRIUM. + A message that was attached to the Ittrium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Ittrium network. + Un mensaje adjunto al Ittrium: En recurso web especificado será guardado junto a la transacción para su referencia. Nota: Este mensaje no se enviará por la red Ittrium. This is an unverified payment request. @@ -3127,8 +3127,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations ShutdownWindow - ITTRIUM Core is shutting down... - El programa ITTRIUM se está cerrando... + Ittrium Core is shutting down... + El programa Ittrium se está cerrando... Do not shut down the computer until this window disappears. @@ -3150,8 +3150,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Usted puede firmar mensajes con su dirección para probar que son auténticos. Tenga cuidado con firmar algo corto o vago como "hola", pues los ataques de phising pueden engañarle para que firme su identidad para ellos. Sólo firme textos detallados con los que esté de acuerdo. - The ITTRIUM address to sign the message with - La dirección ITTRIUM con la que firmar el mensaje + The Ittrium address to sign the message with + La dirección Ittrium con la que firmar el mensaje Choose previously used address @@ -3182,16 +3182,16 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Copiar la firma actual al clipboard del sistema - Sign the message to prove you own this ITTRIUM address - Firmar el mensaje para demostrar que eres el propietario de esta dirección ITTRIUM + Sign the message to prove you own this Ittrium address + Firmar el mensaje para demostrar que eres el propietario de esta dirección Ittrium - The ITTRIUM address the message was signed with - La dirección ITTRIUM con la que el mensaje fue firmado + The Ittrium address the message was signed with + La dirección Ittrium con la que el mensaje fue firmado - Verify the message to ensure it was signed with the specified ITTRIUM address - Verificar el mensaje para asegurarse que fue firmado con la dirección ITTRIUM especificada + Verify the message to ensure it was signed with the specified Ittrium address + Verificar el mensaje para asegurarse que fue firmado con la dirección Ittrium especificada Sign &Message @@ -3277,8 +3277,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations SplashScreen - ITTRIUM Core - Núcleo ITTRIUM + Ittrium Core + Núcleo Ittrium Version %1 @@ -3293,8 +3293,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Los desarrolladores de Dash Core - The ITTRIUM Core developers - Los desarrolladores de ITTRIUM Core + The Ittrium Core developers + Los desarrolladores de Ittrium Core [testnet] @@ -3911,8 +3911,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Escuchar únicamente a la tarjeta de red indicada para conexiones JSON-RPC. Use la notación [host]:puerto para IPv6. Esta opción puede ser especificada varias veces (por defecto: escuchar en todas las tarjetas de red) - Cannot obtain a lock on data directory %s. ITTRIUM Core is probably already running. - No se puede obtener un bloqueo sobre el directorio de datos %s. ITTRIUM Core esta probablemente en ejecución. + Cannot obtain a lock on data directory %s. Ittrium Core is probably already running. + No se puede obtener un bloqueo sobre el directorio de datos %s. Ittrium Core esta probablemente en ejecución. Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) @@ -3931,8 +3931,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Borrar todas las transacciones del monedero y solo recuperar partes de la cadena de bloque a traves de -rescan al inicio. - Disable all ITTRIUM specific functionality (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, default: %u) - Desabilitar toda la funcionalidad especifica ITTRIUM (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, predeterminado: %u) + Disable all Ittrium specific functionality (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, default: %u) + Desabilitar toda la funcionalidad especifica Ittrium (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, predeterminado: %u) Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. @@ -4086,41 +4086,41 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations To use ittriumd, or the -server option to ittrium-qt, you must set an rpcpassword in the configuration file: %s It is recommended you use the following random password: -rpcuser=xitrpc +rpcuser=ittriumrpc rpcpassword=%s (you do not need to remember this password) The username and password MUST NOT be the same. If the file does not exist, create it with owner-readable-only file permissions. It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com +for example: alertnotify=echo %%s | mail -s "Ittrium Alert" admin@foo.com Para usar ittriumd, o la opción -server de ittrium-qt, debes definir un rpcpassword en el archivo de configuración: %s Es recomendado que uses la siguiente contraseña aleatoria: -rpcuser=xit +rpcuser=ittrium rpcrpcpassword=%s (No necesitas recordar esta contraseña) El nombre de usuario y contraseña NO DEBEN ser los mismos. Si el archivo no existe, crearlo con permisos de solo lectura para el propietario. También es recomendado definir alertnotify de manera que seas notificado de problemas; -por ejemplo: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com +por ejemplo: alertnotify=echo %%s | mail -s "Ittrium Alert" admin@foo.com - Unable to bind to %s on this computer. ITTRIUM Core is probably already running. - Imposible conectar a %s en esta computadora. Es probable que ITTRIUM Core ya este corriendo. + Unable to bind to %s on this computer. Ittrium Core is probably already running. + Imposible conectar a %s en esta computadora. Es probable que Ittrium Core ya este corriendo. Unable to locate enough Obfuscation denominated funds for this transaction. Imposible localizar suficientes fondos denominados de Ofuscación para esta transacción. - Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 XIT. - Imposible localizar suficientes fondos no-denominados de Ofuscación para esta transacción que no es igual a 10000 XIT. + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 5000 XIT. + Imposible localizar suficientes fondos no-denominados de Ofuscación para esta transacción que no es igual a 5000 XIT. - Unable to locate enough funds for this transaction that are not equal 10000 XIT. - Imposible localizar fondos suficientes para esta transacción que no es igual a 10000 XIT. + Unable to locate enough funds for this transaction that are not equal 5000 XIT. + Imposible localizar fondos suficientes para esta transacción que no es igual a 5000 XIT. Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) @@ -4135,8 +4135,8 @@ por ejemplo: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com Advertencia: -paytxfee esta muy alta! Esta es la comisión de transacción que pagarás si envías una transacción. - Warning: Please check that your computer's date and time are correct! If your clock is wrong ITTRIUM Core will not work properly. - Advertencia: Por favor verifique que la fecha y hora de su computadora sean correctas! Si su reloj esta fuera de hora ITTRIUM Core no funcionará adecuadamente. + Warning: Please check that your computer's date and time are correct! If your clock is wrong Ittrium Core will not work properly. + Advertencia: Por favor verifique que la fecha y hora de su computadora sean correctas! Si su reloj esta fuera de hora Ittrium Core no funcionará adecuadamente. Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. @@ -4167,8 +4167,8 @@ por ejemplo: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com Debes especificar un masternodeprivkey en la configuración. Por favor mira la documentación por ayuda. - (39993 could be used only on mainnet) - (39993 puede ser utilizado solo en mainnet) + (51472 could be used only on mainnet) + (51472 puede ser utilizado solo en mainnet) (default: %s) @@ -4179,8 +4179,8 @@ por ejemplo: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com (predeterminado: 1) - (must be 39993 for mainnet) - (debe ser 39993 para un mainnet) + (must be 51472 for mainnet) + (debe ser 51472 para un mainnet) Accept command line and JSON-RPC commands @@ -4283,8 +4283,12 @@ por ejemplo: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com Copyright (C) 2014-%i The Dash Core Developers - Copyright (C) 2015-%i The ITTRIUM Core Developers - Copyright (C) 2015-%i The ITTRIUM Core Developers + Copyright (C) 2015-%i The Ittrium Core Developers + Copyright (C) 2015-%i The Ittrium Core Developers + + + Copyright (C) 2017-%i The Ittrium Core Developers + Copyright (C) 2017-%i The Ittrium Core Developers Corrupted block database detected @@ -4355,8 +4359,8 @@ por ejemplo: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com Error al cargar wallet.dat: Billetera dañada - Error loading wallet.dat: Wallet requires newer version of ITTRIUM Core - Error al cargar wallet.dat: La Billetera requiere una nueva versión del Núcleo ITTRIUM + Error loading wallet.dat: Wallet requires newer version of Ittrium Core + Error al cargar wallet.dat: La Billetera requiere una nueva versión del Núcleo Ittrium Error opening block database @@ -4467,8 +4471,8 @@ por ejemplo: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com Información - Initialization sanity check failed. ITTRIUM Core is shutting down. - La prueba de salud de inicialización ha fallado. ITTRIUM Core se cerrará. + Initialization sanity check failed. Ittrium Core is shutting down. + La prueba de salud de inicialización ha fallado. Ittrium Core se cerrará. Input is not valid. @@ -5087,8 +5091,8 @@ por ejemplo: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com Monedero bloqueado. - Wallet needed to be rewritten: restart ITTRIUM Core to complete - Monedero necesita ser reescrito: reinicie ITTRIUM Core para completar + Wallet needed to be rewritten: restart Ittrium Core to complete + Monedero necesita ser reescrito: reinicie Ittrium Core para completar Wallet options: @@ -5147,4 +5151,4 @@ por ejemplo: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com wallet.dat esta corrupto, guardado falló - \ No newline at end of file + diff --git a/src/qt/locale/ittrium_fi.ts b/src/qt/locale/ittrium_fi.ts index 673903f..3b9a60a 100755 --- a/src/qt/locale/ittrium_fi.ts +++ b/src/qt/locale/ittrium_fi.ts @@ -62,12 +62,12 @@ Vastaanottavat osoitteet - These are your ITTRIUM addresses for sending payments. Always check the amount and the receiving address before sending coins. - Nämä ovat sinun ITTRIUM osoitteesi maksujen lähetystä varten. Tarkista aina määrä ja vastaanottava osoite ennen kolikoiden lähettämistä. + These are your Ittrium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Nämä ovat sinun Ittrium osoitteesi maksujen lähetystä varten. Tarkista aina määrä ja vastaanottava osoite ennen kolikoiden lähettämistä. - These are your ITTRIUM addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Nämä ovat sinun ITTRIUM osoitteesi maksujen vastaanottamista varten. On suositeltavaa käyttää uutta vastaanottavaa osoitetta jokaiselle uudelle rahansiirrolle. + These are your Ittrium addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Nämä ovat sinun Ittrium osoitteesi maksujen vastaanottamista varten. On suositeltavaa käyttää uutta vastaanottavaa osoitetta jokaiselle uudelle rahansiirrolle. &Copy Address @@ -172,8 +172,8 @@ Vahvista lompakon salaus - ITTRIUM will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. - ITTRIUM sulkeutuu salausprosessin ajaksi. Muista, että lompakon salaus ei voi täysin suojella XITien varkaudelta, jos tietokoneesi sisältää haittaohjelmia. + Ittrium will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. + Ittrium sulkeutuu salausprosessin ajaksi. Muista, että lompakon salaus ei voi täysin suojella XITien varkaudelta, jos tietokoneesi sisältää haittaohjelmia. Are you sure you wish to encrypt your wallet? @@ -244,8 +244,8 @@ Syötä salausavain laatikon keskelle. Paina salaa tuottaaksesi salatun yksityis Osoite: - The ITTRIUM address to sign the message with - ITTRIUM osoite, jolla viesti allekirjoitetaan + The Ittrium address to sign the message with + Ittrium osoite, jolla viesti allekirjoitetaan Choose previously used address @@ -276,8 +276,8 @@ Syötä salausavain laatikon keskelle. Paina salaa tuottaaksesi salatun yksityis Kopioi nykyinen allekirjoitus järjestelmän leikepöydälle - Sign the message to prove you own this ITTRIUM address - Allekirjoita viesti todistaaksesi, että omistat tämän ITTRIUM osoitteen + Sign the message to prove you own this Ittrium address + Allekirjoita viesti todistaaksesi, että omistat tämän Ittrium osoitteen Encrypt &Key @@ -300,12 +300,12 @@ Syötä salausavain laatikon keskelle. Paina salaa tuottaaksesi salatun yksityis Syötä BIP 38 salattu yksityisavain. Syötä salausavain laatikkoon. Paina Avaa Salaus tuottaaksesi yksityisavaimen. Kun avain on dekryptattu, painamalla "Import osoite" lisää tämän yksityisavaimen lompakkoon. - The ITTRIUM address the message was signed with - ITTRIUM osoite, jolla viesti allekirjoitettiin + The Ittrium address the message was signed with + Ittrium osoite, jolla viesti allekirjoitettiin - Verify the message to ensure it was signed with the specified ITTRIUM address - Vahvista että viesti on allekirjoitettu kyseessä olevalla ITTRIUM osoitteella. + Verify the message to ensure it was signed with the specified Ittrium address + Vahvista että viesti on allekirjoitettu kyseessä olevalla Ittrium osoitteella. Decrypt &Key @@ -591,16 +591,16 @@ Syötä salausavain laatikon keskelle. Paina salaa tuottaaksesi salatun yksityis &Apua - ITTRIUM Core - ITTRIUM Ydin + Ittrium Core + Ittrium Ydin - Send coins to a ITTRIUM address - Lähetä kolikkoja ITTRIUM osoitteeseen + Send coins to a Ittrium address + Lähetä kolikkoja Ittrium osoitteeseen - Request payments (generates QR codes and xit: URIs) - Pyydä maksuja (Generoi QR koodeja ja xit: URIja) + Request payments (generates QR codes and ittrium: URIs) + Pyydä maksuja (Generoi QR koodeja ja ittrium: URIja) &Masternodes @@ -611,24 +611,24 @@ Syötä salausavain laatikon keskelle. Paina salaa tuottaaksesi salatun yksityis Selaa masternodeja - &About ITTRIUM Core - ITTRIUM Core &ytimestä + &About Ittrium Core + Ittrium Core &ytimestä - Show information about ITTRIUM Core - Näytä tietoja ITTRIUM Ytimestä + Show information about Ittrium Core + Näytä tietoja Ittrium Ytimestä - Modify configuration options for ITTRIUM - Muokkaa konfiguraatio vaihtoehtoja ITTRIUM:lle + Modify configuration options for Ittrium + Muokkaa konfiguraatio vaihtoehtoja Ittrium:lle - Sign messages with your ITTRIUM addresses to prove you own them + Sign messages with your Ittrium addresses to prove you own them Allekirjoita viestejä todistaaksesi, että omistat ne. - Verify messages to ensure they were signed with specified ITTRIUM addresses - Vahvista viestit varmistaaksesi, että ne allekirjoitettiin tietyllä ITTRIUM osoiteella. + Verify messages to ensure they were signed with specified Ittrium addresses + Vahvista viestit varmistaaksesi, että ne allekirjoitettiin tietyllä Ittrium osoiteella. &BIP38 tool @@ -659,8 +659,8 @@ Syötä salausavain laatikon keskelle. Paina salaa tuottaaksesi salatun yksityis Avaa Masternode konfiguraatiotiedosto - Open a ITTRIUM: URI or payment request - Avaa ITTRIUM: URI tai pyydä maksua + Open a Ittrium: URI or payment request + Avaa Ittrium: URI tai pyydä maksua &Blockchain explorer @@ -671,12 +671,12 @@ Syötä salausavain laatikon keskelle. Paina salaa tuottaaksesi salatun yksityis Lohkon tutkija näkymä - Show the ITTRIUM Core help message to get a list with possible ITTRIUM command-line options - Näytä ITTRIUM Ydin apuviesti saadaksesi lista mahdollisista ITTRIUM komentolinja komennoista. + Show the Ittrium Core help message to get a list with possible Ittrium command-line options + Näytä Ittrium Ydin apuviesti saadaksesi lista mahdollisista Ittrium komentolinja komennoista. - ITTRIUM Core client - ITTRIUM Ydin asiakasohjelma + Ittrium Core client + Ittrium Ydin asiakasohjelma Synchronizing with network... @@ -934,8 +934,8 @@ Syötä salausavain laatikon keskelle. Paina salaa tuottaaksesi salatun yksityis HelpMessageDialog - ITTRIUM Core - ITTRIUM Ydin + Ittrium Core + Ittrium Ydin Usage: @@ -953,12 +953,12 @@ Syötä salausavain laatikon keskelle. Paina salaa tuottaaksesi salatun yksityis Tervetuloa - Welcome to ITTRIUM Core. - Tervetuloa ITTRIUM Ytimeen. + Welcome to Ittrium Core. + Tervetuloa Ittrium Ytimeen. - ITTRIUM Core - ITTRIUM Ydin + Ittrium Core + Ittrium Ydin Error @@ -1135,32 +1135,32 @@ Please check the address and try again. Valitse yksityisyyden taso. - Use 2 separate masternodes to mix funds up to 10000 XIT - Käytä 2 erillistä masternodea sekoittaaksesi enintään 10000 ITTRIUM + Use 2 separate masternodes to mix funds up to 5000 XIT + Käytä 2 erillistä masternodea sekoittaaksesi enintään 5000 Ittrium - Use 8 separate masternodes to mix funds up to 10000 XIT - Käytä 8 erillistä masternodea sekoittaaksesi enintään 10000 ITTRIUM + Use 8 separate masternodes to mix funds up to 5000 XIT + Käytä 8 erillistä masternodea sekoittaaksesi enintään 5000 Ittrium Use 16 separate masternodes Käytä 16 erillistä masternodea - This option is the quickest and will cost about ~0.025 XIT to anonymize 10000 XIT - Tämä vaihtoehto on nopein ja maksaa noin ~0.025 XIT anonymoidaksesi 10000 ITTRIUM + This option is the quickest and will cost about ~0.025 XIT to anonymize 5000 XIT + Tämä vaihtoehto on nopein ja maksaa noin ~0.025 XIT anonymoidaksesi 5000 Ittrium - This option is moderately fast and will cost about 0.05 XIT to anonymize 10000 XIT - Tämä vaihtoehto on suhteellisen nopea ja maksaa 0.05 ITTRIUM anonymoidaksesi 10000 ITTRIUM + This option is moderately fast and will cost about 0.05 XIT to anonymize 5000 XIT + Tämä vaihtoehto on suhteellisen nopea ja maksaa 0.05 Ittrium anonymoidaksesi 5000 Ittrium This is the slowest and most secure option. Using maximum anonymity will cost Tämä on hitain ja turvallisin vaihtoehto. Täydesti anonymisoiminen ei maksa mitään. - 0.1 XIT per 10000 XIT you anonymize. - 0.1 per 10000 ITTRIUM, jotka anonymisoit. + 0.1 XIT per 5000 XIT you anonymize. + 0.1 per 5000 Ittrium, jotka anonymisoit. Obfuscation Configuration @@ -1209,16 +1209,16 @@ Please check the address and try again. Ekspertti - Automatically start ITTRIUM after logging in to the system. - Automaattisesti käynnistä ITTRIUM kun kirjaudut sisään. + Automatically start Ittrium after logging in to the system. + Automaattisesti käynnistä Ittrium kun kirjaudut sisään. - &Start ITTRIUM on system login - &Aloita ITTRIUM järjestelmän kirjautumisessa + &Start Ittrium on system login + &Aloita Ittrium järjestelmän kirjautumisessa - Amount of ITTRIUM to keep anonymized - ITTRIUM määrä joka pidetään anonymisoituna + Amount of Ittrium to keep anonymized + Ittrium määrä joka pidetään anonymisoituna Enable coin &control features @@ -1237,12 +1237,12 @@ Please check the address and try again. &Verkko - The user interface language can be set here. This setting will take effect after restarting ITTRIUM. + The user interface language can be set here. This setting will take effect after restarting Ittrium. Käyttöliittymän kielen voi säätää täällä. Tämä asetus tulee voimaan uudelleenkäynnistettyäsi lompakon. - Connect to the ITTRIUM network through a SOCKS5 proxy. - Yhdistä ITTRIUM verkkoon SOCKS5 proxyn kautta + Connect to the Ittrium network through a SOCKS5 proxy. + Yhdistä Ittrium verkkoon SOCKS5 proxyn kautta Proxy &IP: @@ -1475,8 +1475,8 @@ Please check the address and try again. Lohko ketju - Open the ITTRIUM debug log file from the current data directory. This can take a few seconds for large log files. - Avaa ITTRIUM debug loki nykyisestä sijainnista. Tämä voi kestää muutaman sekunnin suurille lokeille + Open the Ittrium debug log file from the current data directory. This can take a few seconds for large log files. + Avaa Ittrium debug loki nykyisestä sijainnista. Tämä voi kestää muutaman sekunnin suurille lokeille Number of Masternodes @@ -1587,8 +1587,8 @@ Please check the address and try again. Ulos: - Welcome to the ITTRIUM RPC console. - Tervetuloa ITTRIUM RPC konsoliin. + Welcome to the Ittrium RPC console. + Tervetuloa Ittrium RPC konsoliin. never @@ -1630,12 +1630,12 @@ Please check the address and try again. Vaihtoehtoinen nimike uudelle vastaanottavalle osoitteelle - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the ITTRIUM network. - Vaihtoehtoinen viesti joka liitetään maksupyyntöön, joka näytetään kun pyyntö avataan. Huomio: Viestiä ei lähetetä maksun mukana ITTRIUM verkolle. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Ittrium network. + Vaihtoehtoinen viesti joka liitetään maksupyyntöön, joka näytetään kun pyyntö avataan. Huomio: Viestiä ei lähetetä maksun mukana Ittrium verkolle. - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the ITTRIUM network. - Vaihtoehtoinen viesti, joka liitetään maksupyyntöö, joka näytetään kun pyyntö avataan. <br> Huomio: Tätä viestiä ei lähetetä maksun mukana ITTRIUM verkolle. + An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Ittrium network. + Vaihtoehtoinen viesti, joka liitetään maksupyyntöö, joka näytetään kun pyyntö avataan. <br> Huomio: Tätä viestiä ei lähetetä maksun mukana Ittrium verkolle. Use this form to request payments. All fields are <b>optional</b>. @@ -1919,8 +1919,8 @@ Please check the address and try again. käyttää - Warning: Invalid ITTRIUM address - Varoitus: Virheellinen ITTRIUM osoite + Warning: Invalid Ittrium address + Varoitus: Virheellinen Ittrium osoite Are you sure you want to send? @@ -1966,8 +1966,8 @@ Please check the address and try again. Tämä on normaali maksu. - The ITTRIUM address to send the payment to - ITTRIUM osoite johon maksu lähetetään + The Ittrium address to send the payment to + Ittrium osoite johon maksu lähetetään Choose previously used address @@ -2009,8 +2009,8 @@ Please check the address and try again. ShutdownWindow - ITTRIUM Core is shutting down... - ITTRIUM core sammuu... + Ittrium Core is shutting down... + Ittrium core sammuu... Do not shut down the computer until this window disappears. @@ -2028,8 +2028,8 @@ Please check the address and try again. Voit allekirjoittaa viestejä osoitteillasi todistaaksesi, että omistat ne. Ole varovainen ettet allekirjoita mitään kummallista, sillä kalasteluyritykset saattavat yrittää huijata sinut luovuttamaan tietoja. Allekirjoita vain täysin yksityiskohtaisia sanomia, jotka hyväksyt. - The ITTRIUM address to sign the message with - ITTRIUM osoite, jolla viesti allekirjoitetaan + The Ittrium address to sign the message with + Ittrium osoite, jolla viesti allekirjoitetaan Choose previously used address @@ -2060,16 +2060,16 @@ Please check the address and try again. Kopioi nykyinen allekirjoitus järjestelmän leikepöydälle - Sign the message to prove you own this ITTRIUM address - Allekirjoita viesti todistaaksesi, että omistat tämän ITTRIUM osoitteen + Sign the message to prove you own this Ittrium address + Allekirjoita viesti todistaaksesi, että omistat tämän Ittrium osoitteen - The ITTRIUM address the message was signed with - ITTRIUM osoite, jolla viesti allekirjoitettiin + The Ittrium address the message was signed with + Ittrium osoite, jolla viesti allekirjoitettiin - Verify the message to ensure it was signed with the specified ITTRIUM address - Vahvista että viesti on allekirjoitettu kyseessä olevalla ITTRIUM osoitteella. + Verify the message to ensure it was signed with the specified Ittrium address + Vahvista että viesti on allekirjoitettu kyseessä olevalla Ittrium osoitteella. Sign &Message @@ -2151,8 +2151,8 @@ Please check the address and try again. SplashScreen - ITTRIUM Core - ITTRIUM Ydin + Ittrium Core + Ittrium Ydin Version %1 @@ -2167,8 +2167,8 @@ Please check the address and try again. Dash Core kehittäjät - The ITTRIUM Core developers - ITTRIUM core kehittäjät + The Ittrium Core developers + Ittrium core kehittäjät [testnet] @@ -2521,8 +2521,8 @@ Please check the address and try again. Virhe ladattaessa wallet.dat tiedostoa: Lompakko korruptoitunut - Error loading wallet.dat: Wallet requires newer version of ITTRIUM Core - Virhe ladattaessa wallet.dat tiedostoa: Lompakko vaatii uudemman version ITTRIUM Coresta + Error loading wallet.dat: Wallet requires newer version of Ittrium Core + Virhe ladattaessa wallet.dat tiedostoa: Lompakko vaatii uudemman version Ittrium Coresta Error reading from database, shutting down. diff --git a/src/qt/locale/ittrium_fr_FR.ts b/src/qt/locale/ittrium_fr_FR.ts index 416325a..acee2da 100755 --- a/src/qt/locale/ittrium_fr_FR.ts +++ b/src/qt/locale/ittrium_fr_FR.ts @@ -152,8 +152,8 @@ Confirmer le cryptage du portefeuille - ITTRIUM will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. - ITTRIUM va maintenant se fermer pour finir le processus cryptage. Notez que le cryptage de votre portefeuille ne peut pas complètement protéger vos XITs d'un vol par un malware ayant infecté votre ordinateur. + Ittrium will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. + Ittrium va maintenant se fermer pour finir le processus cryptage. Notez que le cryptage de votre portefeuille ne peut pas complètement protéger vos XITs d'un vol par un malware ayant infecté votre ordinateur. Are you sure you wish to encrypt your wallet? @@ -219,8 +219,8 @@ Adresse : - The ITTRIUM address to sign the message with - L'adresse ITTRIUM avec laquelle signer le message + The Ittrium address to sign the message with + L'adresse Ittrium avec laquelle signer le message Choose previously used address @@ -251,8 +251,8 @@ Copier la signature actuelle dans le presse-papier - Sign the message to prove you own this ITTRIUM address - Signer le message pour prouver que vous possédez cette adresse ITTRIUM + Sign the message to prove you own this Ittrium address + Signer le message pour prouver que vous possédez cette adresse Ittrium Encrypt &Key @@ -271,12 +271,12 @@ BIP 38 Décrypter - The ITTRIUM address the message was signed with - L'adresse ITTRIUM avec laquelle le message a été signé + The Ittrium address the message was signed with + L'adresse Ittrium avec laquelle le message a été signé - Verify the message to ensure it was signed with the specified ITTRIUM address - Vérifiez le message afin de vous assurer qu'il a été signé avec l'adresse ITTRIUM renseignée + Verify the message to ensure it was signed with the specified Ittrium address + Vérifiez le message afin de vous assurer qu'il a été signé avec l'adresse Ittrium renseignée Decrypt &Key @@ -534,8 +534,8 @@ &Aide - Send coins to a ITTRIUM address - Envoyer des pièces à une adresse ITTRIUM + Send coins to a Ittrium address + Envoyer des pièces à une adresse Ittrium &Masternodes @@ -546,16 +546,16 @@ Afficher les masternodes - Modify configuration options for ITTRIUM - Modifier les options de configuration pour ITTRIUM + Modify configuration options for Ittrium + Modifier les options de configuration pour Ittrium - Sign messages with your ITTRIUM addresses to prove you own them - Signer les messages avec votre adresse ITTRIUM pour prouver qu'elles sont bien à vous. + Sign messages with your Ittrium addresses to prove you own them + Signer les messages avec votre adresse Ittrium pour prouver qu'elles sont bien à vous. - Verify messages to ensure they were signed with specified ITTRIUM addresses - Vérifier les messages afin de s'assurer qu'ils sont signés avec l'adresse ITTRIUM spécifié + Verify messages to ensure they were signed with specified Ittrium addresses + Vérifier les messages afin de s'assurer qu'ils sont signés avec l'adresse Ittrium spécifié &BIP38 tool @@ -854,8 +854,8 @@ Adresse : %4 Modifier l'adresse d'envoi - The entered address "%1" is not a valid ITTRIUM address. - L'adresse entrée "%1" n'est pas une adresse ITTRIUM valide + The entered address "%1" is not a valid Ittrium address. + L'adresse entrée "%1" n'est pas une adresse Ittrium valide The entered address "%1" is already in the address book. @@ -1038,32 +1038,32 @@ Veuillez vérifier l'adresse et réessayer. Veuillez sélectionner un niveau de confidentialité. - Use 2 separate masternodes to mix funds up to 10000 XIT - Utiliser 2 masternodes différentes pour mélanger les fonds jusqu'a 10000 XIT + Use 2 separate masternodes to mix funds up to 5000 XIT + Utiliser 2 masternodes différentes pour mélanger les fonds jusqu'a 5000 XIT - Use 8 separate masternodes to mix funds up to 10000 XIT - Utiliser 8 masternodes différentes pour mélanger les fonds jusqu'a 10000 XIT + Use 8 separate masternodes to mix funds up to 5000 XIT + Utiliser 8 masternodes différentes pour mélanger les fonds jusqu'a 5000 XIT Use 16 separate masternodes Utiliser 16 masternodes différentes - This option is the quickest and will cost about ~0.025 XIT to anonymize 10000 XIT - Cette option est la plus rapide, et coutera ~0.025 XIT pour anonymiser 10000 XIT + This option is the quickest and will cost about ~0.025 XIT to anonymize 5000 XIT + Cette option est la plus rapide, et coutera ~0.025 XIT pour anonymiser 5000 XIT - This option is moderately fast and will cost about 0.05 XIT to anonymize 10000 XIT - Cette option est moyennement rapide, et coutera 0.05 XIT pour anonymiser 10000 XIT + This option is moderately fast and will cost about 0.05 XIT to anonymize 5000 XIT + Cette option est moyennement rapide, et coutera 0.05 XIT pour anonymiser 5000 XIT This is the slowest and most secure option. Using maximum anonymity will cost Il s'agit de l'option la plus lente est la plus sécurisé. Utiliser l'anonymat maximum coutera - 0.1 XIT per 10000 XIT you anonymize. - 0.1 XIT par 10000 XIT vous anonymisez. + 0.1 XIT per 5000 XIT you anonymize. + 0.1 XIT par 5000 XIT vous anonymisez. @@ -1461,8 +1461,8 @@ Veuillez vérifier l'adresse et réessayer. Payer à : - The ITTRIUM address to send the payment to - L'adresse ITTRIUM à laquelle envoyer le paiement + The Ittrium address to send the payment to + L'adresse Ittrium à laquelle envoyer le paiement Choose previously used address @@ -1507,8 +1507,8 @@ Veuillez vérifier l'adresse et réessayer. Signer le message - The ITTRIUM address to sign the message with - L'adresse ITTRIUM avec laquelle signer le message + The Ittrium address to sign the message with + L'adresse Ittrium avec laquelle signer le message Choose previously used address @@ -1535,16 +1535,16 @@ Veuillez vérifier l'adresse et réessayer. Copier la signature actuelle dans le presse-papier - Sign the message to prove you own this ITTRIUM address - Signer le message pour prouver que vous possédez cette adresse ITTRIUM + Sign the message to prove you own this Ittrium address + Signer le message pour prouver que vous possédez cette adresse Ittrium - The ITTRIUM address the message was signed with - L'adresse ITTRIUM avec laquelle le message a été signé + The Ittrium address the message was signed with + L'adresse Ittrium avec laquelle le message a été signé - Verify the message to ensure it was signed with the specified ITTRIUM address - Vérifiez le message afin de vous assurer qu'il a été signé avec l'adresse ITTRIUM renseignée + Verify the message to ensure it was signed with the specified Ittrium address + Vérifiez le message afin de vous assurer qu'il a été signé avec l'adresse Ittrium renseignée Sign &Message diff --git a/src/qt/locale/ittrium_it.ts b/src/qt/locale/ittrium_it.ts index 53b399a..53da33e 100755 --- a/src/qt/locale/ittrium_it.ts +++ b/src/qt/locale/ittrium_it.ts @@ -62,12 +62,12 @@ Indirizzi di ricezione - These are your ITTRIUM addresses for sending payments. Always check the amount and the receiving address before sending coins. - Questi sono gli indirizzi ITTRIUM per l'invio di pagamenti. Controlla sempre l'importo e l'indirizzo di ricezione prima di inviare valuta. + These are your Ittrium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Questi sono gli indirizzi Ittrium per l'invio di pagamenti. Controlla sempre l'importo e l'indirizzo di ricezione prima di inviare valuta. - These are your ITTRIUM addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Questi sono gli indirizzi ITTRIUM per la ricezione di pagamenti. Si raccomanda di utilizzare un indirizzo diverso per ogni transazione. + These are your Ittrium addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Questi sono gli indirizzi Ittrium per la ricezione di pagamenti. Si raccomanda di utilizzare un indirizzo diverso per ogni transazione. &Copy Address @@ -176,8 +176,8 @@ Conferma cifratura portafoglio - ITTRIUM will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. - ITTRIUM verrà ora chiuso per completare il processo di cifratura. Ricorda che crittografare il tuo portafoglio non protegge completamente i tuoi XIT dal furto da parte di software malevoli che potrebbero infettare il tuo computer. + Ittrium will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. + Ittrium verrà ora chiuso per completare il processo di cifratura. Ricorda che crittografare il tuo portafoglio non protegge completamente i tuoi XIT dal furto da parte di software malevoli che potrebbero infettare il tuo computer. Are you sure you wish to encrypt your wallet? @@ -247,8 +247,8 @@ Indirizzo: - The ITTRIUM address to sign the message with - L'indirizzo ITTRIUM per firmare il messaggio con + The Ittrium address to sign the message with + L'indirizzo Ittrium per firmare il messaggio con Choose previously used address @@ -279,8 +279,8 @@ Copiare la firma corrente negli Appunti di sistema - Sign the message to prove you own this ITTRIUM address - Firmare il messaggio per dimostrare di possedere questo indirizzo ITTRIUM + Sign the message to prove you own this Ittrium address + Firmare il messaggio per dimostrare di possedere questo indirizzo Ittrium Encrypt &Key @@ -303,12 +303,12 @@ Immettere la chiave privata codificata BIP 38. Inserire la passphrase nella casella centrale. Fare clic su Decripta Chiave per calcolare la chiave privata. Dopo che la chiave viene decrittata, cliccando su "Importa indirizzo" verrà aggiunta questa chiave privata al portafoglio. - The ITTRIUM address the message was signed with - L'indirizzo ITTRIUM con cui è stato firmato il messaggio + The Ittrium address the message was signed with + L'indirizzo Ittrium con cui è stato firmato il messaggio - Verify the message to ensure it was signed with the specified ITTRIUM address - Verificare il messaggio per assicurarsi che sia stato firmato con l'indirizzo ITTRIUM specificato + Verify the message to ensure it was signed with the specified Ittrium address + Verificare il messaggio per assicurarsi che sia stato firmato con l'indirizzo Ittrium specificato Decrypt &Key @@ -590,16 +590,16 @@ Schede degli strumenti - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core - Send coins to a ITTRIUM address - Invia monete all' indirizzo ITTRIUM + Send coins to a Ittrium address + Invia monete all' indirizzo Ittrium - Request payments (generates QR codes and xit: URIs) - Richiedi pagamenti (genera codici QR e xit: URIs) + Request payments (generates QR codes and ittrium: URIs) + Richiedi pagamenti (genera codici QR e ittrium: URIs) &Masternodes @@ -610,24 +610,24 @@ Esplora i masternodes - &About ITTRIUM Core - &Informazioni ITTRIUM Core + &About Ittrium Core + &Informazioni Ittrium Core - Show information about ITTRIUM Core - Visualizza informazioni su ITTRIUM Core + Show information about Ittrium Core + Visualizza informazioni su Ittrium Core - Modify configuration options for ITTRIUM - Modifica le opzioni di configurazione per ITTRIUM + Modify configuration options for Ittrium + Modifica le opzioni di configurazione per Ittrium - Sign messages with your ITTRIUM addresses to prove you own them - Firma i messaggi con i tuoi indirizzi ITTRIUM per dimostrare di essere il proprietario + Sign messages with your Ittrium addresses to prove you own them + Firma i messaggi con i tuoi indirizzi Ittrium per dimostrare di essere il proprietario - Verify messages to ensure they were signed with specified ITTRIUM addresses - Verifica i messaggi per assicurarsi che siano stati firmati con indirizzi ITTRIUM specifici + Verify messages to ensure they were signed with specified Ittrium addresses + Verifica i messaggi per assicurarsi che siano stati firmati con indirizzi Ittrium specifici Encrypt and decrypt private keys using a passphrase @@ -638,16 +638,16 @@ Impostazioni MultiSend - Open a ITTRIUM: URI or payment request - Apri un ITTRIUM: URI o richiesta di pagamento + Open a Ittrium: URI or payment request + Apri un Ittrium: URI o richiesta di pagamento Block explorer window Finestra Block Explorer - Show the ITTRIUM Core help message to get a list with possible ITTRIUM command-line options - Mostra il messaggio di aiuto ITTRIUM Core per ottenere un elenco con le possibili opzioni di riga di comando ITTRIUM + Show the Ittrium Core help message to get a list with possible Ittrium command-line options + Mostra il messaggio di aiuto Ittrium Core per ottenere un elenco con le possibili opzioni di riga di comando Ittrium Synchronizing with network... @@ -893,8 +893,8 @@ MultiSend: %1 versione - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core (%1-bit) @@ -920,8 +920,8 @@ MultiSend: %1 Benvenuto - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core Error @@ -1106,8 +1106,8 @@ MultiSend: %1 SignVerifyMessageDialog - The ITTRIUM address to sign the message with - L'indirizzo ITTRIUM per firmare il messaggio con + The Ittrium address to sign the message with + L'indirizzo Ittrium per firmare il messaggio con Choose previously used address @@ -1130,16 +1130,16 @@ MultiSend: %1 Copiare la firma corrente negli Appunti di sistema - Sign the message to prove you own this ITTRIUM address - Firmare il messaggio per dimostrare di possedere questo indirizzo ITTRIUM + Sign the message to prove you own this Ittrium address + Firmare il messaggio per dimostrare di possedere questo indirizzo Ittrium - The ITTRIUM address the message was signed with - L'indirizzo ITTRIUM con cui è stato firmato il messaggio + The Ittrium address the message was signed with + L'indirizzo Ittrium con cui è stato firmato il messaggio - Verify the message to ensure it was signed with the specified ITTRIUM address - Verificare il messaggio per assicurarsi che sia stato firmato con l'indirizzo ITTRIUM specificato + Verify the message to ensure it was signed with the specified Ittrium address + Verificare il messaggio per assicurarsi che sia stato firmato con l'indirizzo Ittrium specificato Reset all sign message fields @@ -1177,8 +1177,8 @@ MultiSend: %1 SplashScreen - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core diff --git a/src/qt/locale/ittrium_ko_KR.ts b/src/qt/locale/ittrium_ko_KR.ts index 8c51332..ed8e457 100755 --- a/src/qt/locale/ittrium_ko_KR.ts +++ b/src/qt/locale/ittrium_ko_KR.ts @@ -62,12 +62,12 @@ 받는 주소 - These are your ITTRIUM addresses for sending payments. Always check the amount and the receiving address before sending coins. - 이 주소들은 전송할 ITTRIUM 주소입니다. 송금하기 전 항상 금액과 전송할 주소를 확인해주세요. + These are your Ittrium addresses for sending payments. Always check the amount and the receiving address before sending coins. + 이 주소들은 전송할 Ittrium 주소입니다. 송금하기 전 항상 금액과 전송할 주소를 확인해주세요. - These are your ITTRIUM addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - 이 주소들은 전송 받을 ITTRIUM 주소입니다. 각 트랜잭션별로 새로운 입금 주소를 사용하는 것이 좋습니다. + These are your Ittrium addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + 이 주소들은 전송 받을 Ittrium 주소입니다. 각 트랜잭션별로 새로운 입금 주소를 사용하는 것이 좋습니다. &Copy Address @@ -176,8 +176,8 @@ 지갑 암호화 확인 - ITTRIUM will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. - ITTRIUM는 이제 암호화 프로세스를 마치기 위해 닫힐것입니다. 지갑을 암호화하더라도 맬웨어로 인한 XITs 의 도난당하는 것을 완벽하게 보호 할 수는 없습니다. + Ittrium will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. + Ittrium는 이제 암호화 프로세스를 마치기 위해 닫힐것입니다. 지갑을 암호화하더라도 맬웨어로 인한 XITs 의 도난당하는 것을 완벽하게 보호 할 수는 없습니다. Are you sure you wish to encrypt your wallet? @@ -247,8 +247,8 @@ 주소: - The ITTRIUM address to sign the message with - 메세지를 서명하기 위한 ITTRIUM 주소 + The Ittrium address to sign the message with + 메세지를 서명하기 위한 Ittrium 주소 Choose previously used address @@ -279,8 +279,8 @@ 현재 서명을 시스템 클립 보드에 복사 - Sign the message to prove you own this ITTRIUM address - 이 ITTRIUM 주소를 소유하고 있다는 것을 증명하기 위해 메세지에 서명하십시오 + Sign the message to prove you own this Ittrium address + 이 Ittrium 주소를 소유하고 있다는 것을 증명하기 위해 메세지에 서명하십시오 Encrypt &Key @@ -303,12 +303,12 @@ BIP 38 암호화 된 개인 키를 입력하십시오. 중간 입력창에 암호를 입력하십시오. 키를 암호해제 후 '주소 가져오기'를 클릭하면 개인 키가 지갑에 추가됩니다. - The ITTRIUM address the message was signed with - 메세지에 서명된 ITTRIUM 주소 + The Ittrium address the message was signed with + 메세지에 서명된 Ittrium 주소 - Verify the message to ensure it was signed with the specified ITTRIUM address - 메세지가 지정된 ITTRIUM 주소로 서명되었는지 확인해주세요 + Verify the message to ensure it was signed with the specified Ittrium address + 메세지가 지정된 Ittrium 주소로 서명되었는지 확인해주세요 Decrypt &Key @@ -602,16 +602,16 @@ 탭 도구 모음 - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core - Send coins to a ITTRIUM address - ITTRIUM 주소로 전송하기 + Send coins to a Ittrium address + Ittrium 주소로 전송하기 - Request payments (generates QR codes and xit: URIs) - 결제 요청 (QR 코드 및 xit: URI 생성) + Request payments (generates QR codes and ittrium: URIs) + 결제 요청 (QR 코드 및 ittrium: URI 생성) &Masternodes @@ -622,24 +622,24 @@ 마스터노드 검색 - &About ITTRIUM Core - ITTRIUM Core &정보 + &About Ittrium Core + Ittrium Core &정보 - Show information about ITTRIUM Core - ITTRIUM Core에 대한 정보 표시 + Show information about Ittrium Core + Ittrium Core에 대한 정보 표시 - Modify configuration options for ITTRIUM - ITTRIUM에 대한 구성 옵션 수정 + Modify configuration options for Ittrium + Ittrium에 대한 구성 옵션 수정 - Sign messages with your ITTRIUM addresses to prove you own them - ITTRIUM 주소로 메시지에 서명하여 소유하고 있음을 증명하십시오. + Sign messages with your Ittrium addresses to prove you own them + Ittrium 주소로 메시지에 서명하여 소유하고 있음을 증명하십시오. - Verify messages to ensure they were signed with specified ITTRIUM addresses - 메시지가 지정된 ITTRIUM 주소로 서명되었는지 확인합니다. + Verify messages to ensure they were signed with specified Ittrium addresses + 메시지가 지정된 Ittrium 주소로 서명되었는지 확인합니다. &BIP38 tool @@ -670,8 +670,8 @@ 마스터노드 구성 파일 열기 - Open a ITTRIUM: URI or payment request - ITTRIUM: URI 또는 ​​결제 요청 열기 + Open a Ittrium: URI or payment request + Ittrium: URI 또는 ​​결제 요청 열기 &Blockchain explorer @@ -682,16 +682,16 @@ 블록 탐색 창 - Show the ITTRIUM Core help message to get a list with possible ITTRIUM command-line options - ITTRIUM Core 도움말 메세지를 표시하여 사용 가능한 ITTRIUM 명령행 옵션 목록 표시 + Show the Ittrium Core help message to get a list with possible Ittrium command-line options + Ittrium Core 도움말 메세지를 표시하여 사용 가능한 Ittrium 명령행 옵션 목록 표시 - ITTRIUM Core client - ITTRIUM Core 클라이언트 + Ittrium Core client + Ittrium Core 클라이언트 - %n active connection(s) to ITTRIUM network - ITTRIUM 네트워크에 %n 연결됨 + %n active connection(s) to Ittrium network + Ittrium 네트워크에 %n 연결됨 Synchronizing with network... @@ -1138,8 +1138,8 @@ Address: %4 보내는 주소 수정 - The entered address "%1" is not a valid ITTRIUM address. - 입력된 주소 "%1"는 올바른 ITTRIUM 주소가 아닙니다. + The entered address "%1" is not a valid Ittrium address. + 입력된 주소 "%1"는 올바른 Ittrium 주소가 아닙니다. The entered address "%1" is already in the address book. @@ -1184,16 +1184,16 @@ Address: %4 버전 - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core (%1-bit) (%1-bit) - About ITTRIUM Core - ITTRIUM Core 정보 + About Ittrium Core + Ittrium Core 정보 Command-line options @@ -1239,16 +1239,16 @@ Address: %4 환영합니다 - Welcome to ITTRIUM Core. - ITTRIUM Core 환영합니다. + Welcome to Ittrium Core. + Ittrium Core 환영합니다. - As this is the first time the program is launched, you can choose where ITTRIUM Core will store its data. - 이 프로그램이 처음 실행되었으므로 ITTRIUM Core가 데이터를 저장할 위치를 선택할 수 있습니다. + As this is the first time the program is launched, you can choose where Ittrium Core will store its data. + 이 프로그램이 처음 실행되었으므로 Ittrium Core가 데이터를 저장할 위치를 선택할 수 있습니다. - ITTRIUM Core will download and store a copy of the ITTRIUM block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - ITTRIUM Core는 ITTRIUM 블록체인을 다운로드하여 저장합니다. 최소 %1GB의 데이터가 디렉토리에 저장되며 시간이 지날수록 증가합니다. 또한 지갑도 해당 디렉토리에 저장됩니다. + Ittrium Core will download and store a copy of the Ittrium block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + Ittrium Core는 Ittrium 블록체인을 다운로드하여 저장합니다. 최소 %1GB의 데이터가 디렉토리에 저장되며 시간이 지날수록 증가합니다. 또한 지갑도 해당 디렉토리에 저장됩니다. Use the default data directory @@ -1259,8 +1259,8 @@ Address: %4 사용자 지정 데이터 디렉토리 사용: - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core Error: Specified data directory "%1" cannot be created. @@ -1401,12 +1401,12 @@ Address: %4 보낼 주소 입력 - MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other ITTRIUM addresses after it matures. -To Add: enter percentage to give and ITTRIUM address to add to the MultiSend vector. + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other Ittrium addresses after it matures. +To Add: enter percentage to give and Ittrium address to add to the MultiSend vector. To Delete: Enter address to delete and press delete. MultiSend will not be activated unless you have clicked Activate - 다중전송을 사용하면 성취 한 뒤 다른 ITTRIUM 주소 목록에 최대 100% 스테이크 또는 마스터노드 보상을 자동으로 보낼 수 있습니다. -추가하려면 : 부여 할 백분율과 다중전송 벡터에 추가 할 ITTRIUM 주소를 입력하십시오. + 다중전송을 사용하면 성취 한 뒤 다른 Ittrium 주소 목록에 최대 100% 스테이크 또는 마스터노드 보상을 자동으로 보낼 수 있습니다. +추가하려면 : 부여 할 백분율과 다중전송 벡터에 추가 할 Ittrium 주소를 입력하십시오. 삭제하려면 삭제할 주소를 입력하고 삭제를 누릅니다. 활성화를 클릭하지 않으면 다중전송이 활성화되지 않습니다. @@ -1544,48 +1544,48 @@ Please check the address and try again. 익명화 레벨을 선택해주세요. - Use 2 separate masternodes to mix funds up to 10000 XIT - 2개의 개별 마스터노드를 이용하여 최대 10000 XIT 를 섞을 수 있습니다. + Use 2 separate masternodes to mix funds up to 5000 XIT + 2개의 개별 마스터노드를 이용하여 최대 5000 XIT 를 섞을 수 있습니다. - Use 8 separate masternodes to mix funds up to 10000 XIT - 8개의 개별 마스터노드를 이용하여 최대 10000 XIT 를 섞을 수 있습니다. + Use 8 separate masternodes to mix funds up to 5000 XIT + 8개의 개별 마스터노드를 이용하여 최대 5000 XIT 를 섞을 수 있습니다. Use 16 separate masternodes 16개의 개별 마스터노드를 사용 - This option is the quickest and will cost about ~0.025 XIT to anonymize 10000 XIT - 이 옵션은 가장 빠르게 전송되며 10000 XIT 익명화에 약 ~0.025 XIT의 비용이 들어갑니다. + This option is the quickest and will cost about ~0.025 XIT to anonymize 5000 XIT + 이 옵션은 가장 빠르게 전송되며 5000 XIT 익명화에 약 ~0.025 XIT의 비용이 들어갑니다. - This option is moderately fast and will cost about 0.05 XIT to anonymize 10000 XIT - 이 옵션은 중간 정도의 속도로 전송되며 10000 XIT 익명화에 약 0.05 XIT의 비용이 들어갑니다. + This option is moderately fast and will cost about 0.05 XIT to anonymize 5000 XIT + 이 옵션은 중간 정도의 속도로 전송되며 5000 XIT 익명화에 약 0.05 XIT의 비용이 들어갑니다. This is the slowest and most secure option. Using maximum anonymity will cost 이것은 가장 느리고 안전한 옵션입니다. 최고 익명성을 사용하면 비용이 발생합니다. - 0.1 XIT per 10000 XIT you anonymize. - 10000 XIT 익명화에 0.1 XIT 가 듭니다. + 0.1 XIT per 5000 XIT you anonymize. + 5000 XIT 익명화에 0.1 XIT 가 듭니다. Obfuscation Configuration 난독화 구성 - Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening ITTRIUM's configuration screen. - 난독화가 성공적으로 높게 설정되었습니다.(%1 및 2 rounds) ITTRIUM의 설정 화면을 열어 언제든지 다시 변경할 수 있습니다. + Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Ittrium's configuration screen. + 난독화가 성공적으로 높게 설정되었습니다.(%1 및 2 rounds) Ittrium의 설정 화면을 열어 언제든지 다시 변경할 수 있습니다. - Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening ITTRIUM's configuration screen. - 난독화가 성공적으로 높게 설정되었습니다.(%1 및 8 rounds) ITTRIUM의 설정 화면을 열어 언제든지 다시 변경할 수 있습니다. + Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Ittrium's configuration screen. + 난독화가 성공적으로 높게 설정되었습니다.(%1 및 8 rounds) Ittrium의 설정 화면을 열어 언제든지 다시 변경할 수 있습니다. - Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening ITTRIUM's configuration screen. - 난독화가 성공적으로 높게 설정되었습니다.(%1 및 16 rounds) ITTRIUM의 설정 화면을 열어 언제든지 다시 변경할 수 있습니다. + Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Ittrium's configuration screen. + 난독화가 성공적으로 높게 설정되었습니다.(%1 및 16 rounds) Ittrium의 설정 화면을 열어 언제든지 다시 변경할 수 있습니다. @@ -1646,8 +1646,8 @@ Please check the address and try again. 확인되지 않은 변경사항을 사용하지 않도록 설정하면 해당 트랜잭션에 하나 이상의 컨펌이 진행되야<br/>트랜잭션에 변경사항을 적용할 수 있습니다.<br/>또한 이것은 잔액 계산 방식에도 영향을 줍니다. - Automatically open the ITTRIUM client port on the router. This only works when your router supports UPnP and it is enabled. - 라우터에서 ITTRIUM 클라이언트 포트를 자동으로 엽니다. 이 기능은 라우터가 UPnP를 지원하고 활성화 된 경우에만 사용할 수 있습니다. + Automatically open the Ittrium client port on the router. This only works when your router supports UPnP and it is enabled. + 라우터에서 Ittrium 클라이언트 포트를 자동으로 엽니다. 이 기능은 라우터가 UPnP를 지원하고 활성화 된 경우에만 사용할 수 있습니다. Accept connections from outside @@ -1666,12 +1666,12 @@ Please check the address and try again. 전문적 - Automatically start ITTRIUM after logging in to the system. - 시스템 로그인 후 ITTRIUM을 자동으로 시작합니다. + Automatically start Ittrium after logging in to the system. + 시스템 로그인 후 Ittrium을 자동으로 시작합니다. - &Start ITTRIUM on system login - &시스템 로그인시 ITTRIUM 시작 + &Start Ittrium on system login + &시스템 로그인시 Ittrium 시작 This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees. @@ -1686,8 +1686,8 @@ Please check the address and try again. 이 금액에 도달하면 난독화를 끌 수 있는 임계 값 역할을 합니다. - Amount of ITTRIUM to keep anonymized - 익명화할 ITTRIUM 수량 + Amount of Ittrium to keep anonymized + 익명화할 Ittrium 수량 Whether to show coin control features or not. @@ -1714,22 +1714,22 @@ Please check the address and try again. &네트워크 - The user interface language can be set here. This setting will take effect after restarting ITTRIUM. - 사용자 인터페이스 언어를 설정할 수 있습니다. 이 설정은 ITTRIUM을 다시 시작한 후에 적용됩니다. + The user interface language can be set here. This setting will take effect after restarting Ittrium. + 사용자 인터페이스 언어를 설정할 수 있습니다. 이 설정은 Ittrium을 다시 시작한 후에 적용됩니다. Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/IttriumCore/IttriumCore-translations +https://www.transifex.com/ittrium-project/ittrium-project-translations 지원 언어가 없거나 번역이 불완전한가요? 번역 기여 도움말: -https://www.transifex.com/IttriumCore/IttriumCore-translations +https://www.transifex.com/ittrium-project/ittrium-project-translations Map port using &UPnP &UPnp를 사용하여 포트 매핑 - Connect to the ITTRIUM network through a SOCKS5 proxy. - SOCKS5 프록시를 통해 ITTRIUM 네트워크에 연결해주세요. + Connect to the Ittrium network through a SOCKS5 proxy. + SOCKS5 프록시를 통해 Ittrium 네트워크에 연결해주세요. Proxy &IP: @@ -1883,8 +1883,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations 잔액 - The displayed information may be out of date. Your wallet automatically synchronizes with the ITTRIUM network after a connection is established, but this process has not completed yet. - 표시된 정보가 오래되었을 수 있습니다. 연결이 완료되면 지갑이 ITTRIUM 네트워크와 자동으로 동기화될 예정이지만, 아직 해당 프로세스가 완료되지 않았습니다. + The displayed information may be out of date. Your wallet automatically synchronizes with the Ittrium network after a connection is established, but this process has not completed yet. + 표시된 정보가 오래되었을 수 있습니다. 연결이 완료되면 지갑이 Ittrium 네트워크와 자동으로 동기화될 예정이지만, 아직 해당 프로세스가 완료되지 않았습니다. Unconfirmed transactions to watch-only addresses @@ -2092,12 +2092,12 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations 잘못된 결제 주소 %1 - Cannot start xit: click-to-pay handler - ITTRIUM을 시작할 수 없습니다: 결제하기 위한 클릭 처리 + Cannot start ittrium: click-to-pay handler + Ittrium을 시작할 수 없습니다: 결제하기 위한 클릭 처리 - URI cannot be parsed! This can be caused by an invalid ITTRIUM address or malformed URI parameters. - URI를 분석할 수 없습니다! 이는 잘못된 ITTRIUM 주소 또는 URI 매개변수 손상으로 인해 발생할 수 있습니다. + URI cannot be parsed! This can be caused by an invalid Ittrium address or malformed URI parameters. + URI를 분석할 수 없습니다! 이는 잘못된 Ittrium 주소 또는 URI 매개변수 손상으로 인해 발생할 수 있습니다. Payment request file cannot be read! This can be caused by an invalid payment request file. @@ -2182,8 +2182,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations 금액 - Enter a ITTRIUM address (e.g. %1) - ITTRIUM 주소를 입력하세요 (예 %1) + Enter a Ittrium address (e.g. %1) + Ittrium 주소를 입력하세요 (예 %1) %1 d @@ -2320,8 +2320,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations 블록체인 - Open the ITTRIUM debug log file from the current data directory. This can take a few seconds for large log files. - 현재 데이터 디렉토리에서 ITTRIUM 디버그 로그 파일을 엽니다. 로그 파일이 클 경우, 약간의 시간이 걸릴 수 있습니다. + Open the Ittrium debug log file from the current data directory. This can take a few seconds for large log files. + 현재 데이터 디렉토리에서 Ittrium 디버그 로그 파일을 엽니다. 로그 파일이 클 경우, 약간의 시간이 걸릴 수 있습니다. Number of Masternodes @@ -2489,8 +2489,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations 출력: - Welcome to the ITTRIUM RPC console. - ITTRIUM RPC 콘솔에 오신 것을 환영합니다. + Welcome to the Ittrium RPC console. + Ittrium RPC 콘솔에 오신 것을 환영합니다. Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. @@ -2560,12 +2560,12 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations 새로운 수신 주소와 연결할 선택적 라벨. - An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the ITTRIUM network. - 요청이 열릴 때 표시되는 결제 요청에 첨부할 선택적 메세지 입니다. 참고: ITTRIUM 네트워크를 통한 결제는 메세지가 전송되지 않습니다. + An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Ittrium network. + 요청이 열릴 때 표시되는 결제 요청에 첨부할 선택적 메세지 입니다. 참고: Ittrium 네트워크를 통한 결제는 메세지가 전송되지 않습니다. - An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the ITTRIUM network. - 요청이 열릴 때 표시되는 결제 요청에 첨부할 선택적 메세지 입니다.<br>참고: ITTRIUM 네트워크를 통한 결제는 메세지가 전송되지 않습니다. + An optional message to attach to the payment request, which will be displayed when the request is opened.<br>Note: The message will not be sent with the payment over the Ittrium network. + 요청이 열릴 때 표시되는 결제 요청에 첨부할 선택적 메세지 입니다.<br>참고: Ittrium 네트워크를 통한 결제는 메세지가 전송되지 않습니다. Use this form to request payments. All fields are <b>optional</b>. @@ -2853,8 +2853,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations 트랜잭션이 250바이트 인 경우 사용자 지정 수수료가 1000 uXITs로 설정되고,<br />1000 uXITs 안에는 전체에서 최소 "킬로바이트당" 250 uXITs 만 지불합니다. 1 킬로바이트보다 큰 트랜잭션의 경우 모두 킬로바이트 단위로 지불합니다. - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for ITTRIUM transactions than the network can process. - 블록의 공간보다 트랜잭션량이 적으면 최소 수수료만 지불하면 됩니다.<br />하지만 ITTRIUM 트랜잭션 수가 많으면 미확인된 트랜잭션로 네트워크가 처리할 수도 있습니다. + Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for Ittrium transactions than the network can process. + 블록의 공간보다 트랜잭션량이 적으면 최소 수수료만 지불하면 됩니다.<br />하지만 Ittrium 트랜잭션 수가 많으면 미확인된 트랜잭션로 네트워크가 처리할 수도 있습니다. normal @@ -2957,8 +2957,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations 익명 자금 - Warning: Invalid ITTRIUM address - 경고: 잘못된 ITTRIUM 주소 + Warning: Invalid Ittrium address + 경고: 잘못된 Ittrium 주소 any available funds (not recommended) @@ -3068,8 +3068,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations 지불 &대상: - The ITTRIUM address to send the payment to - 전송할 ITTRIUM 주소 + The Ittrium address to send the payment to + 전송할 Ittrium 주소 Choose previously used address @@ -3108,8 +3108,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations 메세지: - A message that was attached to the ITTRIUM: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the ITTRIUM network. - 참조용으로 트랜잭션과 함께 기록되는 ITTRIUM : URI에 첨부된 메세지입니다. 참고: 이 메세지는 ITTRIUM 네트워크를 통해 전송되지 않습니다. + A message that was attached to the Ittrium: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Ittrium network. + 참조용으로 트랜잭션과 함께 기록되는 Ittrium : URI에 첨부된 메세지입니다. 참고: 이 메세지는 Ittrium 네트워크를 통해 전송되지 않습니다. This is an unverified payment request. @@ -3135,8 +3135,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations ShutdownWindow - ITTRIUM Core is shutting down... - ITTRIUM Core가 종료됩니다... + Ittrium Core is shutting down... + Ittrium Core가 종료됩니다... Do not shut down the computer until this window disappears. @@ -3158,8 +3158,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations 자신의 주소로 메세지에 서명할 수 있습니다. 피싱 공격으로 사용자를 속일 수 있으므로 서명에 주의해주세요. 동의하는 바에 한하여 서명하십시오. - The ITTRIUM address to sign the message with - 메세지를 서명하기 위한 ITTRIUM 주소 + The Ittrium address to sign the message with + 메세지를 서명하기 위한 Ittrium 주소 Choose previously used address @@ -3190,16 +3190,16 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations 현재 서명을 시스템 클립 보드에 복사 - Sign the message to prove you own this ITTRIUM address - 이 ITTRIUM 주소를 소유하고 있다는 것을 증명하기 위해 메세지에 서명하십시오 + Sign the message to prove you own this Ittrium address + 이 Ittrium 주소를 소유하고 있다는 것을 증명하기 위해 메세지에 서명하십시오 - The ITTRIUM address the message was signed with - 메세지에 서명된 ITTRIUM 주소 + The Ittrium address the message was signed with + 메세지에 서명된 Ittrium 주소 - Verify the message to ensure it was signed with the specified ITTRIUM address - 메세지가 지정된 ITTRIUM 주소로 서명되었는지 확인해주세요 + Verify the message to ensure it was signed with the specified Ittrium address + 메세지가 지정된 Ittrium 주소로 서명되었는지 확인해주세요 Sign &Message @@ -3285,8 +3285,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations SplashScreen - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core Version %1 @@ -3301,8 +3301,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Dash Core 개발자 - The ITTRIUM Core developers - ITTRIUM Core 개발자 + The Ittrium Core developers + Ittrium Core 개발자 [testnet] @@ -3920,8 +3920,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations JSON-RPC연결 수신을 위해 주어진 주소를 지정합니다. [host]: IPv6 포트 표기법 사용. 이 옵션은 여러번 지정할 수 있습니다. (기본값 : 모든 인터페이스에 지정) - Cannot obtain a lock on data directory %s. ITTRIUM Core is probably already running. - <translation>잠겨진 데이터 디렉토리 %s 를 가져올 수 없습니다. ITTRIUM Core는 이미 실행 중입니다. + Cannot obtain a lock on data directory %s. Ittrium Core is probably already running. + <translation>잠겨진 데이터 디렉토리 %s 를 가져올 수 없습니다. Ittrium Core는 이미 실행 중입니다. Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto) @@ -3940,8 +3940,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations 지갑의 모든 트랜잭션들을 삭제하고 오직 블록체인을 통한 트랜잭션 부분들만 복구합니다 -시작 시 다시 스캔 - Disable all ITTRIUM specific functionality (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, default: %u) - ITTRIUM의 모든 특정 기능들을 비활성화합니다(마스터노드, 난독화, SwiftTX, Budgeting) (0-1, 기본값: %u) + Disable all Ittrium specific functionality (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, default: %u) + Ittrium의 모든 특정 기능들을 비활성화합니다(마스터노드, 난독화, SwiftTX, Budgeting) (0-1, 기본값: %u) Distributed under the MIT software license, see the accompanying file COPYING or <http://www.opensource.org/licenses/mit-license.php>. @@ -4095,41 +4095,41 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations To use ittriumd, or the -server option to ittrium-qt, you must set an rpcpassword in the configuration file: %s It is recommended you use the following random password: -rpcuser=xitrpc +rpcuser=ittriumrpc rpcpassword=%s (you do not need to remember this password) The username and password MUST NOT be the same. If the file does not exist, create it with owner-readable-only file permissions. It is also recommended to set alertnotify so you are notified of problems; -for example: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com +for example: alertnotify=echo %%s | mail -s "Ittrium Alert" admin@foo.com - ITTRIUMd 또는 ITTRIUM-qt에 대한 -server 옵션 파일을 사용하려면 configuration 파일에서 rpcpassword를 설정해야 합니다: + Ittriumd 또는 Ittrium-qt에 대한 -server 옵션 파일을 사용하려면 configuration 파일에서 rpcpassword를 설정해야 합니다: %s 다음 무작위 암호를 사용하는 것을 추천합니다: -rpcuser=ITTRIUMpc +rpcuser=Ittriumpc rpcpassword=%s (이 비밀번호는 기억할 필요가 없습니다) 유저 이름과 비밀번호는 반드시 달라야 합니다. 파일이 존재하지 않는다면 작성자만 읽기 가능한 권한으로 파일을 생성하십시오. 또한 문제 발생 알림을 받을려면 alertnotify를 설정하는 것을 추천합니다. -예시: alertnotify=echo %%s | mail -s "ITTRIUM Alert" admin@foo.com +예시: alertnotify=echo %%s | mail -s "Ittrium Alert" admin@foo.com - Unable to bind to %s on this computer. ITTRIUM Core is probably already running. - 이 컴퓨터를 %s 로 지정하는것은 불가능합니다. ITTRIUM Core는 이미 실행 중입니다. + Unable to bind to %s on this computer. Ittrium Core is probably already running. + 이 컴퓨터를 %s 로 지정하는것은 불가능합니다. Ittrium Core는 이미 실행 중입니다. Unable to locate enough Obfuscation denominated funds for this transaction. 이 트랜잭션를 위해 난독화 표기된 충분한 금액을 찾을 수 없습니다. - Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 XIT. - 이 트랜잭션를 위해 난독화 표기가 안된 충분한 금액을 찾을 수 없습니다. 10000 XIT과 일치하지 않음. + Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 5000 XIT. + 이 트랜잭션를 위해 난독화 표기가 안된 충분한 금액을 찾을 수 없습니다. 5000 XIT과 일치하지 않음. - Unable to locate enough funds for this transaction that are not equal 10000 XIT. - 트랜잭션에 대한 충분한 금액을 찾을 수 없습니다. 10000 XIT와 같지 않음 + Unable to locate enough funds for this transaction that are not equal 5000 XIT. + 트랜잭션에 대한 충분한 금액을 찾을 수 없습니다. 5000 XIT와 같지 않음 Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) @@ -4144,8 +4144,8 @@ rpcpassword=%s 경고 : -paytxfee가 매우 높게 설정되었습니다! 이것은 전송할 경우 지불 할 트랜잭션 수수료입니다. - Warning: Please check that your computer's date and time are correct! If your clock is wrong ITTRIUM Core will not work properly. - 경고: 컴퓨터의 날짜와 시간이 올바르게 설정되어 있는지 확인해 주세요! 만일 시계가 잘못되어 있다면 ITTRIUM 코어는 정상적으로 작동하지 않을 수 있습니다. + Warning: Please check that your computer's date and time are correct! If your clock is wrong Ittrium Core will not work properly. + 경고: 컴퓨터의 날짜와 시간이 올바르게 설정되어 있는지 확인해 주세요! 만일 시계가 잘못되어 있다면 Ittrium 코어는 정상적으로 작동하지 않을 수 있습니다. Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. @@ -4176,8 +4176,8 @@ rpcpassword=%s 환경설정에서 masternodeprivkey를 지정해야 합니다. 도움말을 참조하십시오. - (39993 could be used only on mainnet) - (39993 은 메인넷에서만 사용될 수 있습니다) + (51472 could be used only on mainnet) + (51472 은 메인넷에서만 사용될 수 있습니다) (default: %s) @@ -4188,8 +4188,8 @@ rpcpassword=%s (기본값: 1) - (must be 39993 for mainnet) - (메인넷 일경우 39993) + (must be 51472 for mainnet) + (메인넷 일경우 51472) Accept command line and JSON-RPC commands @@ -4292,8 +4292,12 @@ rpcpassword=%s Copyright (C) 2014-%i The Dash Core 개발자들 - Copyright (C) 2015-%i The ITTRIUM Core Developers - Copyright (C) 2015-%i The ITTRIUM Core 개발자 + Copyright (C) 2015-%i The Ittrium Core Developers + Copyright (C) 2015-%i The Ittrium Core 개발자 + + + Copyright (C) 2017-%i The Ittrium Core Developers + Copyright (C) 2017-%i The Ittrium Core 개발자 Corrupted block database detected @@ -4364,8 +4368,8 @@ rpcpassword=%s wallet.dat을 불러오는 중 오류가 발생했습니다: 지갑 손상됨 - Error loading wallet.dat: Wallet requires newer version of ITTRIUM Core - wallet.dat를 로드하는 중 오류가 발생했습니다. 지갑에 최신 버전의 ITTRIUM 코어가 필요합니다. + Error loading wallet.dat: Wallet requires newer version of Ittrium Core + wallet.dat를 로드하는 중 오류가 발생했습니다. 지갑에 최신 버전의 Ittrium 코어가 필요합니다. Error opening block database @@ -4476,8 +4480,8 @@ rpcpassword=%s 정보 - Initialization sanity check failed. ITTRIUM Core is shutting down. - 초기화 정확성 검사에 실패 했습니다. ITTRIUM Core가 종료됩니다. + Initialization sanity check failed. Ittrium Core is shutting down. + 초기화 정확성 검사에 실패 했습니다. Ittrium Core가 종료됩니다. Input is not valid. @@ -5096,8 +5100,8 @@ rpcpassword=%s 지갑이 잠겼습니다. - Wallet needed to be rewritten: restart ITTRIUM Core to complete - 지갑을 다시 작성해야 합니다: 완료하려면 ITTRIUM 코어를 재시작해야 합니다 + Wallet needed to be rewritten: restart Ittrium Core to complete + 지갑을 다시 작성해야 합니다: 완료하려면 Ittrium 코어를 재시작해야 합니다 Wallet options: @@ -5156,4 +5160,4 @@ rpcpassword=%s wallet.dat 파일이 손상되어 복구에 실패했습니다 - \ No newline at end of file + diff --git a/src/qt/locale/ittrium_nl.ts b/src/qt/locale/ittrium_nl.ts index 7879815..d8b3672 100755 --- a/src/qt/locale/ittrium_nl.ts +++ b/src/qt/locale/ittrium_nl.ts @@ -62,12 +62,12 @@ Ontvangstadressen - These are your ITTRIUM addresses for sending payments. Always check the amount and the receiving address before sending coins. - Dit zijn uw ITTRIUMadressen om betalingen mee te verzenden. Controleer altijd zowel het bedrag als het ontvangstadres voor het verzenden. + These are your Ittrium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Dit zijn uw Ittriumadressen om betalingen mee te verzenden. Controleer altijd zowel het bedrag als het ontvangstadres voor het verzenden. - These are your ITTRIUM addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Dit zijn uw ITTRIUMadressen waarop betalingen kunnen worden ontvangen. Het wordt aangeraden om een nieuw ontvangstadres voor elke transactie te gebruiken. + These are your Ittrium addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Dit zijn uw Ittriumadressen waarop betalingen kunnen worden ontvangen. Het wordt aangeraden om een nieuw ontvangstadres voor elke transactie te gebruiken. &Copy Address @@ -172,8 +172,8 @@ Bevestig versleuteling van de portemonnee - ITTRIUM will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. - ITTRIUM zal nu afsluiten om het versleutelingsproces te voltooien. Onthoud dat het versleutelen van uw portemonnee u niet volledig kan beschermen: Malware kan uw computer infecteren en uw XITs stelen. + Ittrium will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. + Ittrium zal nu afsluiten om het versleutelingsproces te voltooien. Onthoud dat het versleutelen van uw portemonnee u niet volledig kan beschermen: Malware kan uw computer infecteren en uw XITs stelen. Are you sure you wish to encrypt your wallet? @@ -236,15 +236,15 @@ Enter a Ittrium Address that you would like to encrypt using BIP 38. Enter a passphrase in the middle box. Press encrypt to compute the encrypted private key. - Voer een ITTRIUM adres in dat u wilt versleutelen met BIP 38. Voer een wachtwoord in, in het middelste veld. Druk op versleutelen om de versleutelde geheime sleutel te berekenen. + Voer een Ittrium adres in dat u wilt versleutelen met BIP 38. Voer een wachtwoord in, in het middelste veld. Druk op versleutelen om de versleutelde geheime sleutel te berekenen. Address: Adres: - The ITTRIUM address to sign the message with - Het ITTRIUM adres om het bericht met te ondertekenen + The Ittrium address to sign the message with + Het Ittrium adres om het bericht met te ondertekenen Choose previously used address @@ -275,8 +275,8 @@ Kopieer de huidige handtekening naar het systeemklembord - Sign the message to prove you own this ITTRIUM address - Onderteken het bericht om te bewijzen dat u het ITTRIUM adres bezit + Sign the message to prove you own this Ittrium address + Onderteken het bericht om te bewijzen dat u het Ittrium adres bezit Encrypt &Key @@ -299,12 +299,12 @@ Voer de BIP 38 versleutelde geheime sleutel in. Voer het wachtwoord in, in het middelste veld. Druk op Ontsleutelen Sleutel om de geheime sleutel te berekenen. Nadat de geheime sleutel is ontsleuteld, zal het klikken op 'Adres Importeren' de geheime sleutel toevoegen aan de portemonnee. - The ITTRIUM address the message was signed with - Het ITTRIUM adres waarmee het bericht was ondertekend + The Ittrium address the message was signed with + Het Ittrium adres waarmee het bericht was ondertekend - Verify the message to ensure it was signed with the specified ITTRIUM address - Controleer een bericht om te verifiëren dat het ondertekend is door het gespecificeerde ITTRIUM adres + Verify the message to ensure it was signed with the specified Ittrium address + Controleer een bericht om te verifiëren dat het ondertekend is door het gespecificeerde Ittrium adres Decrypt &Key @@ -598,16 +598,16 @@ Tabblad werkbalk - ITTRIUM Core - ITTRIUM Kern + Ittrium Core + Ittrium Kern - Send coins to a ITTRIUM address - Verstuur munten naar een ITTRIUM adres + Send coins to a Ittrium address + Verstuur munten naar een Ittrium adres - Request payments (generates QR codes and xit: URIs) - Vraag betaling aan (genereert QR-codes en ITTRIUM: URI's) + Request payments (generates QR codes and ittrium: URIs) + Vraag betaling aan (genereert QR-codes en Ittrium: URI's) &Masternodes @@ -618,24 +618,24 @@ Bekijk masternodes - &About ITTRIUM Core - &Over ITTRIUM Kern + &About Ittrium Core + &Over Ittrium Kern - Show information about ITTRIUM Core - Toon informatie over ITTRIUM Kern + Show information about Ittrium Core + Toon informatie over Ittrium Kern - Modify configuration options for ITTRIUM - Wijzig ITTRIUM configuratie opties + Modify configuration options for Ittrium + Wijzig Ittrium configuratie opties - Sign messages with your ITTRIUM addresses to prove you own them - Onderteken berichten met uw ITTRIUM adressen om te bewijzen dat u deze adressen bezit + Sign messages with your Ittrium addresses to prove you own them + Onderteken berichten met uw Ittrium adressen om te bewijzen dat u deze adressen bezit - Verify messages to ensure they were signed with specified ITTRIUM addresses - Controleer berichten om te verifiëren dat deze ondertekend zijn met de gespecificeerde ITTRIUM adressen + Verify messages to ensure they were signed with specified Ittrium addresses + Controleer berichten om te verifiëren dat deze ondertekend zijn met de gespecificeerde Ittrium adressen &BIP38 tool @@ -666,8 +666,8 @@ Open Masternode configuratiebestand - Open a ITTRIUM: URI or payment request - Open een ITTRIUM: URI of betaalverzoek + Open a Ittrium: URI or payment request + Open een Ittrium: URI of betaalverzoek &Blockchain explorer @@ -678,12 +678,12 @@ Block verkenner venster - ITTRIUM Core client - ITTRIUM Core client + Ittrium Core client + Ittrium Core client - %n active connection(s) to ITTRIUM network - %n actieve connectie(s) naar ITTRIUM netwerk%n actieve connectie(s) naar ITTRIUM netwerk + %n active connection(s) to Ittrium network + %n actieve connectie(s) naar Ittrium netwerk%n actieve connectie(s) naar Ittrium netwerk Synchronizing with network... @@ -1010,8 +1010,8 @@ MultiSend: %1 Wijzig verzendadres - The entered address "%1" is not a valid ITTRIUM address. - Het ingevoerde adres: "%1" is geen geldig ITTRIUM adres. + The entered address "%1" is not a valid Ittrium address. + Het ingevoerde adres: "%1" is geen geldig Ittrium adres. The entered address "%1" is already in the address book. @@ -1040,16 +1040,16 @@ MultiSend: %1 versie - ITTRIUM Core - ITTRIUM Kern + Ittrium Core + Ittrium Kern (%1-bit) (%1-bit) - About ITTRIUM Core - Over ITTRIUM Core + About Ittrium Core + Over Ittrium Core Command-line options @@ -1079,16 +1079,16 @@ MultiSend: %1 Welkom - Welcome to ITTRIUM Core. - Welkom bij ITTRIUM Core + Welcome to Ittrium Core. + Welkom bij Ittrium Core Use the default data directory Gebruik de standaard datafolder - ITTRIUM Core - ITTRIUM Kern + Ittrium Core + Ittrium Kern Error @@ -1300,24 +1300,24 @@ MultiSend: %1 Expert - Automatically start ITTRIUM after logging in to the system. - ITTRIUM automatisch opstarten na inloggen op het systeem. + Automatically start Ittrium after logging in to the system. + Ittrium automatisch opstarten na inloggen op het systeem. - &Start ITTRIUM on system login - &ITTRIUM starten bij systeemlogin + &Start Ittrium on system login + &Ittrium starten bij systeemlogin - Amount of ITTRIUM to keep anonymized - Hoeveelheid ITTRIUM anoniem te houden + Amount of Ittrium to keep anonymized + Hoeveelheid Ittrium anoniem te houden &Network &Netwerk - The user interface language can be set here. This setting will take effect after restarting ITTRIUM. - De gebruikersinterface taal kan hier ingesteld worden. Deze instelling zal uitgevoerd na herstart van ITTRIUM. + The user interface language can be set here. This setting will take effect after restarting Ittrium. + De gebruikersinterface taal kan hier ingesteld worden. Deze instelling zal uitgevoerd na herstart van Ittrium. Map port using &UPnP @@ -1512,8 +1512,8 @@ MultiSend: %1 Hoeveelheid - Enter a ITTRIUM address (e.g. %1) - Voer een ITTRIUM adres in (b.v. %1) + Enter a Ittrium address (e.g. %1) + Voer een Ittrium adres in (b.v. %1) %1 d @@ -1702,8 +1702,8 @@ MultiSend: %1 Uit: - Welcome to the ITTRIUM RPC console. - Welkom bij de ITTRIUM RPC console. + Welcome to the Ittrium RPC console. + Welkom bij de Ittrium RPC console. %1 B @@ -2024,8 +2024,8 @@ MultiSend: %1 ShutdownWindow - ITTRIUM Core is shutting down... - ITTRIUM Core is aan het afsluiten... + Ittrium Core is shutting down... + Ittrium Core is aan het afsluiten... @@ -2035,8 +2035,8 @@ MultiSend: %1 &Onderteken Bericht - The ITTRIUM address to sign the message with - Het ITTRIUM adres om het bericht met te ondertekenen + The Ittrium address to sign the message with + Het Ittrium adres om het bericht met te ondertekenen Choose previously used address @@ -2067,16 +2067,16 @@ MultiSend: %1 Kopieer de huidige handtekening naar het systeemklembord - Sign the message to prove you own this ITTRIUM address - Onderteken het bericht om te bewijzen dat u het ITTRIUM adres bezit + Sign the message to prove you own this Ittrium address + Onderteken het bericht om te bewijzen dat u het Ittrium adres bezit - The ITTRIUM address the message was signed with - Het ITTRIUM adres waarmee het bericht was ondertekend + The Ittrium address the message was signed with + Het Ittrium adres waarmee het bericht was ondertekend - Verify the message to ensure it was signed with the specified ITTRIUM address - Controleer een bericht om te verifiëren dat het ondertekend is door het gespecificeerde ITTRIUM adres + Verify the message to ensure it was signed with the specified Ittrium address + Controleer een bericht om te verifiëren dat het ondertekend is door het gespecificeerde Ittrium adres Reset all sign message fields @@ -2134,8 +2134,8 @@ MultiSend: %1 SplashScreen - ITTRIUM Core - ITTRIUM Kern + Ittrium Core + Ittrium Kern Version %1 @@ -2150,8 +2150,8 @@ MultiSend: %1 De Dash Core ontwikkelaars - The ITTRIUM Core developers - De ITTRIUM Core ontwikkelaars + The Ittrium Core developers + De Ittrium Core ontwikkelaars [testnet] @@ -2504,8 +2504,12 @@ MultiSend: %1 Copyright (C) 2014-%i The Dash Core Ontwikkelaars - Copyright (C) 2015-%i The ITTRIUM Core Developers - Copyright (C) 2015-%i The ITTRIUM Core Ontwikkelaars + Copyright (C) 2015-%i The Ittrium Core Developers + Copyright (C) 2015-%i The Ittrium Core Ontwikkelaars + + + Copyright (C) 2017-%i The Ittrium Core Developers + Copyright (C) 2017-%i The Ittrium Core Ontwikkelaars Error @@ -2520,4 +2524,4 @@ MultiSend: %1 Waarschuwing - \ No newline at end of file + diff --git a/src/qt/locale/ittrium_pl.ts b/src/qt/locale/ittrium_pl.ts index 93317f8..10992b7 100755 --- a/src/qt/locale/ittrium_pl.ts +++ b/src/qt/locale/ittrium_pl.ts @@ -227,8 +227,8 @@ Zakodowany klucz: - Sign the message to prove you own this ITTRIUM address - Zatwierdź wiadomość, aby udowodnić, że podany adres ITTRIUM jest w twoim posiadaniu + Sign the message to prove you own this Ittrium address + Zatwierdź wiadomość, aby udowodnić, że podany adres Ittrium jest w twoim posiadaniu Encrypt &Key @@ -518,16 +518,16 @@ &Pomoc - ITTRIUM Core + Ittrium Core &Rdzeń bitcoin - Send coins to a ITTRIUM address - Wyślij monety do adresu ITTRIUM + Send coins to a Ittrium address + Wyślij monety do adresu Ittrium - Request payments (generates QR codes and xit: URIs) - Zarządaj płatności (generuje kod QR i xit:URI) + Request payments (generates QR codes and ittrium: URIs) + Zarządaj płatności (generuje kod QR i ittrium:URI) &Masternodes @@ -538,24 +538,24 @@ Przeglądaj masternodes - &About ITTRIUM Core + &About Ittrium Core &O rdzeniu bitcoina - Show information about ITTRIUM Core + Show information about Ittrium Core Pokaż informacje o rdzeniu bitcoina - Modify configuration options for ITTRIUM - Modyfikuj opcje konfiguracji ITTRIUM + Modify configuration options for Ittrium + Modyfikuj opcje konfiguracji Ittrium - Sign messages with your ITTRIUM addresses to prove you own them - Zatwierdź wiadomość z twoimi adresami ITTRIUM, by udowodnić, że jesteś w ich posiadaniu + Sign messages with your Ittrium addresses to prove you own them + Zatwierdź wiadomość z twoimi adresami Ittrium, by udowodnić, że jesteś w ich posiadaniu - Verify messages to ensure they were signed with specified ITTRIUM addresses - Zweryfikuj wiadomości by upewnić się, że zostały zatwierdzone z podanego adresu ITTRIUM + Verify messages to ensure they were signed with specified Ittrium addresses + Zweryfikuj wiadomości by upewnić się, że zostały zatwierdzone z podanego adresu Ittrium &BIP38 tool @@ -582,8 +582,8 @@ Otwórz &Plik konfiguracji Masternode - Open a ITTRIUM: URI or payment request - Otwórz ITTRIUM: URI i żądanie zapłaty + Open a Ittrium: URI or payment request + Otwórz Ittrium: URI i żądanie zapłaty &Blockchain explorer @@ -594,12 +594,12 @@ Okno eksplorera bloków - Show the ITTRIUM Core help message to get a list with possible ITTRIUM command-line options - Pokaż wiadomość pomocy rdzenia ITTRIUM, aby dostać listę możliwych opcji ITTRIUM command-line + Show the Ittrium Core help message to get a list with possible Ittrium command-line options + Pokaż wiadomość pomocy rdzenia Ittrium, aby dostać listę możliwych opcji Ittrium command-line - ITTRIUM Core client - Rdzeń ITTRIUM klient + Ittrium Core client + Rdzeń Ittrium klient Synchronizing with network... @@ -916,7 +916,7 @@ MultiWysyłlka: %1 HelpMessageDialog - ITTRIUM Core + Ittrium Core &Rdzeń bitcoin @@ -931,7 +931,7 @@ MultiWysyłlka: %1 Użyj niestandardowej ścieżki danych - ITTRIUM Core + Ittrium Core &Rdzeń bitcoin @@ -1192,16 +1192,16 @@ Proszę sprawdzić adres i spróbować ponownie Zezwól na przychodzące połączenia - Automatically start ITTRIUM after logging in to the system. - Automatycznie uruchom ITTRIUM po zalogowaniu do systemu + Automatically start Ittrium after logging in to the system. + Automatycznie uruchom Ittrium po zalogowaniu do systemu - &Start ITTRIUM on system login - &Uruchom ITTRIUM podczas logowania do systemu + &Start Ittrium on system login + &Uruchom Ittrium podczas logowania do systemu - Amount of ITTRIUM to keep anonymized - Liczba ITTRIUM do anonimizacji + Amount of Ittrium to keep anonymized + Liczba Ittrium do anonimizacji Whether to show coin control features or not. @@ -1220,18 +1220,18 @@ Proszę sprawdzić adres i spróbować ponownie &Sieć - The user interface language can be set here. This setting will take effect after restarting ITTRIUM. - Język interfejsu użytkownika może być wybrany tutaj. Ustawienia ulegną zmianie po restarcie ITTRIUM + The user interface language can be set here. This setting will take effect after restarting Ittrium. + Język interfejsu użytkownika może być wybrany tutaj. Ustawienia ulegną zmianie po restarcie Ittrium Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/IttriumCore/IttriumCore-translations +https://www.transifex.com/ittrium-project/ittrium-project-translations Brakuje języka bądź nieukończona pełnego tłumaczenia? Pomóż w tłumaczeniu tutaj: -https://www.transifex.com/IttriumCore/IttriumCore-translations +https://www.transifex.com/ittrium-project/ittrium-project-translations - Connect to the ITTRIUM network through a SOCKS5 proxy. - Połącz z siecią ITTRIUM poprzez SOCKS5 proxy. + Connect to the Ittrium network through a SOCKS5 proxy. + Połącz z siecią Ittrium poprzez SOCKS5 proxy. Proxy &IP: @@ -1458,8 +1458,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Liczba - Enter a ITTRIUM address (e.g. %1) - Wprowadź adres ITTRIUM (np. %1) + Enter a Ittrium address (e.g. %1) + Wprowadź adres Ittrium (np. %1) %1 d @@ -1897,8 +1897,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Alt+P - Sign the message to prove you own this ITTRIUM address - Zatwierdź wiadomość, aby udowodnić, że podany adres ITTRIUM jest w twoim posiadaniu + Sign the message to prove you own this Ittrium address + Zatwierdź wiadomość, aby udowodnić, że podany adres Ittrium jest w twoim posiadaniu Clear &All @@ -1932,7 +1932,7 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations SplashScreen - ITTRIUM Core + Ittrium Core &Rdzeń bitcoin diff --git a/src/qt/locale/ittrium_pt.ts b/src/qt/locale/ittrium_pt.ts index 97ef22b..9844433 100755 --- a/src/qt/locale/ittrium_pt.ts +++ b/src/qt/locale/ittrium_pt.ts @@ -62,12 +62,12 @@ Endereços de recebimento - These are your ITTRIUM addresses for sending payments. Always check the amount and the receiving address before sending coins. - Esses são seus endereços ITTRIUM para enviar pagamentos. Sempre confira a quantidade e os endereços de destino antes de enviar moedas. + These are your Ittrium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Esses são seus endereços Ittrium para enviar pagamentos. Sempre confira a quantidade e os endereços de destino antes de enviar moedas. - These are your ITTRIUM addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Esses são seus endereços ITTRIUM para receber pagamentos. É recomendado usar um novo endereço para cada transação. + These are your Ittrium addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Esses são seus endereços Ittrium para receber pagamentos. É recomendado usar um novo endereço para cada transação. &Copy Address @@ -176,8 +176,8 @@ Confirmar encriptação da carteira - ITTRIUM will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. - ITTRIUM encerrará para terminar o processo de encriptação. Lembre-se que encriptar sua carteira não protege completamente suas XITs contra roubo por malware infectando seu computador. + Ittrium will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. + Ittrium encerrará para terminar o processo de encriptação. Lembre-se que encriptar sua carteira não protege completamente suas XITs contra roubo por malware infectando seu computador. Are you sure you wish to encrypt your wallet? @@ -247,8 +247,8 @@ Endereço: - The ITTRIUM address to sign the message with - Um endereço ITTRIUM para assinar a mensagem + The Ittrium address to sign the message with + Um endereço Ittrium para assinar a mensagem Choose previously used address @@ -279,8 +279,8 @@ Copiar a assinatura para a area de trabalho - Sign the message to prove you own this ITTRIUM address - Assinar a Mensagem para provar que você e dono desse endereço ITTRIUM. + Sign the message to prove you own this Ittrium address + Assinar a Mensagem para provar que você e dono desse endereço Ittrium. Encrypt &Key @@ -299,8 +299,8 @@ Criptografia BIP 38 - The ITTRIUM address the message was signed with - O endereço ITTRIUM que foi assinado com + The Ittrium address the message was signed with + O endereço Ittrium que foi assinado com Decrypted Key: @@ -633,8 +633,8 @@ SignVerifyMessageDialog - The ITTRIUM address to sign the message with - Um endereço ITTRIUM para assinar a mensagem + The Ittrium address to sign the message with + Um endereço Ittrium para assinar a mensagem Choose previously used address @@ -665,12 +665,12 @@ Copiar a assinatura para a area de trabalho - Sign the message to prove you own this ITTRIUM address - Assinar a Mensagem para provar que você e dono desse endereço ITTRIUM. + Sign the message to prove you own this Ittrium address + Assinar a Mensagem para provar que você e dono desse endereço Ittrium. - The ITTRIUM address the message was signed with - O endereço ITTRIUM que foi assinado com + The Ittrium address the message was signed with + O endereço Ittrium que foi assinado com Reset all sign message fields @@ -874,8 +874,8 @@ Deletar todas as transações da carteira e somente recuperar aquelas partes do blockchain através de -rescan na inicialização - Disable all ITTRIUM specific functionality (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, default: %u) - Desabilitar todas as funcionacilidades específicas da ITTRIUM (Masternodes, Ofuscação, SwiftTX, Budgeting) (0-1, default %u) + Disable all Ittrium specific functionality (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, default: %u) + Desabilitar todas as funcionacilidades específicas da Ittrium (Masternodes, Ofuscação, SwiftTX, Budgeting) (0-1, default %u) Connect through SOCKS5 proxy @@ -1242,8 +1242,8 @@ Carteira esta bloqueada. - Wallet needed to be rewritten: restart ITTRIUM Core to complete - Carteira precisa ser reescrita: reinicie o ITTRIUM Core para completar. + Wallet needed to be rewritten: restart Ittrium Core to complete + Carteira precisa ser reescrita: reinicie o Ittrium Core para completar. Wallet options: diff --git a/src/qt/locale/ittrium_pt_BR.ts b/src/qt/locale/ittrium_pt_BR.ts index 9d03d41..887c011 100755 --- a/src/qt/locale/ittrium_pt_BR.ts +++ b/src/qt/locale/ittrium_pt_BR.ts @@ -62,12 +62,12 @@ Endereços de recebimento - These are your ITTRIUM addresses for sending payments. Always check the amount and the receiving address before sending coins. - Esses são seus endereços ITTRIUM para envio de pagamentos. Sempre verifique a quantia e os endereços de recebimento antes de enviar moedas. + These are your Ittrium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Esses são seus endereços Ittrium para envio de pagamentos. Sempre verifique a quantia e os endereços de recebimento antes de enviar moedas. - These are your ITTRIUM addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Esses são seus endereços ITTRIUM para recebimento de pagamentos. É recomendado usar um novo endereço para cada transação. + These are your Ittrium addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Esses são seus endereços Ittrium para recebimento de pagamentos. É recomendado usar um novo endereço para cada transação. &Copy Address @@ -172,8 +172,8 @@ Confirmar criptografia de carteira - ITTRIUM will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. - ITTRIUM vai fechar agora para finalizar o processo de criptografia. Lembre-se que encriptar sua carteira não pode proteger totalmente suas XITs de serem roubadas por malwares infectando seu computador. + Ittrium will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. + Ittrium vai fechar agora para finalizar o processo de criptografia. Lembre-se que encriptar sua carteira não pode proteger totalmente suas XITs de serem roubadas por malwares infectando seu computador. Are you sure you wish to encrypt your wallet? @@ -243,8 +243,8 @@ Endereço: - The ITTRIUM address to sign the message with - O endereço ITTRIUM para assinar a mensagem + The Ittrium address to sign the message with + O endereço Ittrium para assinar a mensagem Choose previously used address @@ -275,8 +275,8 @@ Copia a assinatura atual do sistema de transferência - Sign the message to prove you own this ITTRIUM address - Assine a mensagem para provar que você possui este endereço ITTRIUM + Sign the message to prove you own this Ittrium address + Assine a mensagem para provar que você possui este endereço Ittrium Encrypt &Key @@ -291,12 +291,12 @@ Limpar &Tudo - The ITTRIUM address the message was signed with - O endereço ITTRIUM que assinou a mensagem + The Ittrium address the message was signed with + O endereço Ittrium que assinou a mensagem - Verify the message to ensure it was signed with the specified ITTRIUM address - Verifique a mensagem para ter certeza que foi assinada com o endereço ITTRIUM especificado. + Verify the message to ensure it was signed with the specified Ittrium address + Verifique a mensagem para ter certeza que foi assinada com o endereço Ittrium especificado. Decrypt &Key @@ -586,16 +586,16 @@ Ferramentas de abas - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core - Send coins to a ITTRIUM address - Enviar moedas para um endereço ITTRIUM + Send coins to a Ittrium address + Enviar moedas para um endereço Ittrium - Request payments (generates QR codes and xit: URIs) - Requisitar pagamentos (gera códigos QR e xit: URIs) + Request payments (generates QR codes and ittrium: URIs) + Requisitar pagamentos (gera códigos QR e ittrium: URIs) &Masternodes @@ -606,24 +606,24 @@ Procurar masternodes - &About ITTRIUM Core - &Sobre o ITTRIUM Core + &About Ittrium Core + &Sobre o Ittrium Core - Show information about ITTRIUM Core - Mostra informação sobre o ITTRIUM Core + Show information about Ittrium Core + Mostra informação sobre o Ittrium Core - Modify configuration options for ITTRIUM - Modificar opções de configuração para ITTRIUM + Modify configuration options for Ittrium + Modificar opções de configuração para Ittrium - Sign messages with your ITTRIUM addresses to prove you own them - Assine mensagens com seus endereços ITTRIUM para provar que você os detém + Sign messages with your Ittrium addresses to prove you own them + Assine mensagens com seus endereços Ittrium para provar que você os detém - Verify messages to ensure they were signed with specified ITTRIUM addresses - Verifique as mensagens para ter certeza que estão assinadas com os endereços ITTRIUM especificados + Verify messages to ensure they were signed with specified Ittrium addresses + Verifique as mensagens para ter certeza que estão assinadas com os endereços Ittrium especificados &BIP38 tool @@ -654,8 +654,8 @@ Abrir arquivo de configuração de Masternode - Open a ITTRIUM: URI or payment request - Abrir um ITTRIUM: URI ou requisição de pagamento + Open a Ittrium: URI or payment request + Abrir um Ittrium: URI ou requisição de pagamento &Blockchain explorer @@ -666,12 +666,12 @@ Janela de exploração de blocos - Show the ITTRIUM Core help message to get a list with possible ITTRIUM command-line options - Mostra a ajuda da ITTRIUM Core para receber uma lista com possíveis opções de linha de comando ITTRIUM + Show the Ittrium Core help message to get a list with possible Ittrium command-line options + Mostra a ajuda da Ittrium Core para receber uma lista com possíveis opções de linha de comando Ittrium - ITTRIUM Core client - Cliente Core ITTRIUM + Ittrium Core client + Cliente Core Ittrium Synchronizing with network... @@ -1095,8 +1095,8 @@ MultiSend: %1 Editar endereço remetente - The entered address "%1" is not a valid ITTRIUM address. - O endereço que você selecionou, "%1" , não é um endereço válido de ITTRIUM + The entered address "%1" is not a valid Ittrium address. + O endereço que você selecionou, "%1" , não é um endereço válido de Ittrium The entered address "%1" is already in the address book. @@ -1141,16 +1141,16 @@ MultiSend: %1 versão - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core (%1-bit) (%1-bit) - About ITTRIUM Core - Sobre o ITTRIUM Core + About Ittrium Core + Sobre o Ittrium Core Command-line options @@ -1184,16 +1184,16 @@ MultiSend: %1 Bem-vindo - Welcome to ITTRIUM Core. - Bem-vindo ao ITTRIUM Core. + Welcome to Ittrium Core. + Bem-vindo ao Ittrium Core. - As this is the first time the program is launched, you can choose where ITTRIUM Core will store its data. - Como essa é a primeira vez que o programa é utilizado, você pode escolher onde ITTRIUM Core vai armazenar os seus dados. + As this is the first time the program is launched, you can choose where Ittrium Core will store its data. + Como essa é a primeira vez que o programa é utilizado, você pode escolher onde Ittrium Core vai armazenar os seus dados. - ITTRIUM Core will download and store a copy of the ITTRIUM block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - ITTRIUM Core vai baixar e armazenar uma cópia da blockchain ITTRIUM. Pelo menos %1GB de informação será armazenado neste diretório e irá aumentar com o tempo. A carteira também será armazenada neste diretório. + Ittrium Core will download and store a copy of the Ittrium block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + Ittrium Core vai baixar e armazenar uma cópia da blockchain Ittrium. Pelo menos %1GB de informação será armazenado neste diretório e irá aumentar com o tempo. A carteira também será armazenada neste diretório. Use the default data directory @@ -1204,8 +1204,8 @@ MultiSend: %1 Usar um diretório personalizado de dados: - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core Error: Specified data directory "%1" cannot be created. @@ -1460,48 +1460,48 @@ Favor verificar o endereço e tente novamente. Favor selecionar o nível de privacidade. - Use 2 separate masternodes to mix funds up to 10000 XIT - Use 2 masternodes separados para embaralhar fundos até 10000 XIT + Use 2 separate masternodes to mix funds up to 5000 XIT + Use 2 masternodes separados para embaralhar fundos até 5000 XIT - Use 8 separate masternodes to mix funds up to 10000 XIT - Use 8 masternodes separados para embaralhar fundos até 10000 XIT + Use 8 separate masternodes to mix funds up to 5000 XIT + Use 8 masternodes separados para embaralhar fundos até 5000 XIT Use 16 separate masternodes Use 16 masternodes separados - This option is the quickest and will cost about ~0.025 XIT to anonymize 10000 XIT - Está opção é a mais rápida e vai custar em torno de ~0.025 XIT para anonimizar 10000 XIT + This option is the quickest and will cost about ~0.025 XIT to anonymize 5000 XIT + Está opção é a mais rápida e vai custar em torno de ~0.025 XIT para anonimizar 5000 XIT - This option is moderately fast and will cost about 0.05 XIT to anonymize 10000 XIT - Está opção moderamente rápida e vai custar em torno de ~0.05 XIT para anonimizar 10000 XIT + This option is moderately fast and will cost about 0.05 XIT to anonymize 5000 XIT + Está opção moderamente rápida e vai custar em torno de ~0.05 XIT para anonimizar 5000 XIT This is the slowest and most secure option. Using maximum anonymity will cost Esta é a opção mais lenta e mais segura. Usando a anonimização máxima vai custar - 0.1 XIT per 10000 XIT you anonymize. - 0.1 XIT por 10000 XIT que deixar anônima. + 0.1 XIT per 5000 XIT you anonymize. + 0.1 XIT por 5000 XIT que deixar anônima. Obfuscation Configuration Configuração de ofuscação - Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening ITTRIUM's configuration screen. - Ofuscação foi definida com sucesso para o básico (%1 e 2 rodadas) Você pode mudar isto a qualquer tempo ao abrir a configuração de tela ITTRIUM's. + Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Ittrium's configuration screen. + Ofuscação foi definida com sucesso para o básico (%1 e 2 rodadas) Você pode mudar isto a qualquer tempo ao abrir a configuração de tela Ittrium's. - Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening ITTRIUM's configuration screen. - Ofuscação foi definida com sucesso para alto (%1 e 8 rodadas). Você pode mudar isto a qualquer tempo ao abrir a configuração de tela ITTRIUM's. + Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Ittrium's configuration screen. + Ofuscação foi definida com sucesso para alto (%1 e 8 rodadas). Você pode mudar isto a qualquer tempo ao abrir a configuração de tela Ittrium's. - Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening ITTRIUM's configuration screen. - Ofuscação foi definida com sucesso para máxima (%1 e 16 rodadas). Você pode mudar isto a qualquer tempo ao abrir a configuração de tela ITTRIUM's. + Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Ittrium's configuration screen. + Ofuscação foi definida com sucesso para máxima (%1 e 16 rodadas). Você pode mudar isto a qualquer tempo ao abrir a configuração de tela Ittrium's. @@ -1554,8 +1554,8 @@ Favor verificar o endereço e tente novamente. C&arteira - Automatically open the ITTRIUM client port on the router. This only works when your router supports UPnP and it is enabled. - Abrir automaticamente a porta do cliente ITTRIUM no roteador. Isto somente funciona quando seu roteador suporta UPnP e este esteja habilitado. + Automatically open the Ittrium client port on the router. This only works when your router supports UPnP and it is enabled. + Abrir automaticamente a porta do cliente Ittrium no roteador. Isto somente funciona quando seu roteador suporta UPnP e este esteja habilitado. Accept connections from outside @@ -1574,12 +1574,12 @@ Favor verificar o endereço e tente novamente. Expert - Automatically start ITTRIUM after logging in to the system. - Iniciar automaticamente ITTRIUM depois de logar no sistema. + Automatically start Ittrium after logging in to the system. + Iniciar automaticamente Ittrium depois de logar no sistema. - &Start ITTRIUM on system login - &Iniciar ITTRIUM ao logar no sistema + &Start Ittrium on system login + &Iniciar Ittrium ao logar no sistema This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees. @@ -1590,8 +1590,8 @@ Favor verificar o endereço e tente novamente. Rodadas de ofuscação para usar - Amount of ITTRIUM to keep anonymized - Quantidade de ITTRIUM a manter anônima + Amount of Ittrium to keep anonymized + Quantidade de Ittrium a manter anônima Enable coin &control features @@ -1606,18 +1606,18 @@ Favor verificar o endereço e tente novamente. &Rede - The user interface language can be set here. This setting will take effect after restarting ITTRIUM. - A linguagem da interface pode ser definida aqui. Está configuração terá efeito após reinício do ITTRIUM. + The user interface language can be set here. This setting will take effect after restarting Ittrium. + A linguagem da interface pode ser definida aqui. Está configuração terá efeito após reinício do Ittrium. Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/IttriumCore/IttriumCore-translations +https://www.transifex.com/ittrium-project/ittrium-project-translations Linguagem não encontrada ou tradução incompleta? Ajude contribuido com traduções aqui: -https://www.transifex.com/IttriumCore/IttriumCore-translations +https://www.transifex.com/ittrium-project/ittrium-project-translations - Connect to the ITTRIUM network through a SOCKS5 proxy. - Conectar à rede ITTRIUM através de um proxy SOCKS5 + Connect to the Ittrium network through a SOCKS5 proxy. + Conectar à rede Ittrium através de um proxy SOCKS5 Proxy &IP: @@ -1755,8 +1755,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Fundos - The displayed information may be out of date. Your wallet automatically synchronizes with the ITTRIUM network after a connection is established, but this process has not completed yet. - A informação mostrada pode estar desatualizada. A sua carteira se sincroniza automaticamente com a rede ITTRIUM após estabelecer uma conexão, mas esse processo ainda não foi concluído. + The displayed information may be out of date. Your wallet automatically synchronizes with the Ittrium network after a connection is established, but this process has not completed yet. + A informação mostrada pode estar desatualizada. A sua carteira se sincroniza automaticamente com a rede Ittrium após estabelecer uma conexão, mas esse processo ainda não foi concluído. Unconfirmed transactions to watch-only addresses @@ -1966,8 +1966,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Quantidade - Enter a ITTRIUM address (e.g. %1) - Insira um endereço ITTRIUM (e.g. %1) + Enter a Ittrium address (e.g. %1) + Insira um endereço Ittrium (e.g. %1) %1 d @@ -2216,8 +2216,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations saída: - Welcome to the ITTRIUM RPC console. - Bem-vindo ao console da ITTRIUM RPC + Welcome to the Ittrium RPC console. + Bem-vindo ao console da Ittrium RPC Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. @@ -2520,8 +2520,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Se a taxa padrão estiver definida para 1000 uXITs e a transação for somente de 250 bytes, então "por kilobyte" pagará somente 250 uXITs em taxa,<br /> pagará pelo menos 1000 uXITs. Para transações maiores que um kilobyte ambas pagam por kilobyte. - Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for ITTRIUM transactions than the network can process. - Pagar a taxa mínima é aceitável desde que existe menos volume de transações que espaço nos blocos. <br/> Mas fique atento que isso pode acabar em uma transação que nunca será confirmada caso haja mais demanda por transações de ITTRIUM do que a rede pode processar. + Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks.<br />But be aware that this can end up in a never confirming transaction once there is more demand for Ittrium transactions than the network can process. + Pagar a taxa mínima é aceitável desde que existe menos volume de transações que espaço nos blocos. <br/> Mas fique atento que isso pode acabar em uma transação que nunca será confirmada caso haja mais demanda por transações de Ittrium do que a rede pode processar. normal @@ -2608,8 +2608,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations fundos anônimos - Warning: Invalid ITTRIUM address - Aviso: endereço ITTRIUM inválido + Warning: Invalid Ittrium address + Aviso: endereço Ittrium inválido any available funds (not recommended) @@ -2703,8 +2703,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Pagar &Para: - The ITTRIUM address to send the payment to - O endereço ITTRIUM para enviar o pagamento + The Ittrium address to send the payment to + O endereço Ittrium para enviar o pagamento Choose previously used address @@ -2766,8 +2766,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations ShutdownWindow - ITTRIUM Core is shutting down... - ITTRIUM Core está desligando... + Ittrium Core is shutting down... + Ittrium Core está desligando... Do not shut down the computer until this window disappears. @@ -2785,8 +2785,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations &Assinar mensagem - The ITTRIUM address to sign the message with - O endereço ITTRIUM para assinar a mensagem + The Ittrium address to sign the message with + O endereço Ittrium para assinar a mensagem Choose previously used address @@ -2817,16 +2817,16 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Copia a assinatura atual do sistema de transferência - Sign the message to prove you own this ITTRIUM address - Assine a mensagem para provar que você possui este endereço ITTRIUM + Sign the message to prove you own this Ittrium address + Assine a mensagem para provar que você possui este endereço Ittrium - The ITTRIUM address the message was signed with - O endereço ITTRIUM que assinou a mensagem + The Ittrium address the message was signed with + O endereço Ittrium que assinou a mensagem - Verify the message to ensure it was signed with the specified ITTRIUM address - Verifique a mensagem para ter certeza que foi assinada com o endereço ITTRIUM especificado. + Verify the message to ensure it was signed with the specified Ittrium address + Verifique a mensagem para ter certeza que foi assinada com o endereço Ittrium especificado. Sign &Message @@ -2908,8 +2908,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations SplashScreen - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core Version %1 @@ -2924,8 +2924,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Os desenvolvedores do Dash Core - The ITTRIUM Core developers - Os desenvolvedores do ITTRIUM Core + The Ittrium Core developers + Os desenvolvedores do Ittrium Core [testnet] @@ -3458,8 +3458,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Deletar todas as transações da carteira e somente recuperar aquelas partes da blockchain através de -rescan na inicialização - Disable all ITTRIUM specific functionality (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, default: %u) - Desabilitar todas as funcionalidades específicas ITTRIUM (Masternodes, Ofuscação, SwiftTX, Budgeting) (0-1, padrão: %u) + Disable all Ittrium specific functionality (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, default: %u) + Desabilitar todas as funcionalidades específicas Ittrium (Masternodes, Ofuscação, SwiftTX, Budgeting) (0-1, padrão: %u) Enable use of automated obfuscation for funds stored in this wallet (0-1, default: %u) @@ -3506,8 +3506,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations SwiftTX requer inputs com pelo menos 6 confirmações, você precisar aguardar alguns minutos e tentar novamente. - Unable to locate enough funds for this transaction that are not equal 10000 XIT. - Incapaz de localizar fundos para esta transação que não são iguais a 10000 XIT. + Unable to locate enough funds for this transaction that are not equal 5000 XIT. + Incapaz de localizar fundos para esta transação que não são iguais a 5000 XIT. Use separate SOCKS5 proxy to reach peers via Tor hidden services (default: %s) @@ -3522,8 +3522,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Aviso: -paytxfee está definido como muito alto! Está e a taxa de transação que você irá pagar se enviar uma transação. - Warning: Please check that your computer's date and time are correct! If your clock is wrong ITTRIUM Core will not work properly. - Aviso: Favor verificar se o horário e data de seu computador estão corretos! Se o seu relógio estiver errado o Core ITTRIUM não vai funcionar corretamente. + Warning: Please check that your computer's date and time are correct! If your clock is wrong Ittrium Core will not work properly. + Aviso: Favor verificar se o horário e data de seu computador estão corretos! Se o seu relógio estiver errado o Core Ittrium não vai funcionar corretamente. Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. @@ -3538,8 +3538,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Você deve especificar uma masternodeprivkey na configuração. Favor verificar o manual para obter ajuda. - (39993 could be used only on mainnet) - (39993 could be used only on mainnet) + (51472 could be used only on mainnet) + (51472 could be used only on mainnet) (default: %s) @@ -3550,8 +3550,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations (padrão: 1) - (must be 39993 for mainnet) - (deve ser 39993 para mainnet) + (must be 51472 for mainnet) + (deve ser 51472 para mainnet) Accept connections from outside (default: 1 if no -proxy or -connect) @@ -3602,8 +3602,12 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Todos os direitos reservados (C) 2014-%i aos Desenvolvedores do Dash Core - Copyright (C) 2015-%i The ITTRIUM Core Developers - Todos os direitos reservados (C) 2015-%i aos Desenvolvedores do ITTRIUM Core + Copyright (C) 2015-%i The Ittrium Core Developers + Todos os direitos reservados (C) 2015-%i aos Desenvolvedores do Ittrium Core + + + Copyright (C) 2017-%i The Ittrium Core Developers + Todos os direitos reservados (C) 2017-%i aos Desenvolvedores do Ittrium Core Corrupted block database detected @@ -3654,8 +3658,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Erro no carregamento da wallet.dat: Carteira corrompida - Error loading wallet.dat: Wallet requires newer version of ITTRIUM Core - Erro ao carregar wallet.dat: A Carteira requer uma nova versão da ITTRIUM Core + Error loading wallet.dat: Wallet requires newer version of Ittrium Core + Erro ao carregar wallet.dat: A Carteira requer uma nova versão da Ittrium Core Error opening block database @@ -4142,8 +4146,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Carteira está travada. - Wallet needed to be rewritten: restart ITTRIUM Core to complete - A carteira precisa ser reescrita: reinicia o ITTRIUM Core para completar + Wallet needed to be rewritten: restart Ittrium Core to complete + A carteira precisa ser reescrita: reinicia o Ittrium Core para completar Wallet options: @@ -4198,4 +4202,4 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations wallet.dat corrompido, falha ao salvar - \ No newline at end of file + diff --git a/src/qt/locale/ittrium_ru.ts b/src/qt/locale/ittrium_ru.ts index fc42401..239b74d 100755 --- a/src/qt/locale/ittrium_ru.ts +++ b/src/qt/locale/ittrium_ru.ts @@ -62,12 +62,12 @@ Адреса получения - These are your ITTRIUM addresses for sending payments. Always check the amount and the receiving address before sending coins. - Это ваши ITTRIUM-адреса для отправки платежей. Перед отправкой монет всегда проверяйте сумму и адрес получателя. + These are your Ittrium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Это ваши Ittrium-адреса для отправки платежей. Перед отправкой монет всегда проверяйте сумму и адрес получателя. - These are your ITTRIUM addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Это ваши ITTRIUM-адреса для получения платежей. Для каждой транзакции рекомендуется использовать новый адрес получения. + These are your Ittrium addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Это ваши Ittrium-адреса для получения платежей. Для каждой транзакции рекомендуется использовать новый адрес получения. &Copy Address @@ -172,8 +172,8 @@ Подтверждение шифрования кошелька - ITTRIUM will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. - ITTRIUM сейчас закроется, чтобы завершить процесс шифрования. Помните, что шифрование вашего кошелька не может полностью защитить ваши ITTRIUM от кражи с использованием вредоносного ПО. + Ittrium will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. + Ittrium сейчас закроется, чтобы завершить процесс шифрования. Помните, что шифрование вашего кошелька не может полностью защитить ваши Ittrium от кражи с использованием вредоносного ПО. Are you sure you wish to encrypt your wallet? @@ -236,15 +236,15 @@ Enter a Ittrium Address that you would like to encrypt using BIP 38. Enter a passphrase in the middle box. Press encrypt to compute the encrypted private key. - Введите ITTRIUM адрес, которым вы хотите зашифровать, используя BIP 38. Введите пароль в среднем поле. Нажмите "Зашифровать", чтобы создать зашиврованный секретный ключ. + Введите Ittrium адрес, которым вы хотите зашифровать, используя BIP 38. Введите пароль в среднем поле. Нажмите "Зашифровать", чтобы создать зашиврованный секретный ключ. Address: Адрес: - The ITTRIUM address to sign the message with - Адрес ITTRIUM для подписи сообщения с помощью + The Ittrium address to sign the message with + Адрес Ittrium для подписи сообщения с помощью Choose previously used address @@ -275,8 +275,8 @@ Копировать текущую подпись в системный буфер обмена - Sign the message to prove you own this ITTRIUM address - Подпишите сообщение, чтобы подтвердить свой адрес ITTRIUM + Sign the message to prove you own this Ittrium address + Подпишите сообщение, чтобы подтвердить свой адрес Ittrium Encrypt &Key @@ -299,12 +299,12 @@ Введите зашифрованный с помощью BIP 38 секретный ключ. Введите секретную фразу в среднем окне. Нажмите Дешифровать Ключ чтобы создать секретный ключ. Нажав на Импортировать Адрес после дешифровки, вы добавите секретный ключ к кошельку. - The ITTRIUM address the message was signed with - Адрес ITTRIUM, которым подписано сообщение + The Ittrium address the message was signed with + Адрес Ittrium, которым подписано сообщение - Verify the message to ensure it was signed with the specified ITTRIUM address - Проверте сообщение, чтобы убедиться, что оно было подписано указанным ITTRIUM адресом + Verify the message to ensure it was signed with the specified Ittrium address + Проверте сообщение, чтобы убедиться, что оно было подписано указанным Ittrium адресом Decrypt &Key @@ -594,16 +594,16 @@ Панель вкладок - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core - Send coins to a ITTRIUM address - Отправить монеты на ITTRIUM адрес + Send coins to a Ittrium address + Отправить монеты на Ittrium адрес - Request payments (generates QR codes and xit: URIs) - Запросить платежи (генерирует QR-код и ITTRIUM: URI) + Request payments (generates QR codes and ittrium: URIs) + Запросить платежи (генерирует QR-код и Ittrium: URI) &Masternodes @@ -614,24 +614,24 @@ Обзор мастернод - &About ITTRIUM Core - &О ITTRIUM Core + &About Ittrium Core + &О Ittrium Core - Show information about ITTRIUM Core - Показать информацию о ITTRIUM Core + Show information about Ittrium Core + Показать информацию о Ittrium Core - Modify configuration options for ITTRIUM - Изменение параметров конфигурации ITTRIUM + Modify configuration options for Ittrium + Изменение параметров конфигурации Ittrium - Sign messages with your ITTRIUM addresses to prove you own them - Подписывайте сообщения вашими ITTRIUM адресами, чтобы доказать, что вы их владелец + Sign messages with your Ittrium addresses to prove you own them + Подписывайте сообщения вашими Ittrium адресами, чтобы доказать, что вы их владелец - Verify messages to ensure they were signed with specified ITTRIUM addresses - Проверте сообщения, чтобы убедиться, что они были подписаны указанным ITTRIUM адресом + Verify messages to ensure they were signed with specified Ittrium addresses + Проверте сообщения, чтобы убедиться, что они были подписаны указанным Ittrium адресом &BIP38 tool @@ -662,8 +662,8 @@ Открыть файл настроек мастернод - Open a ITTRIUM: URI or payment request - Открыть ITTRIUM: URI или запрос платежа + Open a Ittrium: URI or payment request + Открыть Ittrium: URI или запрос платежа &Blockchain explorer @@ -674,16 +674,16 @@ Окно обзора блока - Show the ITTRIUM Core help message to get a list with possible ITTRIUM command-line options - Смотрите помощь к программе, чтобы получить документацию ко всем возможным опциям комманды ITTRIUM + Show the Ittrium Core help message to get a list with possible Ittrium command-line options + Смотрите помощь к программе, чтобы получить документацию ко всем возможным опциям комманды Ittrium - ITTRIUM Core client - Клиент ITTRIUM Core + Ittrium Core client + Клиент Ittrium Core - %n active connection(s) to ITTRIUM network - %n активное подключение к сети ITTRIUM%n активных подключений к сети ITTRIUM%n активных подключений к сети ITTRIUM%n активных подключений к сети ITTRIUM + %n active connection(s) to Ittrium network + %n активное подключение к сети Ittrium%n активных подключений к сети Ittrium%n активных подключений к сети Ittrium%n активных подключений к сети Ittrium Synchronizing with network... @@ -1130,8 +1130,8 @@ MultiSend: %1 Изменить адрес отправки - The entered address "%1" is not a valid ITTRIUM address. - Введенный адрес "%1" не является ITTRIUM адресом. + The entered address "%1" is not a valid Ittrium address. + Введенный адрес "%1" не является Ittrium адресом. The entered address "%1" is already in the address book. @@ -1176,16 +1176,16 @@ MultiSend: %1 версия - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core (%1-bit) (%1-бит) - About ITTRIUM Core - О ITTRIUM Core + About Ittrium Core + О Ittrium Core Command-line options @@ -1231,16 +1231,16 @@ MultiSend: %1 Добро пожаловать - Welcome to ITTRIUM Core. - Добро пожаловать в ITTRIUM Core. + Welcome to Ittrium Core. + Добро пожаловать в Ittrium Core. - As this is the first time the program is launched, you can choose where ITTRIUM Core will store its data. - Поскольку это первый запуск программы, вы можете выбрать, где будут храниться данные ITTRIUM Core. + As this is the first time the program is launched, you can choose where Ittrium Core will store its data. + Поскольку это первый запуск программы, вы можете выбрать, где будут храниться данные Ittrium Core. - ITTRIUM Core will download and store a copy of the ITTRIUM block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. - ITTRIUM Core загрузит и сохранит копию цепочки блоков ITTRIUM. Каталог будет занимать около %1GB и со временем размер будет увеличиваться. Кроме того, в этом каталоге будет храниться кошелек. + Ittrium Core will download and store a copy of the Ittrium block chain. At least %1GB of data will be stored in this directory, and it will grow over time. The wallet will also be stored in this directory. + Ittrium Core загрузит и сохранит копию цепочки блоков Ittrium. Каталог будет занимать около %1GB и со временем размер будет увеличиваться. Кроме того, в этом каталоге будет храниться кошелек. Use the default data directory @@ -1251,8 +1251,8 @@ MultiSend: %1 Использовать другой каталог данных: - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core Error: Specified data directory "%1" cannot be created. @@ -1393,12 +1393,12 @@ MultiSend: %1 Введите адрес для отправки - MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other ITTRIUM addresses after it matures. -To Add: enter percentage to give and ITTRIUM address to add to the MultiSend vector. + MultiSend allows you to automatically send up to 100% of your stake or masternode reward to a list of other Ittrium addresses after it matures. +To Add: enter percentage to give and Ittrium address to add to the MultiSend vector. To Delete: Enter address to delete and press delete. MultiSend will not be activated unless you have clicked Activate - MultiSend позволяет вам автоматически отправлять до 100% вознаграждения за мастерноды и хранение, после их созревания, на другие ITTRIUM адреса. -Для добавления: введите передаваемый процент и ITTRIUM адрес для добавления к вектору MultiSend. + MultiSend позволяет вам автоматически отправлять до 100% вознаграждения за мастерноды и хранение, после их созревания, на другие Ittrium адреса. +Для добавления: введите передаваемый процент и Ittrium адрес для добавления к вектору MultiSend. Для удаления: введите удаляемый адрес и нажмите удалить. MultiSend будет неактивен до тех пор, пока вы не нажмете Включить @@ -1536,48 +1536,48 @@ Please check the address and try again. Выберите уровень конфиденциальности. - Use 2 separate masternodes to mix funds up to 10000 XIT - Используйте 2 разные мастерноды для смешивания средств до 10000 XIT + Use 2 separate masternodes to mix funds up to 5000 XIT + Используйте 2 разные мастерноды для смешивания средств до 5000 XIT - Use 8 separate masternodes to mix funds up to 10000 XIT - Используйте 8 разных мастернод для смешивания средств до 10000 XIT + Use 8 separate masternodes to mix funds up to 5000 XIT + Используйте 8 разных мастернод для смешивания средств до 5000 XIT Use 16 separate masternodes Используйте 16 разных мастернод - This option is the quickest and will cost about ~0.025 XIT to anonymize 10000 XIT - Этот вариант является самым быстрым и будет стоить порядка ~0.025 XIT для анонимизации 10000 XIT + This option is the quickest and will cost about ~0.025 XIT to anonymize 5000 XIT + Этот вариант является самым быстрым и будет стоить порядка ~0.025 XIT для анонимизации 5000 XIT - This option is moderately fast and will cost about 0.05 XIT to anonymize 10000 XIT - Это средний по скорости вариант и он будет стоить около 0.05 XIT для анонимизации 10000 XIT + This option is moderately fast and will cost about 0.05 XIT to anonymize 5000 XIT + Это средний по скорости вариант и он будет стоить около 0.05 XIT для анонимизации 5000 XIT This is the slowest and most secure option. Using maximum anonymity will cost Это самый медленный и безопасный вариант. Максимальная анонимность стоит - 0.1 XIT per 10000 XIT you anonymize. - 0.1 XIT за 10000 XIT которые вы собираетесь анонимизировать. + 0.1 XIT per 5000 XIT you anonymize. + 0.1 XIT за 5000 XIT которые вы собираетесь анонимизировать. Obfuscation Configuration Настройка Перемешивания - Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening ITTRIUM's configuration screen. - Перемешивание было успешно выставлено на стандартные значения (%1 и 2 цикла). Вы в любой момент можете это изменить, открыв окно настройки ITTRIUM. + Obfuscation was successfully set to basic (%1 and 2 rounds). You can change this at any time by opening Ittrium's configuration screen. + Перемешивание было успешно выставлено на стандартные значения (%1 и 2 цикла). Вы в любой момент можете это изменить, открыв окно настройки Ittrium. - Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening ITTRIUM's configuration screen. - Перемешивание было успешно выбрано как высокое (%1 и 8 циклов). Вы в любой момент можете это изменить, открыв окно настройки ITTRIUM. + Obfuscation was successfully set to high (%1 and 8 rounds). You can change this at any time by opening Ittrium's configuration screen. + Перемешивание было успешно выбрано как высокое (%1 и 8 циклов). Вы в любой момент можете это изменить, открыв окно настройки Ittrium. - Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening ITTRIUM's configuration screen. - Перемешивание было успешно выставлено на максимальное (%1 и 16 циклов). Вы в любой момент можете это изменить, открыв окно настройки ITTRIUM. + Obfuscation was successfully set to maximum (%1 and 16 rounds). You can change this at any time by opening Ittrium's configuration screen. + Перемешивание было успешно выставлено на максимальное (%1 и 16 циклов). Вы в любой момент можете это изменить, открыв окно настройки Ittrium. @@ -1638,8 +1638,8 @@ Please check the address and try again. Отключив проведение неподтвержденных изменений все изменения о транзакции <br/>не будут использованы пока транзакция не получит хотя бы одно подтверждение.<br/>Также это влияет на расчет вашего баланса. - Automatically open the ITTRIUM client port on the router. This only works when your router supports UPnP and it is enabled. - Автоматически открыть клиентский порт ITTRIUM через роутер. Ваш роутер должен поддерживать UPnP, а сам сервис должен быть включен. + Automatically open the Ittrium client port on the router. This only works when your router supports UPnP and it is enabled. + Автоматически открыть клиентский порт Ittrium через роутер. Ваш роутер должен поддерживать UPnP, а сам сервис должен быть включен. Accept connections from outside @@ -1658,12 +1658,12 @@ Please check the address and try again. Эксперт - Automatically start ITTRIUM after logging in to the system. - Автоматически запускать ITTRIUM после входа в систему. + Automatically start Ittrium after logging in to the system. + Автоматически запускать Ittrium после входа в систему. - &Start ITTRIUM on system login - &Запускать ITTRIUM при входе в систему + &Start Ittrium on system login + &Запускать Ittrium при входе в систему This setting determines the amount of individual masternodes that an input will be anonymized through.<br/>More rounds of anonymization gives a higher degree of privacy, but also costs more in fees. @@ -1678,8 +1678,8 @@ Please check the address and try again. При достижении этого значения Перемешивание будет отключено. - Amount of ITTRIUM to keep anonymized - Количество ITTRIUM, держащихся анонимизированными + Amount of Ittrium to keep anonymized + Количество Ittrium, держащихся анонимизированными Whether to show coin control features or not. @@ -1706,22 +1706,22 @@ Please check the address and try again. &Сеть - The user interface language can be set here. This setting will take effect after restarting ITTRIUM. - Здесь можно выставить язык интерфейса. Изменения вступят в силу после перезапуска ITTRIUM. + The user interface language can be set here. This setting will take effect after restarting Ittrium. + Здесь можно выставить язык интерфейса. Изменения вступят в силу после перезапуска Ittrium. Language missing or translation incomplete? Help contributing translations here: -https://www.transifex.com/IttriumCore/IttriumCore-translations +https://www.transifex.com/ittrium-project/ittrium-project-translations Отсутствует ваш язык или заметили незавершенный перевод? Вы можете помочь нам стать лучше: -https://www.transifex.com/IttriumCore/IttriumCore-translations +https://www.transifex.com/ittrium-project/ittrium-project-translations Map port using &UPnP Карта порта, использующего &UPnP - Connect to the ITTRIUM network through a SOCKS5 proxy. - Подключиться к сети ITTRIUM через SOCKS5 прокси. + Connect to the Ittrium network through a SOCKS5 proxy. + Подключиться к сети Ittrium через SOCKS5 прокси. Proxy &IP: @@ -1875,8 +1875,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Балансы - The displayed information may be out of date. Your wallet automatically synchronizes with the ITTRIUM network after a connection is established, but this process has not completed yet. - Возможно отображаемая информация устарела. Ваш кошелек автоматически синхронизируется с сетью ITTRIUM после установки соединения, но этот процесс еще не завершен. + The displayed information may be out of date. Your wallet automatically synchronizes with the Ittrium network after a connection is established, but this process has not completed yet. + Возможно отображаемая информация устарела. Ваш кошелек автоматически синхронизируется с сетью Ittrium после установки соединения, но этот процесс еще не завершен. Unconfirmed transactions to watch-only addresses @@ -2072,12 +2072,12 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Неверный адрес оплаты %1 - Cannot start xit: click-to-pay handler - Не удалось запустить xit: обработчик click-to-pay + Cannot start ittrium: click-to-pay handler + Не удалось запустить ittrium: обработчик click-to-pay - URI cannot be parsed! This can be caused by an invalid ITTRIUM address or malformed URI parameters. - URI не интерпретируется! Причиной этому может быть неверный ITTRIUM адрес или неверные параметеры URI. + URI cannot be parsed! This can be caused by an invalid Ittrium address or malformed URI parameters. + URI не интерпретируется! Причиной этому может быть неверный Ittrium адрес или неверные параметеры URI. Payment request file cannot be read! This can be caused by an invalid payment request file. @@ -2162,8 +2162,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Сумма - Enter a ITTRIUM address (e.g. %1) - Введите адрес ITTRIUM (например %1) + Enter a Ittrium address (e.g. %1) + Введите адрес Ittrium (например %1) %1 d @@ -2296,8 +2296,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Блокчейн - Open the ITTRIUM debug log file from the current data directory. This can take a few seconds for large log files. - Открыть протокол отладки ITTRIUM. Это может занять некоторе время, если файл протокола очень большой. + Open the Ittrium debug log file from the current data directory. This can take a few seconds for large log files. + Открыть протокол отладки Ittrium. Это может занять некоторе время, если файл протокола очень большой. Number of Masternodes @@ -2457,8 +2457,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Вывод: - Welcome to the ITTRIUM RPC console. - Добро пожаловать в окружение ITTRIUM RPC. + Welcome to the Ittrium RPC console. + Добро пожаловать в окружение Ittrium RPC. Use up and down arrows to navigate history, and <b>Ctrl-L</b> to clear screen. @@ -2761,8 +2761,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Копировать изменение - Warning: Invalid ITTRIUM address - Предупреждение: неправильный ITTRIUM адрес + Warning: Invalid Ittrium address + Предупреждение: неправильный Ittrium адрес and SwiftTX @@ -2815,8 +2815,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations ShutdownWindow - ITTRIUM Core is shutting down... - ITTRIUM Core выключается... + Ittrium Core is shutting down... + Ittrium Core выключается... Do not shut down the computer until this window disappears. @@ -2826,8 +2826,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations SignVerifyMessageDialog - The ITTRIUM address to sign the message with - Адрес ITTRIUM для подписи сообщения с помощью + The Ittrium address to sign the message with + Адрес Ittrium для подписи сообщения с помощью Choose previously used address @@ -2850,16 +2850,16 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Копировать текущую подпись в системный буфер обмена - Sign the message to prove you own this ITTRIUM address - Подпишите сообщение, чтобы подтвердить свой адрес ITTRIUM + Sign the message to prove you own this Ittrium address + Подпишите сообщение, чтобы подтвердить свой адрес Ittrium - The ITTRIUM address the message was signed with - Адрес ITTRIUM, которым подписано сообщение + The Ittrium address the message was signed with + Адрес Ittrium, которым подписано сообщение - Verify the message to ensure it was signed with the specified ITTRIUM address - Проверте сообщение, чтобы убедиться, что оно было подписано указанным ITTRIUM адресом + Verify the message to ensure it was signed with the specified Ittrium address + Проверте сообщение, чтобы убедиться, что оно было подписано указанным Ittrium адресом Reset all sign message fields @@ -2905,8 +2905,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations SplashScreen - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core Version %1 @@ -2921,8 +2921,8 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Разработчики Dash Core - The ITTRIUM Core developers - Разработчики ITTRIUM Core + The Ittrium Core developers + Разработчики Ittrium Core [testnet] @@ -3207,8 +3207,12 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Copyright (C) 2014-%i Разработчики Dash Core - Copyright (C) 2015-%i The ITTRIUM Core Developers - Copyright (C) 2015-%i Разработчики ITTRIUM Core + Copyright (C) 2017-%i The Ittrium Core Developers + Copyright (C) 2017-%i Разработчики Ittrium Core + + + Copyright (C) 2017-%i The Ittrium Core Developers + Copyright (C) 2017-%i Разработчики Ittrium Core Corrupted block database detected @@ -3527,4 +3531,4 @@ https://www.transifex.com/IttriumCore/IttriumCore-translations Предупреждение - \ No newline at end of file + diff --git a/src/qt/locale/ittrium_sk.ts b/src/qt/locale/ittrium_sk.ts index 609b63e..d9f6ea4 100755 --- a/src/qt/locale/ittrium_sk.ts +++ b/src/qt/locale/ittrium_sk.ts @@ -62,12 +62,12 @@ Prijímacia adresa - These are your ITTRIUM addresses for sending payments. Always check the amount and the receiving address before sending coins. - Toto sú vaše ITTRIUM adresy na odosielanie platieb. Pred odoslaním vždy skontrolujte výšku a adresu prijemcu. + These are your Ittrium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Toto sú vaše Ittrium adresy na odosielanie platieb. Pred odoslaním vždy skontrolujte výšku a adresu prijemcu. - These are your ITTRIUM addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Toto sú vaše ITTRIUM adresy na prijímanie platieb. Pre každú transakciu sa odporúča použiť novú prijímaciu adresu. + These are your Ittrium addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Toto sú vaše Ittrium adresy na prijímanie platieb. Pre každú transakciu sa odporúča použiť novú prijímaciu adresu. &Copy Address @@ -176,8 +176,8 @@ Potvrďte šifrovanie peňaženky - ITTRIUM will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. - ITTRIUM sa teraz ukončí, aby dokončil proces šifrovania. Nezabudnite, že šifrovanie peňaženky nemôže úplne ochrániť vaše XIT pred odcudzením škodlivým softvérom, ktorý infikuje váš počítač. + Ittrium will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. + Ittrium sa teraz ukončí, aby dokončil proces šifrovania. Nezabudnite, že šifrovanie peňaženky nemôže úplne ochrániť vaše XIT pred odcudzením škodlivým softvérom, ktorý infikuje váš počítač. Are you sure you wish to encrypt your wallet? @@ -247,8 +247,8 @@ Adresa: - The ITTRIUM address to sign the message with - Adresa ITTRIUM, ktorou chcete správu podpísať + The Ittrium address to sign the message with + Adresa Ittrium, ktorou chcete správu podpísať Choose previously used address @@ -279,8 +279,8 @@ Skopírujte aktuálny podpis do schránky - Sign the message to prove you own this ITTRIUM address - Podpíšte správu, aby ste preukázali, že ste vlastníkom tejto ITTRIUM adresy + Sign the message to prove you own this Ittrium address + Podpíšte správu, aby ste preukázali, že ste vlastníkom tejto Ittrium adresy Encrypt &Key @@ -303,12 +303,12 @@ Zadajte súkromný kľúč zašifrovaný BIP 38. Zadajte prístupovú frázu do stredného poľa. Kliknite na Dešifrovať kľúč, ak chcete vypočítať privátny kľúč. Po dešifrovaní kľúča pridáte do peňaženky tento súkromný kľúč kliknutím na položku 'Importovať adresu'. - The ITTRIUM address the message was signed with - ITTRIUM adresa, ktorou bola správa podpísaná + The Ittrium address the message was signed with + Ittrium adresa, ktorou bola správa podpísaná - Verify the message to ensure it was signed with the specified ITTRIUM address - Skontrolujte správu, aby ste sa uistili, že bola podpísaná zadanou ITTRIUM adresou + Verify the message to ensure it was signed with the specified Ittrium address + Skontrolujte správu, aby ste sa uistili, že bola podpísaná zadanou Ittrium adresou Decrypt &Key @@ -598,16 +598,16 @@ Panel nástrojov Záložky - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core - Send coins to a ITTRIUM address - Odoslať mince na adresu ITTRIUM + Send coins to a Ittrium address + Odoslať mince na adresu Ittrium - Request payments (generates QR codes and xit: URIs) - Vyžiadať platby (generuje QR kódy a xit: identifikátory URI) + Request payments (generates QR codes and ittrium: URIs) + Vyžiadať platby (generuje QR kódy a ittrium: identifikátory URI) &Masternodes @@ -618,24 +618,24 @@ Prezrieť masternody - &About ITTRIUM Core - O ITTRIUM Core + &About Ittrium Core + O Ittrium Core - Show information about ITTRIUM Core - Zobraziť informácie o ITTRIUM Core + Show information about Ittrium Core + Zobraziť informácie o Ittrium Core - Modify configuration options for ITTRIUM - Zmeňte možnosti konfigurácie pre ITTRIUM + Modify configuration options for Ittrium + Zmeňte možnosti konfigurácie pre Ittrium - Sign messages with your ITTRIUM addresses to prove you own them - Podpíšte správy pomocou adresy ITTRIUM, aby ste preukázali, že ich vlastníte + Sign messages with your Ittrium addresses to prove you own them + Podpíšte správy pomocou adresy Ittrium, aby ste preukázali, že ich vlastníte - Verify messages to ensure they were signed with specified ITTRIUM addresses - Overte správy, aby sa zabezpečilo, že boli podpísané zadanými ITTRIUM adresami + Verify messages to ensure they were signed with specified Ittrium addresses + Overte správy, aby sa zabezpečilo, že boli podpísané zadanými Ittrium adresami &BIP38 tool @@ -666,8 +666,8 @@ Otvoriť konfiguračný súbor masternodu - Open a ITTRIUM: URI or payment request - Otvorte ITTRIUM: URI alebo žiadosť o platbu + Open a Ittrium: URI or payment request + Otvorte Ittrium: URI alebo žiadosť o platbu &Blockchain explorer @@ -678,12 +678,12 @@ Okno blockchain prehliadača - Show the ITTRIUM Core help message to get a list with possible ITTRIUM command-line options - Zobraziť pomocnú správu programu ITTRIUM Core a získajte zoznam možností príkazového riadka ITTRIUM + Show the Ittrium Core help message to get a list with possible Ittrium command-line options + Zobraziť pomocnú správu programu Ittrium Core a získajte zoznam možností príkazového riadka Ittrium - ITTRIUM Core client - ITTRIUM Core klient + Ittrium Core client + Ittrium Core klient Synchronizing with network... @@ -908,15 +908,15 @@ MultiSend: %1 HelpMessageDialog - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core Intro - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core Error @@ -1093,8 +1093,8 @@ MultiSend: %1 SignVerifyMessageDialog - The ITTRIUM address to sign the message with - Adresa ITTRIUM, ktorou chcete správu podpísať + The Ittrium address to sign the message with + Adresa Ittrium, ktorou chcete správu podpísať Choose previously used address @@ -1117,16 +1117,16 @@ MultiSend: %1 Skopírujte aktuálny podpis do schránky - Sign the message to prove you own this ITTRIUM address - Podpíšte správu, aby ste preukázali, že ste vlastníkom tejto ITTRIUM adresy + Sign the message to prove you own this Ittrium address + Podpíšte správu, aby ste preukázali, že ste vlastníkom tejto Ittrium adresy - The ITTRIUM address the message was signed with - ITTRIUM adresa, ktorou bola správa podpísaná + The Ittrium address the message was signed with + Ittrium adresa, ktorou bola správa podpísaná - Verify the message to ensure it was signed with the specified ITTRIUM address - Skontrolujte správu, aby ste sa uistili, že bola podpísaná zadanou ITTRIUM adresou + Verify the message to ensure it was signed with the specified Ittrium address + Skontrolujte správu, aby ste sa uistili, že bola podpísaná zadanou Ittrium adresou Reset all sign message fields @@ -1164,8 +1164,8 @@ MultiSend: %1 SplashScreen - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core diff --git a/src/qt/locale/ittrium_sv.ts b/src/qt/locale/ittrium_sv.ts index df3582e..afd80af 100755 --- a/src/qt/locale/ittrium_sv.ts +++ b/src/qt/locale/ittrium_sv.ts @@ -58,12 +58,12 @@ Mottagar adresser - These are your ITTRIUM addresses for sending payments. Always check the amount and the receiving address before sending coins. - Det här är dina ITTRIUM adresser för att sända betalningar. Kontrollera alltid summan och mottagaradressen före du sänder mynt. + These are your Ittrium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Det här är dina Ittrium adresser för att sända betalningar. Kontrollera alltid summan och mottagaradressen före du sänder mynt. - These are your ITTRIUM addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Det här är dina ITTRIUM adresser för att ta emot betalningar. Det är rekomenderat att använda en ny mottagaradress för varje transaktion. + These are your Ittrium addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Det här är dina Ittrium adresser för att ta emot betalningar. Det är rekomenderat att använda en ny mottagaradress för varje transaktion. &Copy Address @@ -160,8 +160,8 @@ Bekräfta plånboks krypering - ITTRIUM will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. - ITTRIUM kommer att stängas ner nu för att färdigställa kryperingsprocessen. Kom ihåg att kryptering av din plånbok inte kan säkerställa dina XITs från att bli stulna av skadeprogram som infekterat din dator. + Ittrium will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. + Ittrium kommer att stängas ner nu för att färdigställa kryperingsprocessen. Kom ihåg att kryptering av din plånbok inte kan säkerställa dina XITs från att bli stulna av skadeprogram som infekterat din dator. Are you sure you wish to encrypt your wallet? @@ -232,8 +232,8 @@ Skriv in en lösenfras i den mellersta boxen. Tryck kryptera för att beräkna d Adress: - The ITTRIUM address to sign the message with - ITTRIUM adressen för signera meddelandet med + The Ittrium address to sign the message with + Ittrium adressen för signera meddelandet med Choose previously used address @@ -264,8 +264,8 @@ Skriv in en lösenfras i den mellersta boxen. Tryck kryptera för att beräkna d Kopiera den nuvarande signaturen till systemets urklipp - Sign the message to prove you own this ITTRIUM address - Signera meddelandet för att bevisa att du äger denna ITTRIUM adress + Sign the message to prove you own this Ittrium address + Signera meddelandet för att bevisa att du äger denna Ittrium adress Encrypt &Key @@ -288,12 +288,12 @@ Skriv in en lösenfras i den mellersta boxen. Tryck kryptera för att beräkna d Ange - The ITTRIUM address the message was signed with - ITTRIUM adressen meddelandet blev signerat med + The Ittrium address the message was signed with + Ittrium adressen meddelandet blev signerat med - Verify the message to ensure it was signed with the specified ITTRIUM address - Verifiera meddelandet för att säkerställa att de blev signerat med den specifika ITTRIUM adressen. + Verify the message to ensure it was signed with the specified Ittrium address + Verifiera meddelandet för att säkerställa att de blev signerat med den specifika Ittrium adressen. Decrypt &Key @@ -583,16 +583,16 @@ Skriv in en lösenfras i den mellersta boxen. Tryck kryptera för att beräkna d flik vertygsrad - ITTRIUM Core - ITTRIUM Kärna + Ittrium Core + Ittrium Kärna - Send coins to a ITTRIUM address - Skicka mynt till en ITTRIUM adress + Send coins to a Ittrium address + Skicka mynt till en Ittrium adress - Request payments (generates QR codes and xit: URIs) - Begär betalning (genererar QR kod och xit: URls) + Request payments (generates QR codes and ittrium: URIs) + Begär betalning (genererar QR kod och ittrium: URls) &Masternodes @@ -603,24 +603,24 @@ Skriv in en lösenfras i den mellersta boxen. Tryck kryptera för att beräkna d Utforska masternoder - &About ITTRIUM Core - Om ITTRIUM Kärnan + &About Ittrium Core + Om Ittrium Kärnan - Show information about ITTRIUM Core - Visa information om ITTRIUM Kärnan + Show information about Ittrium Core + Visa information om Ittrium Kärnan - Modify configuration options for ITTRIUM - Ändra konfigurationsval för ITTRIUM + Modify configuration options for Ittrium + Ändra konfigurationsval för Ittrium - Sign messages with your ITTRIUM addresses to prove you own them - Signera meddelanden med din ITTRIUM adress för att visa att du äger dem + Sign messages with your Ittrium addresses to prove you own them + Signera meddelanden med din Ittrium adress för att visa att du äger dem - Verify messages to ensure they were signed with specified ITTRIUM addresses - Verifiera meddelandet för att säkerställa att de blev signerat med den specifika ITTRIUM adressen. + Verify messages to ensure they were signed with specified Ittrium addresses + Verifiera meddelandet för att säkerställa att de blev signerat med den specifika Ittrium adressen. &BIP38 tool @@ -631,8 +631,8 @@ Skriv in en lösenfras i den mellersta boxen. Tryck kryptera för att beräkna d Kryptera och avkryptera privata nycklar genom användning av lösenfras - ITTRIUM Core client - ITTRIUM kärn klient + Ittrium Core client + Ittrium kärn klient %1 and %2 @@ -841,15 +841,15 @@ Skriv in en lösenfras i den mellersta boxen. Tryck kryptera för att beräkna d HelpMessageDialog - ITTRIUM Core - ITTRIUM Kärna + Ittrium Core + Ittrium Kärna Intro - ITTRIUM Core - ITTRIUM Kärna + Ittrium Core + Ittrium Kärna Error @@ -1106,8 +1106,8 @@ Skriv in en lösenfras i den mellersta boxen. Tryck kryptera för att beräkna d SignVerifyMessageDialog - The ITTRIUM address to sign the message with - ITTRIUM adressen för signera meddelandet med + The Ittrium address to sign the message with + Ittrium adressen för signera meddelandet med Choose previously used address @@ -1130,16 +1130,16 @@ Skriv in en lösenfras i den mellersta boxen. Tryck kryptera för att beräkna d Kopiera den nuvarande signaturen till systemets urklipp - Sign the message to prove you own this ITTRIUM address - Signera meddelandet för att bevisa att du äger denna ITTRIUM adress + Sign the message to prove you own this Ittrium address + Signera meddelandet för att bevisa att du äger denna Ittrium adress - The ITTRIUM address the message was signed with - ITTRIUM adressen meddelandet blev signerat med + The Ittrium address the message was signed with + Ittrium adressen meddelandet blev signerat med - Verify the message to ensure it was signed with the specified ITTRIUM address - Verifiera meddelandet för att säkerställa att de blev signerat med den specifika ITTRIUM adressen. + Verify the message to ensure it was signed with the specified Ittrium address + Verifiera meddelandet för att säkerställa att de blev signerat med den specifika Ittrium adressen. Reset all sign message fields @@ -1181,8 +1181,8 @@ Skriv in en lösenfras i den mellersta boxen. Tryck kryptera för att beräkna d SplashScreen - ITTRIUM Core - ITTRIUM Kärna + Ittrium Core + Ittrium Kärna diff --git a/src/qt/locale/ittrium_uk.ts b/src/qt/locale/ittrium_uk.ts index 1aeea23..688438d 100755 --- a/src/qt/locale/ittrium_uk.ts +++ b/src/qt/locale/ittrium_uk.ts @@ -62,12 +62,12 @@ Адреса отримання - These are your ITTRIUM addresses for sending payments. Always check the amount and the receiving address before sending coins. - Це ваша ITTRIUM-адреса для надсилання платежів. Завжди перевіряйте суму та адресу одержувача перед відправленням монет. + These are your Ittrium addresses for sending payments. Always check the amount and the receiving address before sending coins. + Це ваша Ittrium-адреса для надсилання платежів. Завжди перевіряйте суму та адресу одержувача перед відправленням монет. - These are your ITTRIUM addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - Це ваші ITTRIUM адреси для отримання платежів. Для кожної транзакції рекомендується використовувати нову адресу одержувача. + These are your Ittrium addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + Це ваші Ittrium адреси для отримання платежів. Для кожної транзакції рекомендується використовувати нову адресу одержувача. &Copy Address @@ -176,8 +176,8 @@ Підтвердження шифрування гаманця - ITTRIUM will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. - ITTRIUM зараз закриється, щоб завершити процес шифрування. Пам'ятайте, що шифрування гаманця не може повністю захистити ваші XIT'и від крадіжки зловмисним програмним забезпеченням, що заражає ваш комп'ютер. + Ittrium will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. + Ittrium зараз закриється, щоб завершити процес шифрування. Пам'ятайте, що шифрування гаманця не може повністю захистити ваші XIT'и від крадіжки зловмисним програмним забезпеченням, що заражає ваш комп'ютер. Are you sure you wish to encrypt your wallet? diff --git a/src/qt/locale/ittrium_zh_TW.ts b/src/qt/locale/ittrium_zh_TW.ts index ed01157..3986546 100755 --- a/src/qt/locale/ittrium_zh_TW.ts +++ b/src/qt/locale/ittrium_zh_TW.ts @@ -43,11 +43,11 @@ Choose the address to send coins to - 選擇要匯出ITTRIUM幣的位址 + 選擇要匯出Ittrium幣的位址 Choose the address to receive coins with - 選擇要接收ITTRIUM幣的位址 + 選擇要接收Ittrium幣的位址 C&hoose @@ -62,12 +62,12 @@ 接收的位址 - These are your ITTRIUM addresses for sending payments. Always check the amount and the receiving address before sending coins. - 這是你用來付款的 ITTRIUM 位址, 送出前, 請務必確認金額及接收位址是否正確. + These are your Ittrium addresses for sending payments. Always check the amount and the receiving address before sending coins. + 這是你用來付款的 Ittrium 位址, 送出前, 請務必確認金額及接收位址是否正確. - These are your ITTRIUM addresses for receiving payments. It is recommended to use a new receiving address for each transaction. - 這是你用來接收款項的 ITTRIUM 位址, 建議你每次付款都使用新的位址. + These are your Ittrium addresses for receiving payments. It is recommended to use a new receiving address for each transaction. + 這是你用來接收款項的 Ittrium 位址, 建議你每次付款都使用新的位址. &Copy Address @@ -164,8 +164,8 @@ 錢包確認加密 - ITTRIUM will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. - ITTRIUM 現在會關閉程式來處理加密流程, 請注意, 僅僅是加密你的錢包並不能完全保護你的 XIT 幣被可疑軟體或病毒偷走的風險. + Ittrium will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your XITs from being stolen by malware infecting your computer. + Ittrium 現在會關閉程式來處理加密流程, 請注意, 僅僅是加密你的錢包並不能完全保護你的 XIT 幣被可疑軟體或病毒偷走的風險. Are you sure you wish to encrypt your wallet? @@ -235,8 +235,8 @@ 位址: - The ITTRIUM address to sign the message with - 對訊息簽名的 ITTRIUM 位址 + The Ittrium address to sign the message with + 對訊息簽名的 Ittrium 位址 Choose previously used address @@ -267,8 +267,8 @@ 拷貝目前的簽章到系統剪貼簿 - Sign the message to prove you own this ITTRIUM address - 使用簽章來證明你是該 ITTRIUM 位址的擁有者, + Sign the message to prove you own this Ittrium address + 使用簽章來證明你是該 Ittrium 位址的擁有者, Encrypt &Key @@ -287,12 +287,12 @@ &BIP 38 解密 - The ITTRIUM address the message was signed with - 此訊息之 ITTRIUM 位址已簽章於 + The Ittrium address the message was signed with + 此訊息之 Ittrium 位址已簽章於 - Verify the message to ensure it was signed with the specified ITTRIUM address - 驗證訊息以確保該 ITTRIUM 位址已被簽章 + Verify the message to ensure it was signed with the specified Ittrium address + 驗證訊息以確保該 Ittrium 位址已被簽章 Decrypt &Key @@ -582,16 +582,16 @@ Tabs 工具列 - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core - Send coins to a ITTRIUM address - 送出錢幣到 ITTRIUM 地址 + Send coins to a Ittrium address + 送出錢幣到 Ittrium 地址 - Request payments (generates QR codes and xit: URIs) - 請求付款 (會產生 QR Code跟 xit 位址) + Request payments (generates QR codes and ittrium: URIs) + 請求付款 (會產生 QR Code跟 ittrium 位址) &Masternodes @@ -602,24 +602,24 @@ 瀏覽 Masternodes - &About ITTRIUM Core - &關於 ITTRIUM Core + &About Ittrium Core + &關於 Ittrium Core - Show information about ITTRIUM Core - 顯示 ITTRIUM Core 相關資訊 + Show information about Ittrium Core + 顯示 Ittrium Core 相關資訊 - Modify configuration options for ITTRIUM - 修改 ITTRIUM 設定 + Modify configuration options for Ittrium + 修改 Ittrium 設定 - Sign messages with your ITTRIUM addresses to prove you own them - 使用你的 ITTRIUM 位址對訊息簽章, 來證明你是擁有者 + Sign messages with your Ittrium addresses to prove you own them + 使用你的 Ittrium 位址對訊息簽章, 來證明你是擁有者 - Verify messages to ensure they were signed with specified ITTRIUM addresses - 驗證訊息簽章與 ITTRIUM 位址吻合 + Verify messages to ensure they were signed with specified Ittrium addresses + 驗證訊息簽章與 Ittrium 位址吻合 &BIP38 tool @@ -650,8 +650,8 @@ 打開Masternode設定檔 - Open a ITTRIUM: URI or payment request - 打開ITTRIUM: 位址或付款請求 + Open a Ittrium: URI or payment request + 打開Ittrium: 位址或付款請求 &Blockchain explorer @@ -662,12 +662,12 @@ 區塊鏈瀏覽視窗 - Show the ITTRIUM Core help message to get a list with possible ITTRIUM command-line options - 顯示 ITTRIUM Core 幫助訊息以取得 ITTRIUM 命令列表選項 + Show the Ittrium Core help message to get a list with possible Ittrium command-line options + 顯示 Ittrium Core 幫助訊息以取得 Ittrium 命令列表選項 - ITTRIUM Core client - ITTRIUM Core 客戶端 + Ittrium Core client + Ittrium Core 客戶端 @@ -696,15 +696,15 @@ HelpMessageDialog - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core Intro - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core @@ -817,8 +817,8 @@ SignVerifyMessageDialog - The ITTRIUM address to sign the message with - 對訊息簽名的 ITTRIUM 位址 + The Ittrium address to sign the message with + 對訊息簽名的 Ittrium 位址 Choose previously used address @@ -841,16 +841,16 @@ 拷貝目前的簽章到系統剪貼簿 - Sign the message to prove you own this ITTRIUM address - 使用簽章來證明你是該 ITTRIUM 位址的擁有者, + Sign the message to prove you own this Ittrium address + 使用簽章來證明你是該 Ittrium 位址的擁有者, - The ITTRIUM address the message was signed with - 此訊息之 ITTRIUM 位址已簽章於 + The Ittrium address the message was signed with + 此訊息之 Ittrium 位址已簽章於 - Verify the message to ensure it was signed with the specified ITTRIUM address - 驗證訊息以確保該 ITTRIUM 位址已被簽章 + Verify the message to ensure it was signed with the specified Ittrium address + 驗證訊息以確保該 Ittrium 位址已被簽章 Reset all sign message fields @@ -888,8 +888,8 @@ SplashScreen - ITTRIUM Core - ITTRIUM Core + Ittrium Core + Ittrium Core diff --git a/src/qt/masternodelist.cpp b/src/qt/masternodelist.cpp index 284de71..664cab8 100755 --- a/src/qt/masternodelist.cpp +++ b/src/qt/masternodelist.cpp @@ -11,6 +11,7 @@ #include "sync.h" #include "wallet.h" #include "walletmodel.h" +#include "qtmaterialflatbutton.h" #include #include diff --git a/src/qt/multisenddialog.cpp b/src/qt/multisenddialog.cpp index 14a6d4c..51177fd 100755 --- a/src/qt/multisenddialog.cpp +++ b/src/qt/multisenddialog.cpp @@ -1,13 +1,21 @@ #include "multisenddialog.h" +#include "ui_multisenddialog.h" #include "addressbookpage.h" +#include "addresstablemodel.h" #include "base58.h" #include "init.h" -#include "ui_multisenddialog.h" +#include "qtmaterialflatbutton.h" #include "walletmodel.h" -#include +#include "multisendconfigdialog.h" +#include +#include +#include +#include +#include #include -#include #include +#include +#include using namespace std; using namespace boost; @@ -17,8 +25,10 @@ MultiSendDialog::MultiSendDialog(QWidget* parent) : QDialog(parent), model(0) { ui->setupUi(this); - updateCheckBoxes(); + for (int i = 0; i < pwalletMain->vMultiSend.size(); i++) { + addAddress(pwalletMain->vMultiSend[i].first,true); + } } MultiSendDialog::~MultiSendDialog() @@ -31,169 +41,167 @@ void MultiSendDialog::setModel(WalletModel* model) this->model = model; } -void MultiSendDialog::setAddress(const QString& address) +void MultiSendDialog::updateCheckBoxes() { - setAddress(address, ui->multiSendAddressEdit); + ui->multiSendStakeCheckBox->setChecked(pwalletMain->fMultiSendStake); + ui->multiSendMasternodeCheckBox->setChecked(pwalletMain->fMultiSendMasternodeReward); + updateStatus(); } -void MultiSendDialog::setAddress(const QString& address, QLineEdit* addrEdit) -{ - addrEdit->setText(address); - addrEdit->setFocus(); -} - -void MultiSendDialog::updateCheckBoxes() -{ - ui->multiSendStakeCheckBox->setChecked(pwalletMain->fMultiSendStake); - ui->multiSendMasternodeCheckBox->setChecked(pwalletMain->fMultiSendMasternodeReward); +void MultiSendDialog::updateStatus() +{ + if (pwalletMain->fMultiSendStake && pwalletMain->fMultiSendMasternodeReward) { + ui->multiSendStatusLabel->setText(QStringLiteral("Enabled for Staking and Masternodes")); + } + else if (pwalletMain->fMultiSendStake) { + ui->multiSendStatusLabel->setText(QStringLiteral("Enabled for Staking")); + } + else if (pwalletMain->fMultiSendMasternodeReward) { + ui->multiSendStatusLabel->setText(QStringLiteral("Enabled for Masternodes")); + } + else { + ui->multiSendStatusLabel->setText(QStringLiteral("Disabled")); + } + } void MultiSendDialog::on_addressBookButton_clicked() { - if (model && model->getAddressTableModel()) { - AddressBookPage dlg(AddressBookPage::ForSelection, AddressBookPage::SendingTab, this); - dlg.setModel(model->getAddressTableModel()); - if (dlg.exec()) - setAddress(dlg.getReturnValue(), ui->multiSendAddressEdit); - } -} + if (model && model->getAddressTableModel()) { + AddressBookPage dlg(AddressBookPage::ForSelection, AddressBookPage::ReceivingTab, this); + dlg.setModel(model->getAddressTableModel()); + if (dlg.exec()) { + if (pwalletMain->indexOfMSAddress(dlg.getReturnValue().toStdString()) == -1) { + addAddress(dlg.getReturnValue().toStdString(), false); + } + else { + QMessageBox::warning(this, tr("MultiSend Status"), + tr("Address is already contained in MultiSend Vector"), + QMessageBox::Ok, QMessageBox::Ok); + } + } + } -void MultiSendDialog::on_viewButton_clicked() -{ - std::pair pMultiSend; - std::string strMultiSendPrint = ""; - if (pwalletMain->isMultiSendEnabled()) { - if (pwalletMain->fMultiSendStake) - strMultiSendPrint += "MultiSend Active for Stakes\n"; - else if (pwalletMain->fMultiSendStake) - strMultiSendPrint += "MultiSend Active for Masternode Rewards\n"; - } else - strMultiSendPrint += "MultiSend Not Active\n"; - - for (int i = 0; i < (int)pwalletMain->vMultiSend.size(); i++) { - pMultiSend = pwalletMain->vMultiSend[i]; - strMultiSendPrint += pMultiSend.first.c_str(); - strMultiSendPrint += " - "; - strMultiSendPrint += boost::lexical_cast(pMultiSend.second); - strMultiSendPrint += "% \n"; - } - ui->message->setProperty("status", "ok"); - ui->message->style()->polish(ui->message); - ui->message->setText(QString(strMultiSendPrint.c_str())); - return; } -void MultiSendDialog::on_addButton_clicked() -{ - bool fValidConversion = false; - std::string strAddress = ui->multiSendAddressEdit->text().toStdString(); - if (!CBitcoinAddress(strAddress).IsValid()) { - ui->message->setProperty("status", "error"); - ui->message->style()->polish(ui->message); - ui->message->setText(tr("The entered address:\n") + ui->multiSendAddressEdit->text() + tr(" is invalid.\nPlease check the address and try again.")); - ui->multiSendAddressEdit->setFocus(); - return; - } - int nMultiSendPercent = ui->multiSendPercentEdit->text().toInt(&fValidConversion, 10); - int nSumMultiSend = 0; - for (int i = 0; i < (int)pwalletMain->vMultiSend.size(); i++) - nSumMultiSend += pwalletMain->vMultiSend[i].second; - if (nSumMultiSend + nMultiSendPercent > 100) { - ui->message->setProperty("status", "error"); - ui->message->style()->polish(ui->message); - ui->message->setText(tr("The total amount of your MultiSend vector is over 100% of your stake reward\n")); - ui->multiSendAddressEdit->setFocus(); - return; - } - if (!fValidConversion || nMultiSendPercent > 100 || nMultiSendPercent <= 0) { - ui->message->setProperty("status", "error"); - ui->message->style()->polish(ui->message); - ui->message->setText(tr("Please Enter 1 - 100 for percent.")); - ui->multiSendPercentEdit->setFocus(); - return; - } - std::pair pMultiSend; - pMultiSend.first = strAddress; - pMultiSend.second = nMultiSendPercent; - pwalletMain->vMultiSend.push_back(pMultiSend); - ui->message->setProperty("status", "ok"); - ui->message->style()->polish(ui->message); - std::string strMultiSendPrint = ""; - for (int i = 0; i < (int)pwalletMain->vMultiSend.size(); i++) { - pMultiSend = pwalletMain->vMultiSend[i]; - strMultiSendPrint += pMultiSend.first.c_str(); - strMultiSendPrint += " - "; - strMultiSendPrint += boost::lexical_cast(pMultiSend.second); - strMultiSendPrint += "% \n"; - } - CWalletDB walletdb(pwalletMain->strWalletFile); - walletdb.WriteMultiSend(pwalletMain->vMultiSend); - ui->message->setText(tr("MultiSend Vector\n") + QString(strMultiSendPrint.c_str())); - return; +void MultiSendDialog::addAddress(std::string address, bool onLoad) { + if (!onLoad){ + std::pair>> pMultiSendAddress; + std::vector> vAddressConfig; + pwalletMain->vMultiSend.push_back(std::make_pair(address, vAddressConfig)); + CWalletDB walletdb(pwalletMain->strWalletFile); + walletdb.WriteMultiSend(pwalletMain->vMultiSend); + } + + QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + sizePolicy.setHorizontalStretch(0); + sizePolicy.setVerticalStretch(0); + QFrame* addressFrame = new QFrame(); + sizePolicy.setHeightForWidth(addressFrame->sizePolicy().hasHeightForWidth()); + addressFrame->setSizePolicy(sizePolicy); + addressFrame->setFrameShape(QFrame::StyledPanel); + addressFrame->setFrameShadow(QFrame::Raised); + addressFrame->setObjectName(QStringLiteral("addressFrame")); + + QVBoxLayout* frameLayout = new QVBoxLayout(addressFrame); + frameLayout->setSpacing(2); + frameLayout->setObjectName(QStringLiteral("frameLayout")); + frameLayout->setContentsMargins(6, 6, 6, 6); + + QHBoxLayout* addressLayout = new QHBoxLayout(); + addressLayout->setSpacing(4); + addressLayout->setObjectName(QStringLiteral("addressLayout")); + + QLabel* addressLabel = new QLabel(addressFrame); + addressLabel->setObjectName(QStringLiteral("addressLabel")); + addressLabel->setText(QString::fromStdString(address)); + addressLayout->addWidget(addressLabel); + + QIcon icon1; + icon1.addFile(QStringLiteral(":/icons/edit"), QSize(), QIcon::Normal, QIcon::Off); + QtMaterialFlatButton* addressConfigureButton = new QtMaterialFlatButton(addressFrame); + addressConfigureButton->setObjectName(QStringLiteral("addressConfigureButton")); + addressConfigureButton->setIcon(icon1); + addressConfigureButton->setText(QStringLiteral("Configure")); + addressConfigureButton->setAutoDefault(false); + connect(addressConfigureButton, SIGNAL(clicked()), this, SLOT(configureMultiSend())); + addressLayout->addWidget(addressConfigureButton); + + QIcon icon2; + icon2.addFile(QStringLiteral(":/icons/remove"), QSize(), QIcon::Normal, QIcon::Off); + QtMaterialFlatButton* addressDeleteButton = new QtMaterialFlatButton(addressFrame); + addressDeleteButton->setObjectName(QStringLiteral("addressDeleteButton")); + addressDeleteButton->setIcon(icon2); + addressDeleteButton->setText(QStringLiteral("Delete")); + addressDeleteButton->setAutoDefault(false); + connect(addressDeleteButton, SIGNAL(clicked()), this, SLOT(deleteFrame())); + addressLayout->addWidget(addressDeleteButton); + + + frameLayout->addLayout(addressLayout); + ui->addressList->addWidget(addressFrame); } -void MultiSendDialog::on_deleteButton_clicked() -{ - std::vector > vMultiSendTemp = pwalletMain->vMultiSend; - std::string strAddress = ui->multiSendAddressEdit->text().toStdString(); - bool fRemoved = false; - for (int i = 0; i < (int)pwalletMain->vMultiSend.size(); i++) { - if (pwalletMain->vMultiSend[i].first == strAddress) { - pwalletMain->vMultiSend.erase(pwalletMain->vMultiSend.begin() + i); - fRemoved = true; - } - } - CWalletDB walletdb(pwalletMain->strWalletFile); - if (!walletdb.EraseMultiSend(vMultiSendTemp)) - fRemoved = false; - if (!walletdb.WriteMultiSend(pwalletMain->vMultiSend)) - fRemoved = false; +void MultiSendDialog::configureMultiSend() { + QWidget *buttonWidget = qobject_cast(sender()); + if (!buttonWidget)return; - if (fRemoved) - ui->message->setText(tr("Removed ") + QString(strAddress.c_str())); - else - ui->message->setText(tr("Could not locate address\n")); + QFrame* frame = qobject_cast(buttonWidget->parentWidget()); + if (!frame)return; + QLabel* lbl = frame->findChild("addressLabel"); - updateCheckBoxes(); + if (!lbl)return; + std::string address = lbl->text().toStdString(); + MultiSendConfigDialog* multiSendConfigDialog = new MultiSendConfigDialog(this,address); + multiSendConfigDialog->setModel(model); + multiSendConfigDialog->show(); +} - return; +void MultiSendDialog::deleteFrame() { + + QWidget *buttonWidget = qobject_cast(sender()); + if (!buttonWidget)return; + + QFrame* frame = qobject_cast(buttonWidget->parentWidget()); + if (!frame)return; + CWalletDB walletdb(pwalletMain->strWalletFile); + walletdb.EraseMultiSend(pwalletMain->vMultiSend); + QLabel* lbl = frame->findChild("addressLabel"); + std::string address = lbl->text().toStdString(); + for (unsigned int i = 0; i < pwalletMain->vMultiSend.size(); i++) { + if (pwalletMain->vMultiSend[i].first==address) { + pwalletMain->vMultiSend.erase(pwalletMain->vMultiSend.begin() + i); + break; + } + } + walletdb.WriteMultiSend(pwalletMain->vMultiSend); + + delete frame; + } void MultiSendDialog::on_activateButton_clicked() { std::string strRet = ""; - if (pwalletMain->vMultiSend.size() < 1) - strRet = "Unable to activate MultiSend, check MultiSend vector\n"; - else if (!(ui->multiSendStakeCheckBox->isChecked() || ui->multiSendMasternodeCheckBox->isChecked())) { - strRet = "Need to select to send on stake and/or masternode rewards\n"; - } else if (CBitcoinAddress(pwalletMain->vMultiSend[0].first).IsValid()) { + if (!(ui->multiSendStakeCheckBox->isChecked() || ui->multiSendMasternodeCheckBox->isChecked())) { + QMessageBox::warning(this, tr("MultiSend Status"), + tr("Need to select to send for either staking or masternode rewards"), + QMessageBox::Ok, QMessageBox::Ok); + } else { pwalletMain->fMultiSendStake = ui->multiSendStakeCheckBox->isChecked(); pwalletMain->fMultiSendMasternodeReward = ui->multiSendMasternodeCheckBox->isChecked(); - CWalletDB walletdb(pwalletMain->strWalletFile); - if (!walletdb.WriteMSettings(pwalletMain->fMultiSendStake, pwalletMain->fMultiSendMasternodeReward, pwalletMain->nLastMultiSendHeight)) - strRet = "MultiSend activated but writing settings to DB failed"; - else - strRet = "MultiSend activated"; - } else - strRet = "First Address Not Valid"; - ui->message->setProperty("status", "ok"); - ui->message->style()->polish(ui->message); - ui->message->setText(tr(strRet.c_str())); + walletdb.WriteMSettings(pwalletMain->fMultiSendStake, pwalletMain->fMultiSendMasternodeReward, pwalletMain->nLastMultiSendHeight); + } + updateStatus(); return; } void MultiSendDialog::on_disableButton_clicked() { - std::string strRet = ""; pwalletMain->setMultiSendDisabled(); CWalletDB walletdb(pwalletMain->strWalletFile); - if (!walletdb.WriteMSettings(false, false, pwalletMain->nLastMultiSendHeight)) - strRet = "MultiSend deactivated but writing settings to DB failed"; - else - strRet = "MultiSend deactivated"; - ui->message->setProperty("status", ""); - ui->message->style()->polish(ui->message); - ui->message->setText(tr(strRet.c_str())); + walletdb.WriteMSettings(false, false, pwalletMain->nLastMultiSendHeight); + updateStatus(); return; } diff --git a/src/qt/multisenddialog.h b/src/qt/multisenddialog.h index 6e09fa5..201e03c 100755 --- a/src/qt/multisenddialog.h +++ b/src/qt/multisenddialog.h @@ -2,7 +2,6 @@ #define MULTISENDDIALOG_H #include -#include namespace Ui { @@ -10,29 +9,30 @@ class MultiSendDialog; } class WalletModel; -class QLineEdit; class MultiSendDialog : public QDialog { Q_OBJECT - void updateCheckBoxes(); + void updateStatus(); + void updateCheckBoxes(); + +private: + Ui::MultiSendDialog* ui; + WalletModel* model; public: explicit MultiSendDialog(QWidget* parent = 0); ~MultiSendDialog(); void setModel(WalletModel* model); - void setAddress(const QString& address); - void setAddress(const QString& address, QLineEdit* addrEdit); + private slots: - void on_viewButton_clicked(); - void on_addButton_clicked(); - void on_deleteButton_clicked(); + void addAddress(std::string address, bool onLoad); + void deleteFrame(); void on_activateButton_clicked(); void on_disableButton_clicked(); void on_addressBookButton_clicked(); + void configureMultiSend(); + -private: - Ui::MultiSendDialog* ui; - WalletModel* model; }; #endif // MULTISENDDIALOG_H diff --git a/src/qt/obfuscationconfig.cpp b/src/qt/obfuscationconfig.cpp index 7859a81..3808192 100755 --- a/src/qt/obfuscationconfig.cpp +++ b/src/qt/obfuscationconfig.cpp @@ -6,6 +6,7 @@ #include "init.h" #include "optionsmodel.h" #include "walletmodel.h" +#include "qtmaterialflatbutton.h" #include #include diff --git a/src/qt/openuridialog.cpp b/src/qt/openuridialog.cpp index 5f3a69f..ecd2381 100755 --- a/src/qt/openuridialog.cpp +++ b/src/qt/openuridialog.cpp @@ -7,6 +7,7 @@ #include "openuridialog.h" #include "ui_openuridialog.h" +#include "qtmaterialflatbutton.h" #include "guiutil.h" #include "walletmodel.h" @@ -32,7 +33,7 @@ QString OpenURIDialog::getURI() return ui->uriEdit->text(); } -void OpenURIDialog::accept() +void OpenURIDialog::on_acceptButton_clicked() { SendCoinsRecipient rcp; if (GUIUtil::parseBitcoinURI(getURI(), &rcp)) { @@ -43,6 +44,10 @@ void OpenURIDialog::accept() } } +void OpenURIDialog::on_cancelButton_clicked() { + this->close(); +} + void OpenURIDialog::on_selectFileButton_clicked() { QString filename = GUIUtil::getOpenFileName(this, tr("Select payment request file to open"), "", "", NULL); diff --git a/src/qt/openuridialog.h b/src/qt/openuridialog.h index 519e2ca..133faf7 100755 --- a/src/qt/openuridialog.h +++ b/src/qt/openuridialog.h @@ -22,11 +22,10 @@ class OpenURIDialog : public QDialog QString getURI(); -protected slots: - void accept(); - private slots: void on_selectFileButton_clicked(); + void on_acceptButton_clicked(); + void on_cancelButton_clicked(); private: Ui::OpenURIDialog* ui; diff --git a/src/qt/optionsdialog.cpp b/src/qt/optionsdialog.cpp index 45e2dcc..8adb5d9 100755 --- a/src/qt/optionsdialog.cpp +++ b/src/qt/optionsdialog.cpp @@ -13,6 +13,7 @@ #include "guiutil.h" #include "obfuscation.h" #include "optionsmodel.h" +#include "qtmaterialflatbutton.h" #include "main.h" // for MAX_SCRIPTCHECK_THREADS #include "netbase.h" @@ -166,6 +167,7 @@ void OptionsDialog::setModel(OptionsModel* model) connect(ui->threadsScriptVerif, SIGNAL(valueChanged(int)), this, SLOT(showRestartWarning())); /* Wallet */ connect(ui->spendZeroConfChange, SIGNAL(clicked(bool)), this, SLOT(showRestartWarning())); + connect(ui->showOrphans, SIGNAL(clicked(bool)), this, SLOT(showRestartWarning())); /* Network */ connect(ui->allowIncoming, SIGNAL(clicked(bool)), this, SLOT(showRestartWarning())); connect(ui->connectSocks, SIGNAL(clicked(bool)), this, SLOT(showRestartWarning())); @@ -186,6 +188,7 @@ void OptionsDialog::setMapper() /* Wallet */ mapper->addMapping(ui->spendZeroConfChange, OptionsModel::SpendZeroConfChange); + mapper->addMapping(ui->showOrphans, OptionsModel::ShowOrphans); mapper->addMapping(ui->coinControlFeatures, OptionsModel::CoinControlFeatures); /* Network */ diff --git a/src/qt/optionsmodel.cpp b/src/qt/optionsmodel.cpp index d5ad651..ace706e 100755 --- a/src/qt/optionsmodel.cpp +++ b/src/qt/optionsmodel.cpp @@ -71,10 +71,10 @@ void OptionsModel::Init() if (!settings.contains("fCoinControlFeatures")) settings.setValue("fCoinControlFeatures", false); - fCoinControlFeatures = settings.value("fCoinControlFeatures", false).toBool(); + fCoinControlFeatures = settings.value("fCoinControlFeatures").toBool(); if (!settings.contains("nObfuscationRounds")) - settings.setValue("nObfuscationRounds", 2); + settings.setValue("nObfuscationRounds", 3); if (!settings.contains("nAnonymizeIttriumAmount")) settings.setValue("nAnonymizeIttriumAmount", 1000); @@ -110,6 +110,9 @@ void OptionsModel::Init() settings.setValue("bSpendZeroConfChange", true); if (!SoftSetBoolArg("-spendzeroconfchange", settings.value("bSpendZeroConfChange").toBool())) addOverriddenOption("-spendzeroconfchange"); + if (!settings.contains("fShowOrphans")) + settings.setValue("fShowOrphans", true); + fShowOrphans = settings.value("fShowOrphans").toBool(); #endif // Network @@ -209,6 +212,8 @@ QVariant OptionsModel::data(const QModelIndex& index, int role) const return settings.value("bSpendZeroConfChange"); case ShowMasternodesTab: return settings.value("fShowMasternodesTab"); + case ShowOrphans: + return settings.value("fShowOrphans"); #endif case DisplayUnit: return nDisplayUnit; @@ -298,6 +303,11 @@ bool OptionsModel::setData(const QModelIndex& index, const QVariant& value, int setRestartRequired(true); } break; + case ShowOrphans: + if (settings.value("fShowOrphans") != value) { + settings.setValue("fShowOrphans", value); + setRestartRequired(true); + } case ShowMasternodesTab: if (settings.value("fShowMasternodesTab") != value) { settings.setValue("fShowMasternodesTab", value); diff --git a/src/qt/optionsmodel.h b/src/qt/optionsmodel.h index c53395d..7125192 100755 --- a/src/qt/optionsmodel.h +++ b/src/qt/optionsmodel.h @@ -43,6 +43,7 @@ class OptionsModel : public QAbstractListModel ThreadsScriptVerif, // int DatabaseCache, // int SpendZeroConfChange, // bool + ShowOrphans, // bool ObfuscationRounds, // int AnonymizeIttriumAmount, //int ShowMasternodesTab, // bool @@ -80,6 +81,7 @@ class OptionsModel : public QAbstractListModel QString language; int nDisplayUnit; QString strThirdPartyTxUrls; + bool fShowOrphans; bool fCoinControlFeatures; /* settings that were overriden by command-line */ QString strOverriddenByCommandLine; diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp index 643a331..58c1a03 100755 --- a/src/qt/overviewpage.cpp +++ b/src/qt/overviewpage.cpp @@ -19,15 +19,17 @@ #include "transactionfilterproxy.h" #include "transactiontablemodel.h" #include "walletmodel.h" +#include "qtmaterialflatbutton.h" #include #include #include #include +#include #define DECORATION_SIZE 48 #define ICON_OFFSET 16 -#define NUM_ITEMS 5 +#define NUM_ITEMS 15 class TxViewDelegate : public QAbstractItemDelegate { @@ -85,7 +87,9 @@ class TxViewDelegate : public QAbstractItemDelegate if (!confirmed) { amountText = QString("[") + amountText + QString("]"); } + painter->setFont(QFont("Roboto", 10, QFont::Bold)); painter->drawText(amountRect, Qt::AlignRight | Qt::AlignVCenter, amountText); + painter->setFont(QFont("Roboto", 10, QFont::Medium)); painter->setPen(COLOR_BLACK); painter->drawText(amountRect, Qt::AlignLeft | Qt::AlignVCenter, GUIUtil::dateTimeStr(date)); @@ -178,25 +182,24 @@ void OverviewPage::setBalance(const CAmount& balance, const CAmount& unconfirmed currentWatchUnconfBalance = watchUnconfBalance; currentWatchImmatureBalance = watchImmatureBalance; - - ui->labelBalance->setText(BitcoinUnits::floorHtmlWithUnit(nDisplayUnit, balance, false, BitcoinUnits::separatorAlways)); + ui->labelBalance->setText(BitcoinUnits::floorHtmlWithUnit(nDisplayUnit, balance-immatureBalance, false, BitcoinUnits::separatorAlways)); ui->labelUnconfirmed->setText(BitcoinUnits::floorHtmlWithUnit(nDisplayUnit, unconfirmedBalance, false, BitcoinUnits::separatorAlways)); ui->labelImmature->setText(BitcoinUnits::floorHtmlWithUnit(nDisplayUnit, immatureBalance, false, BitcoinUnits::separatorAlways)); ui->labelAnonymized->setText(BitcoinUnits::floorHtmlWithUnit(nDisplayUnit, anonymizedBalance, false, BitcoinUnits::separatorAlways)); ui->labelTotal->setText(BitcoinUnits::floorHtmlWithUnit(nDisplayUnit, balance + unconfirmedBalance, false, BitcoinUnits::separatorAlways)); - - ui->labelWatchAvailable->setText(BitcoinUnits::floorHtmlWithUnit(nDisplayUnit, watchOnlyBalance, false, BitcoinUnits::separatorAlways)); + ui->labelWatchAvailable->setText(BitcoinUnits::floorHtmlWithUnit(nDisplayUnit, watchOnlyBalance-watchOnlyBalance, false, BitcoinUnits::separatorAlways)); ui->labelWatchPending->setText(BitcoinUnits::floorHtmlWithUnit(nDisplayUnit, watchUnconfBalance, false, BitcoinUnits::separatorAlways)); ui->labelWatchImmature->setText(BitcoinUnits::floorHtmlWithUnit(nDisplayUnit, watchImmatureBalance, false, BitcoinUnits::separatorAlways)); - ui->labelWatchTotal->setText(BitcoinUnits::floorHtmlWithUnit(nDisplayUnit, watchOnlyBalance + watchUnconfBalance + watchImmatureBalance, false, BitcoinUnits::separatorAlways)); + ui->labelWatchTotal->setText(BitcoinUnits::floorHtmlWithUnit(nDisplayUnit, watchOnlyBalance + watchUnconfBalance, false, BitcoinUnits::separatorAlways)); // only show immature (newly mined) balance if it's non-zero, so as not to complicate things // for the non-mining users bool showImmature = immatureBalance != 0; bool showWatchOnlyImmature = watchImmatureBalance != 0; - + // for symmetry reasons also show immature label when the watch-only one is shown + // watch balances include addresses that are imported to watch without the priv. key. ui->labelImmature->setVisible(showImmature || showWatchOnlyImmature); ui->labelImmatureText->setVisible(showImmature || showWatchOnlyImmature); ui->labelWatchImmature->setVisible(showWatchOnlyImmature); // show watch-only immature balance @@ -211,23 +214,30 @@ void OverviewPage::setBalance(const CAmount& balance, const CAmount& unconfirmed } } +void OverviewPage::on_toggleStaking_clicked() +{ + if (walletModel->getEncryptionStatus() == WalletModel::Locked) { + WalletModel::UnlockContext ctx(walletModel->requestUnlock(false)); + } + else { + QMessageBox::information(this, tr("Staking"), + tr("Staking is already enabled"), + QMessageBox::Ok, QMessageBox::Ok); + } +} + // show/hide watch-only labels void OverviewPage::updateWatchOnlyLabels(bool showWatchOnly) { ui->labelSpendable->setVisible(showWatchOnly); // show spendable label (only when watch-only is active) ui->labelWatchonly->setVisible(showWatchOnly); // show watch-only label - ui->lineWatchBalance->setVisible(showWatchOnly); // show watch-only balance separator line + //ui->lineWatchOnlyBalance->setVisible(showWatchOnly); // show watch-only balance separator line ui->labelWatchAvailable->setVisible(showWatchOnly); // show watch-only available balance ui->labelWatchPending->setVisible(showWatchOnly); // show watch-only pending balance ui->labelWatchTotal->setVisible(showWatchOnly); // show watch-only total balance if (!showWatchOnly) { ui->labelWatchImmature->hide(); - } else { - ui->labelBalance->setIndent(20); - ui->labelUnconfirmed->setIndent(20); - ui->labelImmature->setIndent(20); - ui->labelTotal->setIndent(20); } } @@ -493,7 +503,7 @@ void OverviewPage::toggleObfuscation() settings.setValue("hasMixed", "hasMixed"); } if (!fEnableObfuscation) { - CAmount balance = currentBalance; + int64_t balance = currentBalance; float minAmount = 14.90 * COIN; if (balance < minAmount) { QString strMinAmount(BitcoinUnits::formatWithUnit(nDisplayUnit, minAmount)); diff --git a/src/qt/overviewpage.h b/src/qt/overviewpage.h index 23ef35c..ea9859e 100755 --- a/src/qt/overviewpage.h +++ b/src/qt/overviewpage.h @@ -39,8 +39,8 @@ class OverviewPage : public QWidget public slots: void obfuScationStatus(); - void setBalance(const CAmount& balance, const CAmount& unconfirmedBalance, const CAmount& immatureBalance, const CAmount& anonymizedBalance, const CAmount& watchOnlyBalance, const CAmount& watchUnconfBalance, const CAmount& watchImmatureBalance); - + void setBalance(const CAmount& balance, const CAmount& unconfirmedBalance, const CAmount& immatureBalance, const CAmount& anonymizedBalance, const CAmount& watchOnlyBalance, const CAmount& watchUnconfBalance, const CAmount& watchImmatureBalance); + void on_toggleStaking_clicked(); signals: void transactionClicked(const QModelIndex& index); diff --git a/src/qt/paymentrequestplus.cpp b/src/qt/paymentrequestplus.cpp index d76fafc..a8c9bbe 100755 --- a/src/qt/paymentrequestplus.cpp +++ b/src/qt/paymentrequestplus.cpp @@ -154,14 +154,24 @@ bool PaymentRequestPlus::getMerchant(X509_STORE* certStore, QString& merchant) c std::string data_to_verify; // Everything but the signature rcopy.SerializeToString(&data_to_verify); - EVP_MD_CTX ctx; +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + EVP_MD_CTX *ctx = EVP_MD_CTX_new(); + if (!ctx) throw SSLVerifyError("Error allocating OpenSSL context."); +#else + EVP_MD_CTX _ctx; + EVP_MD_CTX *ctx; + ctx = &_ctx; +#endif EVP_PKEY* pubkey = X509_get_pubkey(signing_cert); - EVP_MD_CTX_init(&ctx); - if (!EVP_VerifyInit_ex(&ctx, digestAlgorithm, NULL) || - !EVP_VerifyUpdate(&ctx, data_to_verify.data(), data_to_verify.size()) || - !EVP_VerifyFinal(&ctx, (const unsigned char*)paymentRequest.signature().data(), paymentRequest.signature().size(), pubkey)) { + EVP_MD_CTX_init(ctx); + if (!EVP_VerifyInit_ex(ctx, digestAlgorithm, NULL) || + !EVP_VerifyUpdate(ctx, data_to_verify.data(), data_to_verify.size()) || + !EVP_VerifyFinal(ctx, (const unsigned char*)paymentRequest.signature().data(), paymentRequest.signature().size(), pubkey)) { throw SSLVerifyError("Bad signature, invalid PaymentRequest."); } +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + EVP_MD_CTX_free(ctx); +#endif // OpenSSL API for getting human printable strings from certs is baroque. int textlen = X509_NAME_get_text_by_NID(certname, NID_commonName, NULL, 0); diff --git a/src/qt/receiverequestdialog.cpp b/src/qt/receiverequestdialog.cpp index 05029d9..0d6d3e0 100755 --- a/src/qt/receiverequestdialog.cpp +++ b/src/qt/receiverequestdialog.cpp @@ -10,6 +10,7 @@ #include "guiutil.h" #include "optionsmodel.h" #include "walletmodel.h" +#include "qtmaterialflatbutton.h" #include #include @@ -137,7 +138,7 @@ void ReceiveRequestDialog::update() html += ""; html += "" + tr("Payment information") + "
"; html += "" + tr("URI") + ": "; - html += "
" + GUIUtil::HtmlEscape(uri) + "
"; + html += "" + GUIUtil::HtmlEscape(uri) + "
"; html += "" + tr("Address") + ": " + GUIUtil::HtmlEscape(info.address) + "
"; if (info.amount) html += "" + tr("Amount") + ": " + BitcoinUnits::formatWithUnit(model->getDisplayUnit(), info.amount) + "
"; @@ -182,6 +183,11 @@ void ReceiveRequestDialog::on_btnCopyURI_clicked() GUIUtil::setClipboard(GUIUtil::formatBitcoinURI(info)); } +void ReceiveRequestDialog::on_closeButton_clicked() +{ + this->close(); +} + void ReceiveRequestDialog::on_btnCopyAddress_clicked() { GUIUtil::setClipboard(info.address); diff --git a/src/qt/receiverequestdialog.h b/src/qt/receiverequestdialog.h index b3167de..853a07e 100755 --- a/src/qt/receiverequestdialog.h +++ b/src/qt/receiverequestdialog.h @@ -59,7 +59,7 @@ class ReceiveRequestDialog : public QDialog private slots: void on_btnCopyURI_clicked(); void on_btnCopyAddress_clicked(); - + void on_closeButton_clicked(); void update(); private: diff --git a/src/qt/res/css/default.css b/src/qt/res/css/default.css index bd76edf..70f85b7 100755 --- a/src/qt/res/css/default.css +++ b/src/qt/res/css/default.css @@ -1,1625 +1,1038 @@ -/****************************************************************************************/ -/*************** [COLOR CODES] LIGHT blue:#33A3DC *****************/ -/****************************************************************************************/ - - WalletFrame { -border-image: url(':/images/walletFrame_bg') 0 0 0 0 stretch stretch; -border-top:0px solid #000; -margin:0; -padding:0; + border-image: url(':/images/walletFrame_bg') 0 0 0 0 stretch stretch; + border-top: 0px solid #000; + margin: 0; + padding: 0 } - QStatusBar { -background-color:#ffffff; + background-color: #ffffff } - -.QFrame { -background-color:transparent; -border:0px solid #fff; +QFrame { + background-color: transparent; + border: 0px solid #fff } - QMenuBar { -background-color:#fff; + background-color: #fff } - QMenuBar::item { -background-color:#fff; -color:#333; + background-color: #fff } - QMenuBar::item:selected { -background-color:#f8f6f6; + background-color: #fafefd } - QMenu { -background-color:#f8f6f6; + background-color: #fafefd } - QMenu::item { -color:#333; + color: #333 } - QMenu::item:selected { -background-color:#f2f0f0; -color:#333; + background-color: #f2f0f0; + color: #333 } - QToolBar { -background-color:#33A3DC; -border:0px solid #000; -padding:0; -margin:0; + font-family: "Roboto"; + QFont::Medium; + background-color: #33A3DC; + margin: 0; + width: 90px } - QToolBar > QToolButton { -background-color:#33A3DC; -border:0px solid #333; -min-height:2.5em; -padding: 0em 1em; -font-weight:bold; -color:#fff; + alignment: left; + background-color: #33A3DC; + border-left: 0px; + border-right: 0px; + border-top: 0px; + min-height:3em; + padding-top:10px; + padding-bottom:10px; + font-size: 16px; + width: 120px; + height: 60px; + color: #fff } - QToolBar > QToolButton:checked { -background-color:#fff; -color:#333; -font-weight:bold; + background-color: #ffffff; + color: #333 +} +QToolBar > QToolButton:hover { + background-color: #c0c0c0; + color: #fff +} +QToolBar > QToolButton#ToolbarSpacer:hover:!selected { + background-color: #c0c0c0; +} +QToolBar > QToolButton:pressed { + background-color: #ffffff; + color: #333 } - QMessageBox { -background-color:#F8F6F6; + background-color: #fff } - QProgressBar { -color:#d2d2d2; -border:2px solid grey; -border-radius:5px; -background-color:transparent; + border: 1px solid grey; + border-radius: 5px; + background-color: transparent; + padding-left: 0px; + padding-right: 0px } - QProgressBar::chunk { -background-color:#33A3DC; -width: 20px; + background-color: #33A3DC; + width: 20px +} +QLabel#progressBarLabel { + background-color: transparent; + text-color: #000; + position: fixed; + qproperty-alignment: AlignCenter; } - QTabWidget { -background-color:#f2f2f2; + background-color: #f2f2f2 } - QTabWidget::pane { -background-color:#f2f2f2; -border:1px solid #c2c2c2; + background-color: #f2f2f2; + border: 1px solid #c2c2c2 } - QTabBar { -background-color:#f2f2f2; -color:#333; + background-color: #f2f2f2; + color: #333 } - QTabBar::tab:hover:!selected { -background-color:#dedbe5; + background-color: #c0c0c0 } - QWidget { -selection-background-color:#33A3DC; /* Object highlight color */ -selection-color:#fff; -outline:0; /* Remove Annoying Focus Rectangle */ + selection-background-color: #33A3DC; + selection-color: #fff; + outline: 0; } - QGroupBox { -background-color:#fcfcfc; -color:#333; + background-color: #fcfcfc; + color: #333 } - QToolTip { -background-color:#dedbe5; -color:#333; + background-color: #f2f2f2; + color: #333; + border: 1px solid #333; } - -QTextEdit { -background-color:#fff; -color:#333; +QLabel { + font-size: 14px; + color: #333333 } - -/****************************************************************************************/ - -QLabel { /* Base Text Size & Color */ -font-size:12px; -color:#333333; +QRadioButton { + color: #333333 } - -.QRadioButton { /* Radio Button Labels */ -color:#333333; -} - -.QCheckBox { /* Checkbox Labels */ -color:#333333; -background-color:transparent; -} - -.QCheckBox:hover { -background-color:transparent; -} - -.QValidatedLineEdit, .QLineEdit { /* Text Entry Fields */ -border: 1px solid #33A3DC; -font-size:11px; -min-height:25px; -outline:0; -padding:3px; -background-color:#fcfcfc; -color:#333333; -} - -.QLineEdit:!focus { -font-size:12px; -} - -.QValidatedLineEdit:disabled, .QLineEdit:disabled { -background-color:#f2f2f2; -} - -/****************************************************************************************/ - -QPushButton { /* Global Button Style ad001f */ -background-color: #111E63; -border:0; -border-radius:3px; -color:#ffffff; -font-size:12px; -font-weight:bold; -padding-left:25px; -padding-right:25px; -padding-top:5px; -padding-bottom:5px; -} - -QPushButton:hover { /* e21d40*/ -background-color: #808080; -} - -QPushButton:focus { -border:none; -outline:none; -} - -QPushButton:pressed { -border:1px solid #333; +QCheckBox { + color: #333333 } - -QComboBox { /* Dropdown Menus */ -border:1px solid #33A3DC; -padding: 3px 5px 3px 5px; -background:#fcfcfc; -min-height:25px; -color:#818181; +QCheckBox:hover {} .QValidatedLineEdit, +QLineEdit, +QTextEdit { + font-size: 12px; + min-height: 25px; + outline: 0; + border-radius: 10px; + padding: 3px; + border: 0px; + color: #333; + background-color: #f2f2f2 +} +QValidatedLineEdit:!focus { + color: #33A3DC; + background-color: #e7e7e7 +} +QLineEdit:!focus { + color: #33A3DC; + background-color: #e7e7e7 +} +QTextEdit:!focus { + color: #33A3DC; + background-color: #e7e7e7 +} +QValidatedLineEdit:disabled, +QLineEdit:disabled, +QTextEdit:disabled { + color: #33A3DC; + background-color: #f2f2f2 +} +QPlainTextEdit { + background-color: #f2f2f2 +} +QtMaterialFlatButton { + background-color: transparent; + border-width: 1px; + border-style: solid; + border-color: #33A3DC; + border-radius: 4px; + color: #33A3DC; + font-size: 12px; + font-weight: 700; + padding-left: 25px; + padding-right: 25px; + padding-top: 1px; + padding-bottom: 1px; + height: 26px; + margin: 2px +} +QtMaterialFlatButton:hover { + background-color: #e4e4e4 +} +QtMaterialFlatButton:focus {} QtMaterialFlatButton:pressed { + background-color: #33A3DC; + background-color: #c0c0c0 +} +QLabel#labelEncryptionIcon, +QLabel#labelConnectionsIcon, +QLabel#labelBlocksIcon, +QtMaterialFlatButton#labelAutoMintIcon{ + border: 0px; + padding-left: 0px; + padding-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + margin: 0px +} +QSpinBox::up-button:hover { + background-color: #c0c0c0 +} +QSpinBox::down-button:hover { + background-color: #c0c0c0 +} +QComboBox { + border: 1px solid #ffffff; + border-radius: 10px; + padding: 3px 5px 3px 5px; + background: #fcfcfc; + min-height: 25px; + color: #818181 } - QComboBox:checked { -background:#f2f2f2; + background: #f2f2f2 } - QComboBox:editable { -background:#808080; -color:#616161; -border:0px solid transparent; + background: #33A3DC; + color: #616161; + border: 0px solid transparent } - QComboBox::drop-down { -width:25px; -border:0px; + width: 25px; + border: 0px } - QComboBox::down-arrow { -border-image: url(':/images/downArrow') 0 0 0 0 stretch stretch; + border-image: url(':/images/downArrow') 0 0 0 0 stretch stretch } - QComboBox QListView { -background:#fff; -border:1px solid #333; -padding-right:1px; -padding-left:1px; -color:#818181; + background: #fff; + border: 1px solid #333; + padding-right: 1px; + padding-left: 1px; + color: #818181 } - QComboBox QAbstractItemView::item { -margin:4px; + margin: 4px } - QComboBox::item { -color:#818181; + color: #818181 } - QComboBox::item:alternate { -background:#fff; + background: #fff } - QComboBox::item:selected { -border:0px solid transparent; -background:#f2f2f2; + border: 0px solid transparent; + background: #f2f2f2 } - QComboBox::indicator { -background-color:transparent; -selection-background-color:transparent; -color:transparent; -selection-color:transparent; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: transparent } - QAbstractSpinBox { -border:1px solid #33A3DC; -padding: 3px 5px 3px 5px; -background:#fcfcfc; -min-height:25px; -color:#818181; + border-radius: 10px; + padding: 3px 5px 3px 5px; + background: #fcfcfc; + font-size: 12px; + min-height: 25px; + outline: 0; + padding: 3px; + border: 0px; + color: #333; + background-color: #f2f2f2 +} +QAbstractSpinBox:!focus { + color: #33A3DC; + background-color: #e7e7e7 } - QAbstractSpinBox::up-button { -subcontrol-origin: border; -subcontrol-position: top right; -width:21px; -background:#fcfcfc; -border-left:0px; -border-right:1px solid #33A3DC; -border-top:1px solid #33A3DC; -border-bottom:0px; -padding-right:1px; -padding-left:5px; -padding-top:2px; + subcontrol-origin: border; + subcontrol-position: top right; + width: 21px; + background: #e7e7e7; + padding-right: 1px; + padding-left: 5px; + padding-top: 2px } - QAbstractSpinBox::up-arrow { -image:url(':/images/upArrow_small'); + image: url(':/images/upArrow_small') } - QAbstractSpinBox::down-button { -subcontrol-origin: border; -subcontrol-position: bottom right; -width:21px; -background:#fcfcfc; -border-top:0px; -border-left:0px; -border-right:1px solid #33A3DC; -border-bottom:1px solid #33A3DC; -padding-right:1px; -padding-left:5px; -padding-bottom:2px; + subcontrol-origin: border; + subcontrol-position: bottom right; + width: 21px; + background: #e7e7e7; + padding-right: 1px; + padding-left: 5px; + padding-bottom: 2px } - QAbstractSpinBox::down-arrow { -image:url(':/images/downArrow_small'); -} - -/****************************************************************************************/ - -QHeaderView { /* Table Header */ -background-color:transparent; -outline:0; -} - -QHeaderView::section { /* Table Header Sections */ -qproperty-alignment:center; -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.25, stop: 0 #33A3DC, stop: 1 #33A3DC); -color:#fff; -min-height:25px; -font-weight:bold; -font-size:11px; -border:0; -border-right:1px solid #fff; -padding-left:5px; -padding-right:5px; -padding-top:2px; -padding-bottom:2px; + image: url(':/images/downArrow_small') +} +QValueComboBox { + padding: 3px 5px 3px 5px; + background: #fcfcfc; + border-radius: 10px; + font-size: 12px; + min-height: 25px; + outline: 0; + padding: 3px; + border: 0px; + color: #333; + background-color: #f2f2f2 +} +QValueComboBox:!focus { + color: #33A3DC; + background-color: #e7e7e7 +} +QHeaderView { + background-color: transparent; + outline: 0 +} +QHeaderView::section { + qproperty-alignment: center; + background-color: #33A3DC; + color: #fff; + min-height: 25px; + font-weight: 700; + font-size: 12px; + border: 0; + border-right: 1px solid #fff; + padding-left: 5px; + padding-right: 5px; + padding-top: 2px; + padding-bottom: 2px +} +QHeaderView::down-arrow { + image: url(':/images/downArrow_small_white') +} +QHeaderView::up-arrow { + image: url(':/images/upArrow_small_white') } - QHeaderView::section:last { -border-right:0; + border-right: 0 } - .QScrollArea { -background:transparent; -border:0; -} - -.QTableView { /* Table - has to be selected as a class otherwise it throws off QCalendarWidget */ -background:transparent; -border:1px solid #333; -} - -QTableView::item { /* Table Item */ -background-color:#fcfcfc; -font-size:12px; -} - -QTableView::item:selected { /* Table Item Selected */ -background-color:#33A3DC; -color:#fff; -} - -QTableWidget { /* Table Background */ -background-color:#4169E3; /*#was red;*/ -border:1px solid #333; -} - -QTableWidget:focus, QTableView, QTableView:focus { /* Remove focus outline */ -outline:0; -background:transparent; -} - -QTreeWidget { /* Tree Background */ -background-color:#fcfcfc; -alternate-background-color:#f2f2f2; -color:#333; -} - -QScrollBar { /* Scroll Bar */ - -} - -QScrollBar:vertical { /* Vertical Scroll Bar Attributes */ -border:0; -background:#ffffff; -width:18px; -margin:18px 0px 18px 0px; -} - -QScrollBar:horizontal { /* Horizontal Scroll Bar Attributes */ -border:0; -background:#ffffff; -height:18px; -margin:0px 18px 0px 18px; -} - - -QScrollBar::handle:vertical { /* Scroll Bar Slider - vertical */ -background:#e0e0e0; -min-height:10px; -} - -QScrollBar::handle:horizontal { /* Scroll Bar Slider - horizontal */ -background:#e0e0e0; -min-width:10px; -} - -QScrollBar::add-page, QScrollBar::sub-page { /* Scroll Bar Background */ -background:#F8F6F6; -} - -QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical, QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { /* Define Arrow Button Dimensions */ -background-color:#F8F6F6; -border: 1px solid #f2f0f0; -width:16px; -height:16px; -} - -QScrollBar::add-line:vertical:pressed, QScrollBar::sub-line:vertical:pressed, QScrollBar::add-line:horizontal:pressed, QScrollBar::sub-line:horizontal:pressed { -background-color:#e0e0e0; -} - -QScrollBar::sub-line:vertical { /* Vertical - top button position */ -subcontrol-position:top; -subcontrol-origin: margin; -} - -QScrollBar::add-line:vertical { /* Vertical - bottom button position */ -subcontrol-position:bottom; -subcontrol-origin: margin; -} - -QScrollBar::sub-line:horizontal { /* Vertical - left button position */ -subcontrol-position:left; -subcontrol-origin: margin; -} - -QScrollBar::add-line:horizontal { /* Vertical - right button position */ -subcontrol-position:right; -subcontrol-origin: margin; -} - -QScrollBar:up-arrow, QScrollBar:down-arrow, QScrollBar:left-arrow, QScrollBar:right-arrow { /* Arrows Icon */ -width:10px; -height:10px; -} - -QScrollBar:up-arrow { -background-image: url(':/images/upArrow_small'); -} - -QScrollBar:down-arrow { -background-image: url(':/images/downArrow_small'); -} - -QScrollBar:left-arrow { -background-image: url(':/images/leftArrow_small'); -} - -QScrollBar:right-arrow { -background-image: url(':/images/rightArrow_small'); -} - -QSlider::handle:horizontal { -background-color:#f2f2f2; -border:1px solid #c2c2c2; -border-radius:10px; + background: transparent; + border: 0 +} +.QTableView { + background: transparent; + border: 1px solid #333 +} +QTableView::item { + background-color: #fcfcfc; + font-size: 12px +} +QTableView::item:selected { + background-color: #ddd; + color: ffff; +} +QTableWidget { + background-color: #fcfcfc; + alternate-background-color: #FFFF00; + border: 1px solid #333 +} +QTableWidget:focus, +QTableView, +QTableView:focus { + outline: 0; + background: transparent +} +QTreeWidget { + background-color: #fcfcfc; + alternate-background-color: #f2f2f2; + color: #333 +} +QSlider::groove:horizontal { + border: 1px solid #bbb; + background: white; + height: 10px; + border-radius: 4px; } - QSlider::sub-page:horizontal { -background-color:#33A3DC; -border-color:#c2c2c2; -border-radius:3px; + background: #777; + border: 1px solid #777; + height: 10px; + border-radius: 4px; } - QSlider::add-page:horizontal { -background-color:#dedede; -border:1px solid #c2c2c2; -border-radius:3px; + background: #fff; + border: 1px solid #777; + height: 10px; + border-radius: 4px; +} +QSlider::handle:horizontal { + background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 1, stop: 0 #eee, stop: 1 #ccc); + border: 1px solid #777; + width: 13px; + margin-top: -2px; + margin-bottom: -2px; + border-radius: 4px; +} +QSlider::handle:horizontal:hover { + background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 1, stop: 0 #fff, stop: 1 #ddd); + border: 1px solid #444; + border-radius: 4px; } - -/**************************** DIALOG BOXES **********************************************/ - QDialog { -background-color: #f8f6f6; + background-color: #fff +} +AskPassphraseDialog { + background-color: #fff } - QDialog .QTabWidget { -border-bottom:1px solid #333; + border-bottom: 1px solid #333 } - QDialog .QTabWidget::pane { -border: 1px solid #d7d7d7; + border: 1px solid #d7d7d7 } - QDialog .QTabWidget QTabBar::tab { -background-color:#f2f0f0; -color:#333; -padding-left:10px; -padding-right:10px; -padding-top:5px; -padding-bottom:5px; -border-top: 1px solid #d7d7d7; + background-color: #fafefd; + color: #333; + padding-left: 10px; + padding-right: 10px; + padding-top: 5px; + padding-bottom: 5px; + border-top: 1px solid #d7d7d7 } - QDialog .QTabWidget QTabBar::tab:first { -border-left: 1px solid #d7d7d7; + border-left: 1px solid #d7d7d7 } - QDialog .QTabWidget QTabBar::tab:last { -border-right: 1px solid #d7d7d7; + border-right: 1px solid #d7d7d7 } - -QDialog .QTabWidget QTabBar::tab:selected, QDialog .QTabWidget QTabBar::tab:hover { -background-color:#ffffff; -color:#333; +QDialog .QTabWidget QTabBar::tab:selected, +QDialog .QTabWidget QTabBar::tab:hover { + background-color: #ffffff; + color: #333 } - QDialog .QTabWidget .QWidget { -background-color:#fff; -color:#333; + background-color: #fff; + color: #333 } - QDialog .QTabWidget .QWidget QAbstractSpinBox { -min-height:15px; + border-radius: 10px; + min-height: 15px } - QDialog .QTabWidget .QWidget QAbstractSpinBox::down-button { -width:15px; + width: 15px } - QDialog .QTabWidget .QWidget QAbstractSpinBox::up-button { -width:15px; + width: 15px } - QDialog .QTabWidget .QWidget QComboBox { -min-height:15px; + border-radius: 10px; + min-height: 15px } - -/**************************** FILE MENU *************************************************/ - -/* Dialog: Open URI */ -QDialog#OpenURIDialog QLabel#label { /* URI Label */ -font-weight:bold; +QDialog#OpenURIDialog QLabel#label { + font-weight: 700 } - -QDialog#OpenURIDialog QPushButton#selectFileButton { /* ... Button */ -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb); -border:1px solid #d2d2d2; -color:#616161; -padding-left:10px; -padding-right:10px; +QDialog#OpenURIDialog QtMaterialFlatButton#selectFileButton { + background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb); + border: 1px solid #d2d2d2; + color: #616161; + padding-left: 10px; + padding-right: 10px } - -QDialog#OpenURIDialog QPushButton#selectFileButton:hover { -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb); -color:#333; +QDialog#OpenURIDialog QtMaterialFlatButton#selectFileButton:hover { + background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb); + color: #333 } - -QDialog#OpenURIDialog QPushButton#selectFileButton:pressed { -border:1px solid #9e9e9e; +QDialog#OpenURIDialog QtMaterialFlatButton#selectFileButton:pressed { + border: 1px solid #9e9e9e } - -/**************************** SIGN/ VERIFY MESSAGE DIALOG *******************************/ - -QDialog#SignVerifyMessageDialog QPushButton#addressBookButton_SM { /* Address Book Button */ -background-color:transparent; -padding-left:10px; -padding-right:10px; -} - -QDialog#SignVerifyMessageDialog QPlainTextEdit { /* Message Signing Text */ -border:1px solid #33A3DC; -background-color:#fff; -} - -QDialog#SignVerifyMessageDialog QPushButton#pasteButton_SM { /* Paste Button */ -/* qproperty-icon: url(":/icons/editpaste"); */ -background-color:transparent; -padding-left:15px; -} - -QDialog#SignVerifyMessageDialog QLineEdit:!focus { /* Font Hack */ -font-size:10px; -} - -QDialog#SignVerifyMessageDialog QPushButton#copySignatureButton_SM { /* Copy Button */ -/* qproperty-icon: url(":/icons/editcopy"); */ -background-color:transparent; -padding-left:10px; -padding-right:10px; -} - -QDialog#SignVerifyMessageDialog QPushButton#clearButton_SM { /* Clear Button */ -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb); -border:1px solid #d2d2d2; -color:#616161; -padding-left:10px; -padding-right:10px; -} - -QDialog#SignVerifyMessageDialog QPushButton#clearButton_SM:hover { -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb); -color:#333; -} - -QDialog#SignVerifyMessageDialog QPushButton#clearButton_SM:pressed { -border:1px solid #9e9e9e; -} - -QDialog#SignVerifyMessageDialog QPushButton#addressBookButton_VM { /* Verify Message - Address Book Button */ -background-color:transparent; -border:0; -padding-left:10px; -padding-right:10px; -} - -QDialog#SignVerifyMessageDialog QPushButton#clearButton_VM { /* Verify Message - Clear Button */ -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb); -border:1px solid #d2d2d2; -color:#616161; -padding-left:10px; -padding-right:10px; -} - -QDialog#SignVerifyMessageDialog QPushButton#clearButton_VM:hover { -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb); -color:#333; -} - -QDialog#SignVerifyMessageDialog QPushButton#clearButton_VM:pressed { -border:1px solid #9e9e9e; -} - -/**************************** SEND AND RECEIVE DIALOG ***********************************/ - QWidget#AddressBookPage { -background-color:#F8F6F6; -} - -QWidget#AddressBookPage QPushButton#newAddress { /* New Address Button */ -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb); -border:1px solid #d2d2d2; -color:#616161; -padding-left:10px; -padding-right:10px; -} - -QWidget#AddressBookPage QPushButton#newAddress:hover { -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb); -color:#333; -} - -QWidget#AddressBookPage QPushButton#newAddress:pressed { -border:1px solid #9e9e9e; -} - -QWidget#AddressBookPage QPushButton#copyAddress { /* Copy Address Button */ -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb); -border:1px solid #d2d2d2; -color:#616161; -padding-left:10px; -padding-right:10px; -} - -QWidget#AddressBookPage QPushButton#copyAddress:hover { -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb); -color:#333; -} - -QWidget#AddressBookPage QPushButton#copyAddress:pressed { -border:1px solid #9e9e9e; -} - -QWidget#AddressBookPage QPushButton#deleteAddress { /* Delete Address Button */ -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb); -border:1px solid #d2d2d2; -color:#616161; -padding-left:10px; -padding-right:10px; -} - -QWidget#AddressBookPage QPushButton#deleteAddress:hover { -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb); -color:#333; -} - -QWidget#AddressBookPage QPushButton#deleteAddress:pressed { -border:1px solid #9e9e9e; -} - -QWidget#AddressBookPage QTableView { /* Address Listing */ -font-size:12px; -} - -QWidget#AddressBookPage QHeaderView::section { /* Min width for Windows fix */ -min-width:260px; + background-color: #fafefd +} +QWidget#AddressBookPage QTableView { + font-size: 12px +} +QWidget#AddressBookPage QHeaderView::section { + min-width: 260px +} +QFrame#frameObfuscation { + background-color: transparent; + border: 0px solid #000 +} +QFrame#frameObfuscation QFormLayout#obfuscationStatusLayout QLabel { + border: 0px solid #000 +} +QFrame#frameObfuscation QtMaterialFlatButton { + font-size: 12px; + font-weight: 400; + padding-left: 5px; + padding-right: 5px; + padding-top: 1px; + padding-bottom: 1px; + height: 26px; + margin: 2px +} +QFrame#frameObfuscation QProgressBar#obfuscationProgress { + border: 1px solid grey; + border-radius: 5px; + background-color: transparent; + padding-left: 0px; + padding-right: 0px +} +QFrame#frameObfuscation QProgressBar#obfuscationProgress::chunk { + background-color: #33A3DC; + width: 1px +} +QFrame#frameObfuscation QLabel#progressBarLabel { + qproperty-alignment: AlignCenter; +} +QDialog#AskPassphraseDialog QLabel#passLabel1, +QDialog#AskPassphraseDialog QLabel#passLabel2, +QDialog#AskPassphraseDialog QLabel#passLabel3 { + qproperty-alignment: 'AlignVCenter | AlignRight' +} +QDialog#OptionsDialog QValueComboBox, +QDialog#OptionsDialog QSpinBox { + border-radius: 10px; + margin-top: 5px; + margin-bottom: 5px +} +QDialog#OptionsDialog QValidatedLineEdit, +QDialog#OptionsDialog QValidatedLineEdit:disabled, +QDialog#OptionsDialog QLineEdit, +QDialog#OptionsDialog QLineEdit:disabled { + qproperty-alignment: 'AlignVCenter | AlignLeft'; + min-height: 20px; + margin-top: 0px; + margin-bottom: 0px; + padding-top: 1px; + padding-bottom: 1px } - -/**************************** SETTINGS MENU *********************************************/ - -/* Encrypt Wallet and Change Passphrase Dialog */ -QDialog#AskPassphraseDialog QLabel#passLabel1, QDialog#AskPassphraseDialog QLabel#passLabel2, QDialog#AskPassphraseDialog QLabel#passLabel3 { -qproperty-alignment: 'AlignVCenter | AlignRight'; -min-width:170px; -min-height:33px; /* base width of 25px for QLineEdit, plus padding and border */ -} - -/* Options Dialog */ -QDialog#OptionsDialog QValueComboBox, QDialog#OptionsDialog QSpinBox { -margin-top:5px; -margin-bottom:5px; -} - -QDialog#OptionsDialog QValidatedLineEdit, QDialog#OptionsDialog QValidatedLineEdit:disabled, QDialog#OptionsDialog QLineEdit, QDialog#OptionsDialog QLineEdit:disabled { -qproperty-alignment: 'AlignVCenter | AlignLeft'; -min-height:20px; -margin-top:0px; -margin-bottom:0px; -padding-top:1px; -padding-bottom:1px; -} - QDialog#OptionsDialog > QLabel { -qproperty-alignment: 'AlignVCenter'; -min-height:20px; + qproperty-alignment: 'AlignVCenter'; + min-height: 20px } - QDialog#OptionsDialog QWidget#tabDisplay QValueComboBox { -margin-top:0px; -margin-bottom:0px; + margin-top: 0px; + margin-bottom: 0px } - -QDialog#OptionsDialog QLabel#label_3 { /* Translations Missing? Label */ -qproperty-alignment: 'AlignVCenter | AlignCenter'; -color:#818181; -padding-bottom:8px; +QDialog#OptionsDialog QLabel#label_3 { + qproperty-alignment: 'AlignVCenter | AlignCenter'; + color: #818181; + padding-bottom: 8px } - QDialog#OptionsDialog QCheckBox { -qproperty-alignment: 'AlignVCenter'; -min-height:20px; + min-height: 20px } - QDialog#OptionsDialog QCheckBox#displayAddresses { -min-height:33px; + min-height: 33px } - -/**************************** TOOLS MENU ************************************************/ - -QDialog#RPCConsole QWidget#tab_info QLabel#label_11, QDialog#RPCConsole QWidget#tab_info QLabel#label_10 { /* Margin between Network and Block Chain headers */ -qproperty-alignment: 'AlignBottom'; -min-height:25px; -min-width:180px; +QDialog#OptionsDialog QLabel#labelStakeSplitThresholdText { + font-size: 16px } - -QDialog#RPCConsole QWidget#tab_peers QLabel#peerHeading { /* Peers Info Header */ -color:#808080; +QDialog#RPCConsole QWidget#tab_info QLabel#label_11, +QDialog#RPCConsole QWidget#tab_info QLabel#label_10 { + qproperty-alignment: 'AlignBottom'; + min-height: 25px; + min-width: 180px } - -QDialog#RPCConsole QTableView#peerWidget::item { /* Peers Table Items */ -color:#333; +QDialog#RPCConsole QWidget#tab_peers QLabel#peerHeading { + color: #33A3DC } - -QDialog#RPCConsole QPushButton#openDebugLogfileButton { -max-width:60px; +QDialog#RPCConsole QTableView#peerWidget::item { + color: #333 } - -QDialog#RPCConsole QTextEdit#messagesWidget { /* Console Messages Window */ -border:0; -background-color:#fcfcfc; -color:#333; +QDialog#RPCConsole QtMaterialFlatButton#openDebugLogfileButton { + max-width: 60px } - -QDialog#RPCConsole QLineEdit#lineEdit { /* Console Input */ -margin-right:5px; +QDialog#RPCConsole QTextEdit#messagesWidget { + border: 0; + background-color: #fcfcfc; + color: #333 } - -QDialog#RPCConsole QPushButton#clearButton { /* Console Clear Button */ -background-color:transparent; -padding-left:10px; -padding-right:10px; +QDialog#RPCConsole QLineEdit#lineEdit { + margin-right: 5px } - -QDialog#RPCConsole .QGroupBox #line { /* Network In Line */ -background-color:#33A3DC; +QDialog#RPCConsole QtMaterialFlatButton#clearButton { + background-color: transparent; + padding-left: 10px; + padding-right: 10px } - -QDialog#RPCConsole .QGroupBox #line_2 { /* Network Out Line */ -background:#fff; +QDialog#RPCConsole .QGroupBox #line { + background-color: #33A3DC +} +QDialog#RPCConsole .QGroupBox #line_2 { + background: #fff } - -/**************************** HELP MENU *************************************************/ - -/* Command Line Options Dialog */ QDialog#HelpMessageDialog QScrollArea * { -background-color:#fff; + background-color: #fff } - -QDialog#HelpMessageDialog QScrollBar:vertical, QDialog#HelpMessageDialog QScrollBar:horizontal { -border:0; +QDialog#AboutDialog QLabel#label, +QDialog#AboutDialog QLabel#copyrightLabel, +QDialog#AboutDialog QLabel#label_2 { + margin-left: 10px } - -/* About Ittrium Dialog */ -QDialog#AboutDialog QLabel#label, QDialog#AboutDialog QLabel#copyrightLabel, QDialog#AboutDialog QLabel#label_2 { /* About Ittrium Contents */ -margin-left:10px; +QDialog#AboutDialog QLabel#label_2 { + margin-right: 10px } - -QDialog#AboutDialog QLabel#label_2 { /* Margin for About Ittrium text */ -margin-right:10px; -} - -/* Edit Address Dialog */ QDialog#EditAddressDialog QLabel { -qproperty-alignment: 'AlignVCenter | AlignRight'; -min-height:27px; -font-weight:normal; -padding-right:5px; -} - -/**************************** OVERVIEW SCREEN *******************************************/ - -QWidget .QFrame#frame { /* Wallet Balance */ -min-width:490px; -} - -QWidget .QFrame#frame > .QLabel { -min-width:190px; -font-weight:normal; -min-height:30px; + qproperty-alignment: 'AlignVCenter | AlignRight'; + min-height: 27px; + font-weight: 400; + padding-right: 5px } - -QWidget .QFrame#frame .QLabel#label_5 { /* Wallet Label */ -qproperty-alignment: 'AlignVCenter | AlignRight'; -min-width:160px; -background-color:transparent; -color:#fff; -margin-right:5px; -padding-right:5px; +QFrame[frameShape="4"] { + border: 1px solid #33A3DC } - -QWidget .QFrame#frame .QLabel#labelWalletStatus { /* Wallet Sync Status */ -qproperty-alignment: 'AlignVCenter | AlignLeft'; -margin-left:3px; +QLabel#labelOverviewHeaderLeft { + font-weight: 700; + font-size: 20px; + background-color: #ffffff } - -QWidget .QFrame#frame .QLabel#labelSpendable { /* Spendable Header */ -qproperty-alignment: 'AlignVCenter | AlignLeft'; -font-size:12px; -margin-left:18px; +QLabel#labelOverviewHeaderRight { + qproperty-alignment: 'AlignVCenter | AlignRight'; + background-image: url(':/images/dystem_logo_horizontal'); + background-repeat: no-repeat } - -QWidget .QFrame#frame .QLabel#labelWatchonly { /* Watch-only Header */ -qproperty-alignment: 'AlignVCenter | AlignLeft'; -font-size:12px; -margin-left:16px; +QWidget .QFrame#frame_Header { + min-width: 400px; + background-color: #ffffff +} +QWidget .QFrame#frame_BG { + min-width: 400px; + background-color: #fafefd +} +QWidget .QFrame#frame_Space { + min-width: 400px; + background-color: #fafefd +} +QWidget .QFrame#frame_Content { + min-width: 400px; + background-color: #fafefd +} +QWidget .QFrame#frame_Balances { + min-width: 400px; + background-color: #ffffff +} +QWidget .QFrame#frame_CombinedBalances { + min-width: 400px; + background-color: #ffffff +} +QWidget .QFrame#frame_RecentTransactions { + min-width: 400px; + background-color: #ffffff +} +QWidget .QFrame#frame_Balances .QLabel#BalanceTitle { + background-color: transparent; + text-transform: uppercase; + font-weight: 700; + font-size: 12px; +} +QWidget .QFrame#frameObfuscation .QLabel#ObfuscationTitle { + font-size: 12px; + min-width: 160px; + text-transform: uppercase; + background-color: transparent; + font-weight: 700 +} +QWidget .QFrame#frame_Balances .QLabel#labelWalletStatus { + margin-left: 5px +} +QWidget .QFrame#frameObfuscation .QLabel#labelObfuscationSyncStatus { + margin-left: 5px +} +QWidget .QFrame#frame_Balances .QLabel#labelSpendable { + font-size: 12px; +} +QWidget .QFrame#frame_Balances .QLabel#labelWatchonly { + font-size: 12px; +} +QWidget .QFrame#frame_Balances .QLabel#labelBalanceText { + font-size: 15px +} +QWidget .QFrame#frame_Balances .QLabel#labelBalance { + font-size: 25px; + font-weight: 400; +} +QWidget .QFrame#frame_Balances .QLabel#labelWatchAvailable { + font-size: 25px; + font-weight: 400; +} +QWidget .QFrame#frame_Balances .QLabel#labelPendingText { + font-size: 15px +} +QWidget .QFrame#frame_Balances .QLabel#labelUnconfirmed { + font-size: 25px; + font-weight: 400; +} +QWidget .QFrame#frame_Balances .QLabel#labelWatchPending { + font-size: 25px; + font-weight: 400; +} +QWidget .QFrame#frame_Balances .QLabel#labelImmatureText { + font-size: 15px +} +QWidget .QFrame#frame_Balances .QLabel#labelImmature { + font-size: 25px; + font-weight: 400; +} +QWidget .QFrame#frame_Balances .QLabel#labelWatchImmature { + font-size: 25px; + font-weight: 400; +} +QWidget .QFrame#frame_Balances .QLabel#labelTotalText { + font-size: 15px +} +QWidget .QFrame#frame_Balances .QLabel#labelTotal { + font-size: 25px; + font-weight: 400; +} +QWidget .QFrame#frame_Balances .QLabel#labelWatchTotal { + font-size: 25px; + font-weight: 400; +} +QWidget .QFrame#frame_CombinedBalances .QLabel#BalanceTitlez { + min-width: 160px; + background-color: transparent; + text-transform: uppercase; + color: #33A3DC; + font-weight: 700; + font-size: 12px; +} +QWidget .QFrame#frame_CombinedBalances .QLabel#labelBalanceTextz { + min-width: 160px; + color: #111E63; + font-weight: 700; + font-size: 12px +} +QWidget .QFrame#frame_CombinedBalances .QLabel#labelBalancez { + font-size: 26px; + font-weight: 400; + color: #111E63 +} +QWidget .QFrame#frame_CombinedBalances .QLabel#labelTotalTextz { + min-width: 160px; + color: #111E63; + font-weight: 700; + font-size: 12px +} +QWidget .QFrame#frame_CombinedBalances .QLabel#labelTotalz { + font-size: 26px; + font-weight: 400; + color: #111E63 +} +QWidget .QFrame#frame_RecentTransactions { + min-width: 410px; + min-height: 100px; +} +QWidget .QFrame#frame_RecentTransactions .QLabel#RecentTitle { + min-width: 180px; + background-color: transparent; + text-transform: uppercase; + font-weight: 700; + font-size: 12px; +} +QWidget .QFrame#frame_RecentTransactions .QLabel#labelTransactionsStatus { + margin-left: 5px } - -QWidget .QFrame#frame .QLabel#labelBalanceText { /* Available Balance Label */ -qproperty-alignment: 'AlignVCenter | AlignRight'; -min-width:160px; -background-color:#33A3DC; -color:#fff; -margin-right:5px; -padding-right:5px; -font-weight:bold; -font-size:14px; -min-height:35px; -} - -QWidget .QFrame#frame .QLabel#labelBalance { /* Available Balance */ -qproperty-alignment: 'AlignVCenter | AlignLeft'; -font-size:12px; -font-weight:bold; -color:#33A3DC; -margin-left:0px; -} - -QWidget .QFrame#frame .QLabel#labelWatchAvailable { /* Watch-only Balance */ -qproperty-alignment: 'AlignVCenter | AlignLeft'; -font-size:12px; -margin-left:16px; -} - -QWidget .QFrame#frame .QLabel#labelPendingText { /* Pending Balance Label */ -qproperty-alignment: 'AlignVCenter | AlignRight'; -min-width:160px; -font-size:12px; -background-color:transparent; -color:#33A3DC; -margin-right:5px; -padding-right:5px; +QWidget .QFrame#frame_RecentTransactions QListView { + background-color: transparent; + font-weight: 400; + font-size: 12px; + max-width: 369px; + margin-top: 12px; + margin-left: 0px; } -QWidget .QFrame#frame .QLabel#labelUnconfirmed { /* Pending Balance */ -qproperty-alignment: 'AlignVCenter | AlignLeft'; -font-size:12px; -margin-left:0px; -} - -QWidget .QFrame#frame .QLabel#labelWatchPending { /* Watch-only Pending Balance */ -qproperty-alignment: 'AlignVCenter | AlignLeft'; -font-size:12px; -margin-left:16px; -} - -QWidget .QFrame#frame .QLabel#labelImmatureText { /* Immature Balance Label */ -qproperty-alignment: 'AlignVCenter | AlignRight'; -min-width:160px; -font-size:12px; -background-color:transparent; -color:#33A3DC; -margin-right:5px; -padding-right:5px; -} - -QWidget .QFrame#frame .QLabel#labelImmature { /* Immature Balance */ -qproperty-alignment: 'AlignVCenter | AlignLeft'; -font-size:12px; -margin-left:0px; -} - -QWidget .QFrame#frame .QLabel#labelWatchImmature { /* Watch-only Immature Balance */ -qproperty-alignment: 'AlignVCenter | AlignLeft'; -font-size:12px; -margin-left:16px; -} - -QWidget .QFrame#frame .QLabel#labelTotalText { /* Total Balance Label */ -qproperty-alignment: 'AlignVCenter | AlignRight'; -min-width:160px; -font-size:12px; -background-color:transparent; -color:#33A3DC; -margin-right:5px; -padding-right:5px; -} - -QWidget .QFrame#frame .QLabel#labelTotal { /* Total Balance */ -qproperty-alignment: 'AlignVCenter | AlignLeft'; -font-size:12px; -margin-left:0px; -} - -QWidget .QFrame#frame .QLabel#labelWatchTotal { /* Watch-only Total Balance */ -qproperty-alignment: 'AlignVCenter | AlignLeft'; -font-size:12px; -margin-left:16px; -} - -/**************************** OBFUSCATION WIDGET ****************************************/ - - -QWidget .QFrame#frameObfuscation { /* Obfuscation Widget */ -background-color:transparent; -qproperty-minimumSize: 451px 343px; -} - -QWidget .QFrame#frameObfuscation QWidget { -qproperty-geometry: rect(10 0 431 35); -} - -QWidget .QFrame#frameObfuscation .QLabel#label_2 { /* Obfuscation Header */ -qproperty-alignment: 'AlignVCenter | AlignRight'; -min-width:160px; -background-color:#33A3DC; -color:#fff; -margin-right:5px; -padding-right:5px; -font-weight:bold; -font-size:14px; -min-height:35px; -} - -/**************************** OBFUSCATION ***********************************************/ - -QWidget .QFrame#frameObfuscation .QLabel#labelObfuscationSyncStatus { /* Obfuscation Sync Status */ -qproperty-alignment: 'AlignVCenter | AlignLeft'; -margin-left:2px; -} - -QWidget .QFrame#frameObfuscation #formLayoutWidget { -qproperty-geometry: rect(10 51 451 175); -} - -QWidget .QFrame#frameObfuscation #formLayoutWidget > .QLabel { -min-width:175px; -font-weight:normal; -min-height:25px; -} - -QWidget .QFrame#frameObfuscation #formLayoutWidget .QLabel#label_6 { /* Obfuscation Status Label */ -qproperty-alignment: 'AlignVCenter | AlignRight'; -min-width:160px; -background-color:transparent; -color:#33A3DC; -margin-right:5px; -padding-right:5px; -} - -QWidget .QFrame#frameObfuscation #formLayoutWidget .QLabel#obfuscationEnabled { /* Obfuscation Status */ - -} - -QWidget .QFrame#frameObfuscation #formLayoutWidget .QLabel#label_7 { /* Obfuscation Completion Label */ -qproperty-alignment: 'AlignVCenter | AlignRight'; -min-width:160px; -background-color:transparent; -color:#33A3DC; -margin-right:5px; -padding-right:5px; - -} - -QWidget .QFrame#frameObfuscation #formLayoutWidget .QProgressBar#obfuscationProgress { /* Obfuscation Completion */ -border: 1px solid #818181; -border-radius: 1px; -margin-right:43px; -text-align: right; -color:#818181; -} - -QWidget .QFrame#frameObfuscation #formLayoutWidget .QProgressBar#obfuscationProgress::chunk { -background-color: #808080; -width:1px; -} - -QWidget .QFrame#frameObfuscation #formLayoutWidget .QLabel#labelAnonymizedText { /* Obfuscation Balance Label */ -qproperty-alignment: 'AlignVCenter | AlignRight'; -min-width:160px; -background-color:transparent; -color:#33A3DC; -margin-right:5px; -padding-right:5px; -} - -QWidget .QFrame#frameObfuscation #formLayoutWidget .QLabel#labelAnonymized { /* Obfuscation Balance */ - -} - -QWidget .QFrame#frameObfuscation #formLayoutWidget .QLabel#label_8 { /* Obfuscation Amount and Rounds Label */ -qproperty-alignment: 'AlignVCenter | AlignRight'; -min-width:160px; -background-color:transparent; -color:#33A3DC; -margin-right:5px; -padding-right:5px; -} - -QWidget .QFrame#frameObfuscation #formLayoutWidget .QLabel#labelAmountRounds { /* Obfuscation Amount and Rounds */ - -} - -QWidget .QFrame#frameObfuscation #formLayoutWidget .QLabel#label_9 { /* Obfuscation Submitted Denom Label */ -qproperty-alignment: 'AlignVCenter | AlignRight'; -min-width:160px; -background-color:transparent; -color:#33A3DC; -margin-right:5px; -padding-right:5px; -} - -QWidget .QFrame#frameObfuscation #formLayoutWidget .QLabel#labelSubmittedDenom { /* Obfuscation Submitted Denom */ - -} - -QWidget .QFrame#frameObfuscation .QLabel#obfuscationStatus { /* Obfuscation Status Notifications */ -qproperty-alignment: 'AlignVCenter | AlignCenter'; -qproperty-geometry: rect(70 226 395 34); -font-size:11px; -color:#818181; -} - -/**************************** OBFUSCATION BUTTONS ***************************************/ - -QWidget .QFrame#frameObfuscation .QPushButton { /* Obfuscation Buttons - General Attributes */ -border:0px solid #ffffff; -} - -QWidget .QFrame#frameObfuscation QPushButton:focus { -border:none; -outline:none; -} - -QWidget .QFrame#frameObfuscation .QPushButton#runAutoDenom { /* No idea why this button is in the .UI file... */ -qproperty-geometry: rect(0 0 0 0); -} - -QWidget .QFrame#frameObfuscation .QPushButton#toggleObfuscation { /* Start Obfuscation Mixing */ -qproperty-geometry: rect(10 268 295 40); -font-size:15px; -font-weight:bold; -color:#ffffff; -padding-left:10px; -padding-right:10px; -padding-top:5px; -padding-bottom:6px; -} - -QWidget .QFrame#frameObfuscation .QPushButton#toggleObfuscation:hover { - -} - -QWidget .QFrame#frameObfuscation .QPushButton#obfuscationAuto { /* Try Mix Button */ -qproperty-geometry: rect(15 314 140 25); -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb); -border:1px solid #d2d2d2; -color:#616161; -min-height:25px; -font-size:9px; -padding:0px; -} - -QWidget .QFrame#frameObfuscation .QPushButton#obfuscationAuto:hover { -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb); -color:#333; -} - -QWidget .QFrame#frameObfuscation .QPushButton#obfuscationAuto:pressed { -border:1px solid #9e9e9e; -} - -QWidget .QFrame#frameObfuscation .QPushButton#obfuscationReset { /* Reset Button */ -qproperty-geometry: rect(160 314 140 25); -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb); -border:1px solid #d2d2d2; -color:#616161; -min-height:25px; -font-size:9px; -padding:0px; -} - -QWidget .QFrame#frameObfuscation .QPushButton#obfuscationReset:hover { -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb); -color:#333; -} - -QWidget .QFrame#frameObfuscation .QPushButton#obfuscationReset:pressed { -border:1px solid #9e9e9e; -} - -/**************************** RECENT TRANSACTIONS ***************************************/ - -QWidget .QFrame#frame_2 { /* Transactions Widget */ -min-width:410px; -margin-right:20px; -margin-left:0; -margin-top:0; -background-image: url(':/images/xit_logo_horizontal'); -background-repeat:none; -} - -QWidget .QFrame#frame_2 .QLabel#label_4 { /* Recent Transactions Label */ -min-width:180px; -color:#808080; -margin-left:67px; -margin-top:0px; /* was 83 */ -margin-right:5px; -padding-right:5px; -font-weight:bold; -font-size:15px; -min-height:24px; -} - -QWidget .QFrame#frame_2 .QLabel#labelTransactionsStatus { /* Recent Transactions Sync Status */ -qproperty-alignment: 'AlignBottom | AlignRight'; -min-width:93px; -margin-top:0px; /* was 83 */ -margin-left:16px; -margin-right:5px; -min-height:16px; -} - -QWidget .QFrame#frame_2 QListView { /* Transaction List */ -font-weight:normal; -font-size:12px; -max-width:369px; -margin-top:12px; -margin-left:0px; /* CSS Voodoo - set to -66px to hide default transaction icons */ -} - -/**************************** SEND DIALOG ***********************************************/ - QDialog#SendCoinsDialog { -background-color:#fff; -} - -QDialog#SendCoinsDialog .QFrame#frameCoinControl { /* Coin Control Section */ -} - -QDialog#SendCoinsDialog .QFrame#frameCoinControl > .QLabel { /* Default Font Color and Size */ -font-weight:normal; -} - -QDialog#SendCoinsDialog .QFrame#frameCoinControl .QPushButton#pushButtonCoinControl { /* Coin Control Inputs Button */ -padding-left:10px; -padding-right:10px; -min-height:25px; -} - -QDialog#SendCoinsDialog .QFrame#frameCoinControl .QLabel#labelCoinControlFeatures { /* Coin Control Header */ -color:#808080; -font-weight:bold; -font-size:14px; -} - -QDialog#SendCoinsDialog .QFrame#frameCoinControl .QWidget#widgetCoinControl { /* Coin Control Inputs */ -} - -QDialog#SendCoinsDialog .QFrame#frameCoinControl .QWidget#widgetCoinControl > .QLabel { /* Coin Control Inputs Labels */ -padding:2px; -} - -QDialog#SendCoinsDialog .QFrame#frameCoinControl .QCheckBox#checkBoxCoinControlChange { /* Custom Change Label */ -} - -QDialog#SendCoinsDialog .QFrame#frameCoinControl .QValidatedLineEdit#lineEditCoinControlChange { /* Custom Change Address */ -} - -QDialog#SendCoinsDialog .QFrame#frameCoinControl .QLabel#labelCoinControlChangeLabel { /* Custom Change Address Validation Label */ -font-weight:normal; -qproperty-margin:-6; -margin-right:112px; -} - -QDialog#SendCoinsDialog .QScrollArea#scrollArea .QWidget#scrollAreaWidgetContents { /* Send To Widget */ -background:transparent; -} - -QDialog#SendCoinsDialog .QPushButton#sendButton { /* Send Button */ -padding-left:10px; -padding-right:10px; -} - -QDialog#SendCoinsDialog .QPushButton#clearButton { /* Clear Button */ -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb); -border:1px solid #d2d2d2; -color:#616161; -padding-left:10px; -padding-right:10px; -} - -QDialog#SendCoinsDialog .QPushButton#clearButton:hover { -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb); -color:#333; -} - -QDialog#SendCoinsDialog .QPushButton#clearButton:pressed { -border:1px solid #9e9e9e; + background-color: #fff +} +QDialog#SendCoinsDialog .QFrame#frameCoinControl { + background-color: #ffffff +} +QDialog#SendCoinsDialog .QFrame#frameFee { + background-color: #ffffff +} +QDialog#SendCoinsDialog .QFrame#frame_Send { + background-color: #ffffff; + margin-bottom: 6px +} +QDialog#SendCoinsDialog .QFrame#frameCoinControl { + +} +QDialog#SendCoinsDialog .QFrame#frameCoinControl > .QLabel { + font-weight: 400 +} +QDialog#SendCoinsDialog .QFrame#frameCoinControl .QtMaterialFlatButton#pushButtonCoinControl { + padding-left: 10px; + padding-right: 10px; + min-height: 25px +} +QDialog#SendCoinsDialog .QFrame#frameCoinControl .QLabel#labelCoinControlFeatures { + qproperty-alignment: 'AlignVCenter | AlignLeft'; + min-width: 160px; + background-color: transparent; + text-transform: uppercase; + font-weight: 700; + font-size: 12px; + margin-right: 5px; + padding-right: 5px +} +QDialog#SendCoinsDialog .QFrame#frameCoinControl .QWidget#widgetCoinControl { + + } +QDialog#SendCoinsDialog .QFrame#frameCoinControl .QWidget#widgetCoinControl > .QLabel { + padding: 2px +} +QDialog#SendCoinsDialog .QFrame#frameCoinControl .QLabel#labelCoinControlChangeLabel { + font-weight: 400 +} +QDialog#SendCoinsDialog .QScrollArea#scrollArea .QWidget#scrollAreaWidgetContents { + background-color: #ffffff +} +QDialog#SendCoinsDialog .QCheckBox#checkUseObfuscation { + color: #616161; + font-weight: 700; + border-radius: 5px; + padding-top: 20px; + padding-bottom: 18px +} +QDialog#SendCoinsDialog .QCheckBox#checkSwiftTX { + color: #616161; + font-weight: 700; + border-radius: 5px; + padding-top: 20px; + padding-bottom: 18px; + margin-left: 10px; + margin-right: 20px } - -QDialog#SendCoinsDialog .QPushButton#addButton { /* Add Button */ -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb); -border:1px solid #d2d2d2; -color:#616161; -padding-left:10px; -padding-right:10px; -} - -QDialog#SendCoinsDialog .QPushButton#addButton:hover { -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb); -color:#333; -} - -QDialog#SendCoinsDialog .QPushButton#addButton:pressed { -border:1px solid #9e9e9e; -} - -QDialog#SendCoinsDialog .QCheckBox#checkUseObfuscation { /* Obfuscation Checkbox */ -color:#616161; -font-weight:bold; -background:transparent; -/*background: qradialgradient(cx:0.5, cy:0.5, radius: 0.5, fx:0.5, fy:0.5, stop:0 rgba(248, 246, 246, 128), stop: 1 rgba(0, 0, 0, 0));*/ -border-radius:5px; -padding-top:20px; -padding-bottom:18px; -} - -QDialog#SendCoinsDialog .QCheckBox#checkSwiftTX { /* SwiftTX Checkbox */ -color:#616161; -font-weight:bold; -background:transparent; -/*background: qradialgradient(cx:0.5, cy:0.5, radius: 0.5, fx:0.5, fy:0.5, stop:0 rgba(248, 246, 246, 128), stop: 1 rgba(0, 0, 0, 0));*/ -border-radius:5px; -padding-top:20px; -padding-bottom:18px; -margin-left:10px; -margin-right:20px; -} - -/* This QLabel uses name = "label" which conflicts with Address Book -> New Address */ -/* To maximize backwards compatibility this formatting has been removed */ - QDialog#SendCoinsDialog QLabel#label { -/*margin-left:20px; -margin-right:-2px; -padding-right:-2px; -color:#616161; -font-size:14px; -font-weight:bold; -border-radius:5px; -padding-top:20px; -padding-bottom:20px;*/ -min-height:27px; + min-height: 27px } - QDialog#SendCoinsDialog QLabel#labelBalance { -margin-left:0px; -padding-left:0px; -color:#333333; -/* font-weight:bold; -border-radius:5px; -padding-top:20px; -padding-bottom:20px; */ -min-height:27px; + margin-left: 0px; + padding-left: 0px; + color: #333333; + min-height: 27px } - -/**************************** SEND COINS ENTRY ******************************************/ - -QStackedWidget#SendCoinsEntry .QFrame#SendCoins > .QLabel { /* Send Coin Entry Labels */ -background-color:#33A3DC; -min-width:102px; -font-weight:bold; -font-size:11px; -color:#ffffff; -min-height:25px; -margin-right:5px; -padding-right:5px; +QStackedWidget#SendCoinsEntry .QFrame#SendCoins > .QLabel { + min-width: 10px; + font-weight: 700; + min-height: 25px; + margin-right: 5px; + padding-right: 5px } - -QStackedWidget#SendCoinsEntry .QFrame#SendCoins .QLabel#amountLabel { -background-color:#33A3DC; +QStackedWidget#SendCoinsEntry QToolButton { + background-color: transparent; + border: 0 } -QStackedWidget#SendCoinsEntry .QValidatedLineEdit#payTo { /* Pay To Input Field */ +QDialog#CoinControlDialog .QLabel#labelCoinControlQuantityText { + min-height: 30px; + padding-left: 15px } - -QStackedWidget#SendCoinsEntry .QToolButton { /* General Settings for Pay To Icons */ -background-color:transparent; -padding-left:5px; -padding-right:5px; -border: 0; -outline: 0; +QDialog#CoinControlDialog .QLabel#labelCoinControlQuantity { + min-height: 30px } - -QStackedWidget#SendCoinsEntry .QToolButton#addressBookButton { /* Address Book Button */ -padding-left:10px; +QDialog#CoinControlDialog .QLabel#labelCoinControlBytesText { + padding-left: 15px } - -QStackedWidget#SendCoinsEntry .QToolButton#addressBookButton { +QDialog#CoinControlDialog .QLabel#labelCoinControlBytes {} QDialog#CoinControlDialog .QLabel#labelCoinControlAmountText { + min-height: 30px; + padding-left: 15px } - -QStackedWidget#SendCoinsEntry .QToolButton#pasteButton { +QDialog#CoinControlDialog .QLabel#labelCoinControlAmount { + min-height: 30px +} +QDialog#CoinControlDialog .QLabel#labelCoinControlPriorityText { + padding-left: 15px +} +QDialog#CoinControlDialog .QLabel#labelCoinControlPriority {} QDialog#CoinControlDialog .QLabel#labelCoinControlFeeText { + min-height: 30px; + padding-left: 15px +} +QDialog#CoinControlDialog .QLabel#labelCoinControlFee { + min-height: 30px +} +QDialog#CoinControlDialog .QLabel#labelCoinControlLowOutputText { + padding-left: 15px } - -QStackedWidget#SendCoinsEntry .QToolButton#deleteButton { +QDialog#CoinControlDialog .QLabel#labelCoinControlLowOutput {} QDialog#CoinControlDialog .QLabel#labelCoinControlAfterFeeText { + min-height: 30px; + padding-left: 15px +} +QDialog#CoinControlDialog .QLabel#labelCoinControlAfterFee { + min-height: 30px +} +QDialog#CoinControlDialog .QLabel#labelCoinControlChangeText { + padding-left: 15px +} +QDialog#CoinControlDialog .QLabel#labelCoinControlChange {} QDialog#CoinControlDialog .QFrame#frame .QtMaterialFlatButton#pushButtonSelectAll { + padding-left: 10px; + padding-right: 10px; + min-height: 25px +} +QDialog#CoinControlDialog .QFrame#frame .QtMaterialFlatButton#pushButtonToggleLock { + padding-left: 10px; + padding-right: 10px; + min-height: 25px +} +QDialog#CoinControlDialog .QDialogButtonBox#buttonBox QtMaterialFlatButton {} QDialog#CoinControlDialog .QFrame#frame .QRadioButton#radioTreeMode { + color: #818181; + background-color: transparent +} +QDialog#CoinControlDialog .QFrame#frame .QRadioButton#radioListMode { + color: #818181; + background-color: transparent +} +QDialog#CoinControlDialog QHeaderView::section:first { + color: transparent +} +QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget { + outline: 0; + background-color: #ffffff; + border: 1px solid #333 +} +QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::item {} QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::item:selected { + background-color: #ddd; + color: ffff; +} +QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::item:checked { + background-color: #f7f7f7; + color: #fff +} +QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::branch:selected { + background-repeat: no-repeat; + background-position: center; + background-color: #f7f7f7; + color: #333 +} +QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::branch:checked { + background-repeat: no-repeat; + background-position: center; + background-color: #f7f7f7; + color: #333 } - -QStackedWidget#SendCoinsEntry .QLineEdit#addAsLabel { /* Pay To Input Field */ +QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::branch:open:has-children:has-siblings { +border-image: none; +image: url(':/images/downArrow_small'); } - -/**************************** COIN CONTROL POPUP ****************************************/ - -QDialog#CoinControlDialog .QLabel#labelCoinControlQuantityText { /* Coin Control Quantity Label */ -min-height:30px; -padding-left:15px; +QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::branch:closed:has-children:has-siblings { +border-image: none; +image: url(':/images/rightArrow_small'); } - -QDialog#CoinControlDialog .QLabel#labelCoinControlQuantity { /* Coin Control Quantity */ -min-height:30px; +QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::seperator {} QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::indicator {} QWidget#ReceiveCoinsDialog { + background-color: #fff } - -QDialog#CoinControlDialog .QLabel#labelCoinControlBytesText { /* Coin Control Bytes Label */ -padding-left:15px; +QWidget#ReceiveCoinsDialog .QFrame#frame { + background-color: #ffffff } - -QDialog#CoinControlDialog .QLabel#labelCoinControlBytes { /* Coin Control Bytes */ +QWidget#ReceiveCoinsDialog .QFrame#frame2 { + background-color: #ffffff } - -QDialog#CoinControlDialog .QLabel#labelCoinControlAmountText { /* Coin Control Amount Label */ -min-height:30px; -padding-left:15px; +QWidget#ReceiveCoinsDialog .QFrame#frame2 > .QLabel { + min-width: 10px; + font-weight: 700; + min-height: 25px; + margin-right: 5px; + padding-right: 5px } - -QDialog#CoinControlDialog .QLabel#labelCoinControlAmount { /* Coin Control Amount */ -min-height:30px; -} - -QDialog#CoinControlDialog .QLabel#labelCoinControlPriorityText { /* Coin Control Priority Label */ -padding-left:15px; +QWidget#ReceiveCoinsDialog .QFrame#frame QtMaterialFlatButton { + background-color: transparent; + border-width: 1px; + border-style: solid; + border-color: #33A3DC; + border-radius: 4px; + color: #33A3DC; + padding-left: 10px; + padding-right: 10px +} +QWidget#ReceiveCoinsDialog .QFrame#frame QtMaterialFlatButton:pressed { + border: 1px solid #9e9e9e +} +QWidget#ReceiveCoinsDialog .QFrame#frame2 QtMaterialFlatButton { + padding-left: 10px; + padding-right: 10px +} +QWidget#ReceiveCoinsDialog .QFrame#frame2 QtMaterialFlatButton:pressed { + border: 1px solid #9e9e9e +} +QWidget#ReceiveCoinsDialog .QFrame#frame .QLabel#label_6 { + color: #33A3DC; + font-weight: 700; + font-size: 14px +} +QDialog#ReceiveRequestDialog QTextEdit { + border: 1px solid #d7d7d7 +} +TransactionView QLineEdit { + margin-bottom: 2px; + margin-right: 1px; + min-width: 111px; + text-align: center } - -QDialog#CoinControlDialog .QLabel#labelCoinControlPriority { /* Coin Control Priority */ -} - -QDialog#CoinControlDialog .QLabel#labelCoinControlFeeText { /* Coin Control Fee Label */ -min-height:30px; -padding-left:15px; -} - -QDialog#CoinControlDialog .QLabel#labelCoinControlFee { /* Coin Control Fee */ -min-height:30px; -} - -QDialog#CoinControlDialog .QLabel#labelCoinControlLowOutputText { /* Coin Control Low Output Label */ -padding-left:15px; -} - -QDialog#CoinControlDialog .QLabel#labelCoinControlLowOutput { /* Coin Control Low Output */ -} - -QDialog#CoinControlDialog .QLabel#labelCoinControlAfterFeeText { /* Coin Control After Fee Label */ -min-height:30px; -padding-left:15px; -} - -QDialog#CoinControlDialog .QLabel#labelCoinControlAfterFee { /* Coin Control After Fee */ -min-height:30px; -} - -QDialog#CoinControlDialog .QLabel#labelCoinControlChangeText { /* Coin Control Change Label */ -padding-left:15px; -} - -QDialog#CoinControlDialog .QLabel#labelCoinControlChange { /* Coin Control Change */ - -} - -QDialog#CoinControlDialog .QFrame#frame .QPushButton#pushButtonSelectAll { /* (un)select all button */ -padding-left:10px; -padding-right:10px; -min-height:25px; -} - -QDialog#CoinControlDialog .QFrame#frame .QPushButton#pushButtonToggleLock { /* Toggle lock state button */ -padding-left:10px; -padding-right:10px; -min-height:25px; -} - -QDialog#CoinControlDialog .QDialogButtonBox#buttonBox QPushButton { /* Coin Control 'OK' button */ -} - -QDialog#CoinControlDialog .QFrame#frame .QRadioButton#radioTreeMode { /* Coin Control Tree Mode Selector */ -color:#818181; -background-color:transparent; -} - -QDialog#CoinControlDialog .QFrame#frame .QRadioButton#radioListMode { /* Coin Control List Mode Selector */ -color:#818181; -background-color:transparent; -} - -QDialog#CoinControlDialog QHeaderView::section:first { /* Bug Fix: the number "1" displays in this table for some reason... */ -color:transparent; -} - -QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget { /* Coin Control Widget Container */ -outline:0; -background-color:#ffffff; -border:1px solid #333; -} - -QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::item { -} - -QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::item:selected { /* Coin Control Item (selected) */ -background-color:#33A3DC; -color:#fff; -} - -QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::item:checked { /* Coin Control Item (checked) */ -background-color:#f7f7f7; -color:#fff; -} - -QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::branch:selected { /* Coin Control Branch Icon */ -background-image: url(':/images/qtreeview_selected'); -background-repeat:no-repeat; -background-position:center; -background-color:#f7f7f7; -color:#333; -} - -QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::branch:checked { /* Coin Control Branch Icon */ -background-image: url(':/images/qtreeview_selected'); -background-repeat:no-repeat; -background-position:center; -background-color:#f7f7f7; -color:#333; -} - -QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::seperator { - -} - -QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::indicator { /* Coin Control Widget Checkbox */ - -} - -/**************************** RECEIVE COINS *********************************************/ - -QWidget#ReceiveCoinsDialog { -background-color:#fff; -} - -QWidget#ReceiveCoinsDialog .QFrame#frame2 .QLabel#label_2 { /* Label Label */ -background-color:#33A3DC; -min-width:102px; -color:#ffffff; -font-weight:bold; -font-size:11px; -padding-right:5px; -} - -QWidget#ReceiveCoinsDialog .QFrame#frame2 .QLabel#label { /* Amount Label */ -background-color:#33A3DC; -min-width:102px; -color:#ffffff; -font-weight:bold; -font-size:11px; -padding-right:5px; -} - -QWidget#ReceiveCoinsDialog .QFrame#frame2 .QLabel#label_3 { /* Message Label */ -background-color:#33A3DC; -min-width:102px; -color:#ffffff; -font-weight:bold; -font-size:11px; -padding-right:5px; -} - -QWidget#ReceiveCoinsDialog .QFrame#frame2 QPushButton#clearButton { /* Clear Button */ -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb); -border:1px solid #d2d2d2; -color:#616161; -padding-left:10px; -padding-right:10px; -} - -QWidget#ReceiveCoinsDialog .QFrame#frame2 QPushButton#clearButton:hover { -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb); -color:#333; -} - -QWidget#ReceiveCoinsDialog .QFrame#frame2 QPushButton#clearButton:pressed { -border:1px solid #9e9e9e; -} - -QWidget#ReceiveCoinsDialog .QFrame#frame QPushButton#showRequestButton { /* Show Button */ -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb); -border:1px solid #d2d2d2; -color:#616161; -padding-left:10px; -padding-right:10px; -} - -QWidget#ReceiveCoinsDialog .QFrame#frame QPushButton#showRequestButton:hover { -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb); -color:#333; -} - -QWidget#ReceiveCoinsDialog .QFrame#frame QPushButton#showRequestButton:pressed { -border:1px solid #9e9e9e; +TransactionView QComboBox { + border-radius: 10px; + margin-bottom: 1px; + margin-right: 1px } - -QWidget#ReceiveCoinsDialog .QFrame#frame QPushButton#removeRequestButton { /* Remove Button */ -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb); -border:1px solid #d2d2d2; -color:#616161; -padding-left:10px; -padding-right:10px; +QLabel#transactionSumLabel { + color: #333333; + font-weight: 700 } - -QWidget#ReceiveCoinsDialog .QFrame#frame QPushButton#removeRequestButton:hover { -background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb); -color:#333; +QLabel#transactionSum { + color: #333333 } - -QWidget#ReceiveCoinsDialog .QFrame#frame QPushButton#removeRequestButton:pressed { -border:1px solid #9e9e9e; -} - -QWidget#ReceiveCoinsDialog .QFrame#frame .QLabel#label_6 { /* Requested Payments History Label */ -color:#808080; -font-weight:bold; -font-size:14px; +QDialog#TransactionDescDialog QTextEdit { + border: 1px solid #d7d7d7 } - -/**************************** RECEIVE COINS DIALOG **************************************/ - -QDialog#ReceiveRequestDialog QTextEdit { /* Contents of Receive Coin Dialog */ -border:1px solid #d7d7d7; +QWidget#PrivacyDialog .QFrame[frameShape="4"] { + border: 1px solid #111E63 } - -/**************************** TRANSACTIONS PAGE *****************************************/ - -TransactionView QLineEdit { /* Address Filter */ -margin-bottom:2px; -margin-right:1px; -min-width:111px; -text-align:center; +QWidget#PrivacyDialog .QFrame#frame_Content { + background-color: #f8f6f6 } - -TransactionView QComboBox { -margin-bottom:1px; -margin-right:1px; +QWidget#PrivacyDialog .QFrame#verticalFrameLeft { + background-color: #ffffff } - -QLabel#transactionSumLabel { /* Example of setObjectName for widgets without name */ -color:#333333; -font-weight:bold; +QWidget#PrivacyDialog .QFrame#verticalFrameRight { + background-color: #ffffff } - -QLabel#transactionSum { /* Example of setObjectName for widgets without name */ -color:#333333; +QWidget#PrivacyDialog .QToolButton { + margin: 2px; + min-height: 24px; + min-width: 24px } - -/**************************** TRANSACTION DETAILS DIALOG ********************************/ - -QDialog#TransactionDescDialog QTextEdit { /* Contents of Receive Coin Dialog */ -border:1px solid #d7d7d7; +QWidget#MasternodeList .QFrame#frameList { + background-color: #ffffff } - -/********************************* CALENDAR WIDGET **************************************/ - QCalendarView { -border:1px solid #333; + border: 1px solid #333 } - -QCalendarWidget QWidget#qt_calendar_navigationbar { /* Calendar widget navigation bar */ -background-color:#33A3DC; -font-weight:bold; +QCalendarWidget QWidget#qt_calendar_navigationbar { + background-color: #33A3DC; + font-weight: 700 } - -QCalendarWidget QAbstractItemView { /* Calendar widget days */ -alternate-background-color:#dedbe5; -background-color:#fff; +QCalendarWidget QAbstractItemView { + alternate-background-color: #c0c0c0; + background-color: #fff } - -QCalendarWidget QAbstractItemView:enabled { /* Calendar widget weekdays in month */ -color:#333; +QCalendarWidget QAbstractItemView:enabled { + color: #333 } - -QCalendarWidget QAbstractItemView:disabled { /* Calendar widget days not in month */ -color:#818181; +QCalendarWidget QAbstractItemView:disabled { + color: #818181 } \ No newline at end of file diff --git a/src/qt/res/icons/add.png b/src/qt/res/icons/add.png index f9e9c2c64af6dde511deada3a4bbf238291707ee..fd3ff9cb7da8d24c4f005f6c55abd346589696f2 100755 GIT binary patch literal 655 zcmV;A0&x9_P)znL`7 zIp>^n&N=6tbI$eMHf`I!1Y2%`ix9z&A`)m3;)>5ExO6QD?z;Y} z{Uf*^Ey8}#)YiZk3%yv_Z&!T0;`3u(wGTUQyz17QXWM9@i3aMZ{ZK^(Wt31v0r@ey znYW71D4>WE%BZ0FLk)E_&_oOE|9SK5c>a*FYCi{Su@W;;NAnLFXrY1TPik0-o0y5T zyMeoyiAg`1jER{1+wTKYP{M0GN4}r$Jz9r6q6{v1pJx0`N7jGaM1#lQBm|zp$D*zs}>V pJ+R&RDG8i&&N=6tbIv*E+!q7s0tCv*$fN)O002ovPDHLkV1nnhFINBn literal 1232 zcmV;>1TXuEP)0cdZT~mqlp(E-+%eYGY59(-eCp_NCwd$ zA|&AJOIMcP{p8fs%djIyp9S-!~br}pk@Hk_bll=bMD(Nm=~rKifi2X;1qhevjG zWB>!LgGB>1C>hQv84-x8BQH4~fIw0u)&Q|iK{SX8Nvc`54Zw_~N-ya!xEcwmmG}3A zZ4ZE`kyNcrN;KQxfFe~I3{p~%(IG~6041qXrnDh=GKf$)VGuQq6Mq~BloS(v2a*U; z`%cIJBALM$X&7S*qZN8f+6-7G$MZr_8u%`lbf_hyCx zYGzjLZojix2&9nE!enq(Ovl7MGnpcJP3D53U+kpPLKdJ?1>b zNb%KY$3qaC-aj)%X<7wTBc%!?_4BPpGP@&SHJ5cNq6k0y-R1ka1#k{Y&`*R=xhf)9 zs;@%;=cWQ?mFhTD9s2>b21vCN4C{S8#Ouhi`$L+KodM*^4wiEM@t!C(M^8No10)q%}}Kz-GH zM^x*6Z(LmHaORJBF5OzHb30T`l1lAX5K@0vLtsWAC01hs*iv;gL)DmHUg4LU3w(Ed zj+-lM(BEWzd;0-1sd59b2||YV5Bq@e?X^ES_|Tq#{mZ?QUl%)ES?q9ivCD6rE=#?* zv4B(Bu+R`fHmbf`I;!SE5KVmev6muK!B+tXR?tq zk!7^rke#bje@D7pq*C$&EQ!XG=cvcVBIlU54`6F}}A?L1?$$eC&u6-c9CvXRruGJM(FUI$vCQaX`mwDXLqM&-gx zQP6JWq_x%U1t_vWGx!0>j@pgsW(9J4IUg$pqraK~PK3-kGVjT~qv1Wx;43$ZoSCAa zm1ScI8V6vWSgtt%?}XsoVC3G@@SawYapP8J6}UR;qGQ=LdHBd7=l#n?2rdg=a_^-P uf-6FhMxHtEocwg{_fv}}jvXI$&3^%TV+PZVCaYZl0000I7nIFL}Fuyo(1iwq2mQ$1ZALn>~)y%E0au>w!qLwW8_zdir2 z`n^}##Co}MedWI5NjFS#X7^g3IJ5b|REOZCL&Y;qzU^9^$$DO7R=ALWO>b`MT&McY)jj(@%c5YUlMtL!KC<( zbLd&?b?hbgc7@w4ka6$6xnt2PoE=n!0S(w{5`MvtQ;>KfL8ik7=-J7)kwNd(U zU?2(W7QCLxJu O7(8A5T-G@yGywp;&HmQ_ literal 532 zcmV+v0_**WP);3Nl%a&S>D z)E->OMNSS5E|R0Wlv1Kd`Bz%)LCMAD;$N-ZgCZH1xBKR;d2e@KR;iue>Gx~qQ}cT> zuMv{`jG{cb1-JnJC5%);J4y+2LW~RMs4%dy!1Y9w2{$zT7QF44AUU$?RjhNzC4>Ip zPzEcJ^Z>ADWnc8`VegOE>rxA)IYC&z)EjQlb{$8jUApcC3+*YWq=+FUZ=p-O+M~zA znhr}OlSCc)m}!seUFx+gD_Mkn(^fpV)E_xevJ;+6TLGh*Mob~tRq{8wwU#Fw(7+)e zz&N)^B&+lw%wagrV6QAD$TJejhRvG6ZM-NG5_AGELOfmDu}`}R46Tkf2>R03ITdl{ zX*7q`Db;j1c3{T`YZRNo0~uE#NX+HpESkU*yektvnL*IZwHAKO6|P}ZvwVvN>NwNU zxxi&iTLt)lx?JV)&f~MkyW$WnW2v>8Mg;e9*`NwvLOF1=QC6cJx6nA*R zkd;VQa)IxCz)AbptCod&7KFd&eGQ2eY>&J>u}U0StuG^~EBf4h_VNFou?4sQ{~X@~ WS4@tQ?SPH|0000rC5Ry_EsgP~( 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 R+kd}6kdaiBC>Jvd`X8MCSHS=P diff --git a/src/qt/res/icons/browse.png b/src/qt/res/icons/browse.png index c02224cb4b7f8d919f8843f0a6ff9bd997440d00..e0e9b50b6262cc26dd240b212ccc35168583efd5 100755 GIT binary patch delta 215 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 JPDHLkV1fg$gdqR` literal 1048 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 literal 1048 zcmV+z1n2vSP)YL;O-)USijYZ4Q-+3&MMh76fPh0oLx6yQ zKR-WueT_&dT9aBy&gh^SXyjXXR&YHDhFfTLSujyyd-0001BU|?luc}Y%VR#sM0 zQc_S-SxikyV1$C|UogP*jTxXzoo(3`o@V1SomhsJQ4_h^#$VvX}x zdc#k8^hsQ}sIthNw8oUK!I`znn6=B6waZs^j8=NUWsmn@iuYH6_E38EM{nstUD~d< z!JDtXnz6%|u*8+H#gnkbMPhg+Ls=?CUo%pIQGE7CZsj*lXE<8ruC=^?ke!L0teCFA zl&rs!tG|n;x`Ca=WQW&GbmmBM^+9U&IbP;8R`RB;zM`+WoUFN-tGbn`x{|26j;6Sc zq_&Krw1u3uW`oc^V9ha7(lbxjmz}$(ueE@Sm5iIFl%}(jrL&NvvW=myjGnEDo2iJH zq*-TiMpS!1QL3h@v4Mz=lAEKLrLL5stdO6oj-9BCnx%q{nRtYZijtU!jFzXUsi32$ zX>fIReuR{sq;q|QjhCHiaCSLALyV7+pP;9Qhlq}ll9ZR3J3m2!g@=%llZuR!euSut zj;5EGnUs{4govGObeop}U|s+K06TP2PE!B`IBKGyZaoJ9C(!=WFkbumYWw>&&({h$ zP;P>#x2(EyhCWr;ZS8Ul@*SOB-95d1{SzimnmlEy0)yhT=`&`|nmuRky!i_jE?TU_ zpuA-1vgIpQu3Eij?Yi|FHmWdisBYT4W$U)>J9h5cy=SkQIs=1-=Dz(04jwvuE zTG~LTa_Z=wIC<*ynX~84>**VSJ!5Ee;o_ysSFRds8$kUlVPa}#ZeeK!@)`iY8d=S* Swd#BT0000P2YAsMK_KHj{WMF#p}+n@yA5Pcv% zrSaSnwrMRg&>x!=JMiimE~1Cx7;ot}iwtzYTEz;yA{s(``VZ@S+$^$MGpt;U({a9s z`1C3w9yg2Z+b<|BRz z$a*8ONj~>SH-;#sah1o-BIjIl#PTtm7a%@7l&4M>8F((&gV_ryh|=qMuVs-_*f*Eg z8P!0Pen-S27esSJaxs+aAWDO=Zh?APWZ>#t96B8CWASlB!K+#1ktoY%AnycxXNN@w z-pJ$Qh*v}xUAPOT8 zx5$C4O~;k}+k4zz)YF7B5<7NYQ1z&l!G;K*!F&b!zmJG#i` zjcpa5I1#H@WG5sR{>9_UgArdiQ_~_RvF7~0_~{UZD=e~8PRV4`X$y<&l=At1@m8AM zn9dco$cgz+)SIOEgpVw;b0#6;@nqAG9&xhBz{Va=j)o{4Y>}OGgvXN`AqwkSWG7vx zU9%qJY*mX~?(yVj#Rt|{WM}>4@uY#`1HZD!&Z?)~Mt<8OJ1gPwq`Tq+D=f0Jx_ZhJ z1s=D^&Kl(LWW3@7@3F|v8t3sOsrbN~EwZzc+W*OSTV!XAv-{-m8>C&kF1N_e>Z;vN ze#;^|E1})v^`%92Rz2;$>lPN-SwGrQsPHTIb3Az+chlPOjO2`HKKi?>#MLLZCloSICoXxz-*ymke}84!ibEV5HhUie|1(uz;| z%pyA@i8U7f<=biQ$nE-MXCxN)%fAd!xWL`S_DBQAK@@(o$WAz7Nq;S7h~kr{yLicr zJ^GLTO{x1Wa-hAqv;ph`Q5cF9EplM(wyYs^g(%!;kprodW(W^M6nZ0Okpt&G%@Eec zM2N!W7CBJHV=e6bB7;>^Wx7I_Lb@H>o;APUp5t3@ulw=x;V z_DDe#8lc1?7fljdW;&4fAxd{!x+5g!l{VBUZKg2C^L0y@P zp+wONqVxkwEOJ3KLnK#&*&8W{((@KM?^4(&*TX4?_;80s&Z}qgF`O8hK$OzB%p&JS zGsN;Wpv^HFqBIRBTI8G>fsOM$q%$EtOve=#IVaLMwNQh4ErTEK4vU<%@f9AuGII$+IW-^Xo)z7U_L<1s`m z@)GsOCP7(a-2nq28EAxEE%GAzVw<4tWY_@hve-rUG2#|^rjFP+sQZQEXa>p95L}5^ zEsop}YX<#z?MnC!l7+#z7c14W$Uk94SI(n~;Z;bMhT;LN6Y|Julq2fm)e5I!6eLSY zG{QAlHDr;;;4Ig#?B5*CAvrPuU*K|V;dtbRniVXU7T+%+m8VUOk8m{(!MYAaPU30B zZb~O(?~4Q^&&Hw#-{CD(;7QzzKLfCfa!)r4>O)6x35G*zk&(F7-yS~qW0&Dwq#z-d z#A}Le-%!Wi0@aud36ZJz7~6Vwn;UyQJckJohmA)yHngfsUyMJ9&JG?Dyx0G+atppA zp2HwW01ZHOZjOyx>?n>#C0Zj@#FeNTyokf{yQXZ>*TSi&LQ717qi{Vc@eArAf$kWDu@H>KAap|lb?`IFaV?I(Mq!!H|8u@tK-3i}dH?_b07*qo IM6N<$f^#N-&j0`b literal 1045 zcmV+w1nT>VP)YL;O-)UQijGN5Q-+9)MM+P9fPh0oLx6yQ zKR-Wxg^xT+TsJp2aBy&dlBhIYjyya(YHDhHjiWVQk32j-0001BU|?i!c|J{DR#sM0 zQc_Sp&eEUK)^4Ds zZL-dI%=mA}_h!NNT%EL0qvWHv$C|>%gRr!k%Fdh2(3{QCV3U_!sK#r>_hrHNUAyyB zp2JJ8^htlXsK3db!^V`o!I{R&n8(YO$IDlUj8mS#VZZlWyY^JJ_D!+&M5F0Ij@qlf z!kfIln!v-Cz{Hip#goCsMRa&3Raq!mUoUEbM55(1US~Ft<*mECfSa9(s;rp3z?8hd zlDxl*x4KfW@Jy=fMyBXRsr5gl^*5I0Gm`S8v%jLZxtzASnYg-@xVnld-dqud+<3@t+9cOj*_CIn5?dps;rQxsz{>nJ)QM8kmE0f)-8_oDuwK)si~l*r)hL` zc7ueJqNF^1xj2>cEpf9QKwv3|^q-@rhlq%dl9H5|nJYk3F@V@Fiu5dm?0=G|i90~0VmJ?(=cB8`fB_8HOLhN`2`#tot#}<-P{F*Kq6ei9-dy_KE8hb0f8c-K>cDt z!6Bhx;SrHh(J`^&5)6`Y@d=4Z$tkI6=^2?>*-{MBIk|cH1%*Y$C8cHM6_qj!vQ^bJ zwRQCkjZMwvEv;>G4D#(Aon75My?y-?CQh0>MS($a>a^)IX3m;DXYRcD3l=U?Vo+YZ zWa+ZyD^{*ry=LvY^&3hzhj=k)Xqz@9NQI)CBfrOQ{0wGE*Dl`t_iGqBvmg$eixyNEt>xkFh88SH0mfu7S;;|TBM`@VC zEx3YByVHzY&F|n{x%=!=qk1-uE`K$7$~b}*ENY^@_U%g1t@ zZy-r}35ABzkdyW!igP(oEs!KVYEmx^8EDGYAYFhs#8MQunM{<19LFWOc-b&LnSe9+ zTvkH{rlB&M&!gKxEX8q?p)}-->x2!mF*tRQBs^j$4LNISGCeRyAO^AYO4ifTkYhMH zllzRiKrH=&LJc`5I-xKVgK`_h(gbX0C=EGhZqCH3!zoEjAE)I!H4S+h%F-E-Hv|5# zLqi5$P3QGt3}T@J3LOdgIf!SX*fW*EcqfTz`Y4CipFI!p&>P7P#Lid*vG9^(iwtWa z9$JiwWCo%cVqq#u9SgY*;;DvYHlodiSh&T(<-!dRPt8H8%^*Asu`n7NIv8>U;;{#9 z24MiiLbap2I+`FJ>z`-jjAC8rHXNYl7vC_x28l z{3672<50A=AAdH)!tajnw0r{+0;i|5IPYr5L;esF$|-wkr#net9yWJ8@^O%msW2SQgjhJygOG25gv@D%!<`Td z+j$W3=a7)O&GyQArYEf*r$Ry|VmSN&NuY}dAzup#q3;cc){q1~cRb*YF#r-m|JmLn zzu|buZ$d(pTDV2C0a}`()+A`{c7A%I}pSRS@O(8m~eufGF?GMZvNM z{5>GbJ6$YxG%BBVP+SI4-nnq~woY+~@*O2 zF%u!mzwST&-AbwY^{sk53Zk5MNTTJfgCNS&-kM88eiWjd^?*&t<(LOi&Y6Rf5cHqa z3ohG`E3gQnoUsr)CcD4reTZ_#>#1xa+ZQp23cM(GH&hzmhEf6daynZ=OM~7_MWz4Q zrr;n|!xC+!>=FD&xkWGAO+*_rq9-%9v5uD`-tjcg)y+D%B4aLG4ysijEMKvNqTz z=)I;lP5JgpeUD9CYAXH`L|KU=f+80`4{!;lL)1FW#1*c8s%KYpf~YmLvAMu?V~N&NmE__H2yFKIQUBNew1j6$pyYYYA_xWKx5H@ z6Ev;N?BX~RP3VDG9xtN0pdP1W_exnqFTurVMmNmQV!!Clh~NTjWwi1ZdI2hN25v_a ze#F1%iXj+}SrE*^cnn5Y{DU75!L2wAI~z~xfBfgDwnl A@&Et; literal 1049 zcmV+!1m^pRP)MTm!xB3 zW1F- zR#s9{QcYA=NKjHnMn*zHLNhZnrpU^-)6mD>*sksMk=f;|(a5Ra(X-^&t=Z12?dYNP z@{ZryaNzBu(#Mz0zmv+msNT?mwW)^H&x`W$f6Kyd>+oUa@T$thp3%gf)5V+8#Gls4 zZl#xP%g1-|^Kb9-W$Ex+v8+(c-I~U`gS4oc&cU0|!kf{`9=ss>8ya#=MllwwcPln9IJF%f45Pep9`>VdwB%=I~VG?@ZtBL(t(sxzw$} zyqmtYn!~x5#JQElxs%1XMR;o_SxhKiQ!jsdOy2H9&D}I+UpBwotiHT}otBBLqnN<9 zl)to(!nkSG*;3rK!?MK(`LeuO$(CatN z>MM(yBZHPPk*=Pywql;CRKnO!(d_yYLhN`2`%EoLyYq+&u(^Kq6eio?hNQzJC4zfk7go zK>cFDA)#U65s^{RF|l#t5)6`3@d=4Z$tkI6=^2?>+0qO$Ik|cH1%*Y$C8cHM6_v6K za#htewRQCkjZMuht!?e{3<@2cUEMvsef<+APMSPrsv?8ZwCOWu&YC@E?!5U67A{(> z%%HMl>9XZ3R<2sTX6?H58#bykaHwtCyk+aQ?K^hv+P!D5x&{M-rq;gw2M!)OeB|h{ z`$4A^q6UZK8l>y~|s6{vuY4k!CVn7x>k-`xu(mM5zyDgr=1c-&E;!W(Qr}k)J%W*FT zKpZjv_n=HGEVQ-`RCNEvUm!`z67p82MxPS?NIG{;1e)SW3JFl zobF=WVx&(y9b&l*DkDr@ zSORgxG*l<~Jh~mk0bL@Fts}%ColufQ>1}eqb?AQY@JRhj3e?@5RGiD%j0-;I7K5{Z5qn!6Zvh3Mz-GT^?7}m)yPiBVDq{} zeh;FNo$*%Gz)i78BRgd=s-g@!1<}aPc`nLAw7DADNpn!PDg(Y3qLH0-_o@tdfJSy& z|CJ4PcZf!I-p)Q>aA{=VxfRXZnxK)rFb+k_8t9P_jqHs>jZe}{!~YKQWQa!g&IzGgCynf(=l?s%?$F5o>H6P^dh?-?{WBkhf3J!VXkvd#}d{yYmS|fYt`G9|Z@;b6c{xRU6)?P=}$Swc8N7l&O;jkE- zgxk>Cs(WSr8Itdj6Wozu2E?#I0sltzb_biK)j>67+BG$Os=3f1>zlbe0W=@T8KAP1{;KL z0#4T31Y z_SOtXz8~T&b=RsyuE0EqbJQG^uIdbjmm$tk&qke}vT_&Y% zjVwf2FM~}34uAhPlzO#3Q%uV+6{4&)6=gwv4xO@Vy-VYmFkWQsdMVWrg>kJ6*j+Ee ztdqqaaW4UR9-^%AL=x+KO3)r+oa%^@#FkxZ*)fXF@-rc4tMnPhy#-Q4ky{fjs zSV(NtC~RRoZYXr)*w$02ev$5l4g8Mo2vK#`CiFYl%Ft`+?Ny!qh&Ao48@i8xlC;mxWF=c`hE^s$nGkG$HR{)eTls%y6Pj! z&^FB;hAzYfm;%Wo({N*WPL}Vn%kd7fd2nie)$F~m`PiEv?cvssi|`S)4D|RXc0)Xc zxgIPZO{0lcUGZuBUJP*XmEfHy)r!&o+|E-N53$f#q_LmYif0wa;dl`}kTrM_)dkPu zpk%LEgO-)UYkB@`R!cb69i;Ig*O-+W4jY(5dgNlhoPfmb(QmJUnV@YF(k4HIIlqKRo~d0AOHXTXJtc zU0YUGR#H+@O;%M%Qc*@mMnXbDGcz-$%fYzP$Hv{zuK4MZ>DjB$y{X^9v*gLG*}$vo z(xLR&j^Dv>@ztZzx0lVXlgg{8-oJvinTFN3i}TZe$*OMh&SCV?smQpV(Y2n_wwuzk zpVqi;rH5_Hs(19zZ}rh-^2}SYlTqTwf8N1?w3?dEv76Ado6)jhmw8>oqHFWbW%STp z@XJ%cpiA-1Nw}+eQM;QS;GF z^U+E3(M0mmHPEy#(6%zy#bfs2UALxK+QU-x*iiJ>OZ3)9^VLH0)IRgoIP=vjo{A%! ziZZXGV({WwwWd_v$WQg$O7z)9^VdQ1*FE#tH{!`J)x9nA+bZkVSoY^q_TxsFi$k`h zLG;}>y{b6!+AXr79bZ%_^WIPH-$%;7LEOwf?%XId*2LUJ1{?jmC`}%78`!&wj3OW8zZi1z^ zsk(B8KK@nH;SMnR{6K2^{CWa4*Wpltx4MQ^54Yz=$^ZZX3Q0skR2b7^U;qL}CT12^ zHg*mM2;k)6wzac&aOC0T;{@~h1)Q8+T;1F~JOzb7B3!~=-afv5{sDnO!6KqS{bC`Z zVc`*xQPDB6aq;3343bg_iAl*RscGpMnOWI6(hM@WdHDr}Ma3nhW#tu>Rk93n)it$s z^$m?p%`FwJZSC?53LTwY-95d1{SzimnmlEyB7@Sj=`&`|nmuRky!n$CEL^0_prX2X z$(v-I)HiJ0w0Xqr#8no7ytkO0001FoV|ODlALJ+FnpGn-Pg9cwr$(C_1ZSpwr$(CZQI5? z-~CzLGpSTMmCVVH>$nT4=cKAj$(*l34*ZBo*o*rR4L7hJL+~M<_GZn4hJPEAAQ5&A z-{Ar8)IMnZcDM&|(P^YNU;Ci(>mwRsz$v_DuJ%FWm&HAZLHqHf`?U`mKLHLwJm8O@ zMcfa7@(_=>h~z=5xElZqARf}(z1jzj|188~mIW>2UI5gDc+4F{1+C*w0Q7}ev;?Cx z?1xxXIA|Sr0$?A+qE|KZdJkgJPm!;E(D*MvEIRB!eio!i91tutQRs3Iz+C_D`*8qp4v+Y$@snUb z#QXif`Z&OlPJRl2k0A<9;-bm^-@rIvkK*{~F5dA&<3Ein5CyrB5V`RaHk$AM9UlkW z#7wltYyU{E8$`h@KLo%)h=S2EZ2D+`akyl%|JN7?>_=CWK(Y|&J!)futfZG4KNF%A zPu;v|A>D+?gI}=O?fze39B>P>(GG7~Os_RW!EPk-Y5**UDEQW9KF^_1m^pX-{$Fhz za1cFE3Q;!FONi|d1@C#W@vB1=97U7^`6fa>{EFEw)H5yS;XSI?2OR*i`mCZh5r_!V8#C>5(K~-xDB!BKGJ!i;4k8a;sQtJkckCB@H<4oA}Y6I3N~D%IRK|3e4N-Ip z9q^c;a*u{s^pTMOP}uH#0PzgG<_97gqTv#n8hEx@Ar^gUDggFEEb5Q=E|u#gY=k(d zHxjvc`e~2)=27pT(I1Y4F5DJ&1`+}DkSN0Ce+3623L2RTfL0Jis{{$5l*9EJ7N#3WsF+SE+=AF} z3~%}60_Xb>8}{KP2M%jI9f2FkC4?6g(x`|#5E~BRRX?q3SHoSqhdc0^#x9y;5vWft zNC??1{=SCB^Vo|Q{kXZIImD);NNypI!I1wkBSO1%B!qGnep^7}jd%^u`?2v~#sP>8 z_fXSfK3zlo{fj_-QbIz=XYpq9VGx^!B7xs_xE|5Cau+yhM z#HO)G=s@?faORd834S0nFG^YzE^utRk#0}0_PjWmCP*t8JIy>@@^ zd5tYs*&{SnJJ_K;2H}=zQ){OErA~L?rEm8vgV=B$86Db}5N>L&E^S*qGhgkC#01J)wKpiWv$wke_j({8eqN8I1@h0lwGjzpZ{Eqif z36FT7j6)y_-Z1$o7*Vjx`%9X}8$T2&-Z+iB!O@$*`=O79yYUKAMYGWkMLvSAtN4TDK{^#oUjwpg88flJ& zC>ZG7V`1tuZAle&)n>!DSc7O23nQdIz{0nVUsgyjFGRr=Jnhv0NPsO61)s%`-s7l+ z;R~_CFp-7JQA>Hc!)Rh~&lC8k=4x zp($SYpG_dD=O&Z*VMIIL#&t16b#M1l8wY6g|N6G#HyiaW>zBVYuizHMkTQ|({|%Vy zxBs<2LJa9(xc_(BJ*4#Q%$5Ng%=iC}>gwycZ3FJ(VUPCzs?Ot4Kd)}BG&&COfB)ao z?{nO5;fj%QfdBjd*@zz(7CNfx8kKr0b!!EoV z7neLUE51taVlh5OY8!VGmod=)*Fh2##-G>$Q7{ZC;_|w8LR7$<5O0KN9L7LY#zUH? zX*(F`|6dIA0gGmsj8kFW8Xe5v0chq6SuY|FQX-k9gPRKD0GIp!0}6*~(;_vJ2isxP zR~#?tj|24ke{<{fK@d!ZSoA%rX_)1`&$k5u@E*j2UJ6>rodC!H@tA`_%eXsuJPPrU zEET!>|5YK}(nog2b2w zF`#wO0^SIMB=`uIATHR7V%~caK_EPi&e)G=h=XooJsSFBlSU8>QOJnOsHUL|-aydk ue`yB}NB{r;00jMi-Ht#3000000C)+*7pSSEuJU650000b6V|ICd6{D!7 zfyLvp8mdd_lpF>%w}wfsWfj-5N&sr^&_Gu)5m%6dDIuj+l#y68VimnWIrBO%D}h#& zQ9{B$tu0H)&Aw96bD@;)U*Cn~Dr^Di?ZyEFAih=Kn-Uv@pta!QgJXa3IbTp~lU)`c z;rr`PcO!znLErn@fy9ao_J|I?=@)nxN#>x)90vm3fyi{oEOyAEpm4b;JQ10YDiJpI zcC{_2-l*oL6eBMr!e)L`rJ%J=+}-d4qIzX< zRlPK!kUeXxTv?i5d^@wWFt_k_MlS0c>+hiP_a@y4Q+WC@6As6K zp{;Ju>rT$QX6^T#-kV}HO!ZueSx$nV`fVR)VBlLUtQgf}jKA7C!X*BE9EUxAk2%s~ zjue-3k09I0C^TBsk)DjlrbRx8iHV7fjzX^`r{Z?j*LAyU_42Zz z$s^4!HdBvJ#p^+hsga4`+QFge<03;HUT0`XCi{8`uj$~0Uik%k->;idX^hh7sHmb! zTWj}tu)KNlfm&^CMK~dtj2)|V%X+2CNYVJnFW(}N4oz3DhKU}HypAS&^B#^|`t(C{ z{AfsPSZAhUE_Gwl?fP}QFFS=o99DZHQ6l;t`BPL#L;aH?g`<_pp9>cb(>dT=t!j0YbUT bm=>qO%qc$>u1nxHACKaF$KR8G8%_KVV#y{_ diff --git a/src/qt/res/icons/connect0_16.png b/src/qt/res/icons/connect0_16.png index ded85c7b5b5647bccad2678b8e47f5d77a9ecca7..32534e7cfe634eb3aff89e7b7fa80635f8542362 100755 GIT binary patch literal 2224 zcmV;h2v7HkP)E{>BQVK_E!SK@7uF$mg!5pwKli4Pwz5 ze1WU&w-yxpH6%kE*o#KiTMLT)BP4{Kn2VX%kjWqAA|B1UwV>E1p$=daA}{mZ zCiorWu?)*?Ds3p|Z&ki;_^IH(s^queYW1Cxm;`a@O+z`aRdE~orPx>Ev`YS7^_^-s z2r*z~He4|GAi^&Nzh5Q4Oy9X+E5xA3T;v;%^(x+PPWmWX;SbEf1{}vBtVM4;huqmv z@OCQskJRU1LX-h$j)KTVkPxeRiE{vxCdFD&bIwAJ8AT z7j;n`H{la3g+N=2JXRXL5vdSmD-uu*5&!vq9^8qc(EBChCYMDx4}oB}`s@zX-tUG+ ze)d9Kn1H-i8mj>Pt4+e&h_SGLJ?Qbh!zk?af~&YiFdkylIed;Ns|`(70ZyQ~gAOJg zr1^4i#f04=RKnoa%I~`)sNyO!Zff7r!zw4JKQ@dh-^ z#2iRA>F;s^QgeKU!I+8p7>YzZg4|An4^xR=z}*gty-3ArV_|aU1xPkI>0okwBwog5 z3-OaM6xE#ERp`$5bo`1u76&i3L%)cWCyV{cLb6#w8+E9NWe}TE(E;&xPc0WA$}#+f z>rfOCh(%?*5aN_@7LBaV!^>v1EgpYsoP@Zr1SRZFbUzHqM7o8p)$1*`*A$Y?YFWsm zKF&at)%XC7Q4EDp6VG4_(jdw%6tPqEGMEi$ENsGROu;X> z6;Up3zs5ka$tYCFL?iW%VSuTJ6lg6p}37K?uz!|*pgao}o0 zdB36Z`p}OB--D89hE7O@7keKn-KOGv<8WoPJ()eN=^-sVZt!AV9KDfZ zqg&wxJFg5@MXHM~MSX5Nrlw1jM}7-R;aMDls2D{vTa!fHnwl(p0>%_(8;bib#D!ycCB!S{`riZ8@l(MQ3=RkBIfK(|nuH#B8hJvz8Mi(2*|FX)_}}UP zZt?J{oO-RQx`6K2>Oh__ z`0midHa(35w8Iui2!D9swLoL{%smaoy$530B|PuA`N?R8U%vBTT|0000eQ^ zPy6XSL+smEhn8mls85`)|K=)f&pzsL<_gp8`<9bB1cHu>>TfuF_m0hKZl;Yu8{T`m zIEHAPpL*eC*dYS})(4IP6Pr4uyG3utIIu2luwL(BFen>^Y=Ecw~>$kXjG&W`W<{6A673MwR+j-py-x$`<$wQ PUT5%h^>bP0l+XkKlEx3c diff --git a/src/qt/res/icons/connect1_16.png b/src/qt/res/icons/connect1_16.png index 3ca5c38b1c5323e4ad6d065176464e9124ac753f..e2cf766987039957dba3575ef8c794518e7676c4 100755 GIT binary patch literal 1991 zcmV;&2RQhNP)a(&{v=?HbVBG0KM@lvg6c(1$`V^p%`Le z1|EqMvfOvCY=Br=j~aLnZzS+0 zRzZ^J9h=3|H!VhW8}SeJcNF-k5KA+0yybCTha|~VWSJCkKBhtfSb}RE1b!RD(rp26 zJ3B!f+l)(03b@Z;rFscgCzuC*JY?XH1ekly4Kckt$?*)~BPIvF6$KDwCO*emNdLco ze*o@9OBCn;a9fDLpM+Rg6Y>{)IL1Ok+JYxd4tR?GtHpM_k8Fd_Uxab`8ybg4J#cm3 zUkeh@EL?1Qu?LQcT&FZo-4Rvro@@+frri%Y3WTDqMSS#G>I&epqoc+UgvOjh} zAlQII92D0ZQi9g_GJJki72eEIzt2Gw#DRaS3V+E_zlY#2OXblFV^LgM1Fx(KzbPVh z)eSJ%c-Du&o2bGsOmRIqs0RtCDe|Kncm-APttqS}7kwci4M1L01OG}D`?}-JIyR<4 z9BCNU!0%IqwsX|)YmgLsHmd7}ThxH#7zh0hfuz_x{wyMyY4mRybM7$8iz%Ntx zy~TJuU|)w~u9|VY1()u{07#Ow36V=WuEy7Bj=mU-mMD)Wuz%3bTj_aS+#eupJ!pz+X7PaPeZc`utoRkl=GCLXzxg%eB-| z5K9H9f;`(x%T|c83T1E;jzl_ga5`SW0En^?ml+)MDoB!DYIy$FV=W|v5je&s^sBMl zU>GfXu>m(59`8y>l3ij@$HmwHQO4sFT#ln~7|z8D=zv0qG7m@Cgnk10LjstLvn`J$ zNp_UM6t%t_F2+L!^`D165M?lOZLjP1TP&mb(b08@;*ulA6tp<_HkP*eupNFK_YmUxkr0VzDsLov0fjF`ly(}H+=sdnwwY(SA z!1FK|64DUlr|>);RQ3EBtmLRownz`l;^en-{ysgHp#z_GXr)ldL&>_JC$cTxS`=VRdWOJL2kwS$_E zS6c@+Bfm5Revb-kEhMC!ILGlmpVmP-*$odDa-&0cKXWtA3i>JY>`mMG#9pag=9) zpR5-j&<7_OZZr8=XN4s=#^m6qVVZ+s^#xH6T=n-9iuFP|s^Cgw>1U$w85Tm6t+>K; z-g^~9*^btD5m({_oPpc$3+6$T>+G`1TY?_nI5R7UiQb^mc^ciS*o8O z13ojkU~i)}y`+Vw9e!CKjr!OLF|Y`)Ak*{!XQCj)l%l@2tx{`>C*xoP$KgdRgQz}^ zRL7YJ0ibS89R~k7I%6qzq8Q6C7L{--vTQqUsETjp;7!Hi&_@Ygd@#EtUkMeqgKVr< zqpj0I_L+`}5C^InJdRQ>&6h^8x2od1JL>mCNC>O&#vUG4EmWJ5F7PSv&mArY={eaFO>RCz$HogbM=p zm4$xlud@>VGVm=v#KSnl&os@4;v@896F4Qn(_b}IKTXr(w#R$jt$KKky9_^n1lp<3 zFU65@y7q7J>8@U;rPl+0(Tfk*VfOBoIP~{X2+^oL@jDj=>>u8gYwT+~St9 Z_CHBRbJPi)Y3=|3002ovPDHLkV1lcsxgh`m literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^azHG@!3-oF)&9>0Qc(duA+A7L&BUG-$a%*S5(`Y156BM^I4P_GntEkrZafD`njxgN@xNALkChw diff --git a/src/qt/res/icons/connect2_16.png b/src/qt/res/icons/connect2_16.png index 741f74c5506722cdb7557550da0967acf6cb889a..54daa0bb65ef42057f4e68d6987c9212221af14e 100755 GIT binary patch literal 1761 zcmV<71|Io|P)1bM&{OQi^IMhRS*jXB7gI>#bIBJYKTQ0kh*bgaoBre1tbKYZCqm< zcmqgCs&M%B7+Mi-#&_t7QJ8_*8WNBYwb`D6J_3zU4vDA)_HjMv-SG#iAr5%f^%3AA zh(o%&{H$CCam-Q|!@dmF5C_#F)uphH#9D~MvRnx}6{8^zt8nS+z8~VaNv?#Qh4~Q2 z{q0KNcR=8}%Uub)HN2Pq=n5b8q@W$d zvND{e(}1h6ek&{0i?Ir_8I`yrVBpt73{)dK!1V5Th$RW!rh8RYK@>CbI*vlB=ie9L zYBYm7?5@J)0Rq1TVqjgs|G>Loq@^qSE}aSw#7cF9gcp#Z@%!VUjtG}yj|c~@)|rDp zAwJEWj-65r}T$4xE+^j zIu8fp*1&-W5B>yvi9slaKv0TlsEZqrV|w6D5RdNzHuMbC2JH)N2X3j$DF}Lyd}U3r z7`s|%TzAMew9b{`^NkRXmX?lt7X*qp@HZhIk6JqJPWaN$k7$Z9NNlfx{{->4Gy-i( zLvtU?SeLo@=FurhZcipU1{mSJ81=xvSLY*=*p?JDvM{W^FUo$XJ85#w# zpb8g7HSnt-9vv+m_aR6Ut-vl(3_Kep5D3b#uZ80dfF#+kQN7ArLOkjOJl-Xc2&l$^ zQ4IVfB$OM^oj#AXGiEAt3eYmJ+0EhHo(e6FWHf~k#qlKGea)*C^8X{Y97o@tBJuqnS$kiVbr( z7{eikYVZegOe#AWr4YqRe2Qaqiv~0l!TpFQCuAMYjtkyylpYFutnHhd;tcCd00Qn9DegM`%Jo@4w z&DTsmfZC-k#lAWty|00000NkvXXu0mjf DeDgF9 literal 463 zcmeAS@N?(olHy`uVBq!ia0vp^azHG@!3-oF)&9>0Qd zmjw9*GjOduJTIIl@^v1w-j}`n5`i7hkF#-4?~yg+==`m){#`K3rM8)xi5EXrNqw(p zT=UQL52xtq{MaleYne_CYg3>x{hlt4AsXl3o;Mdd6u`rBfpxNBLXpwQ6rXb&zV8?R zm3J}!#f*<)QfK!#X)BzQSDRQ8^s;B_<|$7;v2u&YKGvD48~1UQ>Bp+WRSRwk<-fl6 z@>_%5Oa3j7oQq73sVFSxI`5-j-^aQ$q(by-T(WZ;SG!>T#>p%HY%{O2VAAt{p1&{V o=@;K=yFXv}SG8}CdEH5N14*Ht$xkd+0G-C*>FVdQ&MBb@07x5^761SM diff --git a/src/qt/res/icons/connect3_16.png b/src/qt/res/icons/connect3_16.png index f811d08faaba5867467781a096d90687035e76b2..3fea780f3d96b87bd693ad223d9ef13deec6d36f 100755 GIT binary patch literal 1601 zcmV-H2EO@;P)JZ6r`TJS`hZj$bh(LFrv?_7KD8zc0)W+?aYcn;GH2J zIgQ&RF|-TtG3sFi=3+J0SrCGFsDC5{eFwVY1jMI8xW@FLFGmYxKn#%A^k0BmAqE*` z@^|Iq5X0;+G3?in0WnY(qD>0>P8@(3EWwnpqcIO+u#+Y|yT6ARZmB6@CtwrAaIH-V z{0m3~c-_w6V{jdw!iRVpk0Zsy!23ZAw+C@n2ONbr(FVI9P-S2a3gJ?hKP>k{G#x@~ zn0>Lq?LP0_>-UQ;IV`z0AD!@vf58fipA~(zKQI1OKs+!931KGB#A8=z~4k52we+W9m?2;cf>PpSNmMkWOQiOre8 zKB$ipHl(?9?SClORl>}`z4wVr*FIS3_roCYvm5BrscukZOuleh50bb9kz+K!A+5>T#eY^wpWTL)S|M_EwE3!Hx)u6y{z(J+I3Ao9^|0bdW zvY<{?Uu)$@M`@RSUN6QKJ`P;1_ZigCj-v&hM6B}nH=zhNK@=zOl$D|-J=jonk<9@9 z(%oY1!rR!NO6Y3%tFQ$7!)%v)-Ab|dlwxifj%XW$9|X~`-a*!C4hJ2)s&BVaBptgU z9{EFa(0L%5#=Cr4XM2tNx?AxpVyqUZ0`bsZl(3*Wra^3I0a2g@(zWRgp4SXB9!sPR~3mUWyurd-%KW+Xdh>z_< zBV3m&Qkrs-n->maoka^U7}fE*InQYQHQ<>Lk9?$*44SgM%uQ1e6(oH2A3+l#E;@i4 zgLKcoBw~S!GkDL3uNs7&g8nXS8GI&4Q*T$+&)5pl5JETmKTLw)lTiRu!rWj!h}L+> zz3M^um*Y+Rh_Wb(pYR}JgM@+>w4enoTif3N8v^qw**O-500000NkvXXu0mjf6-(*f literal 736 zcmeAS@N?(olHy`uVBq!ia0vp^azHG@!3-oF)&9?BU|`e<@Ck7Ra@9=iM-ee0u>Izj zO~CLYIMzZEGLTVb`1T?WCy8ri=VsD-X{LXRP?QIr4R0 ze%hD43*Ycb1a>?>&L;eddwNgt9a%$;&ff|`-;LJ43ud{rWu|6g)q+n_arNG7O#g7Y zA3PnKb&APauBPH7J209UJY5_^G|oSra6O30QNUH7EA1#tQ`3tkt|mrf1)&&ajjqN8 zGv59G-@Ny;+3uX5jNcB2T%WUY=W^*E=buVSeED_fqrl0B6E7Ny+xUeFPyYLHN_~}^ z?Top_+%x!DTJ>9Ecn@_Sny%FM`$bVsYUr8Xil!LjHx+lg?s{}pc+K*4&xxu`eR5y7 zsQUQ1^3B!15ApLAmiQd|T`~7b%kxI2$}E5Vc~cvVB3C}TqoQB((fiXYDf8`1&y)T{-Lb{RhcE6p#c_&)G-yRc#92V)*f<%)@CvwmD%)G0P0ZFjTY&t(rU y>~>kc9*vIDmuf?OQtbXfXj>!WCJ%gvKpUXO@geCxgNdIvF diff --git a/src/qt/res/icons/connect4_16.png b/src/qt/res/icons/connect4_16.png index 79cdc868f982d5275deafa32c3e4d47fc688e7ed..d405e5caa3021374b80480c3246e160a3c9476aa 100755 GIT binary patch literal 1412 zcmV-~1$+95P)Jc*fwjL5_4_ zLKdUVfsJt<9>+WQ3f~&&g&evoOQ9#@Hnc%0)q}ylhaQA0(FJ*658uxKe}z2qsIRfN zL>uIppM8wI8oD44b@>*1D(WGR75fsq2p>QmYxe2Yy%XfQ4}6JTiC-YkUFJ*ht)UE9 zDay_lVffCalF2tI+27mQ&o9Qj=kA4ZpE=B`nsUBBiAMBRH z?)V#WXfM+pULJ2k78-FhDiR1j4zlzWMp(|XE9A&$C^30uod?D6J|@Ntz6xY%m57I( z54$)N#6r0yufk(c0{+3mF@kRt;o5U~jLW+pCwzr)Ba_eTyP*WtVPeDxn?n|AV!opW z;5{g&7Hn=Z;jxedpQ0)S!A+0*uZAM}8Vj0CGzJ}zBd4SyxcS`6;dRK+-`EdjrW4!_ zIn<833|)icah|i_=HVB>S$GxA(|v4wj%%?lDs478484%&YVvfc;lFV=vL_UR=V`=0 z473%3e*9x#x1_Ja1*|Rrqh7Ou^R^3 zZhSDBAV&_*aUH$}a-;@@7A*>~IlhGqwc>QlVH15f$bmOd*2la^fd&`5i!EPkcB@I__4?qC;|7NG}nY1IQjy47)22R zJPKL(I-%dw`ab5G#^X?E@?hvckRv-=?)ZKVm$jL+xEP&~g;%hY=_IE?4*iA04V;G8 zpa{-O_^@;=PR+4&q82w}Et?Jh4=s@A)^&IiHVkWFJM4tDF&|2!Y-|h2a}B5rKX#ix z7y9%gUY|oAYr-I(g4aPFJI<%r<&ei-L77j%3(*F7=vNFa@NF2JS*6hrn5Tf@WAJA^ z{1_Qn!0r zdIe$35dBifffqvEnFlY!OHhJpF*4Mhb@YMwFu`ja%Y>@AqyGmFKr#Gcw@xKQFT&3F z6|&HSn=v3%j26Bc2jCU-82o1U0-;)R@dsfI?0{o%Fm}NFd0%WEMi^m)5yrp!P-XU| SX0&bq0000~GZb4Mt1 z&+XNIiKpAvKAyuKJymbYx0AIpn=bM*UFBMNcwTtLX4M~Yk+1Xed%x^m_=Zo?S|YIH z`EfSkSL-HmPcObBYuKqE^xa70UGSwXb~81r7Hm!aBsI6J-n+?^(>*rpl(HO~`~7BM z(rNH?aSYKozjjh+II|;9tA5GFM^O=b0_KR7ckSN2TfDq{r~T}b+w+_>KRC&y6@N;d zH2VzG{{*{zyW&?oa{tB7!uGeJdF4zyl`Gc#+~q0;N|&mgLP~tr%sqZox^B{h2`jvu zf;OewsG90VO`bPT@y?8wjhj_6PMtf+%2OGna6h?)sa-F5;SblUOK(1x8h96WP78=) zn{xVZSN<-o)vH>sd)$rsSrzFJyZ4Cnnv5QW*>=6x?_9cdP4CoHzLmFEE?7PLP2uCX z>f8J31nm_36bw9$X}#O#JZoK|wt-V$U*a7Xza8uS{d~`J%%6Ms57SLXok`yDCA#Z5 z&NGLdG-Z9Obnfgm^A!HspX8!%Y@29(BXs4vT`lbss(%~EOb~l8A%^wSNo94rYjU4h zT#ZZ%yyh`Jf6^)(pS8=s(Dhb>oFwB8wfs3ZmOYHtD2ggnpUpb$M76r#mf)|95{v!` z`hRj}5dBuf$8F^Onz3+RbUee|?61Zf)*susWMN^_s&k)f@7?>jy_P{qy1~!BPpAi& PJ{UY*{an^LB{Ts5d)!+J diff --git a/src/qt/res/icons/debugwindow.png b/src/qt/res/icons/debugwindow.png index 288916319a6cf796c1b7f6fb7bed61f9341ef1c1..89b1b46bea8acc4cda4d8b85cca2c4f3ca1f4304 100755 GIT binary patch literal 337 zcmeAS@N?(olHy`uVBq!ia0vp^F(Ayr3?#1@DrEsF;{cx!S0HWb5JVE{T^qv*)FxOG zz1{)p}9GDQ0Fl)6~3s7>8r;B4q1>@TbR}&o!d7J}TrySq#e^cvw z3)S6gj1QPPxVRjf6nxA>Z)#j_ljeDz0P%>hwi`xO+|6%Zh}x}gKYT3x_zUgQM(24y zdG0}=R9iG61 zD6?HxWtGdVb*An;yy>0rz3grF(n^;L6p#5H?vjw!4ZiWHO>9rapI6-M-{#A?FJ77E jvZFik{EuoE7dghe-g??QvM*W#{lVbr>gTe~DWM4fmr;OW literal 5256 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 DFwR46 diff --git a/src/qt/res/icons/editcopy.png b/src/qt/res/icons/editcopy.png index c94ed620053986035bbeac8405f8cccdcb8a944c..8a9ad5aa9ed03b0665eeccc3931b26935ab25590 100755 GIT binary patch literal 441 zcmeAS@N?(olHy`uVBq!ia0vp^F(Ayr3?#1@DrEsF;{cx!S0HWb5JVE{T^qv*)Fx08 zT~_BcqOMy8BW{#kDQmL+1*$J2KTNUhG5z0Pe~rf(N|=ee&OKb*bwJ&6@Oo!|^Na z*0wkL`VT*Qyy2%sjve1@IP;zVjgp#uaTg2pOJsVx_8NW&Jt)k4-~OetrIg)npEl*g zyz}qR6^ZF?aOYcB@~KdywSV!3HyoUd;kP+=JZzJ$d$)9n@cPx<_oY5;6!rhQt>XHv nh+OyUaUP|Xr#G$n|Bu0RW6s%!FLVz91Czni)z4*}Q$iB}Kb62r literal 640 zcmV-`0)PF9P)m;`1kqq^Y!rX^!fSw_xAYm@%7%_ z<^22o_xJhcfGDo+1cTooS?_X&gkdu;Na%Bx3}u*>gww5 zFwv{?Cb0AwY9b6Ehz#-{0ZnZv~6o6rE zE2l|Jf)b#%Ra9I+Xtk@|xA%XjCK63V7|$hqbCRDK8jYjlSOd-SC~&?T2SFXcq)icX z&To*dv@K>B9FX3kj^`0$_|eMPZhvksm>RV?fDOL2?<`$;BN1 a`TqgB*Dtgj4C__^00004?%@KzM>Ebnn&9`i*@xI4Z2EM1ZVijx zYlbwIeVUSaJ07-4|5GmbK68i6{LbA!J9iwp{56QZms$1jes=py(Y|u+N*`u@oTc%3 qhwb8w>S;y*+rMNTWdX=(S>b&KP&b|Ij@89ZJ6T-G@yGywn@)TG`3 literal 478 zcmV<40U`d0P)pbQ2dh+tINi2;%6b&`Ii`4pNW`Vl@u7y_ckVms~qFSuR}i70Zxqyw-)Ms3_Pyr-L4x zqO4$Z?k+lTBfj36CvFD2!@;Wf3Q8p9uHj&Hd`DGN3j?d; zJFVV|;P71Q_?p10jB_Z(cMZ(oMXEeWbQVnEO9X;v54{U!aEw6)xM#!ReRX_w-~^xb#ye?XT@_y)IO93D8^KT+ zme+2j`E<`Q=fUB>Cjbu!-Z)|2Q1Ue=xMquf^G~$A7mpR^OMmVjsrx(Dg*ylT08@9Z U_TAM{;{X5v07*qoM6N<$f@$Q@SpWb4 diff --git a/src/qt/res/icons/explorer.png b/src/qt/res/icons/explorer.png index abf36f750691fe5a7020a6cacd8780384899fb5c..ad766d9321a96a8e50dd2153910dace8d22a3509 100755 GIT binary patch delta 299 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 j^Mi<_&Ik1WaklXB-Vl0b6+Q2k((7 zkUAgi=XWIiar89qRfmLqCiQ(+$&aEt{;hq1)o6>R_ zU)`#vu48-G%jz&?A;&Z;|8!6B18q_AhawJ37iWe>o?D#!e$$%(h8x=sD;|B*7y2mC z;<7GZ%aMs_QMfe+WIa)vHua>zWo2b` z?AS4&nLxn9!xIt`vTD_;o}Qk#xHyO)oOE(>`u+R&vSrI=&z@~=ZUF?}zJ1%fcQ4Rw zvuDqB^NERx`S9U`v$ON2O}q5;OylEoU%h&jl9H02-AmQ-vf0_4Zo0S(@j6{smJeJ=3KlMiR$F=9a zG5q0EY?8XbbK2-jgOUK#k&jIpCtq*X>0~;u7!cxn{?pmA-KULXgGCK|R%?7~fBdpW zlk2p}0l8_Zm3!~L?|-e{W@fQ2JoNmo%vb55mFt)ne>{>OAA7%i{k8c$?hVZbUCTHB xtTF3dY;d5#)5uf&^wq4L9>SB3)UT;)6w&;DMuJ#&i{k0~0~wf|0d!unJ3ze?qXpwwMW@1H1W$Mm09 zRhK@q{NvHnd}a@sCq9`fAH-?&T#`Lid%e>^SKYa8GM9q?)@}>B{IJ3Ad2>wQKDGXj zy0uHg$c;9-PO$c6e520G#me(t;XxF-Fdk1L|a|{+0w1=-;2-MI(yr+fO&s6 zsW@%C7$3&ZnY2Pdo9Fs;582t@Wjj2lEsaza3QMW<_up-$`a(aO&G-JCzQk#7H!8mI z<=(IM{fvUW3soNr+Vdu!hd4@b0>?dePOkqa#|n=oIA2df$7K!rzMzbC#Yms%zN0+o&k@&eU`h-^(Uvzx(aHozvgb TcYFabVKI2R`njxgN@xNAHV8K} literal 575 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMf{{Wv5*Z=?jGcqy)dCbhr%NZD0 zSXeZenLB`dQ~*)K&d%=Z>$`I0%DTEbpa>9{nwp+Ebqc80&CTuQ%a=d~Pzp$Tcz8T| z^a#iR8fax@b?n$NAOi?^cz8lWLRPI>)zi}x7Z<0;%pA_d1d)Q1g^Y|d85kBYFf3zW z06Gas&R}3@VPI%rU~qDB`u+R&vSrI=&z@~=ZUF?}zJ1%fcQ4QvvuDqB^NERx z`S9U`v$ON2O}q5;OylEoU%h&jl9H02--0 zB|(0mAOQnDzbV^JF#2z~@$M%_;js@M`+hFC;JEQSd(_frjFt^+ZhZV_$;f4zTHSH( z;q`N8W&+`P_CHgBTDN+-IEF}EPEJseH83(NEGR1c{Gp(@u*ksB$jIQ+r;pqmT#=ES zoLnD1e>5`U=ynW-=&6~F)x;wi#j61wNtSl_7EO+nNWohBz)nV-6xqJ8S>WZq$ z%4!D5OF=wFn~Lo0_SOCSSGUj3u4t1H&nK=fFUCg4g9jZO8NIr=KJlD6rL`*SmDH?R zQm?XBMcvZjIkRSs)vl^vY;0|A$JCZBOH*JpNHFGSWGvpnu)9^2BSPStG{dD(X^vjG R06vi4Jzf1=);T3K0RRvy%H{w7 diff --git a/src/qt/res/icons/eye_plus.png b/src/qt/res/icons/eye_plus.png index d6ba85b74e7b14fc672b36b1b6a7f26388554e3b..2245aafc316e82904401d87258b017efda799fdf 100755 GIT binary patch literal 736 zcmeAS@N?(olHy`uVBq!ia0vp^F(Ayr3?#1@DrEsF;{cx!S0HWb5JVE{T^qv*)FxOG z|XXM7;yVP^1KUm5fxBmL;a-+Fh_ZHu~bx>fQ^IZNjrk&1JDwQYhi2Q1*p7fk| z-Qm(>ANvYS_qo_9NXI0!URB{+RuR|LGWpVXqhFOjqh1<4n&Nlse(d>0o+PdH=Gpz^RyaPf-=ekt9IyLQ&k+WVk! zlK+zDSz^y;N-(hGasBwfetGLMMr zXf1QM@vq;a$IWf&4HfD#d;jHLzR2z*dv4yRJc~VbyORFImCoaQ-};*GUAfggN7j46 z1{WtQL@56e6knUWVl&%b&8VQO(<6^tZ&A1M+kLZ`z4egwuEVz1FV|JXr5NVjw02sl zcQa+7M#jl!%8D#cE1efy6U@B)%=l`0+1$oYQJeHWmhZAO(Twxn#xrZ*ZrQ&|)=BO5 zv)*mrchlQHY7&#a$M%Zzt$uqJDsMUQNj&_nX8OH=x18UXq#k7pdn9~Cp?%Zz+13&o zOAhYt&v&nex|AFgse0%V-Wj+-QuI8LJ woOwboZ5QVM*e~I?)6Uvo`M2YWy>aX1FW>P~>8jOL0H!$xPgg&ebxsLQ04NhlfB*mh literal 637 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl47}WxNLR|m<|If(C2oz*yW@eZx z#KOYDtijIE$H&ma$I!vcP{A0uB@x81Bw8Fsj2CyQ>TE2xVgE# zeEAZ{07?N#4-bz=j~)RTK$ESktd1Q!rnbRMtVtQj1p*!(o{*4`RjXF@^z_8V#qrIO zXP6_*6vPdYg_DfgybKcr7^VpVUC1y;h+(P#Loe8c%{&abYz&#KPEJn0fB#;#Y}xGD zv(3#dfZ*G=Z+rLd1^RCG?0Ggej&5!~F)=Y8K74R?cHXpUm!6(!e0=V!SFci1Qu6Z~ z)6=V-KYzYx(W2Pcl$Mrxv4=8K-j#;FPIG)7r1QvD>b|z-ifjd7C^(e_`2j-?4*2}0 zY&*f|zvafepB#n9K6vc=x!{81#_#M=OP~F^&1l)M=Elc=?{6@2nWk2EoO^iv%uFBz zqBM_|IY2Xxc)B=-NL-$J;;2|tfQZAz-#$DdyAQt03)~ZE>SR!q%IzcjM+iX4|{&aNg#o%TJ&Ee3)S~ z^IXNfw?$3uA}opfBJ{#PKc67CV2@p3O#ZgpXQM=F8V+7oi2YB-xF-IZoQOzfRRpha^y4a8LKMuS8b3F e*nUgb^c%yf^9tWAw%#uRg^8!DpUXO@geCxcnej6K diff --git a/src/qt/res/icons/filesave.png b/src/qt/res/icons/filesave.png index c02224cb4b7f8d919f8843f0a6ff9bd997440d00..c15d819aa63c24a2b283355e0726fe38dbbdf389 100755 GIT binary patch literal 405 zcmeAS@N?(olHy`uVBq!ia0vp^F(Ayr3?#1@DrEsF;{cx!S0HWb5JVE{T^qv*)FxOG z zn^zvBpuNWU+V|NLbxvX2Y^z68(6fD~OfF|+T>oqm_GF?Okhy!4E_FRmWx-)7sacl_gnkIIX3Sz|@nW2GU;JysfwB;Ef891HB#5Sdsa)^$AAX(Q)2#Q1-)`Ss zH?E4M@y*hC6v literal 1300 zcmV+v1?&2WP)J8DIwb6ww9Jyvp4_g0^(de3{_bE+Ed_9o+>A04F8 ze!qF(p63cd&D6{+|7K&Bwta}&)Y99OAbXtmrHTy7wHp`cuD=KGp5HvD7+ay;`S|o( zuf4JO`~vssHI5&2m~RnPF*Vdc)$-<+(HjT|mfj5z!-?Q@zz<97{H(`WS-$?nPoI8q zAY9|6{{%3zF#pPnuinqTDL6*p<;7VjrcofqPM|h_r~A+adm^{ zBTbf0JbY^Pn{n3002GDOSV7OADuiC&a4iTCR6!%e3?jzltP}7KoCn7Ug!e#YL~XFN zbb+2K&4!O#HQ>e-k)o#t&I`^7Ub2@0vdL5LKqT3!C2%Q3qcJm3t(bq{NfwTs!eX$k z0LB>bE_tO2-Z{LNo;xA^e#S&N*5Cvy~bB?G+)WqgQ0FnVXal<4nTw*{adzyQxgJ>gdqyCa^)X*Lf^tan{qk3Eq2R)`puDf_gh6iEx{- zOCU@W8{Q?VLl!6oF^5DXiO^-Y&652@5!Q5i=MdQfLJ|`~+DL4)h}QbnoTdtb;GGOL zQcMC+@23hyoqIbp??)-K%E87d2Zk8Q)-EsqGp&GR+nXs zs2Qs1F*9P+WUEFr!|Q-Xqri~eg;~c}fNDaZ*h_Tuxfda$8gkYXQ z09WjWflOgkSY8)`3L8DBs!?{-eau=>OUhSEMag@ZYK&|&pBppn#PF^}7z}&?D;Fy| zYu7n)FI16XEbCUYQfE%1fQu`R?|z$NZlCAS$u{DJ5OyiT8lh(N5(96Z8SwPu9YRRn zg#fXZ{1!@EZTRwRk8gi0pv(m*XGDE^-Z=}hCqs%c1`$dvSiL!*j7q!VX|!Rn45LO!>JD4PNjGZlh4(66hEUJ1e^}|;Imu2@VfH(*>${?^m^N$Znq>xWp>8V z>A2zjp%&?624uv53YZFI832+XjjrjCEuuaRf_8i3HfB~_Dina@SJ(3%i_^>9z7IU zz3vHd`(l;Xq=8w%w*~7O(PVf|OxA#t!W@(V%%}d=MxWI+c>CXFS$)ltJiMP=$1gw!9Q~1n}qYSI^nn&C~PqbCdzxt%Cjgn;bbjLqCgd7TETO zUD diff --git a/src/qt/res/icons/history.png b/src/qt/res/icons/history.png index b60b40c21bc237e9ce44ce205ff30049cc1ed924..c7cb16c3e08bddd539af33f655b7d2f0fd6d62dc 100755 GIT binary patch literal 321 zcmeAS@N?(olHy`uVBq!ia0vp^F(Ayr3?#1@DrEsF;{cx!*Z-u0rvfkBf!YO2g8YIR z6cQQ&1p5EKFWB#}-r)ZE`MOSjlYo+IJY5_^Dj45h4^47aW*P zihZzG(o1**(=BD44_QVYZ!BK4uW*@pwXxiV z`&^HE#4q3P{bA5!e2?>Sk8xab{U2w^`(ZIrKPIs>Ecr11t!)3V!wd%E;T*>#r!R_+ zVVf}bU-;7x*XMuix|g!@qEm?oYr3jz^TEiQFAG8qBKM}nC~bQsaF845im=D5o$X$C U=jQF(19Ufor>mdKI;Vst0Jp`Y82|tP literal 25364 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 diff --git a/src/qt/res/icons/import.png b/src/qt/res/icons/import.png index fb1ae1a7111ff8ad8e3391810a627648d56e3b2c..8112ff9ec88864337a14838eeb35455e7cf3185b 100755 GIT binary patch literal 2090 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 N002ovPDHLkV1jxyudx6C diff --git a/src/qt/res/icons/key.png b/src/qt/res/icons/key.png index 0bf4d9019cae561e500a4e0db2aef53a88c8cbc4..2258a26f32e23e5c69daf1fd2adbf33b7b9a1f34 100755 GIT binary patch literal 1525 zcmVF$KlZ5UGKND2|lub+#6EL7at8 zFb2!850Zg>ScWk{%~>cIt+Te!%i=2h92&OXKKz6$Q8szc+=6e1p-6`uA?d*y?ULur zE%-X<3&~`CQO6R<+L!uwkp{^kX?QpD-x@6Zv#<-2BzEB}OD1!^!aW8_QjZ+jJw(ZJn69q-y{oTRC04#zyT7u(~=-7|P5{RQk|L$Pn z*M}&a?YT}Kq~c!m#i~GG+>2D?@$7vzM4^6AYJb6lFODW7#bb?5SnSY$F*>0p(GUjgE12XZNTAB7PRPa|-&V!d40 z0dZ6z7PA337vks}?_EWIcPQ8V7UJk!8vq_)%>$$_kRIc4^dahw z#`p}bH0D)&8`$gqmSzJm+I90s(X$04L?egVMvxF~UDsD^3XP7%Yyg%*9E?)*yeg!A zm7;!CNd2{n`cV)EOKkw$UoO8>^n4?vexRa$U`YL&iu&&$4))jp1fRYg3{mvFJEVT5 zqJCyb{XL5MUm*_G+5ou!411xXXU_~i$Q5+FsYF^xeQ(A3vmp*9+W@$K2;8Ii7Elxt z;x&ib*C8QFDb8st#KC}A%m$!8#8L4$FE6L#;zQJ2oWV7NmC7rQ;^?hd%m(0Xh@(_R z-!mZ@=!f1Y73htAkPMu!Shq98(F3uV4ZtN3NAG#>%lqrAT=PYUqswA38-SV+N1Jh+ zqIU^wfOy(~l0N$yj#?b7vLRRxag?g;-5QG^N{i51xmII{qg8e@3GK!S@QLTmC0>I# zdJTC!*7*S9==FnD7XESgO?ltG(w=K|!H1ZIG)N!~v+yChc=m39G>D^~v6zK_EPj9} zJ({3f&a@BYO+ddv5J%fWKFe763hQxn5}iv=h{6{ZzW)uM(s5xDol9kpZyH^)N0JtP zK1_!w{FptGwD6C?4<6^xC?|*iT{a27sOQ~6K8b#k7Jhv!hA8btrHDpo;RpK_*I@_5 z!xIsV&%zIW<$DGeK|K9}V{&5n-$pfj)~|#cFgXD?r!1VLFU%J3c5_#Bet4xndF4F8+B!;k&|?8Uh`E&O8=5`OdtU@h8M_&(uBe*h+$t;@{s4T1+!nq^_z@p~mAJ_B=UoNWdcP0LRI9U5;Eh{qoBb=Oxy9 zUtEq{e7w5q)%6MQ4xhO=v$^Jv8vDzg`UfX5#%e^r6}_9d_~MH&2KV|N-ew=cM^kpV Ra{w)8@O1TaS?83{1OUVtTaW+% diff --git a/src/qt/res/icons/lock_closed.png b/src/qt/res/icons/lock_closed.png index 2b56a285f3a873cdfc6f1426b50c3995541778dd..e53140df614b643ba1cb71d6805ac68385e8966b 100755 GIT binary patch literal 394 zcmeAS@N?(olHy`uVBq!ia0vp^F(Ayr3?#1@DrEsF;{cx!S0HWb5JVE{T^qv*)FxOG z=6kKwb+7Uva@&9D%k6~2yF{or)T%Yxxj=cnj1mh&i|RWQFZ-Q(=z zg>heUU1Kk@F=_5-dmbV9-r}<5`k!6JdD8-umhC;n>ppRrRKb=V5vw1cSk0f`r#B^d z?`rYyB};iuU7c>RqD1+zf@Zj8$?8{SE0-UBUtqC7Q|a5W=kc1CS>A3rW$P$f|1s~_ zyz56EcUwf?c_g;qu*~C2;Dv7!K7CntNnu+}waA0le(5JRD&!S*gXFjGII5fX@o4xl x*(YvQ;VmJ{w@>Apd2nJwI%oU|iR68!xkT5e&g4kTPXq=4gQu&X%Q~loCIF))rWF7H literal 464 zcmV;>0WbcEP)`2@b_!q#) z;9HibPM;Y<%;-}m@4)y59H+r5RIs8!{19-8uCYLfE~$ON5jyL@Jw>hnxTMI_I@%$+ zAGn4POKw9ObHfrLYWsi_j1i)2-19O*Oi1{HO9=5|9j9l6DEWii2vM+t3kcEn2M-Wa zVpedBDPrIc{y_A0YO9Bs+rV~7M}gO!;5Q&*&01ERu?l0`Gd`_IGjs+INxOra&R8Lu zreI*Y^MVN%xZAr7)n>5g4XYp=`+GNtD|k+Y6iF&yl5jA`QK@WRxC>|9$1NO6Zoo-5 zuxl$;zRhz5mo`t=KilI4RRF3i+*;uykN_}d{)a%$J!-v95c7)1UW=Q$gCD)X50>vU zj9ZS8^D#dn=Pqf;(pvus?eZ}#vSxy6FwZ!mr)F?YOe+k4W^(hQ)_Emo7E&yL9!wk;Tcw`s<`(9~R%` z`Tx*5QSZdhDV_NV4x zLGQEU=l^BKJQA9|A!aWD*iiSr`Xg;NF-Z2oDr|!L!^A1D9;E0zk-i z8oeRs2R=j)2JB`wrp5q4*!KZ16C(&Uomt2 zc^~i#LWgRTQ(G?;7|wFN|CsV zrv+EjubrROxK9Is27R3rE)5a@#*zQgAbE#erxV1y;@D|%9XzO|0=1sv<@I>qr`F>Pr+nVrZ00000NkvXXu0mjf7)ZRW diff --git a/src/qt/res/icons/masternodes.png b/src/qt/res/icons/masternodes.png index f9f6f8ae7829e220439335a7d9f67b7d093043c5..2e32c9806e8e490518dedee0289746b684198411 100755 GIT binary patch literal 876 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 N002ovPDHLkV1j?h%%uPT diff --git a/src/qt/res/icons/overview.png b/src/qt/res/icons/overview.png index a274f0c48890a1400bad17bc00fd3084b588f7b5..24762e4093f0e9715d857e49d67bac2ada416cde 100755 GIT binary patch literal 717 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 delta 157 zcmZ3?xQ=mxWIY2AGzs|>11Zh|k4PZREeyhp4727)00k2~T^vI+&bMCN$je~J!R(NK z;9qnV^ZtiZg`6ALbu>9MI2?+X_L_1>$zj@UMtM7hPj~kmJUYFg`O3*T_6;rSu6{1-oD!M< DnaDV% diff --git a/src/qt/res/icons/quit.png b/src/qt/res/icons/quit.png index 33798383adf81bc2cfc78b2101488a6a30947acd..32ecada8b7b2a33f82b5bd277dcfa3732318a9e5 100755 GIT binary patch literal 441 zcmeAS@N?(olHy`uVBq!ia0vp^F(Ayr3?#1@DrEsFg8-ipS0HWb5JWsW9l7`mP>(=K zkY6x^Kte-+L4m@9{}&c~IN-3sv$}_!fq_xO)5S5Q;?~`(I~w*L_}hf6r@kY|PKPx2LTCR=<7U=e6%^UR&S) zbq)*j-t|l6d(tO=@7yl=PI)H(zRLZrHhFi#jp{$1{XO>#kpF(#m7mLMqoa;Xm+eSw zmoD2^dEENjAK&UbJ3gPazPB+Q==L_*cT>KB-W`EReKQ-V&(Up(xxgL}EM R4KO?zJYD@<);T3K0RY{x-ogL? literal 1951 zcmV;Q2VnS#P)g(>i?dnTRmOGIEluldK7A7LRs%{_ zMNx;wAlm<=q?sNI;CoOttv56;-Lp$ts#eu~0GA&}{NJGT25_6~_FQv$g=I7<+~0+y z5RU+Cg(@F3JNN9CMpX*?f$xx!pSS5F@xMWQ28tKl#Rp%r7C2mD<#W#q%jz}eS#WPk z0wLlboKR(f=AZ9-RldA-y$DAmXjBzlejcCw=9dIVM;f+D>J}591h;eltJd;oYD6#) z00fHB$gkf$EiW`TO$|cP7|bREr~;Z#ZQUimUs@)@;Yb{%L|InE=O=&9%;;FdjwBHO z0%aE5uI;<5E?0#J1Op(&f=as4#KDX2%XhzSnF5N4K?r~hsD8n`yy?KM?Q&ZrEJD87 zhc=gh7D>9@PUGKCGjo5UVW;{4;vb-d!ChJREvqZfE_}h@BiWIF(P-qzjqCDyN5|B4 z{0_h)0DkoB){nOB*}d(>N+%O<{h6qDI`MR31tT%#SoyN?VPyvY@U`DY z6#^k1hL94pLXw%AM{92zs@`~Ec6i`vo2#nOsj6Z+6iNz?lxUCya%{5p<~8BcXVhme z$vSp^r0c7N)pn>IgSVV!OZDZ-RZO=v&p{+frA|P$vy8}3j}W+UQ7V@{6qDib9AUEc zNJ6$kS<}-gBH_^4bT}~%w;t(&G^kw$CtX>VHSgGq8NYptC?Z)*81xE-b>GIQel!K{rO;{!hpN9&qXj!{1q^$q2?7xy9Pd7rf>^j$+mIXGa;hU zX#Ff4KbMg9cuRR3GAGoifuEQiWtji)M@q~&M3baE2n1r$=VfG~d*uK{cISwMH~zYa zI3#V_2X+(`J@nO-RoaxUcG07%cw*Ed;p6!X7y(yKE$#17)^+TKqnSyq<>FNqvDO1$Yw_1>EaOE3Co09b!yX z(J)sq+So_&XD1WtA`)9yVk@9CFpJycY4}+Rh(`c^2Z{yUtDWW6NN=Z@h>6cfu8kA7 z#KdM2GN8t4LkkpH^SB%GGwAU&98Lo95WrDT^1;1&xyu^t?G{r~B`qeNmXHA>u;Q5- z@Ot^WqYZxyV!jpUXNCX@a&oyB^3&s;X*iSsvCxJGL0Jjz)s9kYsIObhN{Ip(nCokO z+;1k}DqA5ZtY+a?!z|Mo@J~-IWJ(*CF$wtmKJrbOX!U81jltmNf5JNtW#G4Xp_C}(0%pd2rZ|=CT?)(L-B@!0CxX9BJ+zi;uDrC=ap9swQ>(xNugjORD zPfvMnjt8bGE_RX`x84}@^qA22t5)a6>rD+C(%_WIY_4`>SsCr=!q0;t z6=H5snd}a{lOy>Zc^~4T5 z2fFiueGM>v$7WUUWn{`hkTW17u5z`@pqHIm&a`V;MG9-zQroHJMz6&zRcEQ3h(U}w zO67HfB0mwdz6W)0r@8_@6zHzN%hv?sZhN5`ShZG0x9?Ji%!=&Oa;9?;aeyujqEkz4 zcN#Yaax79Ub;;S%GTE`jC>u4jehPKx62u>R*dYl^cwfK|0%IfhqlbPdXKZGnhNEYr zaKaT`{9-9pkpey!@Z;$0bkl?-1OM`3WYFIx;1JNTH}(IQ2i6F>yNcL1_R{Xjk*bwv z`qLJVJej%mY#7_}Let2`jcs={)LjvaUwn^PuMXYN%F369N*vXXD-O^FVyMLNjlp93 lmd5{b?WeRp9+UbB>_3;MA&&XMavzMhGHa4>QE%2lgY)x|A;xUG2gvh%wyYHWKOxcSn%H=gN=_YS|}udV3P|1YY) z=ffdx{W72cNYp-woYPBuy__fzJs$`?rC%-Nw tS#a0AG&X}|?bmIUl6}6Rq4kTo9bUEm`CotRIxr*|JYD@<);T3K0RT2l&CdV; literal 6475 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 TH%DC0{^3xTSC=c5u?YJgHKU|k diff --git a/src/qt/res/icons/remove.png b/src/qt/res/icons/remove.png index 658c9b703bfd28287c0435fe8fc5791ed4bd66ba..61286acf53b453f96c165b8b2614399196cc245a 100755 GIT binary patch literal 739 zcmeAS@N?(olHy`uVBq!ia0vp^F(Ayr3?#1@DrEsF;{cx!S0HWb5JVE{T^qv*)Fx08 zEGv3cqzD;k-oxJU{zdt)_n3*(nx3Wq=>+g;Yf-$_)xy8g5h@_q6pZ=@u z%o$CYYA2P`*0t&f=f(@(Ti{;NnPj$_xxyo47XQs0OOE}rCU+Yr+J0c$kk-2?Oz6xX wrpdcE^>8@uoV~KFH|}=NQODQsYd8%U`ipcA9ognk2y`cdr>mdKI;Vst0D7Zc00000 diff --git a/src/qt/res/icons/send.png b/src/qt/res/icons/send.png index c9522d021514cfcddaf637287032b252c7911512..a8455c2b23b3c3b3a13d758398e5f20e5ea5130e 100755 GIT binary patch literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^F(Ayr3?#1@DrEsF;{cx!S0HWb5JVE{T^qv*)Fx08 zMZvpf6OK3$(L+v=}azbU()S#tA*p7h<+#k+G#ruV+vbTQU!*J-zM zk_GJ(@-Nq2*~Ia;ZuhJ2i=RD;+k2-)c6o)yUeO;5-W2b+6yA9LkX^U;UWZUc@>X3)&K1}mAt20+)U<{x1d?= ovAWn)^Rrj3PfU&c7GBM)k>C3A=aHMNz#wGsboFyt=akR{0O1n900000 literal 6500 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 diff --git a/src/qt/res/icons/staking_active.png b/src/qt/res/icons/staking_active.png index 9b70fe6247da95347176c9413552c37723da98ac..77daf0b2c0cd08662f580585cd047e0848bc9021 100755 GIT binary patch literal 1235 zcmV;^1T6cBP)GuIDW?8`mG=%NA5U{b^c6< z(Us$WXw$!5IwRIu)Dk}c0eW(@LEC;IifM)smiR*y-j1U!`jl3XpMU;&vMTXGhWJMm zEOGQfUyM;IQGj9N`1-C3mpEUKu}Xzv6sF;&KzfyUvjWA6jxjNIa)P)`HksBEpCvC^ z=7@n<Adxeo^?NKc6v$H8Q`5eCMr9 z&JWpPVXIb^ussab3i4*L3`;1`KC&|m2A;CG^}cfUo5XE{A#1Qwy8{t4II7R zY?l1BCB*Vgwz<(9`e)AR`cF3FBZ}3vhFRj_miz|^i}JB;=3^?_Rv_K+{Rz%b9v;}@ z#TBJUAL&)c=hj1*u48xSVnnfZ`PP+A*zfBseknrgykdv)n(771k33s)mBrPjF0=<7_Zf{V0$@_&bKqf-*yrF7APyf+#JQKxUd03 z*O}iC-|?SuP;1H~reEky*SFvOC7r zh8dx8{8$?a70Sxbr}!mJ6jv#%A)IsVVTpfeF9tsbO)9Ncn8lF4N|@XQm`zHMu5qGi zoxeeHf;eE@W-}S$OC>R&1vDveYboCkstUw;w2`g7#Q$_1?I%Ngs00GlW?0@3KO?B; z2WZgcRW(C-(>Q)lu-Ws84C(TX_hN%uU^VC0HpE{D$o3v;?^)@Q>n~`D?`da15z^&X zUW-F85sIBZR`|AX4{B~JKnP)KOMHqTfE4M)aj@1+s6oRwm=7oxigF5Sm9L0MkPC=S{MW->pxKye$6noyf0MpxpjY#l$30Tqz0{+UQiyqn}C6}6zIiiQDS zSXW4qj>(ebl9Cj~*7-|>IbB(xSa${O_mv|3*J78{%%ecDE7O_-zFgcVbgKtRzJ`_I~;T#mGgguIP~NLYUDKU))I)M~C!UYwhJCKyh41w^<${ zKyiFXj~K=JNH^q9?t?wwlQmHsEz%=EaePRR4aM;zJ$@AHBi&@YPdi9Q8?@C&aneZF xM{!z6cmD1!)>C)uqd0Y>>!Ub*q{oEfUjPgy^67yTSTg_s002ovPDHLkV1neoQ@{WK literal 1142 zcmV-+1d02JP)0yhc+HVOa&00un`2|*AGL=qNN9T!y{4Mr3SK@kN!3;-hl02u%aND>fA z7XS+Y02}}eP7@PP82}9c01yBNMGgr>5C9GU13U^cemMXm00ck_4^$QeLJJdM90pAf z4qX=qO%MrN69z&K23ipYKMe#-4gom{2W1lhDh2>70tY}20yzi(A_f2-00=@40Xzr+ zDhB``00KG*CSffNQxyO<2LdYy03iSXDF6sV4;D`y7Ec`%P8$zP763j7051gtCkQ5S zELXW(e(!&b`HYtNm6Pt2ZMknRZZtchL38eRdh>jF;d_A1f{oUWm+F_L^QEiwtX-pF zDVi}`=3#O0b#2{nbF_EP+s?Vsx`@b%n(UjY?y9Kks#~UD4`>)V+C*08TwvH_TBBdv z=G*-H`}p|xvCgx7!GD|Yo}B2Phuw=Bq$V`mJwVM!Lzhb4>EHYM`}+F%{{8->#inYt zZ-VEBd*XmarA;BsFC)S(GLt*g;?(f;@BIAy_W1Vy|NoV}nMmqaXpG{4uuEQ&RC zt$Ucfn;eZN9mOpjzAj40Szga-NxV}qt2-dPEGB#}ywtudqBRw&Ar_?~7`Z1J!z&W2 zBs!c&b=7}q(sNMGTs6-^C3`Ns)4wXCH5|n&8^kIYz$z8KDGZDq7+oQD&47K=hhold zNz7I^ia-1O`m)WmG^ju>!#*XyHyF7s52_cVPaz%8vq<+WoBn+X=-b1 zZEkOH9UcH5adLBXb#`}mczJqze0?AQA%1^=fp~(0goK5Lhlq(H03(WvjD?Mkg^!St zg_4t$BmgCqmY0~BnuVL3ot~edp(X$)qNAjxrl*Cdsj922t*$5lDX*}xva_^>wYImo zxw^Y504uz`zQ4f1!o$SH#>dDkEdVYr$;!*j&Cbuz(bCh@FfjlDGBefI*Vx(G+uYsW zG&KPL1pziUIN#vm;^X8wIy(UX00001JUu=?KtV!7L`4Ar0XSW1nw0h9x&QzG07*qo IM6N<$g0b$kga7~l diff --git a/src/qt/res/icons/staking_inactive.png b/src/qt/res/icons/staking_inactive.png index f182fdfa6982958fedb1c929f6eb2bdaa0c1f3f1..03efcc13944198927752e9c9854c444eb0192745 100755 GIT binary patch literal 1199 zcmeAS@N?(olHy`uVBq!ia0vp^ejv=j3?z4!T+nA=V6+bK32_B-9UK~L-GeL~gRPtb z%p3yE9D*zyf{cBAja@>mT_emLg3KI)ZCrvaoPsP}f{oMC%pF549D{7Uqkt;SoCD1r zf-M|E%w2;U8XC-ziio6aF$akNtqTSs zb4Q@AV35ktPz#4ZONUUPEXYjfNGrEMH@8@GhY(Ak0%wq7pmtNY2vf(9&`^*vpy5FG zm^p@+dqxAT1`1jL*$zRbE+AvAoP%sVLmeCv%$$HKfvyd)Z~~eTWbFvF2xuu#V;~Tj zI)sA6oq{|)b3x)DpN5(NoegBWg_=7D0{v^|91hfI?htATbi6~Lg+s)A?I#z3!IxPQ z($Q2tSUC5FrRODGFkP%R8lFu2f zk`^s4#vP%dS6wRW%&xr!SEj$R3`n>y)hMYOUsN zV`Zc8Lr+1Cfq`k4r;B4q1>>3-tYxnQcv!C<&^3mD&;Pz#Wl^H|SxzCAfP z=cn_m7Ecu^?#p8CRXRS>67u=KuT7t*C^NG@H~#mgO`A8jD6`Mg4`({z&3@^#^CwY} zNBpjti9fo$KlD#}bftD_>W>9`lw9LeMNO`nZe97~)vJ&4ypkt>OU+J5=nAyE8ehyU zv*fwz@840kA1vCSAR`~l^Io~@VQq@xo__td?;nqTu-iAI?4G+wa17HmAQ{M4V7Ex3 zwr;|{SF=tX_<4z8g59DSYjPUC-%NT_qgdl&n6*y;sNgF5`^`sR*jdO2`Yd6NpD3qX zBP;mndf@)`XRa5gduHuhm-KOB*p#mIx973`e0lO$Rn<|)CHgy`U%aB>_ltef&)To0 zLJqmUrHA&d^5RT0IQM%7=S@qOUnhRf4LkC?i|a^I_rsbe@02IzoDvtD^e^$4`{HiJ z8s)`FlG5`p9G!A`-^rDkuV;5MZJzq8=V49pXNI2qL_vmW$4U%)@+(;l_FXmovozPX zVq50@wpZtWM43O_xFc0f|9k!Hdt&`_V{0~rFX+l#P=EhjA6IgGYvBc{2%l2lzT4q@ zPfD{%tP8#SM8I`DVtqgPT7YPLz7e$l(xo;R@P_}eLy1oxfc zt|AuXR?CVknpb@8tQ zU#D`sHa=Ri_1EtebwYyo(z`3K)%w_XOt1^?d0H2#A{qagTjtF9&JT9shFvQ?125Rc z_AE+uY57oiG@-_w=al(W%|qhBf3?KkRtxhllCX`Rvrk>|!?H_-%RDyt-=2{aH|yx4 l+V_Ww%hc|FD3(kRVrUlZl=)p@k_*f_44$rjF6*2UngBdw=hpxL literal 1003 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m{bFNLR@8JWPl=tg@p+T3EA1% zdU|@Yva+F}q5Aszii%1`Mn*0!E`@~!4Gs0p%}r%xWj;PWj*bo@BEl*vDuIE4VPRoH zLLhc*Y;0<3D$pn(+sDT@HZ}&xHZU+~Z*O;YcDA##i;s_wi;DxQ$;ik^N=iyh1X`E? z6bA}gT3S|CRysL32?+@S&5w?b2I>_R6$P4^mX-!&Gcz+sMMbr?w${|t#KeG121=!a z0Z>75axzfR!NCD2-qO;%YuB#BhYy`Nas2e@Q)kYcK6>;>Pfz#k*|WEA-@a$h?rqz) zu3fuk$Byl1&z`w(;oPQ8o2E{kx_(|W8j5%}WOr1KVudjE*h7Gy7xxmnl zi;JB&al(ofD}dp-bm`LV+qcc0J*&IBJ0Kw7*s)_36&1iZ>hJGgxpIY{pC2$(XU&>5 zckbMI^X5&QII*g#YUj?K8#itQhS=V{ds|vs7B60WjuU#(!3|!ZeAU|NjfdVGA?#ti5U+Gq45o~W05MHxU zf~l*YL-mtoN7dy$KR$on+g_pY!HT780;}N0jgn%$pFZ}n*X;Z9d4G)+%bPjLUxCJO z7I;J!Gca%qgD@k*tT_@442;sAE{-7*ml*{Z-~R)089BMQd3gEw1q6i{nLvDD5mz^N z4^J;|A5k$zW(G!a312_|fWRP+;E+&BDMkiqnXvGPz_3W~sOXs3I9WLc`S^sm#H8eu z)UFVdQ&MBb@0EP3eq5uE@ diff --git a/src/qt/res/icons/synced.png b/src/qt/res/icons/synced.png index 2ff86ae30d685afc080c35d63ab40cd7b2ccde90..28d826cf7498b245fd63f3c562deeed2ccb3bc73 100755 GIT binary patch literal 750 zcmeAS@N?(olHy`uVBq!ia0vp^F(Ayr3?#1@DrEtwgaDrqS0HWb5JWo^tJ8E4Xoq}B zkY6wZzks}gzJa}ie?WXfenEXh|AhGq)^FH<;QWRA58i)xt=tN94wIaxi(^Q|t+&@( z7tMAMXnlAvR_e~TJ^!QQRByECwEU`jYx;ZUg9(c?x<1|CaM!}OHhlT&mxY~y^M98p z8Xpgu|0>+K_HbDJ*)L`MVRZ*TEIh!x_Fs{7PxmW53Gu7Gjj@({7aS9|oBQms)w~kJFGS%Xh+olqk=li!=u0B$1r*gEJS4aJ*n|Nl) za@M=wKc$`SJpb;Avy=8g1_k9)23h{cq`S?wyjtwbXJ93sZ}Ny`OV8|2h5K?POg8uI zR#|%VjKQ|8D-P~{*M9K0XWRYcbBpy)HUus+EOb2o(o$^I`;F3Pc#fIP^WGAzW9cI; zX}nYWavHn-jBiGIPJc6`56*aS>-7ANJ4Mb+~!Er^LP2{@&ejt-$`pfft$DcYDL{?9^uH-gfBj4%68+ z94{uDc^uC*v*XPSLL%7i6ZNlj+?RZSXRGuiv>^gcxyJy`hR$YU?Tn(wCi$(R2;_;kJd)!l~JLuxmF z6)L_xp`Z2Hsqu1)ezkU0Oy;HHv|Eo2Cf-&#`Q@^6(sU8mKoQrU)_WMIozx1IxGW(6 POjHb>u6{1-oD!MF&MUYxVxKXT=abmoFocG47W4qosnl)f!ybfJ`mxIz^noC@(Gv@&m>>$w2ey`-I1DMQ8u@QxrG5n)dCyG;7wkx|c_U zG*_Rfy>SYZ*M zptHwT$!OK$&8w}g+?;~EW+|GjTfTjL{h=eCA32RS6@B93>FV^HyxeE5nXRR(XQXSW zZ?B`RY3{Kzk()0Yo0x2MXmE_SE(=K zkY6x^fP+H7hyN228ZI1ou%N(T^2PX6pxjPR7srr_TW@c;Cb1|8xLiDxb>ZY+f9c3x zrzM@&tq#J-=$NT>G@}m2bPq;3-`D5Nurhtq~ mGGT`{*4$xsae1O&#WYbWDE(L``vIUQ7(8A5T-G@yGywpTxr9gn literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^4Is=2Bp6=1#-sr$rjj7PUPZ!4!kK=Ezdh@j?@Gx8u64SF~a(|dnWzzRZFlLj2(X>yQM*`I+ zT5#`H_~^P+jQfE(qyCyi1{HSp>nHsP~ wSD#yF&K&IU?!CNDsA$5&$$xHJez&M$m{i)Jk+9a=5$HVzPgg&ebxsLQ02(-N^Z)<= diff --git a/src/qt/res/icons/transaction0.png b/src/qt/res/icons/transaction0.png index c9ff75a68c7ad9d56275ac70619f6682edb2e0dd..b35db3a08cf42a94bea2ede0b9197f4e5ef820bf 100755 GIT binary patch literal 396 zcmeAS@N?(olHy`uVBq!ia0vp^F(Ayr3?#1@DrEsF;{cx!S0HWb5JVE{T^qv*)FxOG zqH@`6v%5(;F* zyB+vD(wRS|D2ORuTrhfh>*h@=PpKrvu^_aNh{p*Tf=z6B%JZ1_YB5c4trQS zHaE_g=yCS^#KjwhI(|0ZVD2cM$fLMIQl{6ThN~lXVU0wsKu0!bW}Bn|Ysbxo8*(QF z#8sw0xWZ%nKwjXx<4*(U38u|^el!IHwMiCnc)l}MJZm6spdfjP`$&D`4W5qM9GPs^ gr3Z?Y9U2%JzMVDr*{v*E0`v-lr>mdKI;Vst0Dm28i2wiq diff --git a/src/qt/res/icons/transaction2.png b/src/qt/res/icons/transaction2.png index be871a743b843fab6a568296555f00364beeb4ab..bfdb0cf80b88cabe597af8941799e5ea3d9a0c72 100755 GIT binary patch literal 333 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 literal 288 zcmV+*0pI?KP)YL zKn83KTnwxX{~5k9d}sI%5n@D^w_(s@5MlViaF<~%0~V0Wz`$YO7Jkh_f3AzmH8ICb9{K9F%9)<;Q5v(RmgJ{O0fEQxIFCGRQ3K$_KF#JOZ zF{3E>%lh*2`sqb9!x0~;;{zrQ}b^W*0OhQCP8 mLUkkqF9SEjM?_>ZFaQ9g;zMo1*Q9p<0000-R2hJ%DoH9krS-cjoaGhur zdZ94IpMERg#1M=+M9V{v^qLt%-aLZ2R!U(J~h z@--|Ri@F0jfxKh82fgg;+8ztbnAKa zB)#W5j;v(4Q~%?Psx4EA`Mv)_3J%4Wi*{~e+{mqQRj@D8A^BnO1m#^E9qPL{1l+|L zJrm#BKb*mGMNHoHh|+@1zjQR%7@KFlaML(YA6B9)5^zUHzkuJSsO++0bP3mKc)`VbMc^XmivgTe~DWM4fAz0zt delta 3438 zcmV-!4UzJ+1n?S=BYz4xX+uL$P-t&-Z*ypGa3D!TLm+T+Z)Rz1WdHz3$DNjUR8-d% zhtIutdZEoQ0#b(FyTAa_dy`&8VVD_UC<6{NG_fI~0ue<-nj%P0#DLLIBvwSR5EN9f z2P6n6F&ITuEN@2Ei>|D^_ww@l3o6c zm;e!*vpE?o5f_L!B}k0Z0NWkO#^@ z9q0f3Xv3lIchAu>dPU)xk0{A5EKc;LJ1HL z5<+>u$9dISw03U@r;Pdb`_%=KWKZEBGfDjQHqKX(I48#TTN1~8;gpaI8ijWGV z0cl0Lkv`-mGK$O~Z&4T&1w}_0qHIx~s8AFOwFb2wRf4KU9Y%GadQmq~W2jlwM>H9& zh}K8jpuNx$=mc~Yx)5D~ZbG-CFQRXwCx6hdF&GRDqm8k`cw!#HrxSaPGJ$91oX|tH2$>oxu&^ zCUFaRDZD1$2Jeq&<8$z(_(ps;{yKgFzd(>CXcO!RA%rBtCPF2lm2i>pfbfz?B!8+A zt%-p|E^#BVl6Z`GnK(v#OOhe!kz7d8Bq3=B=@980=`QIdnM~FqJCdWw0`d-WGx-Af z5&4Y-MZ!qJOM)%2L83;YLt;qcxg=gvQ_@LtwPdbjh2#mz>yk54cquI@7b&LHdZ`+z zlTss6bJ7%PQ)z$cROu4wBhpu-r+;LyGFmcjGHjUwnS(MHWX357MV;b8VNo_y8Yvek z6I2XUo9abPq83xXqYhAKWo2ZS$%e^h%ht%AmK~)bG%cDJErnJ}J5C#>y<4KR#Ayj< z$@V3!ONN%r%Pp02l;g-1$+gMdmU|~pmv@s-mft1cDgRIbrJ$z}sF0Amz>RYg@#RiSFV>VWEknzmY~TE1GF+Cz1MIzv5PyLvhF_J8+x#wgi;89Ete8nzgY z8PSY1jmyXF)a;mc^>(B7bo*HQ1NNg1st!zt z28YLv>W*y3CdWx9U4N$}r=w2KolTti&h5_gE;cUfT+X>7t{$#Mt^;l|ZlP|~Zjap6 z+!Nee+-E&3Jl1-g^F(|4c<%BX@lx_)c{O{@dRuv~^X~N_`2_n^`#kp5^X2 zj2>R4y()XvmDLKXQ&yjjk&I!+oQOrohQ}U>eb4k~HZbSnyy9x(W?3$*y{u`s_YbV#g7oZ-4~tGO?dJd^5@=9B%C4<&y}2~TND#ihok zp5)2!l6k#p%4ykYgX#L|h3TVfY}V{qGt2kkH)TK>t1`L-RMF2=zfecGML3pepIMXn zCMzuKM7DG`FS|cSFK2tsWUhPew`);rS!;XpRP#3Fjeo6kT35dwS|7K*XM_5Nf(;WJ zJvJWRMA($P>8E^?{IdL4o5MGE7bq2MEEwP7v8AO@qL5!WvekBL-8R%V?zVyL=G&{b ze=K4bT`e{#t|)$A!YaA?jp;X)-+bB;zhj`(vULAW%ue3U;av{94wp%n<(7@__S@Z2 zPA@Mie}AQwPOQFN<6P5Lt600ec77jw-_U-? z{jGIMb;Wh>4sZ|LsrRVwXwYh?IEXozdGJYNSYzL}jBlHp6q<^gJ{;m58a*6zxVPD= zx%r6Vkr^j5!`X2{BzCX?yfA&kpFYhM` zo{*nZOsY&aPnk`fns%SQ@pR?WiD&807Jp_6f0h2V_PNgUAAWQEt$#LRcH#y9#i!p( zUdq2b^lI6wp1FXzN3T;~FU%Lck$-deE#qz9yYP3D3t8{6?<+s(e(3(_^YOu_)K8!O z1p}D#{JO;G(*OVf24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_0Dk}g z2XskIMF-ym0|W;j4aq*50008GNkl-25uDqzfDl3mA%qa} zX;z0>34eymwD@BHTMCdV{xyJyQhyrRWmf#*Yw?E^Aj1~GsH7-!8GZVf0B%d0OSnvm ze+%Hg#L1k?p!lOwW<2=`XhL^eQt0N^0mX%GJ^~62-8=*|%MAB0fKyof5r8#};FJ}= zxHsM0I^Y4oH4Nbtefrk`#xRCcQv4Z!I~c?%D88xC)g_<_-A7BItE~e}7k^(?!0J%^ zGJ{?LP3X=*1OybmynHF&1VZ;I;kZ9hQpY2He6QR5;#KA|o<}7DCIBk!L(rO`D49l)AP5~ctM8`|+6o2q>=+0AzE(HjO zE(LsknPK0@jVRz>c0PtpUpFgdLnhU}#1X)x>v2Dc08O0T;3ZM$-uM_!eLg#fpf{#{ z7oP(D4BblN#uU(V=rRNT3SA$=jpVai?tmH!zUsiTfL^DY6dJpzYej(C z&@Ga)8@&AXvt&i&1Z4O9bR`Wzou6VO?{~oS*$wzFvw{M~tO6l~5JE2E7nr5nv=)lc Q8vpJ@xm&#cBddh!f$;YqSv~CjJ@U1 z%1YKVU8yLUA0K=o`kGPQ?1Dd&;*9$jYae*bP0l+XkKPkx$s delta 3120 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 zeTx77AMnNqB}sQi0000004V?f00000000000000000000sNoxeUr{E^%J=600000< KMNUMnLSTYeO5eu- diff --git a/src/qt/res/icons/tx_mined.png b/src/qt/res/icons/tx_mined.png index a4fa69e1669b5b0ba52dab74bfcc352ea4f2cba6..2e32c9806e8e490518dedee0289746b684198411 100755 GIT binary patch delta 43 xcmeB_dBZkAnUmSr)5S5Q;?~>EC%CkkMVT94ide2*E#Sle1fH&bF6*2UngBoS4hH}L delta 2780 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 FO#t%yf${(V delta 508 zcmcb?G?it7ay<>&kwg zg_(tiC#!i`KLZ2fB2O2`kcwMxZ=cOQWWaFrh9k!T|Li$;TO~Re zY`m^p?B+C;V06)oW%7vG#quCuc2NoEf%DykW%fr8uoT?BXR&*3R(%1}j&}-~woh4D z3ig&xA{3@Qz zAY_xK&~SR`?$fD;OQ#lmx}^KFlLBphZ3znm6!Xl`NI)X%q` z*RaZn{?ImK`Vs%q%yL?uCSywUuFY4%zrH-ZG1dJN>xZiR?D>~h($ diff --git a/src/qt/res/images/about.png b/src/qt/res/images/about.png index f0d03f5dcfe0efa5ca36e3970b22fcaba5fe63f9..1f38d60dcf6536deb14f15b06e23446181cf2f4d 100755 GIT binary patch delta 1001 zcmVDV45F`XqM8+Q!J|8_j-96Lw{uF+Px0prJ^FBS@RrUV#9BqQXjsO4v z;P86%_DW4}K3)I1_ww?^=kLJ)x1W4e(;IdD#{D-k00000z<*|Q_4Buan~rAf_2rL9 z0CoN5!*@Db-t;L_%>&erz1pqEAJp{b!K-ijm^;tD?0W=jsdMW6pzEpWgXRId{<(Cs z3@FC-xzC#=&3*wBr$1dtT?2Fr&Hg2Tk^qYY6D_}wdjzPYo&K}C&%e$9EUqta3L0v9 zqjRGVI6gh!_kRf1QmRrHclBN$Bw_D~Op#Ov9PRxeA9r0!D4r&UzFQr3kcKJd02Bx4 zj!{%j1?{e;u%o6oD&s8G5B}ik`|H{OeWd#272tKKssQ!gJxS%kyEwq{+>h44WdU|0 z4$4=h#x?gqx!JA}KwbObzr~3(d|89MDFmW{Uu3XZ8+jIw@^xAuDpMm{~KqTdx|;ul|#> zi`b>a!V8yLsMtLa@*7YTN|`7mAl3^2fEu$B2P{$m01z0k*Gt{C;aH(^zeW^N=C+Y! zq1n$GVShBu#8ke1Jo7+WMO-qM+8rRj?<-$OJ^&5e5};-&>N&9$8<2kk!SaB;lmrw> zH4LgBNhzm01SpUnw&!qS_Nv^jcIRR)-;S4`ku+E7zGUxTjc$Jl`7XqTQ++J~+j$^g z_s@5Wl>#Ux9=2i3+Gr%T1#rb#_bJ|bQK;Vf0DpM^0Dyn-G%quQ%}Pw{oecn3v&`Ba zuyUETJs>~*8m1Il9xVv4w7-16S$BXmLT@tD<^V|XCu$x@<#gagW|Os@-@a1-`x10F z2QDQnnAV?d_N;|uP)6(AFf*jIlziBeNbRE#i+lj;Pc7yTH8Z3H0HA|Jw&syq!YF|M zC4Z4=*kC)q11B;8T8)0(7P`wlAy6p~oSa<@es3Tcz?LHGUr26%6uT;a3I2e}cY+%r zJvI??zfisw-yX16BFle#qnAr)O)1gEuEjNg`nk*#;J%Tg(tyUM?pn=2Iz%CXb?LWS z&hZJOHkDoO2UKb#vg6b9`XR^@ke*|WT|vx6-MyX%-^zD_8zAlM3t7x<{w{2W1ZV`4 zdfx?LuS~rCQ%bQXwnn!ehXFL%-QojK_#gcp!2lyNwN}sYIfqe`(FMhm-~|a7fVQtc X{JvNuU}k*100000NkvXXu0mjfvl-kw delta 1499 zcmV<11tj{z39${3BYyxHbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU& zQ%OWYRCwC#+`&(rMHt8NEds5wNTJ%&jg5&UwY_jD7khz=C&hRz@r-`}-o-oX-90xN zPa4~vytJ2kSuT6BB#<;TU}Z+73^mv?vGd4Jz&zY`8?rQP|w@67W& zGwwcM@ydcj>*!o4Jlc!L04n!sC-XkU|RwnND*(*MPZeBi(=D z)|Cq}VN{_Y(Oa(7|27v!lTWWp#lfp1Lp@*nt0RMVZhwsZ@cUn#erMt4#h5Ufv?(^5 zAZX(B;`GGg^mv~+_^U^Mv?mkwUhfhfLOIRErlU${ikOC>PHSlC&a}*sT-QR%Rzbp| zoc6SwR!GqTw|inY)myV#teY1awUt^+kPztMU1^r9K{-qsvY4i7 z;qTbLOssHG{bGt*$WiOIpwR?SN>(`(TTsNV$bZrctQ`TW%qq1#TW^zIEfhV3v>vtC zds7RUyW|3(VPLoS?Fl~JD5OgjUI6IstH^1|4=t@+{nMoFwfa%Hx;sA=u@nqPXLq%b zRv|01lV{ux3DUM^u(K2%6GolYWN87~pNM!?3#Ak~(wzgk>OJob<|`9Z3juf?0MWY= zW`Dc9w`QI+at8ps3M;a+70EBnE^5n@ADLd0G?%Ht)Az9dg?v|S(^jF z#;t}^?9-4u0)nk`b41BMK=`4wt%o{J0gi`_eL#2%zRTL*Q7zO%)6!WZ=ivCC#pwyh zQHTXi4$En?LEGCuS1JxgKFm|5Yd$->V1IppMeoe@ydF^hl#JW2$ijn76RB2aC+$A6 zw>*TD(b}I%g-;=xj~V284usD{npPYdXfHZa96}1}{fyL7vGw27n3%kCG*S+X{!R2FCcSA_!N`Fwg zDD{-*CQ~{smSQy;^!_a8&2l${f^CI`n`1feeKg?u_^^55exJ||Af+?H?f}hGqUQ@f z9GL5v2bN|o6`CLY^A(_*ur%{d@ac&>w{GhJbL>gW@I0R$jQ}VQnDak{|IZF30%-WT zd{h&?FVr$}5)C9TpAWF0u{sC(*?(Frgg(@qeH3B{0eDS!CBliUhnB}gmZ*`)NMuP9 z+5L_ECwoU`3E^uZTX^v7!-?UqKf3Je5L&+du2w&pZ06Ykm=C;b_2YgSZEdg$kjb8; zHGtWE)If546YPhJq|X!b0ti01;$`pJF{Bt7h*31B{~n#~U6Y2WS1-r?Mj8~4^Ij=C>X9CtwHc&ESjbeH!0s;s{_K4Qdqmy{PYVMaN*4tUit^9 z)at%&tEisSqCTq+?)JO2xG~*0Zu>H#tdHOKGZ7=d8p)d|q?CM?ZxBfR4)nGRP$Fyp z9zh4q!q%cXo#A%}@Qe(T;RDJZ0002+iU9r-U;wp9imW0`ymp>wHu5AvXY=svcUiV N002ovPDHLkV1n+eK|25d literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^q9Dw|3?!p1cPs@`>H$6>uK)l42QmYl3)M{QaUr1W z`nCMef$Dflg8YJkv;x0CL*x7U`|{iyjduh2oCO|{#S9GG!XV7ZFl&wkP_V$$#W95A zdUC=6Rv(sw4o4VH^jR`9GCFLNXsL{0JR$a$adWg|&OsT2-5v}_`WOuTS( f><&w6GCKo{r}^f>XKR~*b~AXo`njxgN@xNAWvx!P diff --git a/src/qt/res/images/downArrow_small.png b/src/qt/res/images/downArrow_small.png index 9ac429254bf6773abcbd236a853f8037508ce7ea..99eddf49fce5717b27fca7e872410cba5ca52446 100755 GIT binary patch delta 103 zcmX@iSUEu=k%NtafuYyv{9YjC;OXKRQo)$Kz|NqQ!-(P0PY0a_=Y8@^*p6s0Jo@iY zBNuCUf?-9BeGEgS;j9}qJN$f(&gj~pZz9S7 literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2ZGmxy8xzq=wt<7ALv{NjfP;;JfuYyv{9YiX@9E+gQo)#ffYnE~iL2oT!;xdlGwcNZvtK--Va0!h p$t2L_MlAE{9rGoQ{yo9S$FP-2M{wD~`HVoV44$rjF6*2UngGPi9QXhL literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2ZGmxy8xzq=wR04cLT>t<74`c>97pj@qV?{uz zwYL~<0~K+X1o;I6X%C%cx^{ZYJtH}ovVmOA0*}aIpsX+mGcwGYBLNiD_jGX#;kcfh zz`*S0==hM=AxK5aqs#UEy#ojKRh!RAxx&zCptbTW+e*Ppw-_$6Fihv+bGvCeB@d{T N!PC{xWt~$(695lpGcW)E diff --git a/src/qt/res/images/qtreeview_selected.png b/src/qt/res/images/qtreeview_selected.png index 0613341e2246765f713087eb5852a2bb823f71b0..c2c557c8baa476633fc993c2bf73d5b750b169cf 100755 GIT binary patch delta 179 zcmV;k08Iaz0>lB38Gi-<000YGglhl*0EE8TcPm ze>KQFkf9YI2`b`BkfD#MZ0I8fA{0#o;uEA8OpKwKK+FOSrXSQalmUu$fcP}E4P}73 zx)z9kQfw$1_5soPL&;us=vIrqYGp#}vW zmJ7UBo4R5j{{Me@GN1D7;AgTyVvDw%OqE>AVs`!MgHE%G-P^Q(T(-N>sA1seBlyTi zzopr0O|`H{{R30 literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2ZGmxy8xzq=wR04cLT>t<74`c>97pj@qV?{uz zwYL~<0~K+X1o;I6X^&+(x^{ZYJx{qdWCFRI1s;*bKv`iBW@MN(M*=9Q@9E+g!f`!0 zfq^;C+0l`a?VWC;LeckWE&@BN%Ngg~xwPcKfxX6_oE~}!467KK8R}p28b5h)juoht N!PC{xWt~$(698poGyMPn diff --git a/src/qt/res/images/splash.png b/src/qt/res/images/splash.png index 782afce4d9ae6dd7a5f59c81c5e8b375e740fddf..5336fd351419f137201d019f1fd5f744dfe2f160 100644 GIT binary patch literal 27417 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 NG<0v3->`Z5zW^R>w449{ literal 40473 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 I3iIH901W&55C8xG diff --git a/src/qt/res/images/splash_testnet.png b/src/qt/res/images/splash_testnet.png index 49b10ce84718ab30e574a1c32b81d10d668e8787..5336fd351419f137201d019f1fd5f744dfe2f160 100755 GIT binary patch literal 27417 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 NG<0v3->`Z5zW^R>w449{ literal 22666 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 diff --git a/src/qt/res/images/upArrow_small.png b/src/qt/res/images/upArrow_small.png index 2ecd94d4deefa7761475280f6df564b5bfef2fcd..31199de69b2dff780554fb5185b68f040e426923 100755 GIT binary patch delta 98 zcmX@cSTaE(hJ%fPfuYyv{9Yhs?djqeQo)$Kz}BFYV;29RBO1T>kAD8B)pY53V$Phd z1vQL3M;+Yk+wy#lvMMk#Pe_tEC)jW+&EanXGlMddj-b`6gCBv$FnGH9xvXt<74`c>97pj@qVOVFch4HwI#q}5!FORld{b=Z`Bm5Y(>TE6HR RyE4!K22WQ%mvv4FO#p)gGtB@1 diff --git a/src/qt/res/images/walletFrame.png b/src/qt/res/images/walletFrame.png index f0f9599594ca4b6bb63ad8ceeeb78104aca80007..1e3ace09433a1b63295880c8051cd4bfd3edde05 100755 GIT binary patch literal 346 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ⅈ?cK_J*uYA2zl?s(2%_$v9hR#qGb<32#M5 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 UcY;nIN%pI%q;<1Q(K7V^0UohY8~^|S diff --git a/src/qt/res/movies/spinner-000.png b/src/qt/res/movies/spinner-000.png index 2f84cae585c7deb4d03fd75fa56189b6a54f7cb0..88304f890c307cc356ed3d25525b12b31ecfdad1 100755 GIT binary patch literal 2021 zcmV$<`?&hu1MRXk5bR8%}w6;bu2BI1dv znTc?MnW?Fms;a1`rm7ypR8Ug`H9$~R#nePaRLu-j4O25SQ!_&iLsdN8|Mq-1`R{!1 z-kaX^HFGXM-?`_Wd)~|ceD6EoJ@=%NV|v~V%ly*e>G`E2GVi8fk7;=Xc3)DcQn8oz zgK;nef#+dgqvZhChMj^PhOH;%b}o1gG~nUKGf^cFIVi{KW-%zO^b6Rb=n!%gc7_C2 zoLZAMIEDcjN@|u9z6sIhNK6ecj_b_9Q1O%Jmx$>CA-4%Ffmxh4lft&}Gb&ytoWe2Pu4j)A>e^r|DQpYhCINW@-7&a-JSp5qcq^t0FfHFh z*Yvt2d^+Hj!Fr6Nkm3wsO~QNIl0r>^$(3TXo|`cqgoDMRXQatBFP$_zmPKY8!G*$$ z^nHj*!XMPkrmwhSl+9RQ_*rs#z1g7nU)O7ERtE1DX>>1S^Ts}R_=gc zP0i^|59h3huW5NQEfthsr5qKF_d>Avu+bMGDa5?tt3M;;7#{CtF%T{ACNDtJA;HV; zoQbs!ra&XT?5;lJ8J^bd9pE^~VtBT_WAyFj>FG#EI?}d~VO@H_gP1#-Sunm=H#!OS z2kGB13r>SYa7s6Ljl1m#Qk!k@u@4toW3P(BMj0EcA{41gdj6EE;r zC_jRIhV#E+UxDW+{|37WR(;~(>H}EcaSN~=*ls3vh=gTa$N6QHm%zw7x<9n0&me2y zPki4V>Rw4ExFR^82712b2gTij9Rszu5mv^*@^+COi4CFy;V#0q$WsO^dKOmPdl2#I zbSSi1MpS$q7~sCwwW<1UdPX+7=VD%Nc)jAZ4ygF=jHg3%e4nS@%Wa`W#SZI~9?qZO zy6oaYnmeZ=#zck9N6=n9zxfV$`%!`Dp{Qz=$T^|cd*Cr>?#6@EDPVZA<2tQpwhht} zY<<9)%UaaS6(jUmbv^J!)^C-jPSg`Wp1Yj75Sn)sy(n^8B9uefz5Tk_XV)$ANgc zNI*{f{}ePzI6(uUTB(K)(h0lb9V{aBKtORWZgcjF-LAh0h z@FVE#DvK8gtm48NldlEZU!&BLMQ@^yv*12>h_(+!t%aa1Y<5qxPrupI^vjsQq9VqG z4hKq%v=h7llU3xpqv)v1-fgFp_5&27^TrWt!1ekAFQ_SWr0gE(_Zl(&rbUhK{U=r> zryb$8V5ce&o;}|3W(q$>I~u5~v7aTb4Qty?v^7OH2f^D-?PEC7|N8>ZjKye)g%qB2 z)pA)w&OeoSyozw~zh3M-B(kU#5N1F;D0+Sg9O4Hx|9NhMJzZjAQ$4lY5dYoxM|Md6 zZV4|esv<^+39UYmO;ok@<0BQVBu=dvf|fypK2N~C?E*V4(>btz0qDyKeMSqP`(4?L zreOQ~S(vP9VJv%@eNA#imWa@OmKeIaPEy;R!MN*oJO?>3-nj2NsD%q-;7hO-7t(%M z(vV}Nk}q++Q`sV*#`*IUzYSs`Db~hygu;yYRB$uy;Vw6>ONQ1_`%N&$yQI?T-Wn!B>aLYEDeN!oVMI%ft;xhZUMuyIlm|9x<0jD zt^7$m>riv*E(;?y-2$Vr%U@fpWda zr>2j<&~7a(je=$CtrKT1YPrpM-7Zp#^uKDybN2K+;rU*-YP`NY1)kvE9(%jk9#5X0 zP1NqhZoh#V0cU`{Bn->KE9ZnB>8bx4UT}rHT?y(Oi%xZFeft zT0dCpVDhaj_Gx@L!9f{_0a(RmDw&!;XY}&o~tz_aVv`f!}2S3syA$pVRgHT7f>7Bbf>d%w>fH=YG(4 zL5C7>1$=}1eg)5U5dK0RKcmmPUuV(j^CSyriE77o z^Ve~*%r9Dh0WEM0<>R9Jh4k;L{l7Lx`F$;SRH$esBY6W6t#@~FUQVO~f}YW}_JRvz zDz-Jj`o7L2WsCh6;!QJ+EWc!M6ZMCZvW4ahHwW&ja8^E_KN!A`xq>k{9pbZ#1+Z?0 z6{?Tq^XsVJ$;AvG- literal 989 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m{N&HL%sC1b9?>#{D3OK8W|)- z`46;9%*a<<*Qga37|6uLz{tq5uU+bJpRlopC<7A*3mZqWpX%8;4i691-#WQkQ%zA? zN}QFA4QQgCif~1w3Z?me&ata9v z+3E}bT*~xj5&w~XO?PW$ZccUEpez>;u?J~jt+c|Ep^mu)`|KG=( zw-@N0nd@+UbN-+8V(*p<{@=v#XM^mgE3^N9zV&|_@2i7FPftwvzm?`Zia^NHQ^b zU4N4e3>2HE$6gmQa=g4BBP6--&!3-xhTP1N>x7wEQ-1x6XR_8~cl!J1@1M^a+{gc{ zQe|dt`8l!i&-)-Izl)cJnPgx6`up3Ql|8^He?46sLnJOIConLTxe1&+aFBs@4o}P- zn>{suc$ftCDKt+gDEH5w-=WbwV+Tus?c|jIESi}!J1481ZhE5nleuxJUqQUzRP^(rkzSSmXLSwK*Grs)4R8hT|0NL(ec2=lQ)k}J$UwR z@-d(Dk#P>rd(wZO`S>;YLple?9BC1mLjqD_a)Ormbt2v-&OSLZ7g~O>atjMho)jE( zSwiBHv5Jx8rcK3SPoF(CHr^m6A|^V03KMUlc67|XC5tv?z1)=5CdJkkb$HjWwx`-* z>!R-7IC6pKTQ`exw0CxNwY$2r_?7KK4xb}#N;tfdlwf%6Z=K?;Gjl&ERy5OJsq&Z&yxR4i3RQAE_KIH#ynQB_qZPMmW94g~Bx6|3ToA3L*@660@2lPmfOH1tx#$i>K+JBTKw}bAX&uHtw;-w`wgl5UD z8XlP2z}%}C`VRff^RF2ERTSF4AqD#!--ni@3vi?=AH&>D^gr-bO;_5U@!AIN3;GZA z8ak9*?7z|{FmETX^6ypcncnt~6>U4ntDpY2`Z7P6?#3~02NMqt8?FXd8Smc(h5nC! zyODCgH`6nWdH^4#Y__5X`)yw4dl%wgFrA#WbA1v%l%hqcGFXWk-~NI=fsy2HwdonA zZmD5WV?nE2HEK5KvFbj|C5NkxKZjB8)v%z#RTbZSRMEbEOdY^_a=6;~8}Q$hha-Q;kk@$UEVF^HI;%A*nF^@)rJ|4t59JapB0;LloO1E*i*5SkwHDLLHL zcz57O1VoG#J%;e&cscJZz zga3|h!$S;T5@Mxp!_y-@(yezY&p&RjCdXsY6rShpko}BN!r$^MnC5sE=K1?_y+GR; z{K&d9yvl_t zhZ)~w=bNoWF2o#+(my*vRX)t;6ZCme**O@jTD}0%D1 z22#UFHQ$-WYySV4<5um}9;BaRO5Nyg6wz(RJV@qftBM1LEf{C;ErDP#h!z^ z=$U6Apji1o3nRT7=1%LnV3yCbfG+59-gdeVj|&^7d)kj-dExlj8&bWQt=T8lN#IZdA(`ge;BBXX+l z6!!uhucPAgDyv!~p-#<3Hi$R<&w1&-u*bbuBceVX1$dYGnk?fM<%3k2+ZT)ooIFA?}qkm*?ZK5MLI|Kw!KC`|`#G z!UXyaM=tJl`uVY8#f^ce!u81eoq=btXPa!9?l#fk0q)0Rempv&(@6>Y2an7 z9I3AOo5tVNgxgZg!}pARoL!Fpgs$50GN9<;&Clu#VGicC$`|zcG)!o}tcUYmiAGCs z7r1zP_v*jWbJy-jORk=~AL%QM|(QyFHpSxkm`uUFlL6rwa znk(0E{$J>1e?RkZOrbd2=}E1%cfp+ zXis2LH*|D$1q1>B00Meh8T+LG*qI(nLNG!x5!#z0(4$P+yMA6;QUn75000JvV;udc z0c}+$lW7;+n;oo|Z2|%W0RaJWRT|`^4TNAD009L90ssmK1t%X4r*|0nst#&ZECT}r z1_S{E0s$lhX)1(0RR950|5X41d3!C+?W=G zU>aITBzk2$)U|pY92)`w0RaF2009SoTo|E(Mimkd0RaIc8x3bn5QJV6c2yEMEEE6$ z0{^fN|Fj?Nt~2AhYy7be&Y3dfyKevU)b{Jt-laF=o*2)WG4s`%^5ez-|M&m71Ms5{ z+^I(FrWgI{#s9Vj{;?eYvIPIB0r8;;+^S3Gr6>Qe3;(zR|E&Sp$ffkD3jenN|GftP zx)$=VF@0Io@&Et;dvsDxQvd=3J#U6t93sQ=gaHB}^3=7>mIMO_u&y@+0cZI7MFSB~ z0|CDNyCMMs1*+qA0TJBy{`RGtk^=*%`ucoo`u+NT0t&kPti=844FR9_v<(3oNz(nc z6$AuT4PpA}J06j*2?7NNy85<|v-&Us0S~R)GXg@5shVL6(do?<0002&Nkljeab8XB8~8AO00qGI9_l2Q!P zGO}{b@(cKd91TG~3gdJIhZ28Kq)t!*Zz3=C%N9i8S37M50B z*4;KewhVT?_70AHPCU*ouKjKk+!+`=CQh2{ImOG{hrz|y&p#lLAt*Q`bZS_5L}Vlb zLsT?_572^`X|ZwfKsq5YDOrJmAtf~}efo@y%&hF3nYj#kK#6>Yg2Gv|=ggf~RLoEU r_6yLprDf$6l~rJQut*?;2Fn8gAl5UR>*-M+00000NkvXXu0mjfEvQnI diff --git a/src/qt/res/movies/spinner-002.png b/src/qt/res/movies/spinner-002.png index 69197991d398ce23b38fedb093e313803c0b4488..a4a0d75dc0af80dd4894acf19ce3de5505f2733b 100755 GIT binary patch literal 2028 zcmV-P)zoy*BBJu0s;E;ZDk9E_QxPYYRZ&qDMG+BD z6+sojIT2A21rLc9uo0KbAiaICdh zcdsG;8TRjiO;82HX03ne1#rDB*S$mh2mAXF#}4idc#7>EFlzRC%yK~B=XPd8G)qs~ zW?EnuR5O$x8w6PpwoH&7Nu*9ji^$s|`$@|G5me1+c(#`z@Cl@LWjgN*(G2#L%nvR* zR$^|kxLCA0FL8W9Tnljr(I(s!@kR?$Rf4hyyauTuY!aOA_If>FoAnqo2FG42C z`tHkSwEFMfB5sqlnX331@R&2TBUY9VKbz%6;cZ_&xR3LSW?3yW?xoD~w3_ah8g&wW zj{Rw~954P9)4un{GG5R48hFL>gizU=^R|%hO|0FW&OG8BKq z#KQfH<8~L-uEy4A#vti7Vv7{P+5#DM=<5AJ3pBxqS=P(V$!Lu|womuBMRX#=y>p)7 zdkbba(%A@5uI!gNNX2aH6*k$ol+ZR8EMqJPz_MKjsG0SukDKD zaPaSZX@>QTKMTow6kNY!GGD(y_sp;=-mUvBq+VW}f7~xIUhQ{#W?0Yoeeqpog#`jd zwo9%5_^ydhEH&J}%dB;}WIje|Wht@LnD`oDat-fZymnH*$x54Ct(_#alcWll`{~Dl zwUfci1zT}K$=e3Jt*=^gv>T|RCaMOH4H8J>_ZIkCP;RYva{lEsliQ_8Q@GIE9%)dHV1@;TEK@6TO*LZ?#uxyP6 zPpW6YxY_Huthj0J(IM3}Nl144kvPV19!zB}KPKMIMA88ZS5QB94a5uhtZX*J??wxq zOz#KRB*@41m{|?$T-HLf8>L41OmH&24oilPMlat%MlB%Lz%p22 zmigy)3t%SXu^L}6Ufj}44M$0OY1#slhvEH@71|f=>evSyJ#Ze_kI_Y`fRU8fA6^U0 zU=@l#ZwD0fEPXWkGk4DFdKRetoms@ugf}!bbfHc=t{x-V*O&5~>9Ys3d68kUx^#IS zQ7M8xEJ5ft;7?d2F@N-1%{ z<%TK8Wc`^Wp#-vIKhH};d93fpNMt->)^eki9&jwCtsKYk3!Jt6&;T1?IInl8bGkr~ zlG&8}*_`q-jS9Hf$4yj&f6`IP^G(wn%N4a<$$0gc!klukBl%@;K`kXp{pam

lYa zJd2;zCsVD~2VaEQl>hb^SOu2?p1EG5y1R(DBFamS#aH4=i^M5%aXeXkCGZzwWnS+& z2e!Z!(B!xYKH}G)6c5SrFW=ZG%LI(PlMT#zzJQY%|D1jdOo9R^5hAshpT}}sR`iUE zUMrYdx09sD%U`18?6d)4Q|*2@Evv&W2LD@AW;Q+R#~^B+Yq@M80f{JuD`jaO=Z3DG z*v~E&Q%g>IIRZ;$Z@A7@>p=-DOOfeI1;pF@-BM4r-Q>FhB7qgZpVwMSumXs?5tH6W z**U@wM!57Ob~;PZxirwH{PvovabCTwf)ikc0B={L&%k(IO3S}aQ$><)ZZ5$90000< KMNUMnLSTYL4(+P| literal 923 zcmV;M17!S(P)A zyOIeD5PVq_*_$NJr&{mZveeJV3k(m4V;cRX0MnT$x0F$7UPqB<7VV=4{ip%bo;rDP zVGj-t-kKBttN`z#4%wL=er`?~77^Z?74)VN)0ZNccsW{7JOu**K{FR=Qz`%e0K0+| z`Kt=koG}j(6$JzW0|EgC1p-(-3%H09N;w$>0{{U509HX4{iz0^bt4A|3@0lv6&WJ~ z0s#U600037p>i0+i5O*0BT+>zbY@D%x0|l2qZ1Mk0RaI61qq8}6pVgj2L=WK0RbQy z4Ov1Ha8VOeJ{J}g4+8=K0|El`sSp3V3;(np-=;R+sz&_dv;Xnc&z?c($cp^$)%^YY z;;&5qu@3*i0PLU-=bsb*+?eOFOaHPA|F8k_t0Moj1OK=I|E&Y`s0shM1pm4f^RhMI zwq*0Sv|a!J0D*K;PE!B@0|P2yZ($w*3ZU+b2m~0-^u43G^{@m213pj;H|6?i1OaN# zSp)@I{m=vfmsA7+e82qlDX9DV{_GjI`~K>azx@9DpD_6R{Q9>@`u_XViv)D12jTtx zMFs>0f!BEi0fqa|Bttv`0u9aUoq?a=)gA&Ew6+xiK!BEjIRODJt{Dsf008evL_t&- z(_>%&0!Ahf$-vCW00BUng_Vt+1Iz*fP6jUS#-`>L9$r4M2q(XQppdYLs90;8xP&B7 zl@x=tj4V(>PF|s1kwJ+;nL$NWjX|ABgF&-HOPfK5L07M{t6QJJz|hFpq{q~Zfx*1j z!qUpxMw!93&#vFz!I8nq*=2(3L^lQocMnf5?@2xk48DH;0f9jb!3-gjr%VkE0~#M5 z5gEl09TUqC7oPy+CMG3MOG!-wxiCG0A(N4TF)KS~`i$JX{DQ)wVuKQ(coIWt+00q9 x=gcjyV5o%pg`ujtrnZg&$_I+ngQ*5E9{@~WGCwukS6Bc5002ovPDHLkV1nkwSt|el diff --git a/src/qt/res/movies/spinner-003.png b/src/qt/res/movies/spinner-003.png index 985797dfbefedea28b4f60c04e5630f196f0ca8f..ae9997e3373d8fd5756657f473ac6f3699d94418 100755 GIT binary patch literal 1970 zcmV;j2Tk~iP)EC)(};+8rl_cLf|#nAnwWu@q9Q`oP|Q>f6I9JiMKM(q z6;l8d00mVL098d*Y`@$4@!om;?m6csuj6Ik;paQ|oRj<3|NY)~zI)E`_Sqnm3+*>`&O2Z~*`G;z0Ud7Gqu8Pg8H0f`{|+ z69{+(A)mwhE`bHlwGYJy8T%ZrzzI{bzUbGnuOl9gg`h3q4Q>DJ}y^zwg?;8YP>dXx#l--7~6!iFi}|7 z_FVg-y>Z+;{Ac9tSb?{)6cz-)5o02)^sw@9nev_B8J?{UAwg=R=uq)UWG>(h# z4_#7Jy+0IMZGV{fww+=8w~W0Hd+;~cAXe%H+-sNd+i;cZlgA;{JXOWjNyd8@j(Mtn zX2;97OHoB!5xN)JJ7dak!X4UL)Ek5B@lTv0pjOx0eAWB_{)raL;XM2*LMI5vI1wN2 zLTiwP-$sD=n`x(C7a0`M3$~Td8-aTg!@E5hywEGS2k8&Q_jd+1>^N2!^|a7ec)Hgo zU;Xdbl!^2Q5i=AuwBXgy6Snz1?6pA*If&sWQZG+V6C0eMdA__vP4oyq#h4vX1Pw%$ zIyTZTecLcTh{B(6#QFH-8TahKc6i*qSmyW~_`V1cz2b>gL=}_=(slimv8#+}4B{f$ zMg9@{s>ds_+d(4J*~eb&dBDvgw!3)fP}`-hBK<#N&kW)OJM7y27kK9)nT!jB2mJ-> zU2!k$aL-&aMcc!;*eNg9$I44qb5OIJrfd7h*n@6?wNz7t*D|1k@*cja+m#J}?{NC!5Y7lyQ!_Hg!cR&?@{sq_*0V_g^*!-Mctlz`727Oax zjDN%}Z70fAuSmY;?`~noBHyTa*cGvA<0{&O-GLQedAlsq%zFs@9J`NwQ-l&MtQ7VA za&ML~jDImwj>mc$_e#bVC+a^g9dl}Z?rm$ADNna!LUSo`B()Ehy z>Y7Yg?~K(_&^y&xjcvG`bmd#?UY*#k&Iw`L9(-*Z>~ZmD5cg4T?7oo4ecRtnXH6#& zX`>J|3^_iYuSb@PWj)`#Jtt*Fus_mSj8F6z_y-o->t##}vc;G1aIfa_vfi@|)23+6 zi5BMIfhN9A5T5Q)KYz#&W2e_(Tw?yC-nZJ`x@=MI$a?;0A2z-1%qGmjI@~SA^-m=1 zJeJM)pJ`j8K4o71N%DN(#7-l!qrNB)WQqsyh5OIe+pSo!Vrl5GWHZayRaq*y4DI6m zz$V=OzHkj8a!XE-ZNjZ`3A$suScfGTHRX-*BP8;Khb8b_@Fr{n4drE0J@R zu!@kIE)*6UyY6^DeX}Nh&CPdMg{?x^LQJte-tL3CgP#5km%nmpZ?uTkhRw>55(=!x zdqGaheQwI8g&%R{E|=ofYFJVF;iE}-(-f|b@rww&m5SFo$+0GUey9;5A;m&XA1BxROeH_-$(UR%okYacLRkH9 zW9ek_*P)iJe#ucH<7RhSG z`mefEOQ(pM;q@DK+N^%aIfK}%o#o-$tivHULTrin!`5GSis|xV`gO3azax775D%b* zy_(_u>pYkx*Z<9KJKg~^aJdLWP;6>n;rdJJl5m@7r~ zZ5N2_KUgPLVaDP8mZ#Sj{)6Zsf>#sipM}$=W{vP7q9fkX;2thN>{#Yg)dl;7_N(4AIJR?A;%`v$+)L`xvujdym@^_Y@e;=&H2KgkH>mD^Dg;%b*K>= zk`7IC5P7?`z0{>l53a=Nki1QR~8k2>NINCeYDOho8ltTukp z+5Z-!I>wi4Exxv=JN3a>jL+V}gPFAGKD}J_Ddl`T zw20Nwz7>wYjmCEqzTEVfj0x%@!aKd~tSOuSOMJ74+>h1C89P}}`;^#Yc4b_SyRp^(=N;_F)(08?YcRM^iBN ziPqgM(^b07*qoM6N<$ Ef(CZ|RsaA1 literal 953 zcmV;q14jIbP)6rpof_1uUGw6?H8nMLRvPZ02;rkE9Umkh8x!%P z4%e9!S>CZD$M%2?YcJ0s#R50RR;f4n{Q*Oga}WCKv(&0|Np80|Nv9whjNg4DP5P zfXrwwG8CPkng7z@5OchuLkp_4ezHL?z>w5 zwh8~S3jekO|F{7Et_T0M5c9D#=)Gy!!6%0Eu)`PE!B_0|5(2V@n?c1q^`o z@{0xmS+PV>S@y{Q3U38S?$=0tN>HZvBr81DyS@5t5fQ0s%&0Y)&%#LNH(EUawo91IK) z5l${{9^THbZa#hi20@@8P`Qw>h^Ux&Pp^ce6iAJ}5}b-J7T3=akd z&zWA{KE8eo{sFUQ2L=T*FocALg-6VZWMGJjj){$9h)+mNnmaE!C6ytKA$@*EW){fe z?3`R6nU`NsxL{#XaY<=eIRirl&|#GfRn;|%7B5*^TUXxz_DdrJLsN50Ya7C=jqPBn b1MF7-v>-MScfMJ$00000NkvXXu0mjf8{$!L diff --git a/src/qt/res/movies/spinner-004.png b/src/qt/res/movies/spinner-004.png index 10e95baf0fc267087ab130a8d188067706191501..6614c3695231cc5678e838067972fd7f0be469ba 100755 GIT binary patch literal 1989 zcmV;$2RitPP)p2y?ohWkWU%iJ*pz)u9{Vp(7he#z0x=ti8;D;()Dhyt1ow~tw}la5 zjErr7N>p$%(f2{THnqY> zY;O+7A0sZ%0BM}k^Ov(6H(E8qAx(OPsFoRey#;}68*?A_*e^3*|5#5 zfstV^Xge$FZ-O2_0&7v(@uKescYzi(Ai8Y(zZG{0$Ns-r1DAYr_+X3R2-?TccLYK# zf@+b;js4h{*}xXptZvK;aH2>V3ugFpfhw5i&w{>L>90&vaIQRB;G$&dPv9BY0>5Mb zFNj|uUPUAxpF{X{oy{VmWho|O=7sg(`4howh%4Y-{%qhwvFXf_af@pp3Z0^`^|X(xG@v0>l^1g z2-ewJ%xpH=_Bh8DxmLRE@Bwk~YhcR|(%U92eAbR`>o_k+j`<3`EGnPFcRLT^-B@?L@QgE4QjREQ#;GQBbtMk;r2o$vzh0``Q0yTB61)AOTqwRgyy@BQSrm)HF_KqXtJySLb% z(VkrBRMr!aYNuVwL`%txeNO}|4JkXn1&7u72>ZWO;)XNcHy0$wB6SZk$KIYxSnccK zD(5{gQ-;kff}dF^+si}PRwMmS47-^Dmm%Tr!9Dw~)Lf&vhcV~*Z^s;$GyXbl zPl{ea70%pNl#ucACh>)er6gE(~Y~%QMWcZyHD8u(mS##JxC+a}{e$&zxd>_>8&lJ%yTx<51l%df%q zPfvKqS>My*={E588ztpQY*)(8kgCpl@~%=kbCr_*Y5xjZd*HDp&tI3duqtLC|ApEB zJ7b%&4)LR2r4&*1He=QFkHJ~xgVX$pU=v(Siw#1{z=%TP>lZ+Mr+-$r0v?6SMzg%+ zrH9klcVI95Y7KD74DoelJ7pynZXJJHN4v5cSyJPQL?+0Wfi;{h@C@TWM_k&WH&|BL z+yhtiU9DZcxV}_IZ%!do+;Zx1-4lrWhY0^CUld+_MElcZ(wW9YT6_sys+}{kdf5k8 zMQ}uSSswG9Lf-<~l_~$g)bX2b%dGx3IK`HP{>8m7xVPe&L#%^Ea75w)`e%3dTN_{T z6<_gpo|uqblTb9s@_7@n0cN8@<(Hnb1d$Ot$-0c|red09P%q)8DrUGmxoQI?vg2sc zkstBS#R+-BA9F$UCD0)eRcE=moz4FFD1LD-UlL(~M3wD`nKps+ekrf3QPKQ2RSmHW zZ7EuKEAurJJwM-#6kE(nR%9i#K(^=W?T*}31}rDq%wb<9Qy}{@W3%Ef2OkZ_3AIPX zti+EhJr|!GL{L*zg|O>dyy;(&tBis zVrx-BINK*$7LKcwOW8ZwLdb&<7cHiE<~x2Ml6mw;VejWL$IyH!KoCF%fD^6TE{IjeT7L0|WvB0RaF30RjU$ED@A)Fx9+{bar_F00?199n_jE za&Be=0|G)a6w;(k^5DGN+u8^S2Ll5E1q1<!Mb000650|5d80WKvH`l<^1r2*)l64RV9 zXjeD}1_lcY3*?&*{j&j=Zyy8$0s{g91_un;l@tH00O+6=J~=T10swqj74xMGRY4m7 z00MDP4w-f{KQ|`^1qA^C00IF31_lSRd=iduHBd)3H8U+XHZ?6REHEb%85R!%1PFIn z7TlQ5l>V0kaQ^)86$1v;{r4Rmv;6)1{!0T01D{eq{C;=W-u+?$YyIKkc#Qoy zTagM216cn1{r#K`Cj9-$1_K@S{QYDCtNo4xn$m0z0s$G-%6d^sRa7|`q4n2SBTY~* z0%h?!UjP6A?ny*JR2b7^U;qI|Fv-Ns00Atl3=C}S9GnacU=c1L=H_W`Y31ePXAl6Z z5EK#?5fu|}YnPCel4g*Rm6PvK017KADR-(cs4}Q^b*pP=YH8~*FzD*(8!#{!8X23I znwc|LSXx>4^x6QG+VJJP)!6dO*R4*#2lY5(Uek{%=V4#=#Qkf=6H*2f2&*9e51xfE66&SOe9Ls+W&}yC&!hm!JW}qBWG;`?1|B z2~UD+T2CI&*fv~V?Qu?nST80j;WmIpJp~5dxA5aQk&RGvu~-B-5dRdYW%T$JvK6;% zc$25BjA+HV${OiJO9O$eoLR>x8bD`I9(a%TqJQ;t{16MuWwsr*o=xnlneiJJ4vS{E z!crZ1J~hgPjKRDQ^)rasz1i?>CyZ*Hsrt-iH5EOpC#zd0M#gsQpiaWilCVyX4^v97 z5tKcDHe(>2^m?(0$@L_@@|7@JweVwR5hN~PL5Ut$#}=3(F`77$uDIzWFBAT{E@;wk zHL&fxBYIKzY7j6`<$$`3A9&7#XTG2NjUuV#d^zQ=RRzMpy6z>Pfhg zLI=HGfMq-XuSj?u!p=U&jy)gG=-n)~dJVP-M(FAqN8Qa(yu4gpdS4Yc!8n~$Kk8-W=@JdCl)!lP8=4Dm>GAI;kC3F_HyAc~#`T|Zm#5xP$!*cW1dzRma*`bgM!mcfv-@8N8VVbKFY9e>ZTqBa<; zO8A{jd&!@*y8bUIJ7C`bZEe^|-eTb?h7EAbdT+zsZ_wjyTTf6zbCxR<-aP(mH*=vf zB2bII9oaTpC{Gv2s+!pLJXo{AvV(FrMLS8Itve5z&P0YhUKe=q6r)hRJHTp7D)RUt zaMux#1vVVcn=20?#^2Mfi}O9j4`R|)`1=5LmFU#vZt3}8_XQ7%p;4nGk1eU^7~S+Y~f$Cgplj#G3>EnA`3An)M^ zqLJ1M>iogI3d>2KxGZftGg2-yk3j1fEyfvWwJC}CBzEZc;t#|#mTlFJ;`O>=#C5QR z@^ccKEoK+nY-3#qvAPkz`tuq9Q^`!aKqk|+t9BCf9r-&jUQ8T3XcG*BAz{}Q7E@%IqlrRX~e zBS8EE@fqsQ@@?4oDW9o)41U1C^40_gOL_c??KTjHqlzUz_IB(i5N{9cX9+CeP-7s9 zfpXIOx24p(B~kPmxCjA%XR#T&3QTy!ba_90xS=Ca)k4DSG{pMJ6Iw!{LGQA@wzs_E zpqn>UhEVswTN61DT0M`?tN$(j(O16kEwJbJbidcfV$A>q>(IPZbCoIWya zCqmK6@s>de@uzL3NkaOKAT$mHu;20000000000 d00000m;}jfMN&>Eg~k8?002ovPDHLkV1oUo&-?%Y literal 934 zcmV;X16lluP)rh-00IC2 z0U;U-X-*c5aXrDcpSZZW78Mj05(`H)5~z0+e`YrV0|f#C0RR96v3(XqMMg?F7}=Q~ zZDUab0s$?x70HqgDL#+iq`h0RaIA1_cKM0ButsH zU`H1GvIFm+2;iL?yN^5^85IKp0DxN(<(?HeFCIKD5uJ!(000320RRF500adGqjMFC zbxc4!G#3{a6%-Poav8gY8!2nPcL0RjO51OfoI2;-q5@w-(2 zwh7{;G1948;>(^={pTwH004n>QchC<0RaR80|5{vBnb%zb>ZB02LU>h!{5&=D{IQY z4FLw-U3vPF14{Gz`2C0i2n477{3;#x`umv#UukXon?`qz{(XV|jDSj?{rqTdRH6I& z^dK_*s|5&+{P_FtIRdNvZ(`8{0s$7wzF;LX%HqkKLjetp;^cb*3=AkL76SqUy9N_& z0002-Nkl#z{p)M2xjotv%1Es!=1V#u#J7s4+%}T5DCUDi}3j zQB}2SFe0MXs)DhKwW_LWRTZl!#v0LnFZuPn`S1DPeV1MGX8z^#|M%ScLcaUI|D1bX z-cB(J|E=$I%dpeEM4W{Vd>gg`tnb8L-jQ>cpoHS0Bgutk0v2Hd(L3wHc^-*Tj>);E zcP;q@6c-suE*?_3(-2@=gqsA3a&3^;mR|7Y*a_D5V}RzK&~lz1h) z@}z3OHPw6#ii<+S7sOs`xd8_+3$2PakC6}a#(c4++KQbE#=}!?MYJ}e6(3vYl^zfJ zD?8fda$5$nck;ddHWQL?Rmt`Zk=N<-d({V|@ZDP$iGk-u_f3LE<=%F99C838_UNE z+l;TmI20F=`irFE`=x~>xM`*9_VkdrWWU?u7;%BuZ)x#5hID?5;{{#mqu6Sg{NkO| z$NOO{Nd$WW4w)Oq@jlE$QA4l#mmt9AncTD`umziPZb?`9$X2}k$;9{blcmnJ*xGjV zL)ktqYLVVgoFdM`e2+lh8zYWEkr;jPrM#UFD&keO>vw=HKRvys702tvP#4ML_AR|d z07<^RbhP^Wz4|?J7he*0`zqDm2G-|nx?J0W;&r6K#oY*I(RO)O}?CVCSOnNllDYA4|{M}i@E_KT|L5kk8i@aWJR(M2aw;3Pak~T z<6M{6hC<=u8&V>54xv}cZ;;=G`y%~5d@NxOvDe{O15T>E1!PoKfQQ0FUQHwVT5``o9LH!p2T>LoPLhi9tbEV>g zu67~VH{l6!4hkDz)vWYZFS$w<*#_xc5Y#*5j$QRmfuw7pU$UzBAQ3F_#=D~Xm}_RB zsN(eO{}lQ}Lsf92zAvx;2sXXC?H>Q@yhN#9LvpCO0h~YLweLWoa76r($Wo%!I^L>$ zn-jPWMHQzAh}Tj%R{cGV2Z?FSoN!OzIusg5T8-UOq9HZvD7oC2w4Q$liYkswu4aE% zu__;|o8yyfO{=-qFHXxH?nyT0TG3;eamlv$6=^rwb|RRfwiBpym*NJ{~!cT zhUxig{FwYF$e)2?Fiz#e?U4QG&tA#MxsS+i5C64B$NECCeArF(=R_xt;eEIQmt1I5 z@ir~EjO;!6BEbjpcarzu4lMN{4d!~<&iro03CtDLzJSF}U zK7>_&q6KJN<%rxO{sHNT1qect9{ZzQ(}nms$8T^v2HxWv5D@r`c$%s^NlsOs8B61T z7Wt)%AByfY;+_#tL4@{Kxz_<5QnbJeQ^3n_D&G-Rv%*ESuko;*?b_BH> zncFN&dH;1^FuvhWt`<`D@Idy~tCMK`>Ls`Gc?2!rtEp!kK34LL{yu2A8Bb-GbIx}s zhvy1>0?4y>Cm~zya??H~?h;EEKRhjYl6{&gKjt^fRDYM7^$bGO7USXt8t)b@EiF^?_W~oUlRX{?B5aZL*NFrpl|@bu7Bcr3KltD zk$;PImAC}cF5DLHjFx!E#k+XN#k+XN#k+Xtf5C3nM{o^5lmGw#07*qoM6N<$g3@3+ AivR!s literal 960 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 z - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/qt/res/src/clock1.svg b/src/qt/res/src/clock1.svg index 793dc7f..1e7de3b 100755 --- a/src/qt/res/src/clock1.svg +++ b/src/qt/res/src/clock1.svg @@ -1,261 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/qt/res/src/clock2.svg b/src/qt/res/src/clock2.svg index 6a78adf..a9d551b 100755 --- a/src/qt/res/src/clock2.svg +++ b/src/qt/res/src/clock2.svg @@ -1,262 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/qt/res/src/clock3.svg b/src/qt/res/src/clock3.svg index 09ccc25..a4351e2 100755 --- a/src/qt/res/src/clock3.svg +++ b/src/qt/res/src/clock3.svg @@ -1,261 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/qt/res/src/clock4.svg b/src/qt/res/src/clock4.svg index 7d9dc37..11d918e 100755 --- a/src/qt/res/src/clock4.svg +++ b/src/qt/res/src/clock4.svg @@ -1,261 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/qt/res/src/clock5.svg b/src/qt/res/src/clock5.svg index 9fd58d9..c6c3c7b 100755 --- a/src/qt/res/src/clock5.svg +++ b/src/qt/res/src/clock5.svg @@ -1,262 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/qt/res/src/clock_green.svg b/src/qt/res/src/clock_green.svg index e31f0e7..e5c2636 100755 --- a/src/qt/res/src/clock_green.svg +++ b/src/qt/res/src/clock_green.svg @@ -1,262 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/qt/res/src/inout.svg b/src/qt/res/src/inout.svg index bfab8ef..d82389b 100755 --- a/src/qt/res/src/inout.svg +++ b/src/qt/res/src/inout.svg @@ -1,122 +1 @@ - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/qt/res/src/questionmark.svg b/src/qt/res/src/questionmark.svg index c03c159..d2d4898 100755 --- a/src/qt/res/src/questionmark.svg +++ b/src/qt/res/src/questionmark.svg @@ -1,159 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - ? - ? - - - ? - - +??? \ No newline at end of file diff --git a/src/qt/rpcconsole.cpp b/src/qt/rpcconsole.cpp index 9e0a408..4c56cb2 100755 --- a/src/qt/rpcconsole.cpp +++ b/src/qt/rpcconsole.cpp @@ -11,12 +11,14 @@ #include "clientmodel.h" #include "guiutil.h" #include "peertablemodel.h" +#include "bantablemodel.h" #include "chainparams.h" #include "main.h" #include "rpcclient.h" #include "rpcserver.h" #include "util.h" +#include "qtmaterialflatbutton.h" #include "json/json_spirit_value.h" @@ -28,7 +30,9 @@ #include #include +#include #include +#include #include #include #include @@ -222,7 +226,9 @@ RPCConsole::RPCConsole(QWidget* parent) : QDialog(parent), ui(new Ui::RPCConsole), clientModel(0), historyPtr(0), - cachedNodeid(-1) + cachedNodeid(-1), + peersTableContextMenu(0), + banTableContextMenu(0) { ui->setupUi(this); GUIUtil::restoreWindowGeometry("nRPCConsoleWindow", this->size(), this); @@ -325,7 +331,7 @@ void RPCConsole::setClientModel(ClientModel* model) { clientModel = model; ui->trafficGraph->setClientModel(model); - if (model) { + if (model && clientModel->getPeerTableModel() && clientModel->getBanTableModel()) { // Keep up to date with client setNumConnections(model->getNumConnections()); connect(model, SIGNAL(numConnectionsChanged(int)), this, SLOT(setNumConnections(int))); @@ -348,12 +354,72 @@ void RPCConsole::setClientModel(ClientModel* model) ui->peerWidget->setColumnWidth(PeerTableModel::Address, ADDRESS_COLUMN_WIDTH); ui->peerWidget->setColumnWidth(PeerTableModel::Subversion, SUBVERSION_COLUMN_WIDTH); ui->peerWidget->setColumnWidth(PeerTableModel::Ping, PING_COLUMN_WIDTH); + ui->peerWidget->horizontalHeader()->setStretchLastSection(true); + + // create peer table context menu actions + QAction* disconnectAction = new QAction(tr("&Disconnect Node"), this); + QAction* banAction1h = new QAction(tr("Ban Node for") + " " + tr("1 &hour"), this); + QAction* banAction24h = new QAction(tr("Ban Node for") + " " + tr("1 &day"), this); + QAction* banAction7d = new QAction(tr("Ban Node for") + " " + tr("1 &week"), this); + QAction* banAction30d = new QAction(tr("Ban Node for") + " " + tr("1 &month"), this); + + // create peer table context menu + peersTableContextMenu = new QMenu(); + peersTableContextMenu->addAction(disconnectAction); + peersTableContextMenu->addAction(banAction1h); + peersTableContextMenu->addAction(banAction24h); + peersTableContextMenu->addAction(banAction7d); + peersTableContextMenu->addAction(banAction30d); + + // Add a signal mapping to allow dynamic context menu arguments. + // We need to use int (instead of int64_t), because signal mapper only supports + // int or objects, which is okay because max bantime (1 year) is < int_max. + QSignalMapper* signalMapper = new QSignalMapper(this); + signalMapper->setMapping(banAction1h, 60 * 60); + signalMapper->setMapping(banAction24h, 60 * 60 * 24); + signalMapper->setMapping(banAction7d, 60 * 60 * 24 * 7); + signalMapper->setMapping(banAction30d, 60 * 60 * 24 * 30); + connect(banAction1h, SIGNAL(triggered()), signalMapper, SLOT(map())); + connect(banAction24h, SIGNAL(triggered()), signalMapper, SLOT(map())); + connect(banAction7d, SIGNAL(triggered()), signalMapper, SLOT(map())); + connect(banAction30d, SIGNAL(triggered()), signalMapper, SLOT(map())); + connect(signalMapper, SIGNAL(mapped(int)), this, SLOT(banSelectedNode(int))); // connect the peerWidget selection model to our peerSelected() handler + connect(ui->peerWidget, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(showPeersTableContextMenu(const QPoint&))); connect(ui->peerWidget->selectionModel(), SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)), this, SLOT(peerSelected(const QItemSelection&, const QItemSelection&))); + connect(disconnectAction, SIGNAL(triggered()), this, SLOT(disconnectSelectedNode())); connect(model->getPeerTableModel(), SIGNAL(layoutChanged()), this, SLOT(peerLayoutChanged())); + // set up ban table + ui->banlistWidget->setModel(model->getBanTableModel()); + ui->banlistWidget->verticalHeader()->hide(); + ui->banlistWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); + ui->banlistWidget->setSelectionBehavior(QAbstractItemView::SelectRows); + ui->banlistWidget->setSelectionMode(QAbstractItemView::SingleSelection); + ui->banlistWidget->setContextMenuPolicy(Qt::CustomContextMenu); + ui->banlistWidget->setColumnWidth(BanTableModel::Address, BANSUBNET_COLUMN_WIDTH); + ui->banlistWidget->setColumnWidth(BanTableModel::Bantime, BANTIME_COLUMN_WIDTH); + ui->banlistWidget->horizontalHeader()->setStretchLastSection(true); + + // create ban table context menu action + QAction* unbanAction = new QAction(tr("&Unban Node"), this); + + // create ban table context menu + banTableContextMenu = new QMenu(); + banTableContextMenu->addAction(unbanAction); + + // ban table context menu signals + connect(ui->banlistWidget, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(showBanTableContextMenu(const QPoint&))); + connect(unbanAction, SIGNAL(triggered()), this, SLOT(unbanSelectedNode())); + + // ban table signal handling - clear peer details when clicking a peer in the ban table + connect(ui->banlistWidget, SIGNAL(clicked(const QModelIndex&)), this, SLOT(clearSelectedNode())); + // ban table signal handling - ensure ban table is shown or hidden (if empty) + connect(model->getBanTableModel(), SIGNAL(layoutChanged()), this, SLOT(showOrHideBanTableIfRequired())); + showOrHideBanTableIfRequired(); + // Provide initial values ui->clientVersion->setText(model->formatFullVersion()); ui->clientName->setText(model->clientName()); @@ -693,7 +759,7 @@ void RPCConsole::peerSelected(const QItemSelection& selected, const QItemSelecti void RPCConsole::peerLayoutChanged() { - if (!clientModel) + if (!clientModel || !clientModel->getPeerTableModel()) return; const CNodeCombinedStats* stats = NULL; @@ -794,7 +860,7 @@ void RPCConsole::showEvent(QShowEvent* event) { QWidget::showEvent(event); - if (!clientModel) + if (!clientModel || !clientModel->getPeerTableModel()) return; // start PeerTableModel auto refresh @@ -805,13 +871,94 @@ void RPCConsole::hideEvent(QHideEvent* event) { QWidget::hideEvent(event); - if (!clientModel) + if (!clientModel || !clientModel->getPeerTableModel()) return; // stop PeerTableModel auto refresh clientModel->getPeerTableModel()->stopAutoRefresh(); } +void RPCConsole::showPeersTableContextMenu(const QPoint& point) +{ + QModelIndex index = ui->peerWidget->indexAt(point); + if (index.isValid()) + peersTableContextMenu->exec(QCursor::pos()); +} + +void RPCConsole::showBanTableContextMenu(const QPoint& point) +{ + QModelIndex index = ui->banlistWidget->indexAt(point); + if (index.isValid()) + banTableContextMenu->exec(QCursor::pos()); +} + +void RPCConsole::disconnectSelectedNode() +{ + // Get currently selected peer address + QString strNode = GUIUtil::getEntryData(ui->peerWidget, 0, PeerTableModel::Address); + // Find the node, disconnect it and clear the selected node + if (CNode *bannedNode = FindNode(strNode.toStdString())) { + bannedNode->fDisconnect = true; + clearSelectedNode(); + } +} + +void RPCConsole::banSelectedNode(int bantime) +{ + if (!clientModel) + return; + + // Get currently selected peer address + QString strNode = GUIUtil::getEntryData(ui->peerWidget, 0, PeerTableModel::Address); + // Find possible nodes, ban it and clear the selected node + if (CNode *bannedNode = FindNode(strNode.toStdString())) { + std::string nStr = strNode.toStdString(); + std::string addr; + int port = 0; + SplitHostPort(nStr, port, addr); + + CNode::Ban(CNetAddr(addr), BanReasonManuallyAdded, bantime); + bannedNode->fDisconnect = true; + + clearSelectedNode(); + clientModel->getBanTableModel()->refresh(); + } +} + +void RPCConsole::unbanSelectedNode() +{ + if (!clientModel) + return; + + // Get currently selected ban address + QString strNode = GUIUtil::getEntryData(ui->banlistWidget, 0, BanTableModel::Address); + CSubNet possibleSubnet(strNode.toStdString()); + + if (possibleSubnet.IsValid()) + { + CNode::Unban(possibleSubnet); + clientModel->getBanTableModel()->refresh(); + } +} + +void RPCConsole::clearSelectedNode() +{ + ui->peerWidget->selectionModel()->clearSelection(); + cachedNodeid = -1; + ui->detailWidget->hide(); + ui->peerHeading->setText(tr("Select a peer to view detailed information.")); +} + +void RPCConsole::showOrHideBanTableIfRequired() +{ + if (!clientModel) + return; + + bool visible = clientModel->getBanTableModel()->shouldShow(); + ui->banlistWidget->setVisible(visible); + ui->banHeading->setVisible(visible); +} + void RPCConsole::showBackups() { GUIUtil::showBackups(); diff --git a/src/qt/rpcconsole.h b/src/qt/rpcconsole.h index 81788af..e074413 100755 --- a/src/qt/rpcconsole.h +++ b/src/qt/rpcconsole.h @@ -100,7 +100,20 @@ public slots: void peerSelected(const QItemSelection& selected, const QItemSelection& deselected); /** Handle updated peer information */ void peerLayoutChanged(); + /** Show custom context menu on Peers tab */ + void showPeersTableContextMenu(const QPoint& point); + /** Show custom context menu on Bans tab */ + void showBanTableContextMenu(const QPoint& point); + /** Hides ban table if no bans are present */ + void showOrHideBanTableIfRequired(); + /** clear the selected node */ + void clearSelectedNode(); /** Show folder with wallet backups in default browser */ + void disconnectSelectedNode(); + /** Ban a selected node on the Peers tab */ + void banSelectedNode(int bantime); + /** Unban a selected node on the Bans tab */ + void unbanSelectedNode(); void showBackups(); signals: @@ -122,7 +135,9 @@ public slots: enum ColumnWidths { ADDRESS_COLUMN_WIDTH = 170, SUBVERSION_COLUMN_WIDTH = 140, - PING_COLUMN_WIDTH = 80 + PING_COLUMN_WIDTH = 80, + BANSUBNET_COLUMN_WIDTH = 200, + BANTIME_COLUMN_WIDTH = 250 }; Ui::RPCConsole* ui; @@ -131,6 +146,8 @@ public slots: int historyPtr; NodeId cachedNodeid; QCompleter *autoCompleter; + QMenu *peersTableContextMenu; + QMenu *banTableContextMenu; }; #endif // BITCOIN_QT_RPCCONSOLE_H diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp index 5349a68..6020117 100755 --- a/src/qt/sendcoinsdialog.cpp +++ b/src/qt/sendcoinsdialog.cpp @@ -17,6 +17,7 @@ #include "optionsmodel.h" #include "sendcoinsentry.h" #include "walletmodel.h" +#include "qtmaterialflatbutton.h" #include "base58.h" #include "coincontrol.h" diff --git a/src/qt/signverifymessagedialog.cpp b/src/qt/signverifymessagedialog.cpp index 4d250e7..7e0096e 100755 --- a/src/qt/signverifymessagedialog.cpp +++ b/src/qt/signverifymessagedialog.cpp @@ -11,6 +11,7 @@ #include "addressbookpage.h" #include "guiutil.h" #include "walletmodel.h" +#include "qtmaterialflatbutton.h" #include "base58.h" #include "init.h" diff --git a/src/qt/splashscreen.cpp b/src/qt/splashscreen.cpp index 2574263..a8b2170 100755 --- a/src/qt/splashscreen.cpp +++ b/src/qt/splashscreen.cpp @@ -90,7 +90,7 @@ SplashScreen::SplashScreen(Qt::WindowFlags f, const NetworkStyle* networkStyle) setWindowTitle(titleText + " " + titleAddText); // Resize window and move to center of desktop, disallow resizing - QRect r(QPoint(), QSize(pixmap.width(), pixmap.height())); + QRect r(QPoint(), pixmap.size()); resize(r.size()); setFixedSize(r.size()); move(QApplication::desktop()->screenGeometry().center() - r.center()); diff --git a/src/qt/test/uritests.cpp b/src/qt/test/uritests.cpp index e646e38..a4e9813 100755 --- a/src/qt/test/uritests.cpp +++ b/src/qt/test/uritests.cpp @@ -13,54 +13,54 @@ void URITests::uriTests() { SendCoinsRecipient rv; QUrl uri; - uri.setUrl(QString("ittrium:D72dLgywmL73JyTwQBfuU29CADz9yCJ99v?req-dontexist=")); + uri.setUrl(QString("ittrium:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?req-dontexist=")); QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); - uri.setUrl(QString("ittrium:D72dLgywmL73JyTwQBfuU29CADz9yCJ99v?dontexist=")); + uri.setUrl(QString("ittrium:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?dontexist=")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); - QVERIFY(rv.address == QString("D72dLgywmL73JyTwQBfuU29CADz9yCJ99v")); + QVERIFY(rv.address == QString("XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg")); QVERIFY(rv.label == QString()); QVERIFY(rv.amount == 0); - uri.setUrl(QString("ittrium:D72dLgywmL73JyTwQBfuU29CADz9yCJ99v?label=Some Example Address")); + uri.setUrl(QString("ittrium:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?label=Some Example Address")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); - QVERIFY(rv.address == QString("D72dLgywmL73JyTwQBfuU29CADz9yCJ99v")); + QVERIFY(rv.address == QString("XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg")); QVERIFY(rv.label == QString("Some Example Address")); QVERIFY(rv.amount == 0); - uri.setUrl(QString("ittrium:D72dLgywmL73JyTwQBfuU29CADz9yCJ99v?amount=0.001")); + uri.setUrl(QString("ittrium:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?amount=0.001")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); - QVERIFY(rv.address == QString("D72dLgywmL73JyTwQBfuU29CADz9yCJ99v")); + QVERIFY(rv.address == QString("XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg")); QVERIFY(rv.label == QString()); QVERIFY(rv.amount == 100000); - uri.setUrl(QString("ittrium:D72dLgywmL73JyTwQBfuU29CADz9yCJ99v?amount=1.001")); + uri.setUrl(QString("ittrium:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?amount=1.001")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); - QVERIFY(rv.address == QString("D72dLgywmL73JyTwQBfuU29CADz9yCJ99v")); + QVERIFY(rv.address == QString("XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg")); QVERIFY(rv.label == QString()); QVERIFY(rv.amount == 100100000); - uri.setUrl(QString("ittrium:D72dLgywmL73JyTwQBfuU29CADz9yCJ99v?amount=100&label=Some Example")); + uri.setUrl(QString("ittrium:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?amount=100&label=Some Example")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); - QVERIFY(rv.address == QString("D72dLgywmL73JyTwQBfuU29CADz9yCJ99v")); + QVERIFY(rv.address == QString("XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg")); QVERIFY(rv.amount == 10000000000LL); QVERIFY(rv.label == QString("Some Example")); - uri.setUrl(QString("ittrium:D72dLgywmL73JyTwQBfuU29CADz9yCJ99v?message=Some Example Address")); + uri.setUrl(QString("ittrium:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?message=Some Example Address")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); - QVERIFY(rv.address == QString("D72dLgywmL73JyTwQBfuU29CADz9yCJ99v")); + QVERIFY(rv.address == QString("XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg")); QVERIFY(rv.label == QString()); - QVERIFY(GUIUtil::parseBitcoinURI("ittrium://D72dLgywmL73JyTwQBfuU29CADz9yCJ99v?message=Some Example Address", &rv)); - QVERIFY(rv.address == QString("D72dLgywmL73JyTwQBfuU29CADz9yCJ99v")); + QVERIFY(GUIUtil::parseBitcoinURI("ittrium://XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?message=Some Example Address", &rv)); + QVERIFY(rv.address == QString("XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg")); QVERIFY(rv.label == QString()); - uri.setUrl(QString("ittrium:D72dLgywmL73JyTwQBfuU29CADz9yCJ99v?req-message=Some Example Address")); + uri.setUrl(QString("ittrium:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?req-message=Some Example Address")); QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv)); - uri.setUrl(QString("ittrium:D72dLgywmL73JyTwQBfuU29CADz9yCJ99v?amount=1,000&label=Some Example")); + uri.setUrl(QString("ittrium:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?amount=1,000&label=Some Example")); QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); - uri.setUrl(QString("ittrium:D72dLgywmL73JyTwQBfuU29CADz9yCJ99v?amount=1,000.0&label=Some Example")); + uri.setUrl(QString("ittrium:XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg?amount=1,000.0&label=Some Example")); QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv)); } diff --git a/src/qt/transactionrecord.cpp b/src/qt/transactionrecord.cpp index b1f2ced..9296961 100755 --- a/src/qt/transactionrecord.cpp +++ b/src/qt/transactionrecord.cpp @@ -12,7 +12,7 @@ #include "swifttx.h" #include "timedata.h" #include "wallet.h" - +#include #include /* Return positive answer if transaction should be shown in list. @@ -25,7 +25,10 @@ bool TransactionRecord::showTransaction(const CWalletTx& wtx) return false; } } - return true; + else { + QSettings settings; + return (!settings.value("fShowOrphans").toBool() || wtx.GetDepthInMainChain() >= 0); + } } /* diff --git a/src/qt/transactiontablemodel.cpp b/src/qt/transactiontablemodel.cpp index 4c052ab..95e7a48 100755 --- a/src/qt/transactiontablemodel.cpp +++ b/src/qt/transactiontablemodel.cpp @@ -367,7 +367,7 @@ QVariant TransactionTableModel::txAddressDecoration(const TransactionRecord* wtx case TransactionRecord::Generated: case TransactionRecord::StakeMint: case TransactionRecord::MNReward: - return QIcon(":/icons/tx_mined"); + return QIcon(":/icons/masternodes"); case TransactionRecord::RecvWithObfuscation: case TransactionRecord::RecvWithAddress: case TransactionRecord::RecvFromOther: diff --git a/src/qt/walletframe.cpp b/src/qt/walletframe.cpp index 6f0d1af..d25ae67 100755 --- a/src/qt/walletframe.cpp +++ b/src/qt/walletframe.cpp @@ -175,6 +175,13 @@ void WalletFrame::gotoMultiSendDialog() walletView->gotoMultiSendDialog(); } +void WalletFrame::gotoMultisigDialog(int index) +{ + WalletView* walletView = currentWalletView(); + if(walletView){ + walletView->gotoMultisigDialog(index); + } +} void WalletFrame::encryptWallet(bool status) { diff --git a/src/qt/walletframe.h b/src/qt/walletframe.h index 7e5feaa..1a12771 100755 --- a/src/qt/walletframe.h +++ b/src/qt/walletframe.h @@ -69,6 +69,9 @@ public slots: /** Show MultiSend Dialog **/ void gotoMultiSendDialog(); + /** show a multisig tab **/ + void gotoMultisigDialog(int index); + /** Show BIP 38 tool - default to Encryption tab */ void gotoBip38Tool(); diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp index 6016fd1..20c28b1 100755 --- a/src/qt/walletmodel.cpp +++ b/src/qt/walletmodel.cpp @@ -37,6 +37,7 @@ WalletModel::WalletModel(CWallet* wallet, OptionsModel* optionsModel, QObject* p cachedNumBlocks(0) { fHaveWatchOnly = wallet->HaveWatchOnly(); + fHaveMultiSig = wallet->HaveMultiSig(); fForceCheckBalanceChanged = false; addressTableModel = new AddressTableModel(wallet, this); @@ -194,12 +195,32 @@ void WalletModel::updateWatchOnlyFlag(bool fHaveWatchonly) emit notifyWatchonlyChanged(fHaveWatchonly); } +void WalletModel::updateMultiSigFlag(bool fHaveMultiSig) +{ + this->fHaveMultiSig = fHaveMultiSig; + emit notifyMultiSigChanged(fHaveMultiSig); +} + bool WalletModel::validateAddress(const QString& address) { CBitcoinAddress addressParsed(address.toStdString()); return addressParsed.IsValid(); } +void WalletModel::updateAddressBookLabels(const CTxDestination& dest, const string& strName, const string& strPurpose) +{ + LOCK(wallet->cs_wallet); + + std::map::iterator mi = wallet->mapAddressBook.find(dest); + + // Check if we have a new address or an updated label + if (mi == wallet->mapAddressBook.end()) { + wallet->SetAddressBook(dest, strName, strPurpose); + } else if (mi->second.name != strName) { + wallet->SetAddressBook(dest, strName, ""); // "" means don't change purpose + } +} + WalletModel::SendCoinsReturn WalletModel::prepareTransaction(WalletModelTransaction& transaction, const CCoinControl* coinControl) { CAmount total = 0; @@ -350,18 +371,7 @@ WalletModel::SendCoinsReturn WalletModel::sendCoins(WalletModelTransaction& tran std::string strAddress = rcp.address.toStdString(); CTxDestination dest = CBitcoinAddress(strAddress).Get(); std::string strLabel = rcp.label.toStdString(); - { - LOCK(wallet->cs_wallet); - - std::map::iterator mi = wallet->mapAddressBook.find(dest); - - // Check if we have a new address or an updated label - if (mi == wallet->mapAddressBook.end()) { - wallet->SetAddressBook(dest, strLabel, "send"); - } else if (mi->second.name != strLabel) { - wallet->SetAddressBook(dest, strLabel, ""); // "" means don't change purpose - } - } + updateAddressBookLabels(dest, strLabel, "send"); } emit coinsSent(wallet, rcp, transaction_array); } @@ -501,6 +511,12 @@ static void NotifyWatchonlyChanged(WalletModel* walletmodel, bool fHaveWatchonly Q_ARG(bool, fHaveWatchonly)); } +static void NotifyMultiSigChanged(WalletModel* walletmodel, bool fHaveMultiSig) +{ + QMetaObject::invokeMethod(walletmodel, "updateMultiSigFlag", Qt::QueuedConnection, + Q_ARG(bool, fHaveMultiSig)); +} + void WalletModel::subscribeToCoreSignals() { // Connect signals to wallet @@ -509,6 +525,7 @@ void WalletModel::subscribeToCoreSignals() wallet->NotifyTransactionChanged.connect(boost::bind(NotifyTransactionChanged, this, _1, _2, _3)); wallet->ShowProgress.connect(boost::bind(ShowProgress, this, _1, _2)); wallet->NotifyWatchonlyChanged.connect(boost::bind(NotifyWatchonlyChanged, this, _1)); + wallet->NotifyMultiSigChanged.connect(boost::bind(NotifyMultiSigChanged, this, _1)); } void WalletModel::unsubscribeFromCoreSignals() @@ -519,6 +536,7 @@ void WalletModel::unsubscribeFromCoreSignals() wallet->NotifyTransactionChanged.disconnect(boost::bind(NotifyTransactionChanged, this, _1, _2, _3)); wallet->ShowProgress.disconnect(boost::bind(ShowProgress, this, _1, _2)); wallet->NotifyWatchonlyChanged.disconnect(boost::bind(NotifyWatchonlyChanged, this, _1)); + wallet->NotifyMultiSigChanged.disconnect(boost::bind(NotifyMultiSigChanged, this, _1)); } // WalletModel::UnlockContext implementation diff --git a/src/qt/walletmodel.h b/src/qt/walletmodel.h index 553fc82..40d2584 100755 --- a/src/qt/walletmodel.h +++ b/src/qt/walletmodel.h @@ -213,6 +213,7 @@ class WalletModel : public QObject private: CWallet* wallet; bool fHaveWatchOnly; + bool fHaveMultiSig; bool fForceCheckBalanceChanged; // Wallet has an options model for wallet-specific options @@ -266,6 +267,9 @@ class WalletModel : public QObject // Watch-only address added void notifyWatchonlyChanged(bool fHaveWatchonly); + // MultiSig address added + void notifyMultiSigChanged(bool fHaveMultiSig); + public slots: /* Wallet status might have changed */ void updateStatus(); @@ -275,8 +279,12 @@ public slots: void updateAddressBook(const QString& address, const QString& label, bool isMine, const QString& purpose, int status); /* Watch-only added */ void updateWatchOnlyFlag(bool fHaveWatchonly); + /* MultiSig added */ + void updateMultiSigFlag(bool fHaveMultiSig); /* Current, immature or unconfirmed balance might have changed - emit 'balanceChanged' if so */ void pollBalanceChanged(); + /* Update address book labels in the database */ + void updateAddressBookLabels(const CTxDestination& address, const string& strName, const string& strPurpose); }; #endif // BITCOIN_QT_WALLETMODEL_H diff --git a/src/qt/walletview.cpp b/src/qt/walletview.cpp index fc618d7..85dce40 100755 --- a/src/qt/walletview.cpp +++ b/src/qt/walletview.cpp @@ -13,6 +13,7 @@ #include "guiutil.h" #include "masternodeconfig.h" #include "multisenddialog.h" +#include "multisigdialog.h" #include "optionsmodel.h" #include "overviewpage.h" #include "receivecoinsdialog.h" @@ -21,11 +22,12 @@ #include "transactiontablemodel.h" #include "transactionview.h" #include "walletmodel.h" - +#include "qtmaterialflatbutton.h" #include "ui_interface.h" #include #include +#include #include #include #include @@ -46,13 +48,12 @@ WalletView::WalletView(QWidget* parent) : QStackedWidget(parent), QHBoxLayout* hbox_buttons = new QHBoxLayout(); transactionView = new TransactionView(this); vbox->addWidget(transactionView); - QPushButton* exportButton = new QPushButton(tr("&Export"), this); + QtMaterialFlatButton* exportButton = new QtMaterialFlatButton(tr("Export"), this); exportButton->setToolTip(tr("Export the data in the current tab to a file")); #ifndef Q_OS_MAC // Icons on push buttons are very uncommon on Mac exportButton->setIcon(QIcon(":/icons/export")); #endif hbox_buttons->addStretch(); - // Sum of selected transactions QLabel* transactionSumLabel = new QLabel(); // Label transactionSumLabel->setObjectName("transactionSumLabel"); // Label ID as CSS-reference @@ -264,6 +265,14 @@ void WalletView::gotoMultiSendDialog() multiSendDialog->show(); } +void WalletView::gotoMultisigDialog(int index) +{ + MultisigDialog* multisig = new MultisigDialog(this); + multisig->setModel(walletModel); + multisig->showTab(index); +} + + bool WalletView::handlePaymentRequest(const SendCoinsRecipient& recipient) { return sendCoinsPage->handlePaymentRequest(recipient); diff --git a/src/qt/walletview.h b/src/qt/walletview.h index ab55eaa..d46df03 100755 --- a/src/qt/walletview.h +++ b/src/qt/walletview.h @@ -92,6 +92,9 @@ public slots: /** Show MultiSend Dialog */ void gotoMultiSendDialog(); + /** Show a multisig tab **/ + void gotoMultisigDialog(int index); + /** Show BIP 38 tool - default to Encryption tab */ void gotoBip38Tool(); diff --git a/src/rpcclient.cpp b/src/rpcclient.cpp index aa8088a..91768b9 100755 --- a/src/rpcclient.cpp +++ b/src/rpcclient.cpp @@ -35,7 +35,6 @@ static const CRPCConvertParam vRPCConvertParams[] = {"getnetworkhashps", 0}, {"getnetworkhashps", 1}, {"sendtoaddress", 1}, - //{"sendtoaddress", 2}, {"sendtoaddressix", 1}, {"settxfee", 0}, {"getreceivedbyaddress", 1}, @@ -95,6 +94,8 @@ static const CRPCConvertParam vRPCConvertParams[] = {"estimatepriority", 0}, {"prioritisetransaction", 1}, {"prioritisetransaction", 2}, + {"setban", 2}, + {"setban", 3}, {"spork", 1}, {"mnbudget", 3}, {"mnbudget", 4}, diff --git a/src/rpcmasternode-budget.cpp b/src/rpcmasternode-budget.cpp index c1cb9e9..c2205d6 100755 --- a/src/rpcmasternode-budget.cpp +++ b/src/rpcmasternode-budget.cpp @@ -151,8 +151,8 @@ Value preparebudget(const Array& params, bool fHelp) "\nResult:\n" "\"xxxx\" (string) proposal fee hash (if successful) or error message (if failed)\n" "\nExamples:\n" + - HelpExampleCli("preparebudget", "\"test-proposal\" \"https://ittrium.io/test-proposal\" 2 820800 \"D9oc6C3dttUbv8zd7zGNq1qKBGf4ZQ1XEE\" 500") + - HelpExampleRpc("preparebudget", "\"test-proposal\" \"https://ittrium.io/test-proposal\" 2 820800 \"D9oc6C3dttUbv8zd7zGNq1qKBGf4ZQ1XEE\" 500")); + HelpExampleCli("preparebudget", "\"test-proposal\" \"https://governence.ittrium.io\" 2 820800 \"i9oc6C3dttUbv8zd7zGNq1qKBGf4ZQ1XEE\" 500") + + HelpExampleRpc("preparebudget", "\"test-proposal\" \"https://governence.ittrium.io\" 2 820800 \"i9oc6C3dttUbv8zd7zGNq1qKBGf4ZQ1XEE\" 500")); if (pwalletMain->IsLocked()) throw JSONRPCError(RPC_WALLET_UNLOCK_NEEDED, "Error: Please enter the wallet passphrase with walletpassphrase first."); @@ -245,8 +245,8 @@ Value submitbudget(const Array& params, bool fHelp) "\nResult:\n" "\"xxxx\" (string) proposal hash (if successful) or error message (if failed)\n" "\nExamples:\n" + - HelpExampleCli("submitbudget", "\"test-proposal\" \"https://ittrium.io/test-proposal\" 2 820800 \"D9oc6C3dttUbv8zd7zGNq1qKBGf4ZQ1XEE\" 500") + - HelpExampleRpc("submitbudget", "\"test-proposal\" \"https:ittrium.io/test-proposal\" 2 820800 \"D9oc6C3dttUbv8zd7zGNq1qKBGf4ZQ1XEE\" 500")); + HelpExampleCli("submitbudget", "\"test-proposal\" \"https://governence.ittrium.io\" 2 820800 \"i9oc6C3dttUbv8zd7zGNq1qKBGf4ZQ1XEE\" 500") + + HelpExampleRpc("submitbudget", "\"test-proposal\" \"https://governence.ittrium.io\" 2 820800 \"i9oc6C3dttUbv8zd7zGNq1qKBGf4ZQ1XEE\" 500")); // Check these inputs the same way we check the vote commands: // ********************************************************** diff --git a/src/rpcmining.cpp b/src/rpcmining.cpp index 05700c2..e6d4cd1 100755 --- a/src/rpcmining.cpp +++ b/src/rpcmining.cpp @@ -32,6 +32,36 @@ using namespace json_spirit; using namespace std; +#ifdef ENABLE_WALLET +// Key used by getwork miners. +// Allocated in InitRPCMining, free'd in ShutdownRPCMining +static CReserveKey* pMiningKey = NULL; + +void InitRPCMining() +{ + if (!pwalletMain) + return; + + // getwork/getblocktemplate mining rewards paid here: + pMiningKey = new CReserveKey(pwalletMain); +} + +void ShutdownRPCMining() +{ + if (!pMiningKey) + return; + + delete pMiningKey; pMiningKey = NULL; +} +#else +void InitRPCMining() +{ +} +void ShutdownRPCMining() +{ +} +#endif + /** * Return average network hashes per second based on the last 'lookup' blocks, * or from the last difficulty change if 'lookup' is nonpositive. @@ -536,6 +566,38 @@ Value getblocktemplate(const Array& params, bool fHelp) transactions.push_back(entry); } + + Array coinbasetxn; + map setTxIndex1; + int j = 0; + BOOST_FOREACH (CTransaction& tx, pblock->vtx) {//Incase if multi coinbase + if(tx.IsCoinBase()){ + uint256 txHash = tx.GetHash(); + setTxIndex1[txHash] = j++; + + /* if (tx.IsCoinBase()) + continue; */ + + Object entry; + + entry.push_back(Pair("data", EncodeHexTx(tx))); + + entry.push_back(Pair("hash", txHash.GetHex())); + + Array deps; + BOOST_FOREACH (const CTxIn& in, tx.vin) { + if (setTxIndex.count(in.prevout.hash)) + deps.push_back(setTxIndex[in.prevout.hash]); + } + entry.push_back(Pair("depends", deps)); + + int index_in_template = j - 1; + entry.push_back(Pair("fee", pblocktemplate->vTxFees[index_in_template])); + entry.push_back(Pair("sigops", pblocktemplate->vTxSigOps[index_in_template])); + + coinbasetxn.push_back(entry); + } + } Object aux; aux.push_back(Pair("flags", HexStr(COINBASE_FLAGS.begin(), COINBASE_FLAGS.end()))); @@ -558,6 +620,7 @@ Value getblocktemplate(const Array& params, bool fHelp) result.push_back(Pair("transactions", transactions)); result.push_back(Pair("coinbaseaux", aux)); result.push_back(Pair("coinbasevalue", (int64_t)pblock->vtx[0].GetValueOut())); + result.push_back(Pair("coinbasetxn", coinbasetxn[0])); result.push_back(Pair("longpollid", chainActive.Tip()->GetBlockHash().GetHex() + i64tostr(nTransactionsUpdatedLast))); result.push_back(Pair("target", hashTarget.GetHex())); result.push_back(Pair("mintime", (int64_t)pindexPrev->GetMedianTimePast() + 1)); diff --git a/src/rpcnet.cpp b/src/rpcnet.cpp index a4d5b59..cbfc3c5 100755 --- a/src/rpcnet.cpp +++ b/src/rpcnet.cpp @@ -7,6 +7,7 @@ #include "rpcserver.h" +#include "addrdb.h" #include "clientversion.h" #include "main.h" #include "net.h" @@ -405,3 +406,109 @@ Value getnetworkinfo(const Array& params, bool fHelp) obj.push_back(Pair("localaddresses", localAddresses)); return obj; } + +Value setban(const Array& params, bool fHelp) +{ + string strCommand; + if (params.size() >= 2) + strCommand = params[1].get_str(); + if (fHelp || params.size() < 2 || + (strCommand != "add" && strCommand != "remove")) + throw runtime_error( + "setban \"ip(/netmask)\" \"add|remove\" (bantime) (absolute)\n" + "\nAttempts add or remove a IP/Subnet from the banned list.\n" + "\nArguments:\n" + "1. \"ip(/netmask)\" (string, required) The IP/Subnet (see getpeerinfo for nodes ip) with a optional netmask (default is /32 = single ip)\n" + "2. \"command\" (string, required) 'add' to add a IP/Subnet to the list, 'remove' to remove a IP/Subnet from the list\n" + "3. \"bantime\" (numeric, optional) time in seconds how long (or until when if [absolute] is set) the ip is banned (0 or empty means using the default time of 24h which can also be overwritten by the -bantime startup argument)\n" + "4. \"absolute\" (boolean, optional) If set, the bantime must be a absolute timestamp in seconds since epoch (Jan 1 1970 GMT)\n" + "\nExamples:\n" + + HelpExampleCli("setban", "\"192.168.0.6\" \"add\" 86400") + + HelpExampleCli("setban", "\"192.168.0.0/24\" \"add\"") + + HelpExampleRpc("setban", "\"192.168.0.6\", \"add\" 86400") + ); + + CSubNet subNet; + CNetAddr netAddr; + bool isSubnet = false; + + if (params[0].get_str().find("/") != string::npos) + isSubnet = true; + + if (!isSubnet) + netAddr = CNetAddr(params[0].get_str()); + else + subNet = CSubNet(params[0].get_str()); + + if (! (isSubnet ? subNet.IsValid() : netAddr.IsValid()) ) + throw JSONRPCError(RPC_CLIENT_NODE_ALREADY_ADDED, "Error: Invalid IP/Subnet"); + + if (strCommand == "add") + { + if (isSubnet ? CNode::IsBanned(subNet) : CNode::IsBanned(netAddr)) + throw JSONRPCError(RPC_CLIENT_NODE_ALREADY_ADDED, "Error: IP/Subnet already banned"); + + int64_t banTime = 0; //use standard bantime if not specified + if (params.size() >= 3 && params[2].get_str() != "") + banTime = params[2].get_int64(); + + bool absolute = false; + if (params.size() == 4 && params[3].get_str() == "true") + absolute = true; + + isSubnet ? CNode::Ban(subNet, banTime, absolute) : CNode::Ban(netAddr, banTime, absolute); + + //disconnect possible nodes + while(CNode *bannedNode = (isSubnet ? FindNode(subNet) : FindNode(netAddr))) + bannedNode->CloseSocketDisconnect(); + } + else if(strCommand == "remove") + { + if (!( isSubnet ? CNode::Unban(subNet) : CNode::Unban(netAddr) )) + throw JSONRPCError(RPC_MISC_ERROR, "Error: Unban failed"); + } + + return Value::null; +} + +Value listbanned(const Array& params, bool fHelp) +{ + if (fHelp || params.size() != 0) + throw runtime_error( + "listbanned\n" + "\nList all banned IPs/Subnets.\n" + "\nExamples:\n" + + HelpExampleCli("listbanned", "") + + HelpExampleRpc("listbanned", "") + ); + + banmap_t banMap; + CNode::GetBanned(banMap); + + Array bannedAddresses; + for (banmap_t::iterator it = banMap.begin(); it != banMap.end(); it++) + { + Object rec; + rec.push_back(Pair("address", (*it).first.ToString())); + rec.push_back(Pair("banned_untill", (*it).second.nBanUntil)); + bannedAddresses.push_back(rec); + } + + return bannedAddresses; +} + +Value clearbanned(const Array& params, bool fHelp) +{ + if (fHelp || params.size() != 0) + throw runtime_error( + "clearbanned\n" + "\nClear all banned IPs.\n" + "\nExamples:\n" + + HelpExampleCli("clearbanned", "") + + HelpExampleRpc("clearbanned", "") + ); + + CNode::ClearBanned(); + + return Value::null; +} \ No newline at end of file diff --git a/src/rpcprotocol.h b/src/rpcprotocol.h index 0be4465..1fcfcff 100755 --- a/src/rpcprotocol.h +++ b/src/rpcprotocol.h @@ -63,6 +63,7 @@ enum RPCErrorCode { RPC_CLIENT_IN_INITIAL_DOWNLOAD = -10, //! Still downloading initial blocks RPC_CLIENT_NODE_ALREADY_ADDED = -23, //! Node is already added RPC_CLIENT_NODE_NOT_ADDED = -24, //! Node has not been added before + RPC_CLIENT_INVALID_IP_OR_SUBNET = -30,//! Invalid IP/Subnet //! Wallet errors RPC_WALLET_ERROR = -4, //! Unspecified problem with wallet (key not found etc.) diff --git a/src/rpcserver.cpp b/src/rpcserver.cpp index b6a7510..47d67a0 100755 --- a/src/rpcserver.cpp +++ b/src/rpcserver.cpp @@ -247,6 +247,9 @@ static const CRPCCommand vRPCCommands[] = {"network", "getnettotals", &getnettotals, true, true, false}, {"network", "getpeerinfo", &getpeerinfo, true, false, false}, {"network", "ping", &ping, true, false, false}, + {"network", "setban", &setban, true, false, false}, + {"network", "listbanned", &listbanned, true, false, false}, + {"network", "clearbanned", &clearbanned, true, false, false}, /* Block chain and UTXO */ {"blockchain", "getblockchaininfo", &getblockchaininfo, true, false, false}, diff --git a/src/rpcserver.h b/src/rpcserver.h index 119fc60..d7be7e0 100755 --- a/src/rpcserver.h +++ b/src/rpcserver.h @@ -154,6 +154,9 @@ extern json_spirit::Value ping(const json_spirit::Array& params, bool fHelp); extern json_spirit::Value addnode(const json_spirit::Array& params, bool fHelp); extern json_spirit::Value getaddednodeinfo(const json_spirit::Array& params, bool fHelp); extern json_spirit::Value getnettotals(const json_spirit::Array& params, bool fHelp); +extern json_spirit::Value setban(const json_spirit::Array& params, bool fHelp); +extern json_spirit::Value listbanned(const json_spirit::Array& params, bool fHelp); +extern json_spirit::Value clearbanned(const json_spirit::Array& params, bool fHelp); extern json_spirit::Value dumpprivkey(const json_spirit::Array& params, bool fHelp); // in rpcdump.cpp extern json_spirit::Value importprivkey(const json_spirit::Array& params, bool fHelp); diff --git a/src/rpcwallet.cpp b/src/rpcwallet.cpp index d840917..2d035e6 100755 --- a/src/rpcwallet.cpp +++ b/src/rpcwallet.cpp @@ -18,7 +18,6 @@ #include "utilmoneystr.h" #include "wallet.h" #include "walletdb.h" -#include "coincontrol.h" #include @@ -290,7 +289,7 @@ Value getaddressesbyaccount(const Array& params, bool fHelp) return ret; } -void SendMoney(const CTxDestination& address, CAmount nValue, CWalletTx& wtxNew, CCoinControl* coinControl = NULL, bool fUseIX = false) +void SendMoney(const CTxDestination& address, CAmount nValue, CWalletTx& wtxNew, bool fUseIX = false) { // Check amount if (nValue <= 0) @@ -312,7 +311,7 @@ void SendMoney(const CTxDestination& address, CAmount nValue, CWalletTx& wtxNew, // Create and send the transaction CReserveKey reservekey(pwalletMain); CAmount nFeeRequired; - if (!pwalletMain->CreateTransaction(scriptPubKey, nValue, wtxNew, reservekey, nFeeRequired, strError, coinControl, ALL_COINS, fUseIX, (CAmount)0)) { + if (!pwalletMain->CreateTransaction(scriptPubKey, nValue, wtxNew, reservekey, nFeeRequired, strError, NULL, ALL_COINS, fUseIX, (CAmount)0)) { if (nValue + nFeeRequired > pwalletMain->GetBalance()) strError = strprintf("Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds!", FormatMoney(nFeeRequired)); LogPrintf("SendMoney() : %s\n", strError); @@ -332,7 +331,7 @@ Value sendtoaddress(const Array& params, bool fHelp) "\nArguments:\n" "1. \"ittriumaddress\" (string, required) The ittrium address to send to.\n" "2. \"amount\" (numeric, required) The amount in btc to send. eg 0.1\n" - "3. \"amount of splits\" (numeric, optional) amount of UTXO splits. \n" + "3. \"comment\" (string, optional) A comment used to store what the transaction is for. \n" " This is not part of the transaction, just kept in your wallet.\n" "4. \"comment-to\" (string, optional) A comment to store the name of the person or organization \n" " to which you're sending the transaction. This is not part of the \n" @@ -351,23 +350,19 @@ Value sendtoaddress(const Array& params, bool fHelp) // Wallet comments CWalletTx wtx; - CCoinControl* coinControl = new CCoinControl(); - if (params.size() > 2 && params[2].type() != null_type){ - //wtx.mapValue["comment"] = params[2].get_str(); - coinControl->nSplitBlock = params[2].get_int(); - coinControl->fSplitBlock = true; - } + if (params.size() > 2 && params[2].type() != null_type && !params[2].get_str().empty()) + wtx.mapValue["comment"] = params[2].get_str(); if (params.size() > 3 && params[3].type() != null_type && !params[3].get_str().empty()) wtx.mapValue["to"] = params[3].get_str(); EnsureWalletIsUnlocked(); - SendMoney(address.Get(), nAmount, wtx, coinControl); + SendMoney(address.Get(), nAmount, wtx); return wtx.GetHash().GetHex(); } -Value sendtoaddressix(const Array& params, bool fHelp)//instant send +Value sendtoaddressix(const Array& params, bool fHelp) { if (fHelp || params.size() < 2 || params.size() > 4) throw runtime_error( @@ -403,11 +398,10 @@ Value sendtoaddressix(const Array& params, bool fHelp)//instant send EnsureWalletIsUnlocked(); - SendMoney(address.Get(), nAmount, wtx, NULL ,true); + SendMoney(address.Get(), nAmount, wtx, true); return wtx.GetHash().GetHex(); } - Value listaddressgroupings(const Array& params, bool fHelp) { if (fHelp) @@ -1936,7 +1930,7 @@ Value getwalletinfo(const Array& params, bool fHelp) return obj; } -// ittrium: reserve balance from being staked for network protection +// ppcoin: reserve balance from being staked for network protection Value reservebalance(const Array& params, bool fHelp) { if (fHelp || params.size() > 2) @@ -2088,10 +2082,12 @@ Array printMultiSend() ret.push_back("MultiSend Addresses to Send To:"); Object vMS; - for (unsigned int i = 0; i < pwalletMain->vMultiSend.size(); i++) { - vMS.push_back(Pair("Address " + boost::lexical_cast(i), pwalletMain->vMultiSend[i].first)); - vMS.push_back(Pair("Percent", pwalletMain->vMultiSend[i].second)); - } + for (unsigned int j = 0; j < pwalletMain->vMultiSend.size(); j++) { + for (unsigned int i = 0; i < pwalletMain->vMultiSend[j].second.size(); i++) { + vMS.push_back(Pair("Address " + boost::lexical_cast(i), pwalletMain->vMultiSend[1].second[i].first)); + vMS.push_back(Pair("Percent", pwalletMain->vMultiSend[i].second[i].second)); + } + } ret.push_back(vMS); return ret; @@ -2129,8 +2125,8 @@ Array printAddresses() unsigned int sumMultiSend() { unsigned int sum = 0; - for (unsigned int i = 0; i < pwalletMain->vMultiSend.size(); i++) - sum += pwalletMain->vMultiSend[i].second; + for (unsigned int i = 0; i < pwalletMain->vMultiSend[0].second.size(); i++) + sum += pwalletMain->vMultiSend[i].second[i].second; return sum; } @@ -2244,7 +2240,7 @@ Value multisend(const Array& params, bool fHelp) } //if no commands are used - if (fHelp || params.size() != 2) + if (fHelp || params.size() > 3) throw runtime_error( "multisend \n" "****************************************************************\n" @@ -2253,7 +2249,7 @@ Value multisend(const Array& params, bool fHelp) "The MultiSend transaction is sent when the staked coins mature (100 confirmations)\n" "****************************************************************\n" "TO CREATE OR ADD TO THE MULTISEND VECTOR:\n" - "multisend \n" + "multisend

\n" "This will add a new address to the MultiSend vector\n" "Percent is a whole number 1 to 100.\n" "****************************************************************\n" @@ -2270,14 +2266,16 @@ Value multisend(const Array& params, bool fHelp) //if the user is entering a new MultiSend item string strAddress = params[0].get_str(); + string strSendAddress = params[1].get_str(); CBitcoinAddress address(strAddress); - if (!address.IsValid()) + CBitcoinAddress sendAddress(strSendAddress); + if (!(address.IsValid() || sendAddress.IsValid())) throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid XIT address"); - if (boost::lexical_cast(params[1].get_str()) < 0) + if (boost::lexical_cast(params[2].get_str()) < 0) throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid parameter, expected valid percentage"); if (pwalletMain->IsLocked()) throw JSONRPCError(RPC_WALLET_UNLOCK_NEEDED, "Error: Please enter the wallet passphrase with walletpassphrase first."); - unsigned int nPercent = boost::lexical_cast(params[1].get_str()); + unsigned int nPercent = boost::lexical_cast(params[2].get_str()); LOCK(pwalletMain->cs_wallet); { @@ -2290,7 +2288,7 @@ Value multisend(const Array& params, bool fHelp) //MultiSend can only send 100% of your stake if (nPercent + sumMultiSend() > 100) throw JSONRPCError(RPC_INVALID_PARAMETER, "Failed to add to MultiSend vector, the sum of your MultiSend is greater than 100%"); - + /* for (unsigned int i = 0; i < pwalletMain->vMultiSend.size(); i++) { if (pwalletMain->vMultiSend[i].first == strAddress) throw JSONRPCError(RPC_INVALID_PARAMETER, "Failed to add to MultiSend vector, cannot use the same address twice"); @@ -2307,6 +2305,7 @@ Value multisend(const Array& params, bool fHelp) if (!walletdb.WriteMultiSend(pwalletMain->vMultiSend)) throw JSONRPCError(RPC_DATABASE_ERROR, "walletdb WriteMultiSend failed!"); } + */ } return printMultiSend(); } diff --git a/src/script/script.h b/src/script/script.h index ae15ef7..e2cd45e 100755 --- a/src/script/script.h +++ b/src/script/script.h @@ -589,9 +589,8 @@ class CScript : public std::vector bool IsPayToScriptHash() const; /** Called by IsStandardTx and P2SH/BIP62 VerifyScript (which makes it consensus-critical). */ - bool IsPushOnly(const_iterator pc) const; bool IsPushOnly() const; - + bool IsPushOnly(const_iterator pc) const; /** * Returns whether the script is guaranteed to fail at execution, * regardless of the initial stack. This allows outputs to be pruned diff --git a/src/secp256k1/obj/.gitignore b/src/secp256k1/obj/.gitignore index e69de29..d6b7ef3 100755 --- a/src/secp256k1/obj/.gitignore +++ b/src/secp256k1/obj/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/src/spork.cpp b/src/spork.cpp index b87ed36..9a17f28 100755 --- a/src/spork.cpp +++ b/src/spork.cpp @@ -78,12 +78,6 @@ bool IsSporkActive(int nSporkID) { int64_t r = -1; - if(SPORK_13_ENABLE_SUPERBLOCKS == nSporkID) - return false; - - if(SPORK_15_NEW_PROTOCOL_ENFORCEMENT_2 == nSporkID) - return true; - if (mapSporksActive.count(nSporkID)) { r = mapSporksActive[nSporkID].nValue; } else { @@ -100,6 +94,7 @@ bool IsSporkActive(int nSporkID) if (nSporkID == SPORK_14_NEW_PROTOCOL_ENFORCEMENT) r = SPORK_14_NEW_PROTOCOL_ENFORCEMENT_DEFAULT; if (nSporkID == SPORK_15_NEW_PROTOCOL_ENFORCEMENT_2) r = SPORK_15_NEW_PROTOCOL_ENFORCEMENT_2_DEFAULT; if (nSporkID == SPORK_16_MN_WINNER_MINIMUM_AGE) r = SPORK_16_MN_WINNER_MINIMUM_AGE_DEFAULT; + if (nSporkID == SPORK_17_NEW_PROTOCOL_ENFORCEMENT_3) r = SPORK_17_NEW_PROTOCOL_ENFORCEMENT_3_DEFAULT; if (r == -1) LogPrintf("GetSpork::Unknown Spork %d\n", nSporkID); } @@ -129,6 +124,7 @@ int64_t GetSporkValue(int nSporkID) if (nSporkID == SPORK_14_NEW_PROTOCOL_ENFORCEMENT) r = SPORK_14_NEW_PROTOCOL_ENFORCEMENT_DEFAULT; if (nSporkID == SPORK_15_NEW_PROTOCOL_ENFORCEMENT_2) r = SPORK_15_NEW_PROTOCOL_ENFORCEMENT_2_DEFAULT; if (nSporkID == SPORK_16_MN_WINNER_MINIMUM_AGE) r = SPORK_16_MN_WINNER_MINIMUM_AGE_DEFAULT; + if (nSporkID == SPORK_17_NEW_PROTOCOL_ENFORCEMENT_3) r = SPORK_17_NEW_PROTOCOL_ENFORCEMENT_3_DEFAULT; if (r == -1) LogPrintf("GetSpork::Unknown Spork %d\n", nSporkID); } @@ -205,17 +201,17 @@ bool CSporkManager::Sign(CSporkMessage& spork) std::string errorMessage = ""; if (!obfuScationSigner.SetKey(strMasterPrivKey, errorMessage, key2, pubkey2)) { - LogPrintf("CMasternodePayments::Sign - ERROR: Invalid masternodeprivkey: '%s'\n", errorMessage); + LogPrintf("CSporkManager::Sign - ERROR: Invalid sporkkey: '%s'\n", errorMessage); return false; } if (!obfuScationSigner.SignMessage(strMessage, errorMessage, spork.vchSig, key2)) { - LogPrintf("CMasternodePayments::Sign - Sign message failed"); + LogPrintf("CSporkManager::Sign - Sign message failed"); return false; } if (!obfuScationSigner.VerifyMessage(pubkey2, spork.vchSig, strMessage, errorMessage)) { - LogPrintf("CMasternodePayments::Sign - Verify message failed"); + LogPrintf("CSporkManager::Sign - Verify message failed"); return false; } @@ -277,6 +273,7 @@ int CSporkManager::GetSporkIDByName(std::string strName) if (strName == "SPORK_14_NEW_PROTOCOL_ENFORCEMENT") return SPORK_14_NEW_PROTOCOL_ENFORCEMENT; if (strName == "SPORK_15_NEW_PROTOCOL_ENFORCEMENT_2") return SPORK_15_NEW_PROTOCOL_ENFORCEMENT_2; if (strName == "SPORK_16_MN_WINNER_MINIMUM_AGE") return SPORK_16_MN_WINNER_MINIMUM_AGE; + if (strName == "SPORK_17_NEW_PROTOCOL_ENFORCEMENT_3") return SPORK_17_NEW_PROTOCOL_ENFORCEMENT_3; return -1; } @@ -296,6 +293,7 @@ std::string CSporkManager::GetSporkNameByID(int id) if (id == SPORK_14_NEW_PROTOCOL_ENFORCEMENT) return "SPORK_14_NEW_PROTOCOL_ENFORCEMENT"; if (id == SPORK_15_NEW_PROTOCOL_ENFORCEMENT_2) return "SPORK_15_NEW_PROTOCOL_ENFORCEMENT_2"; if (id == SPORK_16_MN_WINNER_MINIMUM_AGE) return "SPORK_16_MN_WINNER_MINIMUM_AGE"; + if (id == SPORK_17_NEW_PROTOCOL_ENFORCEMENT_3) return "SPORK_17_NEW_PROTOCOL_ENFORCEMENT_3"; return "Unknown"; } diff --git a/src/spork.h b/src/spork.h index 0913ee2..38a8722 100755 --- a/src/spork.h +++ b/src/spork.h @@ -41,6 +41,7 @@ using namespace boost; #define SPORK_14_NEW_PROTOCOL_ENFORCEMENT 10013 #define SPORK_15_NEW_PROTOCOL_ENFORCEMENT_2 10014 #define SPORK_16_MN_WINNER_MINIMUM_AGE 10015 +#define SPORK_17_NEW_PROTOCOL_ENFORCEMENT_3 10016 #define SPORK_2_SWIFTTX_DEFAULT 978307200 //2001-1-1 #define SPORK_3_SWIFTTX_BLOCK_FILTERING_DEFAULT 1424217600 //2015-2-18 @@ -57,6 +58,7 @@ using namespace boost; #define SPORK_16_MN_WINNER_MINIMUM_AGE_DEFAULT 8000 // Age in seconds. This should be > MASTERNODE_REMOVAL_SECONDS to avoid // misconfigured new nodes in the list. // Set this to zero to emulate classic behaviour +#define SPORK_17_NEW_PROTOCOL_ENFORCEMENT_3_DEFAULT 1539003750 //ON class CSporkMessage; class CSporkManager; diff --git a/src/sync.cpp b/src/sync.cpp index ef35c9d..2502022 100755 --- a/src/sync.cpp +++ b/src/sync.cpp @@ -1,5 +1,5 @@ -// Copyright (c) 2011-2012 The Bitcoin developers -// Distributed under the MIT/X11 software license, see the accompanying +// Copyright (c) 2011-2015 The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "sync.h" @@ -33,20 +33,22 @@ void PrintLockContention(const char* pszName, const char* pszFile, int nLine) // struct CLockLocation { - CLockLocation(const char* pszName, const char* pszFile, int nLine) + CLockLocation(const char* pszName, const char* pszFile, int nLine, bool fTryIn) { mutexName = pszName; sourceFile = pszFile; sourceLine = nLine; + fTry = fTryIn; } std::string ToString() const { - return mutexName + " " + sourceFile + ":" + itostr(sourceLine); + return mutexName + " " + sourceFile + ":" + itostr(sourceLine) + (fTry ? " (TRY)" : ""); } std::string MutexName() const { return mutexName; } + bool fTry; private: std::string mutexName; std::string sourceFile; @@ -54,31 +56,73 @@ struct CLockLocation { }; typedef std::vector > LockStack; +typedef std::map, LockStack> LockOrders; +typedef std::set > InvLockOrders; -static boost::mutex dd_mutex; -static std::map, LockStack> lockorders; -static boost::thread_specific_ptr lockstack; +struct LockData { + // Very ugly hack: as the global constructs and destructors run single + // threaded, we use this boolean to know whether LockData still exists, + // as DeleteLock can get called by global CCriticalSection destructors + // after LockData disappears. + bool available; + LockData() : available(true) {} + ~LockData() { available = false; } + LockOrders lockorders; + InvLockOrders invlockorders; + boost::mutex dd_mutex; +} static lockdata; + +boost::thread_specific_ptr lockstack; static void potential_deadlock_detected(const std::pair& mismatch, const LockStack& s1, const LockStack& s2) { + // We attempt to not assert on probably-not deadlocks by assuming that + // a try lock will immediately have otherwise bailed if it had + // failed to get the lock + // We do this by, for the locks which triggered the potential deadlock, + // in either lockorder, checking that the second of the two which is locked + // is only a TRY_LOCK, ignoring locks if they are reentrant. + bool firstLocked = false; + bool secondLocked = false; + bool onlyMaybeDeadlock = false; + LogPrintf("POTENTIAL DEADLOCK DETECTED\n"); LogPrintf("Previous lock order was:\n"); BOOST_FOREACH (const PAIRTYPE(void*, CLockLocation) & i, s2) { - if (i.first == mismatch.first) + if (i.first == mismatch.first) { LogPrintf(" (1)"); - if (i.first == mismatch.second) + if (!firstLocked && secondLocked && i.second.fTry) + onlyMaybeDeadlock = true; + firstLocked = true; + } + if (i.first == mismatch.second) { LogPrintf(" (2)"); + if (!secondLocked && firstLocked && i.second.fTry) + onlyMaybeDeadlock = true; + secondLocked = true; + } LogPrintf(" %s\n", i.second.ToString()); } + firstLocked = false; + secondLocked = false; LogPrintf("Current lock order is:\n"); BOOST_FOREACH (const PAIRTYPE(void*, CLockLocation) & i, s1) { - if (i.first == mismatch.first) + if (i.first == mismatch.first) { LogPrintf(" (1)"); - if (i.first == mismatch.second) + if (!firstLocked && secondLocked && i.second.fTry) + onlyMaybeDeadlock = true; + firstLocked = true; + } + if (i.first == mismatch.second) { LogPrintf(" (2)"); + if (!secondLocked && firstLocked && i.second.fTry) + onlyMaybeDeadlock = true; + secondLocked = true; + } LogPrintf(" %s\n", i.second.ToString()); } + assert(onlyMaybeDeadlock); } static void push_lock(void* c, const CLockLocation& locklocation, bool fTry) @@ -86,8 +130,7 @@ static void push_lock(void* c, const CLockLocation& locklocation, bool fTry) if (lockstack.get() == NULL) lockstack.reset(new LockStack); - LogPrint("lock", "Locking: %s\n", locklocation.ToString()); - dd_mutex.lock(); + boost::unique_lock lock(lockdata.dd_mutex); (*lockstack).push_back(std::make_pair(c, locklocation)); @@ -97,34 +140,26 @@ static void push_lock(void* c, const CLockLocation& locklocation, bool fTry) break; std::pair p1 = std::make_pair(i.first, c); - if (lockorders.count(p1)) + if (lockdata.lockorders.count(p1)) continue; - lockorders[p1] = (*lockstack); + lockdata.lockorders[p1] = (*lockstack); std::pair p2 = std::make_pair(c, i.first); - if (lockorders.count(p2)) { - potential_deadlock_detected(p1, lockorders[p2], lockorders[p1]); - break; - } + lockdata.invlockorders.insert(p2); + if (lockdata.lockorders.count(p2)) + potential_deadlock_detected(p1, lockdata.lockorders[p2], lockdata.lockorders[p1]); } } - dd_mutex.unlock(); } static void pop_lock() { - if (fDebug) { - const CLockLocation& locklocation = (*lockstack).rbegin()->second; - LogPrint("lock", "Unlocked: %s\n", locklocation.ToString()); - } - dd_mutex.lock(); (*lockstack).pop_back(); - dd_mutex.unlock(); } void EnterCritical(const char* pszName, const char* pszFile, int nLine, void* cs, bool fTry) { - push_lock(cs, CLockLocation(pszName, pszFile, nLine), fTry); + push_lock(cs, CLockLocation(pszName, pszFile, nLine, fTry), fTry); } void LeaveCritical() @@ -149,4 +184,26 @@ void AssertLockHeldInternal(const char* pszName, const char* pszFile, int nLine, abort(); } -#endif /* DEBUG_LOCKORDER */ +void DeleteLock(void* cs) +{ + if (!lockdata.available) { + // We're already shutting down. + return; + } + boost::unique_lock lock(lockdata.dd_mutex); + std::pair item = std::make_pair(cs, (void*)0); + LockOrders::iterator it = lockdata.lockorders.lower_bound(item); + while (it != lockdata.lockorders.end() && it->first.first == cs) { + std::pair invitem = std::make_pair(it->first.second, it->first.first); + lockdata.invlockorders.erase(invitem); + lockdata.lockorders.erase(it++); + } + InvLockOrders::iterator invit = lockdata.invlockorders.lower_bound(item); + while (invit != lockdata.invlockorders.end() && invit->first == cs) { + std::pair invinvitem = std::make_pair(invit->second, invit->first); + lockdata.lockorders.erase(invinvitem); + lockdata.invlockorders.erase(invit++); + } +} + +#endif /* DEBUG_LOCKORDER */ \ No newline at end of file diff --git a/src/sync.h b/src/sync.h index cd0aa7b..5e7466d 100755 --- a/src/sync.h +++ b/src/sync.h @@ -1,6 +1,6 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2013 The Bitcoin developers -// Distributed under the MIT/X11 software license, see the accompanying +// Copyright (c) 2009-2015 The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef BITCOIN_SYNC_H @@ -16,46 +16,36 @@ //////////////////////////////////////////////// // // -// THE SIMPLE DEFINITON, EXCLUDING DEBUG CODE // +// THE SIMPLE DEFINITION, EXCLUDING DEBUG CODE // // // //////////////////////////////////////////////// /* - - - CCriticalSection mutex; boost::recursive_mutex mutex; - LOCK(mutex); boost::unique_lock criticalblock(mutex); - LOCK2(mutex1, mutex2); boost::unique_lock criticalblock1(mutex1); boost::unique_lock criticalblock2(mutex2); - TRY_LOCK(mutex, name); boost::unique_lock name(mutex, boost::try_to_lock_t); - ENTER_CRITICAL_SECTION(mutex); // no RAII mutex.lock(); - LEAVE_CRITICAL_SECTION(mutex); // no RAII mutex.unlock(); - - - */ - /////////////////////////////// // // // THE ACTUAL IMPLEMENTATION // // // /////////////////////////////// -// Template mixin that adds -Wthread-safety locking annotations to a -// subset of the mutex API. +/** + * Template mixin that adds -Wthread-safety locking + * annotations to a subset of the mutex API. + */ template class LOCKABLE AnnotatedMixin : public PARENT { @@ -76,37 +66,46 @@ class LOCKABLE AnnotatedMixin : public PARENT } }; -/** Wrapped boost mutex: supports recursive locking, but no waiting */ -// TODO: We should move away from using the recursive lock by default. -typedef AnnotatedMixin CCriticalSection; - -/** Wrapped boost mutex: supports waiting but not recursive locking */ -typedef AnnotatedMixin CWaitableCriticalSection; - -/** Just a typedef for boost::condition_variable, can be wrapped later if desired */ -typedef boost::condition_variable CConditionVariable; - #ifdef DEBUG_LOCKORDER void EnterCritical(const char* pszName, const char* pszFile, int nLine, void* cs, bool fTry = false); void LeaveCritical(); std::string LocksHeld(); void AssertLockHeldInternal(const char* pszName, const char* pszFile, int nLine, void* cs); +void DeleteLock(void* cs); #else -void static inline EnterCritical(const char* pszName, const char* pszFile, int nLine, void* cs, bool fTry = false) -{ -} +void static inline EnterCritical(const char* pszName, const char* pszFile, int nLine, void* cs, bool fTry = false) {} void static inline LeaveCritical() {} void static inline AssertLockHeldInternal(const char* pszName, const char* pszFile, int nLine, void* cs) {} +void static inline DeleteLock(void* cs) {} #endif #define AssertLockHeld(cs) AssertLockHeldInternal(#cs, __FILE__, __LINE__, &cs) +/** + * Wrapped boost mutex: supports recursive locking, but no waiting + * TODO: We should move away from using the recursive lock by default. + */ +class CCriticalSection : public AnnotatedMixin +{ +public: + ~CCriticalSection() { + DeleteLock((void*)this); + } +}; + +typedef CCriticalSection CDynamicCriticalSection; +/** Wrapped boost mutex: supports waiting but not recursive locking */ +typedef AnnotatedMixin CWaitableCriticalSection; + +/** Just a typedef for boost::condition_variable, can be wrapped later if desired */ +typedef boost::condition_variable CConditionVariable; + #ifdef DEBUG_LOCKCONTENTION void PrintLockContention(const char* pszName, const char* pszFile, int nLine); #endif /** Wrapper around boost::unique_lock */ template -class CMutexLock +class SCOPED_LOCKABLE CMutexLock { private: boost::unique_lock lock; @@ -134,7 +133,7 @@ class CMutexLock } public: - CMutexLock(Mutex& mutexIn, const char* pszName, const char* pszFile, int nLine, bool fTry = false) : lock(mutexIn, boost::defer_lock) + CMutexLock(Mutex& mutexIn, const char* pszName, const char* pszFile, int nLine, bool fTry = false) EXCLUSIVE_LOCK_FUNCTION(mutexIn) : lock(mutexIn, boost::defer_lock) { if (fTry) TryEnter(pszName, pszFile, nLine); @@ -142,7 +141,18 @@ class CMutexLock Enter(pszName, pszFile, nLine); } - ~CMutexLock() + CMutexLock(Mutex* pmutexIn, const char* pszName, const char* pszFile, int nLine, bool fTry = false) EXCLUSIVE_LOCK_FUNCTION(pmutexIn) + { + if (!pmutexIn) return; + + lock = boost::unique_lock(*pmutexIn, boost::defer_lock); + if (fTry) + TryEnter(pszName, pszFile, nLine); + else + Enter(pszName, pszFile, nLine); + } + + ~CMutexLock() UNLOCK_FUNCTION() { if (lock.owns_lock()) LeaveCritical(); @@ -271,4 +281,4 @@ class CSemaphoreGrant } }; -#endif // BITCOIN_SYNC_H +#endif // BITCOIN_SYNC_H \ No newline at end of file diff --git a/src/test/Checkpoints_tests.cpp b/src/test/Checkpoints_tests.cpp index ef03fb8..9a2bdbd 100755 --- a/src/test/Checkpoints_tests.cpp +++ b/src/test/Checkpoints_tests.cpp @@ -18,14 +18,21 @@ BOOST_AUTO_TEST_SUITE(Checkpoints_tests) BOOST_AUTO_TEST_CASE(sanity) { - uint256 p0 = uint256("0x000003616197a9a9093a9cdda330cb4e0d52c4d7d3585dd985602913d93dfc0a"); - uint256 p1 = uint256("0x0000019624ca84395dc1da138d91bf9f0bb9824cf55ed4611cb9c59ae8afe310"); - BOOST_CHECK(Checkpoints::CheckBlock(0, p0)); + uint256 p88805 = uint256("0x00000000001392f1652e9bf45cd8bc79dc60fe935277cd11538565b4a94fa85f"); + uint256 p217752 = uint256("0x00000000000a7baeb2148272a7e14edf5af99a64af456c0afc23d15a0918b704"); + BOOST_CHECK(Checkpoints::CheckBlock(88805, p88805)); + BOOST_CHECK(Checkpoints::CheckBlock(217752, p217752)); + // Wrong hashes at checkpoints should fail: - BOOST_CHECK(!Checkpoints::CheckBlock(0, p1)); + BOOST_CHECK(!Checkpoints::CheckBlock(88805, p217752)); + BOOST_CHECK(!Checkpoints::CheckBlock(217752, p88805)); - BOOST_CHECK(Checkpoints::GetTotalBlocksEstimate() >= 0); -} + // ... but any hash not at a checkpoint should succeed: + BOOST_CHECK(Checkpoints::CheckBlock(88805+1, p217752)); + BOOST_CHECK(Checkpoints::CheckBlock(217752+1, p88805)); + + BOOST_CHECK(Checkpoints::GetTotalBlocksEstimate() >= 217752); +} BOOST_AUTO_TEST_SUITE_END() diff --git a/src/test/data/script_invalid.json b/src/test/data/script_invalid.json index f7d8812..13ee05c 100755 --- a/src/test/data/script_invalid.json +++ b/src/test/data/script_invalid.json @@ -512,6 +512,8 @@ ["Increase DERSIG test coverage"], +["0 0x01 0x50", "HASH160 0x14 0xece424a6bb6ddf4db592c0faed60685047a361b1 EQUAL", "OP_RESERVED in P2SH should fail"], +["0 0x01 VER", "HASH160 0x14 0x0f4d7845db968f2a81b530b6f3c1d6246d4c7e01 EQUAL", "OP_VER in P2SH should fail"], ["0x4a 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0 CHECKSIG NOT", "DERSIG", "Overly long signature is incorrectly encoded for DERSIG"], ["0x25 0x30220220000000000000000000000000000000000000000000000000000000000000000000", "0 CHECKSIG NOT", "DERSIG", "Missing S is incorrectly encoded for DERSIG"], diff --git a/src/test/data/script_valid.json b/src/test/data/script_valid.json index 7074517..c23cdb9 100755 --- a/src/test/data/script_valid.json +++ b/src/test/data/script_valid.json @@ -137,6 +137,9 @@ ["'abcdefghijklmnopqrstuvwxyz'", "SIZE 26 EQUAL", "P2SH,STRICTENC"], ["42", "SIZE 1 EQUALVERIFY 42 EQUAL", "P2SH,STRICTENC", "SIZE does not consume argument"], +["-549755813887", "SIZE 5 EQUAL"], +["-549755813888", "SIZE 6 EQUAL"], +["-9223372036854775807", "SIZE 8 EQUAL"], ["2 -2 ADD", "0 EQUAL", "P2SH,STRICTENC"], ["2147483647 -2147483647 ADD", "0 EQUAL", "P2SH,STRICTENC"], diff --git a/src/test/data/sighash.json b/src/test/data/sighash.json index c53d2b2..b966415 100755 --- a/src/test/data/sighash.json +++ b/src/test/data/sighash.json @@ -161,7 +161,7 @@ ["18020dd1017f149eec65b2ec23300d8df0a7dd64fc8558b36907723c03cd1ba672bbb0f51d0300000005ab65ab6a63ffffffff037cd7ae000000000009ab516a65005352ac65f1e4360400000000056353530053f118f0040000000009536363ab006500abac00000000", "63ab51acab52ac", 0, -550412404, "e19b796c14a0373674968e342f2741d8b51092a5f8409e9bff7dcd52e56fcbcb"], ["b04154610363fdade55ceb6942d5e5a723323863b48a0cb04fdcf56210717955763f56b08d0300000009ac526a525151635151ffffffff93a176e76151a9eabdd7af00ef2af72f9e7af5ecb0aa4d45d00618f394cdd03c030000000074d818b332ebe05dc24c44d776cf9d275c61f471cc01efce12fd5a16464157f1842c65cb00000000066a0000ac6352d3c4134f01d8a1c0030000000005520000005200000000", "5200656a656351", 2, -9757957, "6e3e5ba77f760b6b5b5557b13043f1262418f3dd2ce7f0298b012811fc8ad5bc"], ["9794b3ce033df7b1e32db62d2f0906b589eacdacf5743963dc2255b6b9a6cba211fadd0d41020000000600ab00650065ffffffffaae00687a6a4131152bbcaafedfaed461c86754b0bde39e2bef720e6d1860a0302000000070065516aac6552ffffffff50e4ef784d6230df7486e972e8918d919f005025bc2d9aacba130f58bed7056703000000075265ab52656a52ffffffff02c6f1a9000000000006005251006363cf450c040000000008abab63510053abac00000000", "ac0063ababab515353", 1, 2063905082, "fad092fc98f17c2c20e10ba9a8eb44cc2bcc964b006f4da45cb9ceb249c69698"], - ["94533db7015e70e8df715066efa69dbb9c3a42ff733367c18c22ff070392f988f3b93920820000000006535363636300ce4dac3e03169af80300000000080065ac6a53ac65ac39c050020000000006abacab6aacac708a02050000000005ac5251520000000000", "6553", 0, -360458507, "5418cf059b5f15774836edd93571e0eed3855ba67b2b08c99dccab69dc87d3e9"], + ["94533db7015e70e8df715066efa69dbb9c3a42ff733367c18c22ff070392f988f3b93920820000000006535363636300ce4dac3e03169af80300000000080065ac6a53ac65ac39c060020000000006abacab6aacac708a02050000000005ac5251520000000000", "6553", 0, -360458507, "5418cf059b5f15774836edd93571e0eed3855ba67b2b08c99dccab69dc87d3e9"], ["c8597ada04f59836f06c224a2640b79f3a8a7b41ef3efa2602592ddda38e7597da6c639fee0300000009005251635351acabacffffffff4c518f347ee694884b9d4072c9e916b1a1f0a7fc74a1c90c63fdf8e5a185b6ae02000000007113af55afb41af7518ea6146786c7c726641c68c8829a52925e8d4afd07d8945f68e7230300000008ab00ab65ab650063ffffffffc28e46d7598312c420e11dfaae12add68b4d85adb182ae5b28f8340185394b63000000000165ffffffff04dbabb7010000000000ee2f6000000000000852ab6500ab6a51acb62a27000000000009ac53515300ac006a6345fb7505000000000752516a0051636a00000000", "", 3, 15199787, "0d66003aff5bf78cf492ecbc8fd40c92891acd58d0a271be9062e035897f317e"], ["1a28c4f702c8efaad96d879b38ec65c5283b5c084b819ad7db1c086e85e32446c7818dc7a90300000008656351536a525165fa78cef86c982f1aac9c5eb8b707aee8366f74574c8f42ef240599c955ef4401cf578be30200000002ab518893292204c430eb0100000000016503138a0300000000040053abac60e0eb010000000005525200ab63567c2d030000000004abab52006cf81e85", "ab51525152", 1, 2118315905, "4e4c9a781f626b59b1d3ad8f2c488eb6dee8bb19b9bc138bf0dc33e7799210d4"], ["c6c7a87003f772bcae9f3a0ac5e499000b68703e1804b9ddc3e73099663564d53ddc4e1c6e01000000076a536a6aac63636e3102122f4c30056ef8711a6bf11f641ddfa6984c25ac38c3b3e286e74e839198a80a34010000000165867195cd425821dfa2f279cb1390029834c06f018b1e6af73823c867bf3a0524d1d6923b0300000005acab53ab65ffffffff02fa4c49010000000008ab656a0052650053e001100400000000008836d972", "ac526351acab", 1, 978122815, "a869c18a0edf563d6e5eddd5d5ae8686f41d07f394f95c9feb8b7e52761531ca"], @@ -286,7 +286,7 @@ ["24f24cd90132b2162f938f1c22d3ca5e7daa83515883f31a61a5177aebf99d7db6bdfc398c010000000163ffffffff01d5562d0100000000016300000000", "5265ac5165ac5252ab", 0, 1055129103, "5eeb03e03806cd7bfd44bbba69c30f84c2c5120df9e68cd8facc605fcfbc9693"], ["5ff2cac201423064a4d87a96b88f1669b33adddc6fa9acdc840c0d8a243671e0e6de49a5b00300000005ac6353655353b91db50180db5a03000000000663535151006a047a3aff", "52ab51ab5365005163", 0, -1336626596, "b8db8d57fe40ab3a99cf2f8ed57da7a65050fcc1d34d4280e25faf10108d3110"], ["10011f150220ad76a50ccc7bb1a015eda0ff987e64cd447f84b0afb8dc3060bdae5b36a6900200000000ffffffff1e92dd814dfafa830187bc8e5b9258de2445ec07b02c420ee5181d0b203bb334000000000565ab536a65ffffffff0124e65401000000000800ab636553ab53ac00000000", "53abab0051", 0, 440222748, "c6675bf229737e005b5c8ffa6f81d9e2c4396840921b6151316f67c4315a4270"], - ["8b95ec900456648d820a9b8df1d8f816db647df8a8dc9f6e7151ebf6079d90ee3f6861352a02000000085200ab00ac535151ffffffff039b10b845f961225ac0bcaac4f5fe1991029a051aa3d06a3811b5762977a67403000000035252abffffffff8559d65f40d5e261f45aec8aad3d2c56c6114b22b26f7ee54a06f0881be3a7f5010000000765635252536363ffffffff38f8b003b50f6412feb2322b06b270197f81ad69c36af02ca5008b94eee5f650020000000165ffffffff01ae2b00010000000001638eb153a2", "0053ab5300ac53", 2, 1266056769, "205f3653f0142b35ce3ef39625442efebae98cde8cbf0516b97b51073bb0479f"], + ["8b95ec900456648d820a9b8df1d8f816db647df8a8dc9f6e7151ebf6079d90ee3f6861352a02000000085200ab00ac535151ffffffff039b10b845f961225ac0bcaac4f5fe1991029a051aa3d06a3811b5762977a67403000000035252abffffffff8559d65f40d5e261f45aec8aad3d2c56c6114b22b26f7ee54a06f0881be3a7f5010000000765635252536363ffffffff38f8b003b50f6412feb2322b06b270197f81ad69c36af02ca5008b94eee5f660020000000165ffffffff01ae2b00010000000001638eb153a2", "0053ab5300ac53", 2, 1266056769, "205f3653f0142b35ce3ef39625442efebae98cde8cbf0516b97b51073bb0479f"], ["babbb7ea01ab5d584727cb44393b17cf66521606dc81e25d85273be0d57bad43e8f6b6d43501000000036a656aba83a68803fb0f4a000000000005536353ab633fcfe4020000000009ac00acab6351006a65182a0c03000000000453ac5363bee74f44", "536a6a6a6365ac51ab", 0, -799187625, "3275e98dca37243b977525a07b5d8e369d6c3bdc08cb948029a635547d0d1a4e"], ["e86a24bc03e4fae784cdf81b24d120348cb5e52d937cd9055402fdba7e43281e482e77a1c100000000046363006affffffffa5447e9bdcdab22bd20d88b19795d4c8fb263fbbf7ce8f4f9a85f865953a6325020000000663ac53535253ffffffff9f8b693bc84e0101fc73748e0513a8cecdc264270d8a4ee1a1b6717607ee1eaa00000000026a513417bf980158d82c020000000009005253005351acac5200000000", "6353516365536a6a", 2, -563792735, "508129278ef07b43112ac32faf00170ad38a500eed97615a860fd58baaad174b"], ["53bd749603798ed78798ef0f1861b498fc61dcee2ee0f2b37cddb115b118e73bc6a5a47a0201000000096a63656a6aab6a000007ff674a0d74f8b4be9d2e8e654840e99d533263adbdd0cf083fa1d5dd38e44d2d163d900100000007abab5251ac6a51c8b6b63f744a9b9273ccfdd47ceb05d3be6400c1ed0f7283d32b34a7f4f0889cccf06be30000000009516a52636551ab516a9ac1fe63030c677e05000000000027bc610000000000086565636a635100526e2dc60200000000015300000000", "6552536a515351ab", 1, -1617066878, "fe516df92299e995b8e6489be824c6839543071ec5e9286060b2600935bf1f20"], @@ -413,8 +413,9 @@ ["6f62138301436f33a00b84a26a0457ccbfc0f82403288b9cbae39986b34357cb2ff9b889b302000000045253655335a7ff6701bac9960400000000086552ab656352635200000000", "6aac51", 0, 1444414211, "502a2435fd02898d2ff3ab08a3c19078414b32ec9b73d64a944834efc9dae10c"], ["9981143a040a88c2484ac3abe053849e72d04862120f424f373753161997dd40505dcb4783030000000700536365536565a2e10da3f4b1c1ad049d97b33f0ae0ea48c5d7c30cc8810e144ad93be97789706a5ead180100000003636a00ffffffffbdcbac84c4bcc87f03d0ad83fbe13b369d7e42ddb3aecf40870a37e814ad8bb5010000000963536a5100636a53abffffffff883609905a80e34202101544f69b58a0b4576fb7391e12a769f890eef90ffb72020000000651656352526affffffff04243660000000000004ab5352534a9ce001000000000863656363ab6a53652df19d030000000003ac65acedc51700000000000000000000", "ac6300acac", 2, 293672388, "7ba99b289c04718a7283f150d831175ed6303081e191a0608ea81f78926c5bdf"], ["a2bb630b01989bc5d643f2da4fb9b55c0cdf846ba06d1dbe372893024dbbe5b9b8a1900af802000000055265ac63aca7a68d2f04916c74010000000003abac007077f0040000000001007d4127010000000005ac516aac000f31e8030000000000571079c9", "65ab0051ac", 0, -1103627693, "92d53b4390262e6b288e8a32e0cfc36cd5adfdfabfe96c7bfd4a19d65e233761"], + ["49f7d0b6037bba276e910ad3cd74966c7b3bc197ffbcfefd6108d6587007047e97789835ea0300000008526a52006a650053ffffffff8d7b6c07cd10f4c4010eac7946f61aff7fb5f3920bdf3467e939e58a1d4100ab03000000076aac63ac535351ffffffff8f48c3ba2d52ad67fbcdc90d8778f3c8a3894e3c35b9730562d7176b81af23c80100000003ab5265ffffffff0301e3ef0300000000046a525353e899ac0500000000075153ab6a65abac259bea0400000000007b739972", "53516aacac6aac", 1, 955403557, "5d366a7f4346ae18aeb7c9fc4dab5af71173184aa20ed22fcb4ea8511ad25449"], ["58a4fed801fbd8d92db9dfcb2e26b6ff10b120204243fee954d7dcb3b4b9b53380e7bb8fb60100000003006351ffffffff02a0795b050000000006536351ac6aac2718d00200000000075151acabac515354d21ba1", "005363515351", 0, -1322430665, "bbee941bbad950424bf40e3623457db47f60ed29deaa43c99dec702317cb3326"], - ["32765a0b02e455793d9ce530e9f6a44bcbc612e893a875b5da61d822dc56d8245166c398b403000000085353abac6300006a6bdee2a78d0d0b6a5ea666eed70b9bfea99d1d612ba3878f615c4da10d4a521cba27155002000000035363abffffffff043cd42401000000000551656a53653685320100000000030000511881bc0500000000065165abab636a20169f010000000007acab656aac63acdb0706a8", "65ac53ab53", 0, 1936499176, "5c5a9c3a5de7dc7a82bc171c9d3505913b8bcc450bc8b2d11772c1a1d781210b"], + ["32765a0b02e455793d9ce530e9f6a44bcbc612e893a875b5da61d822dc56d8245166c398b403000000085353abac6300006a6bdee2a78d0d0b6a5ea666eed70b9bfea99d1d612ba3878f615c4da10d4a521cba27156002000000035363abffffffff043cd42401000000000551656a53653685320100000000030000511881bc0500000000065165abab636a20169f010000000007acab656aac63acdb0706a8", "65ac53ab53", 0, 1936499176, "5c5a9c3a5de7dc7a82bc171c9d3505913b8bcc450bc8b2d11772c1a1d781210b"], ["17fad0d303da0d764fedf9f2887a91ea625331b28704940f41e39adf3903d8e75683ef6d46020000000151ffffffffff376eea4e880bcf0f03d33999104aafed2b3daf4907950bb06496af6b51720a020000000900636a63525253525196521684f3b08497bad2c660b00b43a6a517edc58217876eb5e478aa3b5fda0f29ee1bea00000000046aacab6affffffff03dde8e2050000000007ac5365ac51516a14772e000000000005630000abacbbb360010000000006ab5251ab656a50f180f0", "0053", 0, -1043701251, "a3bdf8771c8990971bff9b4e7d59b7829b067ed0b8d3ac1ec203429811384668"], ["236c32850300045e292c84ede2b9ab5733ba08315a2bb09ab234c4b4e8894808edbdac0d3b020000000653635363abacffffffffd3f696bb31fdd18a72f3fc2bb9ae54b416a253fc37c1a0f0180b52d35bad49440100000004650053abffffffffa85c75a2406d82a93b12e555b66641c1896a4e83ae41ef1038218311e38ace060200000006abab006a51ac104b5e6701e2842c04000000000800630051ac0000ab00000000", "ab63ac6a516a", 1, -1709887524, "8c29ea8ef60c5a927fccdba8ea385db6b6b84d98e891db45f5d4ee3148d3f5a7"], ["b78d5fd601345f3100af494cdf447e7d4076179f940035b0ebe8962587d4d0c9c6c9fc34ee0300000003516a6affffffff03dc5c890100000000085353ac53ac6a52534ac941040000000007ac63656a51ab51d4266b0100000000036aacac70731f2d", "005351ab0053", 0, -1789071265, "d5f1c1cb35956a5711d67bfb4cedbc67e77c089b912d688ad440ff735adb390d"], @@ -475,7 +476,7 @@ ["db4904e6026b6dd8d898f278c6428a176410d1ffbde75a4fa37cda12263108ccd4ca6137440100000007656a0000515263ffffffff1db7d5005c1c40da0ed17b74cf6b2a6ee2c33c9e0bacda76c0da2017dcac2fc70200000004abab6a53ffffffff0454cf2103000000000153463aef000000000009ab6a630065ab52636387e0ed050000000000e8d16f05000000000352ac63e4521b22", "", 1, 1027042424, "48315a95e49277ab6a2d561ee4626820b7bab919eea372b6bf4e9931ab221d04"], ["dca31ad10461ead74751e83d9a81dcee08db778d3d79ad9a6d079cfdb93919ac1b0b61871102000000086500525365ab51ac7f7e9aed78e1ef8d213d40a1c50145403d196019985c837ffe83836222fe3e5955e177e70100000006525152525300ffffffff5e98482883cc08a6fe946f674cca479822f0576a43bf4113de9cbf414ca628060100000006ac53516a5253ffffffff07490b0b898198ec16c23b75d606e14fa16aa3107ef9818594f72d5776805ec502000000036a0052ffffffff01932a2803000000000865ab6551ac6a516a2687aa06", "635300ac", 2, -1880362326, "74d6a2fa7866fd8b74b2e34693e2d6fd690410384b7afdcd6461b1ae71d265ce"], ["e14e1a9f0442ab44dfc5f6d945ad1ff8a376bc966aad5515421e96ddbe49e529614995cafc03000000055165515165fffffffff97582b8290e5a5cfeb2b0f018882dbe1b43f60b7f45e4dd21dbd3a8b0cfca3b0200000000daa267726fe075db282d694b9fee7d6216d17a8c1f00b2229085495c5dc5b260c8f8cd5d000000000363ac6affffffffaab083d22d0465471c896a438c6ac3abf4d383ae79420617a8e0ba8b9baa872b010000000963526563ac5363ababd948b5ce022113440200000000076a636552006a53229017040000000000e6f62ac8", "526353636a65", 3, -485265025, "1bc8ad76f9b7c366c5d052dc479d6a8a2015566d3a42e93ab12f727692c89d65"], - ["720d4693025ca3d347360e219e9bc746ef8f7bc88e8795162e5e2f0b0fc99dc17116fc937100000000046353520045cb1fd79824a100d30b6946eab9b219daea2b0cdca6c86367c0c36af98f19ac64f3575002000000008a1c881003ed16f3050000000008536a63630000abac45e0e704000000000151f6551a05000000000963536565515363abab00000000", "6553ab6a6a510000ab", 1, 1249091393, "a575fa4f59a8e90cd07de012c78fe8f981183bb170b9c50fcc292b8c164cbc3b"], + ["720d4693025ca3d347360e219e9bc746ef8f7bc88e8795162e5e2f0b0fc99dc17116fc937100000000046353520045cb1fd79824a100d30b6946eab9b219daea2b0cdca6c86367c0c36af98f19ac64f3576002000000008a1c881003ed16f3050000000008536a63630000abac45e0e704000000000151f6551a05000000000963536565515363abab00000000", "6553ab6a6a510000ab", 1, 1249091393, "a575fa4f59a8e90cd07de012c78fe8f981183bb170b9c50fcc292b8c164cbc3b"], ["69df842a04c1410bfca10896467ce664cfa31c681a5dac10106b34d4b9d4d6d0dc1eac01c1000000000551536a5165269835ca4ad7268667b16d0a2df154ec81e304290d5ed69e0069b43f8c89e673328005e200000000076a5153006aacabffffffffc9314bd80b176488f3d634360fcba90c3a659e74a52e100ac91d3897072e3509010000000765abac51636363ffffffff0e0768b13f10f0fbd2fa3f68e4b4841809b3b5ba0e53987c3aaffcf09eee12bf0300000008ac535263526a53ac514f4c2402da8fab0400000000001ef15201000000000451526a52d0ec9aca", "525365ac52", 1, 313967049, "a72a760b361af41832d2c667c7488dc9702091918d11e344afc234a4aea3ec44"], ["adf2340d03af5c589cb5d28c06635ac07dd0757b884d4777ba85a6a7c410408ad5efa8b19001000000045100ab00ffffffff808dc0231c96e6667c04786865727013922bcb7db20739b686f0c17f5ba70e8f0300000000fd2332a654b580881a5e2bfec8313f5aa878ae94312f37441bf2d226e7fc953dcf0c77ab000000000163aa73dc580412f8c2050000000005636aacac63da02d502000000000153e74b52020000000001536b293d030000000009636552ababacab526500000000", "000052ab52ababab", 0, -568651175, "2c45d021db545df7167ac03c9ee56473f2398d9b2b739cf3ff3e074501d324f8"], ["e4fec9f10378a95199c1dd23c6228732c9de0d7997bf1c83918a5cfd36012476c0c3cba24002000000085165536500ac0000ad08ab93fb49d77d12a7ccdbb596bc5110876451b53a79fdce43104ff1c316ad63501de801000000046a6352ab76af9908463444aeecd32516a04dd5803e02680ed7f16307242a794024d93287595250f4000000000089807279041a82e603000000000200521429100200000000055253636a63f20b940400000000004049ed04000000000500ab5265ab43dfaf7d", "6563526aac", 2, -1923470368, "32f3c012eca9a823bebb9b282240aec40ca65df9f38da43b1dcfa0cac0c0df7e"], @@ -494,7 +495,7 @@ ["a0eb6dc402994e493c787b45d1f946d267b09c596c5edde043e620ce3d59e95b2b5b93d43002000000096a5252526aac63ab6555694287a279e29ee491c177a801cd685b8744a2eab83824255a3bcd08fc0e3ea13fb8820000000009abab6365ab52ab0063ffffffff029e424a040000000008acab53ab516a636a23830f0400000000016adf49c1f9", "ac0065ac6500005252", 1, 669294500, "e05e3d383631a7ed1b78210c13c2eb26564e5577db7ddfcea2583c7c014091d4"], ["6e67c0d3027701ef71082204c85ed63c700ef1400c65efb62ce3580d187fb348376a23e9710200000001655b91369d3155ba916a0bc6fe4f5d94cad461d899bb8aaac3699a755838bfc229d6828920010000000765536353526a52ffffffff04c0c792000000000005650052535372f79e000000000001527fc0ee010000000005ac5300ab65d1b3e902000000000251aba942b278", "6a5151", 0, 1741407676, "e657e2c8ec4ebc769ddd3198a83267b47d4f2a419fc737e813812acefad92ff7"], ["8f53639901f1d643e01fc631f632b7a16e831d846a0184cdcda289b8fa7767f0c292eb221a00000000046a53abacffffffff037a2daa01000000000553ac6a6a51eac349020000000005ac526552638421b3040000000007006a005100ac63048a1492", "ac65", 0, 1033685559, "da86c260d42a692358f46893d6f91563985d86eeb9ea9e21cd38c2d8ffcfcc4d"], - ["491f99cb01bdfba1aa235e5538dac081fae9ce55f9622de483afe7e65105c2b0db75d360d200000000045251636340b60f0f041421330300000000096351ac000051636553ce2822040000000005516a00ac5180c8e40300000000025100caa8570400000000020000cfdc8da6", "6a5100516aab655365", 0, -953727341, "397c68803b7ce953666830b0221a5e2bcf897aa2ded8e36a6b76c497dcb1a2e1"], + ["491f99cb01bdfba1aa235e5538dac081fae9ce55f9622de483afe7e65105c2b0db75d360d200000000045251636340b60f0f04139930300000000096351ac000051636553ce2822040000000005516a00ac5180c8e40300000000025100caa8570400000000020000cfdc8da6", "6a5100516aab655365", 0, -953727341, "397c68803b7ce953666830b0221a5e2bcf897aa2ded8e36a6b76c497dcb1a2e1"], ["b3cad3a7041c2c17d90a2cd994f6c37307753fa3635e9ef05ab8b1ff121ca11239a0902e700300000009ab635300006aac5163ffffffffcec91722c7468156dce4664f3c783afef147f0e6f80739c83b5f09d5a09a57040200000004516a6552ffffffff969d1c6daf8ef53a70b7cdf1b4102fb3240055a8eaeaed2489617cd84cfd56cf020000000352ab53ffffffff46598b6579494a77b593681c33422a99559b9993d77ca2fa97833508b0c169f80200000009655300655365516351ffffffff04d7ddf800000000000853536a65ac6351ab09f3420300000000056aab65abac33589d04000000000952656a65655151acac944d6f0400000000006a8004ba", "005165", 1, 1035865506, "fe1dc9e8554deecf8f50c417c670b839cc9d650722ebaaf36572418756075d58"], ["e1cfd73b0125add9e9d699f5a45dca458355af175a7bd4486ebef28f1928d87864384d02df02000000036a0051ffffffff0357df030100000000036a5365777e2d04000000000763ab6a00005265f434a601000000000351655100000000", "ab53ab", 0, -1936500914, "950f4b4f72ccdf8a6a0f381265d6c8842fdb7e8b3df3e9742905f643b2432b69"], ["cf781855040a755f5ba85eef93837236b34a5d3daeb2dbbdcf58bb811828d806ed05754ab8010000000351ac53ffffffffda1e264727cf55c67f06ebcc56dfe7fa12ac2a994fecd0180ce09ee15c480f7d00000000096351516a51acac00ab53dd49ff9f334befd6d6f87f1a832cddfd826a90b78fd8cf19a52cb8287788af94e939d6020000000700525251ac526310d54a7e8900ed633f0f6f0841145aae7ee0cbbb1e2a0cae724ee4558dbabfdc58ba6855010000000552536a53abfd1b101102c51f910500000000096300656a525252656a300bee010000000009ac52005263635151abe19235c9", "53005365", 2, 1422854188, "d5981bd4467817c1330da72ddb8760d6c2556cd809264b2d85e6d274609fc3a3"], diff --git a/src/test/data/tx_invalid.json b/src/test/data/tx_invalid.json index 4aa4ce3..f3e4799 100755 --- a/src/test/data/tx_invalid.json +++ b/src/test/data/tx_invalid.json @@ -48,6 +48,20 @@ [[["0000000000000000000000000000000000000000000000000000000000000100", 0, "HASH160 0x14 0x236d0639db62b0773fd8ac34dc85ae19e9aba80a EQUAL"]], "01000000020001000000000000000000000000000000000000000000000000000000000000000000006c47304402204bb1197053d0d7799bf1b30cd503c44b58d6240cccbdc85b6fe76d087980208f02204beeed78200178ffc6c74237bb74b3f276bbb4098b5605d814304fe128bf1431012321039e8815e15952a7c3fada1905f8cf55419837133bd7756c0ef14fc8dfe50c0deaacffffffff0001000000000000000000000000000000000000000000000000000000000000000000006c47304402202306489afef52a6f62e90bf750bbcdf40c06f5c6b138286e6b6b86176bb9341802200dba98486ea68380f47ebb19a7df173b99e6bc9c681d6ccf3bde31465d1f16b3012321039e8815e15952a7c3fada1905f8cf55419837133bd7756c0ef14fc8dfe50c0deaacffffffff010000000000000000015100000000", "P2SH"], +["Coinbase of size 1"], +["Note the input is just required to make the tester happy"], +[[["0000000000000000000000000000000000000000000000000000000000000000", -1, "1"]], +"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0151ffffffff010000000000000000015100000000", "P2SH"], + +["Coinbase of size 101"], +["Note the input is just required to make the tester happy"], +[[["0000000000000000000000000000000000000000000000000000000000000000", -1, "1"]], +"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff655151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151ffffffff010000000000000000015100000000", "P2SH"], + +["Null txin"], +[[["0000000000000000000000000000000000000000000000000000000000000000", -1, "HASH160 0x14 0x02dae7dbbda56097959cba59b1989dd3e47937bf EQUAL"]], +"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff6e49304602210086f39e028e46dafa8e1e3be63906465f4cf038fbe5ed6403dc3e74ae876e6431022100c4625c675cfc5c7e3a0e0d7eaec92ac24da20c73a88eb40d09253e51ac6def5201232103a183ddc41e84753aca47723c965d1b5c8b0e2b537963518355e6dd6cf8415e50acffffffff010000000000000000015100000000", "P2SH"], + ["Same as the transactions in valid with one input SIGHASH_ALL and one SIGHASH_ANYONECANPAY, but we set the _ANYONECANPAY sequence number, invalidating the SIGHASH_ALL signature"], [[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0x21 0x035e7f0d4d0841bcd56c39337ed086b1a633ee770c1ffdd94ac552a95ac2ce0efc CHECKSIG"], ["0000000000000000000000000000000000000000000000000000000000000200", 0, "0x21 0x035e7f0d4d0841bcd56c39337ed086b1a633ee770c1ffdd94ac552a95ac2ce0efc CHECKSIG"]], @@ -74,7 +88,7 @@ ["As above, but using a OP_1"], [[["60a20bd93aa49ab4b28d514ec10b06e1829ce6818ec06cd3aabd013ebcdc4bb1", 0, "1 0x41 0x04cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4 0x41 0x0461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af 2 OP_CHECKMULTISIG"]], -"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba26000000000495147304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2b01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000", "P2SH,NULLDUMMY"], +"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba26000000000495136904402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2b01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000", "P2SH,NULLDUMMY"], ["As above, but using a OP_1NEGATE"], [[["60a20bd93aa49ab4b28d514ec10b06e1829ce6818ec06cd3aabd013ebcdc4bb1", 0, "1 0x41 0x04cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4 0x41 0x0461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af 2 OP_CHECKMULTISIG"]], diff --git a/src/test/data/tx_valid.json b/src/test/data/tx_valid.json index aa8e5ca..1258416 100755 --- a/src/test/data/tx_valid.json +++ b/src/test/data/tx_valid.json @@ -25,7 +25,7 @@ ["As above, but using a OP_1"], [[["60a20bd93aa49ab4b28d514ec10b06e1829ce6818ec06cd3aabd013ebcdc4bb1", 0, "1 0x41 0x04cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4 0x41 0x0461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af 2 OP_CHECKMULTISIG"]], -"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba26000000000495147304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2b01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000", "P2SH"], +"0100000001b14bdcbc3e01bdaad36cc08e81e69c82e1060bc14e518db2b49aa43ad90ba26000000000495136904402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2b01ffffffff0140420f00000000001976a914660d4ef3a743e3e696ad990364e555c271ad504b88ac00000000", "P2SH"], ["As above, but using a OP_1NEGATE"], [[["60a20bd93aa49ab4b28d514ec10b06e1829ce6818ec06cd3aabd013ebcdc4bb1", 0, "1 0x41 0x04cc71eb30d653c0c3163990c47b976f3fb3f37cccdcbedb169a1dfef58bbfbfaff7d8a473e7e2e6d317b87bafe8bde97e3cf8f065dec022b51d11fcdd0d348ac4 0x41 0x0461cbdcc5409fb4b4d42b51d33381354d80e550078cb532a34bfa2fcfdeb7d76519aecc62770f5b0e4ef8551946d8a540911abe3e7854a26f39f58b25c15342af 2 OP_CHECKMULTISIG"]], diff --git a/src/test/data/txcreate1.hex b/src/test/data/txcreate1.hex index aded7c6..e2981a5 100755 --- a/src/test/data/txcreate1.hex +++ b/src/test/data/txcreate1.hex @@ -1 +1 @@ -01000000031f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000ffffffff7cca453133921c50d5025878f7f738d1df891fd359763331935784cf6b9c82bf1200000000fffffffffccd319e04a996c96cfc0bf4c07539aa90bd0b1a700ef72fae535d6504f9a6220100000000ffffffff0280a81201000000001976a914ce1c388c454d63b21ebb202010bda79a3b165b4b88ac0084d717000000001976a91414b70d03a3536907a7843f9d9243ddca79d43e3888ac00000000 +01000000031f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000ffffffff7cca453133921c50d5025878f7f738d1df891fd359763331935784cf6b9c82bf1200000000fffffffffccd319e04a996c96cfc0bf4c07539aa90bd0b1a700ef72fae535d6504f9a6220100000000ffffffff0280a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac0084d717000000001976a914f2d4db28cad6502226ee484ae24505c2885cb12d88ac00000000 diff --git a/src/test/data/txcreatesign.hex b/src/test/data/txcreatesign.hex index 47b301b..56ce28a 100755 --- a/src/test/data/txcreatesign.hex +++ b/src/test/data/txcreatesign.hex @@ -1 +1 @@ -01000000018594c5bdcaec8f06b78b596f31cd292a294fd031e24eec716f43dac91ea7494d0000000000ffffffff01a0860100000000001976a91414b70d03a3536907a7843f9d9243ddca79d43e3888ac00000000 +01000000018594c5bdcaec8f06b78b596f31cd292a294fd031e24eec716f43dac91ea7494d0000000000ffffffff01a0860100000000001976a9145834479edbbe0539b31ffd3a8f8ebadc2165ed0188ac00000000 diff --git a/src/test/getarg_tests.cpp b/src/test/getarg_tests.cpp index b73623b..3010b69 100755 --- a/src/test/getarg_tests.cpp +++ b/src/test/getarg_tests.cpp @@ -59,18 +59,18 @@ BOOST_AUTO_TEST_CASE(boolarg) BOOST_CHECK(!GetBoolArg("-foo", false)); BOOST_CHECK(!GetBoolArg("-foo", true)); - ResetArgs("-foo -nofoo"); // -nofoo should win - BOOST_CHECK(!GetBoolArg("-foo", false)); - BOOST_CHECK(!GetBoolArg("-foo", true)); - - ResetArgs("-foo=1 -nofoo=1"); // -nofoo should win - BOOST_CHECK(!GetBoolArg("-foo", false)); - BOOST_CHECK(!GetBoolArg("-foo", true)); + ResetArgs("-foo -nofoo"); // -foo should win + BOOST_CHECK(GetBoolArg("-foo", false)); + BOOST_CHECK(GetBoolArg("-foo", true)); - ResetArgs("-foo=0 -nofoo=0"); // -nofoo=0 should win + ResetArgs("-foo=1 -nofoo=1"); // -foo should win BOOST_CHECK(GetBoolArg("-foo", false)); BOOST_CHECK(GetBoolArg("-foo", true)); + ResetArgs("-foo=0 -nofoo=0"); // -foo should win + BOOST_CHECK(!GetBoolArg("-foo", false)); + BOOST_CHECK(!GetBoolArg("-foo", true)); + // New 0.6 feature: treat -- same as -: ResetArgs("--foo=1"); BOOST_CHECK(GetBoolArg("-foo", false)); @@ -125,7 +125,7 @@ BOOST_AUTO_TEST_CASE(intarg) BOOST_CHECK_EQUAL(GetArg("-bar", 11), 0); } -BOOST_AUTO_TEST_CASE(doubledash) +BOOST_AUTO_TEST_CASE(doubleittrium) { ResetArgs("--foo"); BOOST_CHECK_EQUAL(GetBoolArg("-foo", false), true); @@ -149,9 +149,9 @@ BOOST_AUTO_TEST_CASE(boolargno) BOOST_CHECK(GetBoolArg("-foo", true)); BOOST_CHECK(GetBoolArg("-foo", false)); - ResetArgs("-foo --nofoo"); // --nofoo should win - BOOST_CHECK(!GetBoolArg("-foo", true)); - BOOST_CHECK(!GetBoolArg("-foo", false)); + ResetArgs("-foo --nofoo"); + BOOST_CHECK(GetBoolArg("-foo", true)); + BOOST_CHECK(GetBoolArg("-foo", false)); ResetArgs("-nofoo -foo"); // foo always wins: BOOST_CHECK(GetBoolArg("-foo", true)); diff --git a/src/test/key_tests.cpp b/src/test/key_tests.cpp index 2631abb..a7f12e3 100755 --- a/src/test/key_tests.cpp +++ b/src/test/key_tests.cpp @@ -17,14 +17,14 @@ using namespace std; -static const string strSecret1 ("87vK7Vayi3QLsuiva5yWSuVwSMhMcRM9dBsaD6JXMD1P5vnjRFn"); -static const string strSecret2 ("87FGYGFDg5SYfdD4XL593hr7do6f52czPecVsYSAXi8N4RGeS9i"); -static const string strSecret1C ("YRYJwfAyJ9c2jhi3T2xQyLijGvM7yLTw4izDaNQLxBzgUYrQiPmJ"); -static const string strSecret2C ("YNZyazHkwUbkmUpEYsBGWwHnHQTy2n9rJy1gS5k54YXVx3pE8n6N"); -static const CBitcoinAddress addr1 ("DBFi8XAE1rcdCQfkv9w22n8Y9RxgaJnrDD"); -static const CBitcoinAddress addr2 ("DPvKfv1FVp69yZMDzeuugvfZ9pzYiMv1bs"); -static const CBitcoinAddress addr1C("DNPrHK9ezAAUVExFDpZ7EE1xWpPskgp1gP"); -static const CBitcoinAddress addr2C("DNBVSAoc2whPFjZVAZ1pQbXPJk1LRrDC8Q"); +static const string strSecret1 ("7qqrxbWBT6v8LTABNae6j9Je9wGagQy6qjjRU3ApBqUQ78HULDy"); +static const string strSecret2 ("7r41KxLVNTZA3bYj5FjiAC58GkTENKM6XV9MAxnzSmywcsswtjv"); +static const string strSecret1C ("XCafWPHo8D7VNrTWnFUkH1erzSXmexncn7cEzLaKGpwvyuTpyo6r"); +static const string strSecret2C ("XDWGSfF2DiCvvTV2hn3WfZsD6Wnn15yhPZDr2yFzYmYL5EC78XhR"); +static const CBitcoinAddress addr1 ("Xjn3e3Xy1TXnthGp4iAUh8no3wLPVcxZyk"); +static const CBitcoinAddress addr2 ("XcSKA3pffkLSZN5HjKF2bcpq4UXRkqXmi1"); +static const CBitcoinAddress addr1C("Xmgi9Tn6PyZKwPHWhGmMwAEam61T4wMDWz"); +static const CBitcoinAddress addr2C("Xta1praZQjyELweyMByXyiREw1ZRsjXzVp"); static const string strAddressBad("Xta1praZQjyELweyMByXyiREw1ZRsjXzVP"); @@ -172,19 +172,19 @@ BOOST_AUTO_TEST_CASE(key_test1) BOOST_CHECK(key1.Sign(hashMsg, detsig)); BOOST_CHECK(key1C.Sign(hashMsg, detsigc)); BOOST_CHECK(detsig == detsigc); - BOOST_CHECK(detsig == ParseHex("30450221009071d4fead181ea197d6a23106c48ee5de25e023b38afaf71c170e3088e5238a02200dcbc7f1aad626a5ee812e08ef047114642538e423a94b4bd6a272731cf500d0")); + BOOST_CHECK(detsig == ParseHex("304402205dbbddda71772d95ce91cd2d14b592cfbc1dd0aabd6a394b6c2d377bbe59d31d022014ddda21494a4e221f0824f0b8b924c43fa43c0ad57dccdaa11f81a6bd4582f6")); BOOST_CHECK(key2.Sign(hashMsg, detsig)); BOOST_CHECK(key2C.Sign(hashMsg, detsigc)); BOOST_CHECK(detsig == detsigc); - BOOST_CHECK(detsig == ParseHex("304402204f304f1b05599f88bc517819f6d43c69503baea5f253c55ea2d791394f7ce0de02204f23c0d4c1f4d7a89bf130fed755201d22581911a8a44cf594014794231d325a")); + BOOST_CHECK(detsig == ParseHex("3044022052d8a32079c11e79db95af63bb9600c5b04f21a9ca33dc129c2bfa8ac9dc1cd5022061d8ae5e0f6c1a16bde3719c64c2fd70e404b6428ab9a69566962e8771b5944d")); BOOST_CHECK(key1.SignCompact(hashMsg, detsig)); BOOST_CHECK(key1C.SignCompact(hashMsg, detsigc)); - BOOST_CHECK(detsig == ParseHex("1b9071d4fead181ea197d6a23106c48ee5de25e023b38afaf71c170e3088e5238a0dcbc7f1aad626a5ee812e08ef047114642538e423a94b4bd6a272731cf500d0")); - BOOST_CHECK(detsigc == ParseHex("1f9071d4fead181ea197d6a23106c48ee5de25e023b38afaf71c170e3088e5238a0dcbc7f1aad626a5ee812e08ef047114642538e423a94b4bd6a272731cf500d0")); + BOOST_CHECK(detsig == ParseHex("1c5dbbddda71772d95ce91cd2d14b592cfbc1dd0aabd6a394b6c2d377bbe59d31d14ddda21494a4e221f0824f0b8b924c43fa43c0ad57dccdaa11f81a6bd4582f6")); + BOOST_CHECK(detsigc == ParseHex("205dbbddda71772d95ce91cd2d14b592cfbc1dd0aabd6a394b6c2d377bbe59d31d14ddda21494a4e221f0824f0b8b924c43fa43c0ad57dccdaa11f81a6bd4582f6")); BOOST_CHECK(key2.SignCompact(hashMsg, detsig)); BOOST_CHECK(key2C.SignCompact(hashMsg, detsigc)); - BOOST_CHECK(detsig == ParseHex("1b4f304f1b05599f88bc517819f6d43c69503baea5f253c55ea2d791394f7ce0de4f23c0d4c1f4d7a89bf130fed755201d22581911a8a44cf594014794231d325a")); - BOOST_CHECK(detsigc == ParseHex("1f4f304f1b05599f88bc517819f6d43c69503baea5f253c55ea2d791394f7ce0de4f23c0d4c1f4d7a89bf130fed755201d22581911a8a44cf594014794231d325a")); + BOOST_CHECK(detsig == ParseHex("1c52d8a32079c11e79db95af63bb9600c5b04f21a9ca33dc129c2bfa8ac9dc1cd561d8ae5e0f6c1a16bde3719c64c2fd70e404b6428ab9a69566962e8771b5944d")); + BOOST_CHECK(detsigc == ParseHex("2052d8a32079c11e79db95af63bb9600c5b04f21a9ca33dc129c2bfa8ac9dc1cd561d8ae5e0f6c1a16bde3719c64c2fd70e404b6428ab9a69566962e8771b5944d")); } BOOST_AUTO_TEST_SUITE_END() diff --git a/src/test/main_tests.cpp b/src/test/main_tests.cpp index e6565e4..e9bafd4 100755 --- a/src/test/main_tests.cpp +++ b/src/test/main_tests.cpp @@ -12,17 +12,17 @@ BOOST_AUTO_TEST_SUITE(main_tests) -CAmount nMoneySupplyPoWEnd = 330000 * COIN; - BOOST_AUTO_TEST_CASE(subsidy_limit_test) { CAmount nSum = 0; - for (int nHeight = 1; nHeight < 200; nHeight += 1) { + for (int nHeight = 0; nHeight < 14000000; nHeight += 1000) { + /* @TODO fix subsidity, add nBits */ CAmount nSubsidy = GetBlockValue(nHeight); - BOOST_CHECK(nSubsidy <= 1650 * COIN); - nSum += nSubsidy; + BOOST_CHECK(nSubsidy <= 50 * COIN); + nSum += nSubsidy * 1000; + BOOST_CHECK(MoneyRange(nSum)); } - BOOST_CHECK(nSum == 33000000000000ULL); + BOOST_CHECK(nSum == 2099999997690000ULL); } BOOST_AUTO_TEST_SUITE_END() diff --git a/src/test/rpc_tests.cpp b/src/test/rpc_tests.cpp index 06c826f..0e65e1d 100755 --- a/src/test/rpc_tests.cpp +++ b/src/test/rpc_tests.cpp @@ -94,14 +94,14 @@ BOOST_AUTO_TEST_CASE(rpc_rawsign) Value r; // input is a 1-of-2 multisig (so is output): string prevout = - "[{\"txid\":\"dd2888870cdc3f6e92661f6b0829667ee4bb07ed086c44205e726bbf3338f726\"," - "\"vout\":1,\"scriptPubKey\":\"a914f5404a39a4799d8710e15db4c4512c5e06f97fed87\"," - "\"redeemScript\":\"5121021431a18c7039660cd9e3612a2a47dc53b69cb38ea4ad743b7df8245fd0438f8e21029bbeff390ce736bd396af43b52a1c14ed52c086b1e5585c15931f68725772bac52ae\"}]"; + "[{\"txid\":\"b4cc287e58f87cdae59417329f710f3ecd75a4ee1d2872b7248f50977c8493f3\"," + "\"vout\":1,\"scriptPubKey\":\"a914b10c9df5f7edf436c697f02f1efdba4cf399615187\"," + "\"redeemScript\":\"512103debedc17b3df2badbcdd86d5feb4562b86fe182e5998abd8bcd4f122c6155b1b21027e940bb73ab8732bfdf7f9216ecefca5b94d6df834e77e108f68e66f126044c052ae\"}]"; r = CallRPC(string("createrawtransaction ")+prevout+" "+ - "{\"6ckcNMWRYgTnPcrTXCdwhDnMLwj3zwseej\":1}"); + "{\"3HqAe9LtNBjnsfM4CyYaWTnvCaUYT7v4oZ\":11}"); string notsigned = r.get_str(); - string privkey1 = "\"YVobcS47fr6kceZy9LzLJR8WQ6YRpUwYKoJhrnEXepebMxaSpbnn\""; - string privkey2 = "\"YRyMjG8hbm8jHeDMAfrzSeHq5GgAj7kuHFvJtMudCUH3sCkq1WtA\""; + string privkey1 = "\"KzsXybp9jX64P5ekX1KUxRQ79Jht9uzW7LorgwE65i5rWACL6LQe\""; + string privkey2 = "\"Kyhdf5LuKTRx4ge69ybABsiUAWjVRK4XGxAKk2FQLp2HjGMy87Z4\""; r = CallRPC(string("signrawtransaction ")+notsigned+" "+prevout+" "+"[]"); BOOST_CHECK(find_value(r.get_obj(), "complete").get_bool() == false); r = CallRPC(string("signrawtransaction ")+notsigned+" "+prevout+" "+"["+privkey1+","+privkey2+"]"); @@ -172,4 +172,5 @@ BOOST_AUTO_TEST_CASE(rpc_boostasiotocnetaddr) BOOST_CHECK_EQUAL(BoostAsioToCNetAddr(boost::asio::ip::address::from_string("::ffff:127.0.0.1")).ToString(), "127.0.0.1"); } + BOOST_AUTO_TEST_SUITE_END() diff --git a/src/test/rpc_wallet_tests.cpp b/src/test/rpc_wallet_tests.cpp index 98752a6..91da0c4 100755 --- a/src/test/rpc_wallet_tests.cpp +++ b/src/test/rpc_wallet_tests.cpp @@ -28,9 +28,9 @@ BOOST_AUTO_TEST_CASE(rpc_addmultisig) rpcfn_type addmultisig = tableRPC["addmultisigaddress"]->actor; // old, 65-byte-long: - const char address1Hex[] = "041431A18C7039660CD9E3612A2A47DC53B69CB38EA4AD743B7DF8245FD0438F8E7270415F1085B9DC4D7DA367C69F1245E27EE5552A481D6854184C80F0BB8456"; + const char address1Hex[] = "0434e3e09f49ea168c5bbf53f877ff4206923858aab7c7e1df25bc263978107c95e35065a27ef6f1b27222db0ec97e0e895eaca603d3ee0d4c060ce3d8a00286c8"; // new, compressed: - const char address2Hex[] = "029BBEFF390CE736BD396AF43B52A1C14ED52C086B1E5585C15931F68725772BAC"; + const char address2Hex[] = "0388c2037017c62240b6b72ac1a2a5f94da790596ebd06177c8572752922165cb4"; Value v; CBitcoinAddress address; @@ -87,11 +87,11 @@ BOOST_AUTO_TEST_CASE(rpc_wallet) * setaccount *********************************/ BOOST_CHECK_NO_THROW(CallRPC("setaccount " + setaccountDemoAddress.ToString() + " nullaccount")); - /* D8w12Vu3WVhn543dgrUUf9uYu6HLwnPm5R is not owned by the test wallet. */ - BOOST_CHECK_THROW(CallRPC("setaccount D8w12Vu3WVhn543dgrUUf9uYu6HLwnPm5R nullaccount"), runtime_error); + /* 1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XZ is not owned by the test wallet. */ + BOOST_CHECK_THROW(CallRPC("setaccount 1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XZ nullaccount"), runtime_error); BOOST_CHECK_THROW(CallRPC("setaccount"), runtime_error); - /* D8w12Vu3WVhn543dgrUUf9uYu6HLwnPm5 (33 chars) is an illegal address (should be 34 chars) */ - BOOST_CHECK_THROW(CallRPC("setaccount D8w12Vu3WVhn543dgrUUf9uYu6HLwnPm5 nullaccount"), runtime_error); + /* 1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4X (33 chars) is an illegal address (should be 34 chars) */ + BOOST_CHECK_THROW(CallRPC("setaccount 1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4X nullaccount"), runtime_error); /********************************* * listunspent @@ -155,15 +155,15 @@ BOOST_AUTO_TEST_CASE(rpc_wallet) BOOST_CHECK_NO_THROW(retValue = CallRPC("signmessage " + demoAddress.ToString() + " mymessage")); BOOST_CHECK_THROW(CallRPC("signmessage"), runtime_error); /* Should throw error because this address is not loaded in the wallet */ - BOOST_CHECK_THROW(CallRPC("signmessage D8w12Vu3WVhn543dgrUUf9uYu6HLwnPm5R mymessage"), runtime_error); + BOOST_CHECK_THROW(CallRPC("signmessage 1QFqqMUD55ZV3PJEJZtaKCsQmjLT6JkjvJ mymessage"), runtime_error); /* missing arguments */ BOOST_CHECK_THROW(CallRPC("verifymessage " + demoAddress.ToString()), runtime_error); BOOST_CHECK_THROW(CallRPC("verifymessage " + demoAddress.ToString() + " " + retValue.get_str()), runtime_error); /* Illegal address */ - BOOST_CHECK_THROW(CallRPC("verifymessage D8w12Vu3WVhn543dgrUUf9uYu6HLwnPm5 " + retValue.get_str() + " mymessage"), runtime_error); + BOOST_CHECK_THROW(CallRPC("verifymessage 1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4X " + retValue.get_str() + " mymessage"), runtime_error); /* wrong address */ - BOOST_CHECK(CallRPC("verifymessage D8w12Vu3WVhn543dgrUUf9uYu6HLwnPm5R " + retValue.get_str() + " mymessage").get_bool() == false); + BOOST_CHECK(CallRPC("verifymessage 1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XZ " + retValue.get_str() + " mymessage").get_bool() == false); /* Correct address and signature but wrong message */ BOOST_CHECK(CallRPC("verifymessage " + demoAddress.ToString() + " " + retValue.get_str() + " wrongmessage").get_bool() == false); /* Correct address, message and signature*/ diff --git a/src/test/transaction_tests.cpp b/src/test/transaction_tests.cpp index 4eb0f27..519ce6c 100755 --- a/src/test/transaction_tests.cpp +++ b/src/test/transaction_tests.cpp @@ -338,38 +338,21 @@ BOOST_AUTO_TEST_CASE(test_IsStandard) string reason; BOOST_CHECK(IsStandardTx(t, reason)); - t.vout[0].nValue = 5011; // dust + t.vout[0].nValue = 501; // dust BOOST_CHECK(!IsStandardTx(t, reason)); - t.vout[0].nValue = 6011; // not dust + t.vout[0].nValue = 601; // not dust BOOST_CHECK(IsStandardTx(t, reason)); t.vout[0].scriptPubKey = CScript() << OP_1; BOOST_CHECK(!IsStandardTx(t, reason)); - // MAX_OP_RETURN_RELAY-byte TX_NULL_DATA (standard) - t.vout[0].scriptPubKey = CScript() << OP_RETURN << ParseHex("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef3804678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38"); - BOOST_CHECK_EQUAL(MAX_OP_RETURN_RELAY, t.vout[0].scriptPubKey.size()); - BOOST_CHECK(IsStandardTx(t, reason)); - - // MAX_OP_RETURN_RELAY+1-byte TX_NULL_DATA (non-standard) - t.vout[0].scriptPubKey = CScript() << OP_RETURN << ParseHex("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef3804678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef3800"); - BOOST_CHECK_EQUAL(MAX_OP_RETURN_RELAY + 1, t.vout[0].scriptPubKey.size()); - BOOST_CHECK(!IsStandardTx(t, reason)); - - // Data payload can be encoded in any way... - t.vout[0].scriptPubKey = CScript() << OP_RETURN << ParseHex(""); - BOOST_CHECK(IsStandardTx(t, reason)); - t.vout[0].scriptPubKey = CScript() << OP_RETURN << ParseHex("00") << ParseHex("01"); - BOOST_CHECK(IsStandardTx(t, reason)); - // OP_RESERVED *is* considered to be a PUSHDATA type opcode by IsPushOnly()! - t.vout[0].scriptPubKey = CScript() << OP_RETURN << OP_RESERVED << -1 << 0 << ParseHex("01") << 2 << 3 << 4 << 5 << 6 << 7 << 8 << 9 << 10 << 11 << 12 << 13 << 14 << 15 << 16; - BOOST_CHECK(IsStandardTx(t, reason)); - t.vout[0].scriptPubKey = CScript() << OP_RETURN << 0 << ParseHex("01") << 2 << ParseHex("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); + // 40-byte TX_NULL_DATA (standard) + t.vout[0].scriptPubKey = CScript() << OP_RETURN << ParseHex("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38"); BOOST_CHECK(IsStandardTx(t, reason)); - // ...so long as it only contains PUSHDATA's - t.vout[0].scriptPubKey = CScript() << OP_RETURN << OP_RETURN; + // 41-byte TX_NULL_DATA (non-standard) + t.vout[0].scriptPubKey = CScript() << OP_RETURN << ParseHex("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef3800"); BOOST_CHECK(!IsStandardTx(t, reason)); // TX_NULL_DATA w/o PUSHDATA diff --git a/src/test/util_tests.cpp b/src/test/util_tests.cpp index d6438a1..db9ee12 100755 --- a/src/test/util_tests.cpp +++ b/src/test/util_tests.cpp @@ -197,8 +197,6 @@ BOOST_AUTO_TEST_CASE(util_ParseMoney) BOOST_CHECK_EQUAL(ret, COIN*10); BOOST_CHECK(ParseMoney("1.00", ret)); BOOST_CHECK_EQUAL(ret, COIN); - BOOST_CHECK(ParseMoney("1", ret)); - BOOST_CHECK_EQUAL(ret, COIN); BOOST_CHECK(ParseMoney("0.1", ret)); BOOST_CHECK_EQUAL(ret, COIN/10); BOOST_CHECK(ParseMoney("0.01", ret)); @@ -218,9 +216,6 @@ BOOST_AUTO_TEST_CASE(util_ParseMoney) // Attempted 63 bit overflow should fail BOOST_CHECK(!ParseMoney("92233720368.54775808", ret)); - - // Parsing negative amounts must fail - BOOST_CHECK(!ParseMoney("-1", ret)); } BOOST_AUTO_TEST_CASE(util_IsHex) @@ -326,16 +321,9 @@ BOOST_AUTO_TEST_CASE(test_ParseInt32) BOOST_CHECK(ParseInt32("-2147483648", &n) && n == -2147483648); BOOST_CHECK(ParseInt32("-1234", &n) && n == -1234); // Invalid values - BOOST_CHECK(!ParseInt32("", &n)); - BOOST_CHECK(!ParseInt32(" 1", &n)); // no padding inside - BOOST_CHECK(!ParseInt32("1 ", &n)); BOOST_CHECK(!ParseInt32("1a", &n)); BOOST_CHECK(!ParseInt32("aap", &n)); BOOST_CHECK(!ParseInt32("0x1", &n)); // no hex - BOOST_CHECK(!ParseInt32("0x1", &n)); // no hex - const char test_bytes[] = {'1', 0, '1'}; - std::string teststr(test_bytes, sizeof(test_bytes)); - BOOST_CHECK(!ParseInt32(teststr, &n)); // no embedded NULs // Overflow and underflow BOOST_CHECK(!ParseInt32("-2147483649", NULL)); BOOST_CHECK(!ParseInt32("2147483648", NULL)); @@ -343,64 +331,6 @@ BOOST_AUTO_TEST_CASE(test_ParseInt32) BOOST_CHECK(!ParseInt32("32482348723847471234", NULL)); } -BOOST_AUTO_TEST_CASE(test_ParseInt64) -{ - int64_t n; - // Valid values - BOOST_CHECK(ParseInt64("1234", NULL)); - BOOST_CHECK(ParseInt64("0", &n) && n == 0LL); - BOOST_CHECK(ParseInt64("1234", &n) && n == 1234LL); - BOOST_CHECK(ParseInt64("01234", &n) && n == 1234LL); // no octal - BOOST_CHECK(ParseInt64("2147483647", &n) && n == 2147483647LL); - BOOST_CHECK(ParseInt64("-2147483648", &n) && n == -2147483648LL); - BOOST_CHECK(ParseInt64("9223372036854775807", &n) && n == (int64_t)9223372036854775807); - BOOST_CHECK(ParseInt64("-9223372036854775808", &n) && n == (int64_t)-9223372036854775807-1); - BOOST_CHECK(ParseInt64("-1234", &n) && n == -1234LL); - // Invalid values - BOOST_CHECK(!ParseInt64("", &n)); - BOOST_CHECK(!ParseInt64(" 1", &n)); // no padding inside - BOOST_CHECK(!ParseInt64("1 ", &n)); - BOOST_CHECK(!ParseInt64("1a", &n)); - BOOST_CHECK(!ParseInt64("aap", &n)); - BOOST_CHECK(!ParseInt64("0x1", &n)); // no hex - const char test_bytes[] = {'1', 0, '1'}; - std::string teststr(test_bytes, sizeof(test_bytes)); - BOOST_CHECK(!ParseInt64(teststr, &n)); // no embedded NULs - // Overflow and underflow - BOOST_CHECK(!ParseInt64("-9223372036854775809", NULL)); - BOOST_CHECK(!ParseInt64("9223372036854775808", NULL)); - BOOST_CHECK(!ParseInt64("-32482348723847471234", NULL)); - BOOST_CHECK(!ParseInt64("32482348723847471234", NULL)); -} - -BOOST_AUTO_TEST_CASE(test_ParseDouble) -{ - double n; - // Valid values - BOOST_CHECK(ParseDouble("1234", NULL)); - BOOST_CHECK(ParseDouble("0", &n) && n == 0.0); - BOOST_CHECK(ParseDouble("1234", &n) && n == 1234.0); - BOOST_CHECK(ParseDouble("01234", &n) && n == 1234.0); // no octal - BOOST_CHECK(ParseDouble("2147483647", &n) && n == 2147483647.0); - BOOST_CHECK(ParseDouble("-2147483648", &n) && n == -2147483648.0); - BOOST_CHECK(ParseDouble("-1234", &n) && n == -1234.0); - BOOST_CHECK(ParseDouble("1e6", &n) && n == 1e6); - BOOST_CHECK(ParseDouble("-1e6", &n) && n == -1e6); - // Invalid values - BOOST_CHECK(!ParseDouble("", &n)); - BOOST_CHECK(!ParseDouble(" 1", &n)); // no padding inside - BOOST_CHECK(!ParseDouble("1 ", &n)); - BOOST_CHECK(!ParseDouble("1a", &n)); - BOOST_CHECK(!ParseDouble("aap", &n)); - BOOST_CHECK(!ParseDouble("0x1", &n)); // no hex - const char test_bytes[] = {'1', 0, '1'}; - std::string teststr(test_bytes, sizeof(test_bytes)); - BOOST_CHECK(!ParseDouble(teststr, &n)); // no embedded NULs - // Overflow and underflow - BOOST_CHECK(!ParseDouble("-1e10000", NULL)); - BOOST_CHECK(!ParseDouble("1e10000", NULL)); -} - BOOST_AUTO_TEST_CASE(test_FormatParagraph) { BOOST_CHECK_EQUAL(FormatParagraph("", 79, 0), ""); diff --git a/src/txdb.cpp b/src/txdb.cpp index 7735167..a2f4510 100755 --- a/src/txdb.cpp +++ b/src/txdb.cpp @@ -247,7 +247,7 @@ bool CBlockTreeDB::LoadBlockIndexGuts() if (!CheckProofOfWork(pindexNew->GetBlockHash(), pindexNew->nBits)) return error("LoadBlockIndex() : CheckProofOfWork failed: %s", pindexNew->ToString()); } - // ittrium: build setStakeSeen + // ppcoin: build setStakeSeen if (pindexNew->IsProofOfStake()) setStakeSeen.insert(make_pair(pindexNew->prevoutStake, pindexNew->nStakeTime)); diff --git a/src/ui_interface.h b/src/ui_interface.h index e61274a..a6bdefb 100755 --- a/src/ui_interface.h +++ b/src/ui_interface.h @@ -101,6 +101,9 @@ class CClientUIInterface /** New block has been accepted */ boost::signals2::signal NotifyBlockTip; + + /** Banlist did change. */ + boost::signals2::signal BannedListChanged; }; extern CClientUIInterface uiInterface; diff --git a/src/util.cpp b/src/util.cpp index 55fd966..23f15c6 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -115,7 +115,7 @@ bool fLiteMode = false; // SwiftTX bool fEnableSwiftTX = true; int nSwiftTXDepth = 5; -int nObfuscationRounds = 2; +int nObfuscationRounds = 3; int nAnonymizeIttriumAmount = 1000; int nLiquidityProvider = 0; /** Spork enforcement enabled time */ diff --git a/src/utilstrencodings.cpp b/src/utilstrencodings.cpp index 679ecfd..2f0049c 100755 --- a/src/utilstrencodings.cpp +++ b/src/utilstrencodings.cpp @@ -501,7 +501,7 @@ bool ParseInt64(const std::string& str, int64_t *out) if(out) *out = (int64_t)n; // Note that strtoll returns a *long long int*, so even if strtol doesn't report a over/underflow // we still have to check that the returned value is within the range of an *int64_t*. - return endp && *endp == 0 && !errno && + return endp && *endp == 0 && !errno && n >= std::numeric_limits::min() && n <= std::numeric_limits::max(); } @@ -509,11 +509,11 @@ bool ParseInt64(const std::string& str, int64_t *out) bool ParseDouble(const std::string& str, double *out) { if (!ParsePrechecks(str)) - return false; + return false; if (str.size() >= 2 && str[0] == '0' && str[1] == 'x') // No hexadecimal floats allowed return false; std::istringstream text(str); - text.imbue(std::locale::classic()); + text.imbue(std::locale::classic()); double result; text >> result; if(out) *out = result; diff --git a/src/utilstrencodings.h b/src/utilstrencodings.h index 46aaace..11f2a61 100755 --- a/src/utilstrencodings.h +++ b/src/utilstrencodings.h @@ -56,11 +56,11 @@ bool ParseInt32(const std::string& str, int32_t *out); * Convert string to signed 64-bit integer with strict parse error feedback. * @returns true if the entire string could be parsed as valid integer, * false if not the entire string could be parsed or when overflow or underflow occurred. - */ +*/ bool ParseInt64(const std::string& str, int64_t *out); /** - * Convert string to double with strict parse error feedback. +* Convert string to double with strict parse error feedback. * @returns true if the entire string could be parsed as valid double, * false if not the entire string could be parsed or when overflow or underflow occurred. */ diff --git a/src/version.h b/src/version.h index e1fe4b7..701ea28 100755 --- a/src/version.h +++ b/src/version.h @@ -12,7 +12,7 @@ * network protocol versioning */ -static const int PROTOCOL_VERSION = 70811; +static const int PROTOCOL_VERSION = 70900; //! initial proto version, to be increased after version/verack negotiation static const int INIT_PROTO_VERSION = 209; @@ -21,8 +21,9 @@ static const int INIT_PROTO_VERSION = 209; static const int GETHEADERS_VERSION = 70077; //! disconnect from peers older than this proto version -static const int MIN_PEER_PROTO_VERSION_BEFORE_ENFORCEMENT = 70710; -static const int MIN_PEER_PROTO_VERSION_AFTER_ENFORCEMENT = 70811; +static const int MIN_PEER_PROTO_VERSION_BEFORE_ENFORCEMENT = 70811; +static const int MIN_PEER_PROTO_VERSION_AFTER_ENFORCEMENT15 = 70811; +static const int MIN_PEER_PROTO_VERSION_AFTER_ENFORCEMENT17 = 70900; //! nTime field added to CAddress, starting with this version; //! if possible, avoid requesting addresses nodes older than this diff --git a/src/wallet.cpp b/src/wallet.cpp index 46ee68c..0ce1e07 100755 --- a/src/wallet.cpp +++ b/src/wallet.cpp @@ -26,6 +26,7 @@ #include #include +#include using namespace std; @@ -40,8 +41,8 @@ bool bSpendZeroConfChange = true; bool fSendFreeTransactions = false; bool fPayAtLeastCustomFee = true; -/** - * Fees smaller than this (in uxit) are considered zero fee (for transaction creation) +/** + * Fees smaller than this (in duffs) are considered zero fee (for transaction creation) * We are ~100 times smaller then bitcoin now (2015-06-23), set minTxFee 10 times higher * so it's still 10 times lower comparing to bitcoin. * Override with -mintxfee @@ -210,6 +211,37 @@ bool CWallet::LoadWatchOnly(const CScript& dest) return CCryptoKeyStore::AddWatchOnly(dest); } +bool CWallet::AddMultiSig(const CScript& dest) +{ + if (!CCryptoKeyStore::AddMultiSig(dest)) + return false; + nTimeFirstKey = 1; // No birthday information + NotifyMultiSigChanged(true); + if (!fFileBacked) + return true; + return CWalletDB(strWalletFile).WriteMultiSig(dest); +} + +bool CWallet::RemoveMultiSig(const CScript& dest) +{ + AssertLockHeld(cs_wallet); + if (!CCryptoKeyStore::RemoveMultiSig(dest)) + return false; + if (!HaveMultiSig()) + NotifyMultiSigChanged(false); + if (fFileBacked) + if (!CWalletDB(strWalletFile).EraseMultiSig(dest)) + return false; + + return true; +} + +bool CWallet::LoadMultiSig(const CScript& dest) +{ + return CCryptoKeyStore::AddMultiSig(dest); +} + + bool CWallet::Unlock(const SecureString& strWalletPassphrase, bool anonymizeOnly) { SecureString strWalletPassphraseFinal; @@ -431,7 +463,7 @@ bool CWallet::GetMasternodeVinAndKeys(CTxIn& txinRet, CPubKey& pubKeyRet, CKey& // Find possible candidates std::vector vPossibleCoins; - AvailableCoins(vPossibleCoins, true, NULL, false, ONLY_5000); + AvailableCoins(vPossibleCoins, true, NULL, false, ONLY_10000); if (vPossibleCoins.empty()) { LogPrintf("CWallet::GetMasternodeVinAndKeys -- Could not locate any valid masternode vin\n"); return false; @@ -1454,13 +1486,13 @@ void CWallet::AvailableCoins(vector& vCoins, bool fOnlyConfirmed, const bool found = false; if (nCoinType == ONLY_DENOMINATED) { found = IsDenominatedAmount(pcoin->vout[i].nValue); - } else if (nCoinType == ONLY_NOT5000IFMN) { + } else if (nCoinType == ONLY_NOT10000IFMN) { found = !(fMasterNode && pcoin->vout[i].nValue == 5000 * COIN); - } else if (nCoinType == ONLY_NONDENOMINATED_NOT5000IFMN) { + } else if (nCoinType == ONLY_NONDENOMINATED_NOT10000IFMN) { if (IsCollateralAmount(pcoin->vout[i].nValue)) continue; // do not use collateral amounts found = !IsDenominatedAmount(pcoin->vout[i].nValue); if (found && fMasterNode) found = pcoin->vout[i].nValue != 5000 * COIN; // do not use Hot MN funds - } else if (nCoinType == ONLY_5000) { + } else if (nCoinType == ONLY_10000) { found = pcoin->vout[i].nValue == 5000 * COIN; } else { found = true; @@ -1468,13 +1500,26 @@ void CWallet::AvailableCoins(vector& vCoins, bool fOnlyConfirmed, const if (!found) continue; isminetype mine = IsMine(pcoin->vout[i]); - if (!(IsSpent(wtxid, i)) && mine != ISMINE_NO && - (!IsLockedCoin((*it).first, i) || nCoinType == ONLY_5000) && - (pcoin->vout[i].nValue > 0 || fIncludeZeroValue) && - (!coinControl || !coinControl->HasSelected() || coinControl->fAllowOtherInputs || coinControl->IsSelected((*it).first, i))) - vCoins.push_back(COutput(pcoin, i, nDepth, - ((mine & ISMINE_SPENDABLE) != ISMINE_NO) || - (coinControl && coinControl->fAllowWatchOnly && (mine & ISMINE_WATCH_SOLVABLE) != ISMINE_NO))); + if (IsSpent(wtxid, i)) + continue; + if (mine == ISMINE_NO) + continue; + if (mine == ISMINE_WATCH_ONLY) + continue; + + if (IsLockedCoin((*it).first, i) && nCoinType != ONLY_10000) + continue; + if (pcoin->vout[i].nValue <= 0 && !fIncludeZeroValue) + continue; + if (coinControl && coinControl->HasSelected() && !coinControl->fAllowOtherInputs && !coinControl->IsSelected((*it).first, i)) + continue; + + bool fIsSpendable = false; + if ((mine & ISMINE_SPENDABLE) != ISMINE_NO) + fIsSpendable = true; + if ((mine & ISMINE_MULTISIG) != ISMINE_NO) + fIsSpendable = true; + vCoins.emplace_back(COutput(pcoin, i, nDepth, fIsSpendable)); } } } @@ -1561,7 +1606,7 @@ bool CWallet::SelectStakeCoins(std::set vCoins; AvailableCoins(vCoins, true); - CAmount nAmountSelected = 0; + int64_t nAmountSelected = 0; BOOST_FOREACH (const COutput& out, vCoins) { //make sure not to outrun target amount @@ -1797,7 +1842,7 @@ bool CWallet::SelectCoinsByDenominations(int nDenom, CAmount nValueMin, CAmount BOOST_FOREACH (const COutput& out, vCoins) { // masternode-like input should not be selected by AvailableCoins now anyway - //if(out.tx->vout[out.i].nValue == 5000*COIN) continue; + //if(out.tx->vout[out.i].nValue == 10000*COIN) continue; if (nValueRet + out.tx->vout[out.i].nValue <= nValueMax) { bool fAccepted = false; @@ -1881,7 +1926,7 @@ bool CWallet::SelectCoinsDark(CAmount nValueMin, CAmount nValueMax, std::vector< nValueRet = 0; vector vCoins; - AvailableCoins(vCoins, true, coinControl, nObfuscationRoundsMin < 0 ? ONLY_NONDENOMINATED_NOT5000IFMN : ONLY_DENOMINATED); + AvailableCoins(vCoins, true, coinControl, nObfuscationRoundsMin < 0 ? ONLY_NONDENOMINATED_NOT10000IFMN : ONLY_DENOMINATED); set > setCoinsRet2; @@ -1944,7 +1989,7 @@ bool CWallet::SelectCoinsCollateral(std::vector& setCoinsRet, CAmount& nV int CWallet::CountInputsWithAmount(CAmount nInputAmount) { - CAmount nTotal = 0; + int64_t nTotal = 0; { LOCK(cs_wallet); for (map::const_iterator it = mapWallet.begin(); it != mapWallet.end(); ++it) { @@ -2166,10 +2211,10 @@ bool CWallet::CreateTransaction(const vector >& vecSend, if (!SelectCoins(nTotalValue, setCoins, nValueIn, coinControl, coin_type, useIX)) { if (coin_type == ALL_COINS) { strFailReason = _("Insufficient funds."); - } else if (coin_type == ONLY_NOT5000IFMN) { - strFailReason = _("Unable to locate enough funds for this transaction that are not equal 5000 XIT."); - } else if (coin_type == ONLY_NONDENOMINATED_NOT5000IFMN) { - strFailReason = _("Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 5000 XIT."); + } else if (coin_type == ONLY_NOT10000IFMN) { + strFailReason = _("Unable to locate enough funds for this transaction that are not equal 10000 XIT."); + } else if (coin_type == ONLY_NONDENOMINATED_NOT10000IFMN) { + strFailReason = _("Unable to locate enough Obfuscation non-denominated funds for this transaction that are not equal 10000 XIT."); } else { strFailReason = _("Unable to locate enough Obfuscation denominated funds for this transaction."); strFailReason += " " + _("Obfuscation uses exact denominated amounts to send funds, you might simply need to anonymize some more coins."); @@ -2312,7 +2357,7 @@ bool CWallet::CreateTransaction(CScript scriptPubKey, const CAmount& nValue, CWa return CreateTransaction(vecSend, wtxNew, reservekey, nFeeRet, strFailReason, coinControl, coin_type, useIX, nFeePay); } -// ittrium: create coin stake transaction +// ppcoin: create coin stake transaction bool CWallet::CreateCoinStake(const CKeyStore& keystore, unsigned int nBits, int64_t nSearchInterval, CMutableTransaction& txNew, unsigned int& nTxNewTime) { // The following split & combine thresholds are important to security @@ -2465,7 +2510,7 @@ bool CWallet::CreateCoinStake(const CKeyStore& keystore, unsigned int nBits, int if (nBytes >= DEFAULT_BLOCK_MAX_SIZE / 5) return error("CreateCoinStake : exceeded coinstake size limit"); - CAmount nFeeNeeded = 0; // GetMinimumFee(nBytes, nTxConfirmTarget, mempool); + CAmount nFeeNeeded = GetMinimumFee(nBytes, nTxConfirmTarget, mempool); // AAA was --> 0; // Check enough fee is paid if (nMinFee < nFeeNeeded) { @@ -3335,7 +3380,7 @@ void CWallet::AutoCombineDust() CAmount nTotalRewardsValue = 0; BOOST_FOREACH (const COutput& out, vCoins) { //no coins should get this far if they dont have proper maturity, this is double checking - if (out.tx->IsCoinStake() && out.tx->GetDepthInMainChain() < COINBASE_MATURITY + 1) + if (out.tx->IsCoinStake() && out.tx->GetDepthInMainChain() < Params().COINBASE_MATURITY() + 1) continue; if (out.Value() > nAutoCombineThreshold * COIN) @@ -3388,7 +3433,8 @@ void CWallet::AutoCombineDust() bool CWallet::MultiSend() { - if (IsInitialBlockDownload() || IsLocked()) { + // Stop the old blocks from sending multisends + if (chainActive.Tip()->nTime < (GetAdjustedTime() - 300) || IsLocked()) { return false; } @@ -3399,16 +3445,16 @@ bool CWallet::MultiSend() std::vector vCoins; AvailableCoins(vCoins); - int stakeSent = 0; - int mnSent = 0; - BOOST_FOREACH (const COutput& out, vCoins) { + bool stakeSent = false; + bool mnSent = false; + for (const COutput& out : vCoins) { //need output with precise confirm count - this is how we identify which is the output to send - if (out.tx->GetDepthInMainChain() != COINBASE_MATURITY + 1) + if (out.tx->GetDepthInMainChain() != Params().COINBASE_MATURITY() + 1) continue; COutPoint outpoint(out.tx->GetHash(), out.i); bool sendMSonMNReward = fMultiSendMasternodeReward && outpoint.IsMasternodeReward(out.tx); - bool sendMSOnStake = fMultiSendStake && out.tx->IsCoinStake() && !sendMSonMNReward; //output is either mnreward or stake reward, not both + bool sendMSOnStake = fMultiSendStake && out.tx->IsCoinStake() && !sendMSonMNReward && !outpoint.IsMasternodeReward(out.tx); //output is either mnreward or stake reward, not both if (!(sendMSOnStake || sendMSonMNReward)) continue; @@ -3420,33 +3466,46 @@ bool CWallet::MultiSend() } //Disabled Addresses won't send MultiSend transactions + bool isDisabled = false; if (vDisabledAddresses.size() > 0) { for (unsigned int i = 0; i < vDisabledAddresses.size(); i++) { if (vDisabledAddresses[i] == CBitcoinAddress(destMyAddress).ToString()) { - LogPrintf("Multisend: disabled address preventing multisend\n"); - return false; + isDisabled = true; } } } + std::vector> vMultiSendAddressEntry; + bool isConfigured = false; + for (unsigned int i = 0; i < vMultiSend.size(); i++) { + if (CBitcoinAddress(destMyAddress).ToString() == vMultiSend[i].first && !vMultiSend[i].second.empty()) { + vMultiSendAddressEntry = vMultiSend[i].second; + isConfigured = true; + } + } + if (!isConfigured || isDisabled) { + continue; + } // create new coin control, populate it with the selected utxo, create sending vector - CCoinControl* cControl = new CCoinControl(); + CCoinControl cControl; COutPoint outpt(out.tx->GetHash(), out.i); - cControl->Select(outpt); - cControl->destChange = destMyAddress; + cControl.Select(outpt); + cControl.destChange = destMyAddress; CWalletTx wtx; CReserveKey keyChange(this); // this change address does not end up being used, because change is returned with coin control switch - CAmount nFeeRet = 0; - vector > vecSend; + + CAmount nFeeRet = 0; + vector > vecSend; - // loop through multisend vector and add amounts and addresses to the sending vector + // loop through multisendaddressentry vector and add amounts and addresses to the sending vector const isminefilter filter = ISMINE_SPENDABLE; - CAmount nAmount = 0; - for (unsigned int i = 0; i < vMultiSend.size(); i++) { - // MultiSend vector is a pair of 1)Address as a std::string 2) Percent of stake to send as an int - nAmount = ((out.tx->GetCredit(filter) - out.tx->GetDebit(filter)) * vMultiSend[i].second) / 100; - CBitcoinAddress strAddSend(vMultiSend[i].first); + CAmount nAmount = 0; + + for (unsigned int i = 0; i < vMultiSendAddressEntry.size(); i++) { + // MultiSendAddressEntry vector is a pair of 1)Address as a std::string 2) Percent of stake to send as an int + nAmount = ((out.tx->GetCredit(filter) - out.tx->GetDebit(filter)) * vMultiSendAddressEntry[i].second) / 100; + CBitcoinAddress strAddSend(vMultiSendAddressEntry[i].first); CScript scriptPubKey; scriptPubKey = GetScriptForDestination(strAddSend.Get()); vecSend.push_back(make_pair(scriptPubKey, nAmount)); @@ -3455,7 +3514,7 @@ bool CWallet::MultiSend() //get the fee amount CWalletTx wtxdummy; string strErr; - CreateTransaction(vecSend, wtxdummy, keyChange, nFeeRet, strErr, cControl, ALL_COINS, false, CAmount(0)); + CreateTransaction(vecSend, wtxdummy, keyChange, nFeeRet, strErr, &cControl, ALL_COINS, false, CAmount(0)); CAmount nLastSendAmount = vecSend[vecSend.size() - 1].second; if (nLastSendAmount < nFeeRet + 500) { LogPrintf("%s: fee of %s is too large to insert into last output\n"); @@ -3464,7 +3523,7 @@ bool CWallet::MultiSend() vecSend[vecSend.size() - 1].second = nLastSendAmount - nFeeRet - 500; // Create the transaction and commit it to the network - if (!CreateTransaction(vecSend, wtx, keyChange, nFeeRet, strErr, cControl, ALL_COINS, false, CAmount(0))) { + if (!CreateTransaction(vecSend, wtx, keyChange, nFeeRet, strErr, &cControl, ALL_COINS, false, CAmount(0))) { LogPrintf("MultiSend createtransaction failed\n"); return false; } @@ -3475,8 +3534,6 @@ bool CWallet::MultiSend() } else fMultiSendNotify = true; - delete cControl; - //write nLastMultiSendHeight to DB CWalletDB walletdb(strWalletFile); nLastMultiSendHeight = chainActive.Tip()->nHeight; @@ -3484,23 +3541,34 @@ bool CWallet::MultiSend() LogPrintf("Failed to write MultiSend setting to DB\n"); LogPrintf("MultiSend successfully sent\n"); + + //set which Multisend triggered if (sendMSOnStake) - stakeSent++; + stakeSent = true; else - mnSent++; + mnSent = true; - //stop iterating if we are done - if (mnSent > 0 && stakeSent > 0) - return true; - if (stakeSent > 0 && !fMultiSendMasternodeReward) - return true; - if (mnSent > 0 && !fMultiSendStake) + //stop iterating if we have sent out all the MultiSend(s) + if ((stakeSent && mnSent) || (stakeSent && !fMultiSendMasternodeReward) || (mnSent && !fMultiSendStake)) return true; } return true; } +bool CWallet::isMSAddressEnabled(std::string address) +{ + return !(std::find(vDisabledAddresses.begin(), vDisabledAddresses.end(), address) != vDisabledAddresses.end()); +} + +int CWallet::indexOfMSAddress(std::string address) +{ + for (unsigned int i = 0; i < vMultiSend.size(); i++) { + if (vMultiSend[i].first == address)return i; + } + return -1; +} + CKeyPool::CKeyPool() { nTime = GetTime(); diff --git a/src/wallet.h b/src/wallet.h index a004ed9..46e8d9b 100755 --- a/src/wallet.h +++ b/src/wallet.h @@ -74,9 +74,9 @@ enum WalletFeature { enum AvailableCoinsType { ALL_COINS = 1, ONLY_DENOMINATED = 2, - ONLY_NOT5000IFMN = 3, - ONLY_NONDENOMINATED_NOT5000IFMN = 4, // ONLY_NONDENOMINATED and not 5000 XIT at the same time - ONLY_5000 = 5 // find masternode outputs including locked ones (use with caution) + ONLY_NOT10000IFMN = 3, + ONLY_NONDENOMINATED_NOT10000IFMN = 4, // ONLY_NONDENOMINATED and not 10000 XIT at the same time + ONLY_10000 = 5 // find masternode outputs including locked ones (use with caution) }; struct CompactTallyItem { @@ -199,7 +199,7 @@ class CWallet : public CCryptoKeyStore, public CValidationInterface int nStakeSetUpdateTime; //MultiSend - std::vector > vMultiSend; + std::vector>>> vMultiSend; bool fMultiSendStake; bool fMultiSendMasternodeReward; bool fMultiSendNotify; @@ -354,6 +354,12 @@ class CWallet : public CCryptoKeyStore, public CValidationInterface //! Adds a watch-only address to the store, without saving it to disk (used by LoadWallet) bool LoadWatchOnly(const CScript& dest); + //! Adds a MultiSig address to the store, and saves it to disk. + bool AddMultiSig(const CScript& dest); + bool RemoveMultiSig(const CScript& dest); + //! Adds a MultiSig address to the store, without saving it to disk (used by LoadWallet) + bool LoadMultiSig(const CScript& dest); + bool Unlock(const SecureString& strWalletPassphrase, bool anonimizeOnly = false); bool ChangeWalletPassphrase(const SecureString& strOldWalletPassphrase, const SecureString& strNewWalletPassphrase); bool EncryptWallet(const SecureString& strWalletPassphrase); @@ -412,6 +418,8 @@ class CWallet : public CCryptoKeyStore, public CValidationInterface bool ConvertList(std::vector vCoins, std::vector& vecAmounts); bool CreateCoinStake(const CKeyStore& keystore, unsigned int nBits, int64_t nSearchInterval, CMutableTransaction& txNew, unsigned int& nTxNewTime); bool MultiSend(); + bool isMSAddressEnabled(std::string address); + int indexOfMSAddress(std::string address); void AutoCombineDust(); static CFeeRate minTxFee; @@ -442,7 +450,7 @@ class CWallet : public CCryptoKeyStore, public CValidationInterface bool IsDenominated(const CTxIn& txin) const; bool IsDenominated(const CTransaction& tx) const; - bool IsDenominatedAmount(CAmount nInputAmount) const; + bool IsDenominatedAmount(int64_t nInputAmount) const; isminetype IsMine(const CTxIn& txin) const; CAmount GetDebit(const CTxIn& txin, const isminefilter& filter) const; @@ -567,6 +575,9 @@ class CWallet : public CCryptoKeyStore, public CValidationInterface /** Watch-only address added */ boost::signals2::signal NotifyWatchonlyChanged; + + /** MultiSig address added */ + boost::signals2::signal NotifyMultiSigChanged; }; /** A key allocated from the key pool. */ diff --git a/src/wallet_ismine.cpp b/src/wallet_ismine.cpp index 07961e5..bf7d44e 100755 --- a/src/wallet_ismine.cpp +++ b/src/wallet_ismine.cpp @@ -10,6 +10,7 @@ #include "keystore.h" #include "script/script.h" #include "script/standard.h" +#include "util.h" #include @@ -22,7 +23,7 @@ unsigned int HaveKeys(const vector& pubkeys, const CKeyStore& keystore) unsigned int nResult = 0; BOOST_FOREACH (const valtype& pubkey, pubkeys) { CKeyID keyID = CPubKey(pubkey).GetID(); - if (keystore.HaveKey(keyID)) + if(keystore.HaveKey(keyID)) ++nResult; } return nResult; @@ -36,11 +37,19 @@ isminetype IsMine(const CKeyStore& keystore, const CTxDestination& dest) isminetype IsMine(const CKeyStore& keystore, const CScript& scriptPubKey) { + if(keystore.HaveWatchOnly(scriptPubKey)) + return ISMINE_WATCH_ONLY; + if(keystore.HaveMultiSig(scriptPubKey)) + return ISMINE_MULTISIG; + vector vSolutions; txnouttype whichType; - if (!Solver(scriptPubKey, whichType, vSolutions)) { - if (keystore.HaveWatchOnly(scriptPubKey)) + if(!Solver(scriptPubKey, whichType, vSolutions)) { + if(keystore.HaveWatchOnly(scriptPubKey)) return ISMINE_WATCH_ONLY; + if(keystore.HaveMultiSig(scriptPubKey)) + return ISMINE_MULTISIG; + return ISMINE_NO; } @@ -51,20 +60,20 @@ isminetype IsMine(const CKeyStore& keystore, const CScript& scriptPubKey) break; case TX_PUBKEY: keyID = CPubKey(vSolutions[0]).GetID(); - if (keystore.HaveKey(keyID)) + if(keystore.HaveKey(keyID)) return ISMINE_SPENDABLE; break; case TX_PUBKEYHASH: keyID = CKeyID(uint160(vSolutions[0])); - if (keystore.HaveKey(keyID)) + if(keystore.HaveKey(keyID)) return ISMINE_SPENDABLE; break; case TX_SCRIPTHASH: { CScriptID scriptID = CScriptID(uint160(vSolutions[0])); CScript subscript; - if (keystore.GetCScript(scriptID, subscript)) { + if(keystore.GetCScript(scriptID, subscript)) { isminetype ret = IsMine(keystore, subscript); - if (ret == ISMINE_SPENDABLE) + if (ret != ISMINE_NO) return ret; } break; @@ -76,13 +85,16 @@ isminetype IsMine(const CKeyStore& keystore, const CScript& scriptPubKey) // them) enable spend-out-from-under-you attacks, especially // in shared-wallet situations. vector keys(vSolutions.begin() + 1, vSolutions.begin() + vSolutions.size() - 1); - if (HaveKeys(keys, keystore) == keys.size()) + if(HaveKeys(keys, keystore) == keys.size()) return ISMINE_SPENDABLE; break; } } - if (keystore.HaveWatchOnly(scriptPubKey)) + if(keystore.HaveWatchOnly(scriptPubKey)) return ISMINE_WATCH_ONLY; + if(keystore.HaveMultiSig(scriptPubKey)) + return ISMINE_MULTISIG; + return ISMINE_NO; } diff --git a/src/wallet_ismine.h b/src/wallet_ismine.h index b2e5a62..32e7b2d 100755 --- a/src/wallet_ismine.h +++ b/src/wallet_ismine.h @@ -16,11 +16,10 @@ class CScript; enum isminetype { ISMINE_NO = 0, //! Indicates that we dont know how to create a scriptSig that would solve this if we were given the appropriate private keys - ISMINE_WATCH_UNSOLVABLE = 1, + ISMINE_WATCH_ONLY = 1, //! Indicates that we know how to create a scriptSig that would solve this if we were given the appropriate private keys - ISMINE_WATCH_SOLVABLE = 2, - ISMINE_WATCH_ONLY = ISMINE_WATCH_SOLVABLE | ISMINE_WATCH_UNSOLVABLE, - ISMINE_SPENDABLE = 4, + ISMINE_MULTISIG = 2, + ISMINE_SPENDABLE = 4, ISMINE_ALL = ISMINE_WATCH_ONLY | ISMINE_SPENDABLE }; /** used for bitflags of isminetype */ diff --git a/src/walletdb.cpp b/src/walletdb.cpp index a978259..7053463 100755 --- a/src/walletdb.cpp +++ b/src/walletdb.cpp @@ -130,6 +130,18 @@ bool CWalletDB::EraseWatchOnly(const CScript& dest) return Erase(std::make_pair(std::string("watchs"), dest)); } +bool CWalletDB::WriteMultiSig(const CScript& dest) +{ + nWalletDBUpdated++; + return Write(std::make_pair(std::string("multisig"), dest), '1'); +} + +bool CWalletDB::EraseMultiSig(const CScript& dest) +{ + nWalletDBUpdated++; + return Erase(std::make_pair(std::string("multisig"), dest)); +} + bool CWalletDB::WriteBestBlock(const CBlockLocator& locator) { nWalletDBUpdated++; @@ -155,30 +167,26 @@ bool CWalletDB::WriteStakeSplitThreshold(uint64_t nStakeSplitThreshold) } //presstab HyperStake -bool CWalletDB::WriteMultiSend(std::vector > vMultiSend) +bool CWalletDB::WriteMultiSend(std::vector>>> vMultiSend) { nWalletDBUpdated++; bool ret = true; - for (unsigned int i = 0; i < vMultiSend.size(); i++) { - std::pair pMultiSend; - pMultiSend = vMultiSend[i]; - if (!Write(std::make_pair(std::string("multisend"), i), pMultiSend, true)) - ret = false; - } - return ret; + for (unsigned int i = 0; i < vMultiSend.size(); i++) { + if (!Write(std::make_pair(std::string("multisendv2"),i), vMultiSend[i], true)) + ret = false; + } + return ret; } //presstab HyperStake -bool CWalletDB::EraseMultiSend(std::vector > vMultiSend) +bool CWalletDB::EraseMultiSend(std::vector>>> vMultiSend) { - nWalletDBUpdated++; - bool ret = true; - for (unsigned int i = 0; i < vMultiSend.size(); i++) { - std::pair pMultiSend; - pMultiSend = vMultiSend[i]; - if (!Erase(std::make_pair(std::string("multisend"), i))) - ret = false; - } - return ret; + nWalletDBUpdated++; + bool ret = true; + for (unsigned int i = 0; i < vMultiSend.size(); i++) { + if (!Erase(std::make_pair(std::string("multisendv2"), i))) + ret = false; + } + return ret; } //presstab HyperStake bool CWalletDB::WriteMSettings(bool fMultiSendStake, bool fMultiSendMasternode, int nLastMultiSendHeight) @@ -474,6 +482,17 @@ bool ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue, CW // Watch-only addresses have no birthday information for now, // so set the wallet birthday to the beginning of time. pwallet->nTimeFirstKey = 1; + } else if (strType == "multisig") { + CScript script; + ssKey >> script; + char fYes; + ssValue >> fYes; + if (fYes == '1') + pwallet->LoadMultiSig(script); + + // MultiSig addresses have no birthday information for now, + // so set the wallet birthday to the beginning of time. + pwallet->nTimeFirstKey = 1; } else if (strType == "key" || strType == "wkey") { CPubKey vchPubKey; ssKey >> vchPubKey; @@ -599,15 +618,13 @@ bool ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue, CW } else if (strType == "stakeSplitThreshold") //presstab HyperStake { ssValue >> pwallet->nStakeSplitThreshold; - } else if (strType == "multisend") //presstab HyperStake + } else if (strType == "multisendv2") //presstab HyperStake { unsigned int i; ssKey >> i; - std::pair pMultiSend; + std::pair>> pMultiSend; ssValue >> pMultiSend; - if (CBitcoinAddress(pMultiSend.first).IsValid()) { - pwallet->vMultiSend.push_back(pMultiSend); - } + pwallet->vMultiSend.push_back(pMultiSend); } else if (strType == "msettingsv2") //presstab HyperStake { std::pair, int> pSettings; diff --git a/src/walletdb.h b/src/walletdb.h index 0186769..e7861cd 100755 --- a/src/walletdb.h +++ b/src/walletdb.h @@ -99,6 +99,9 @@ class CWalletDB : public CDB bool WriteWatchOnly(const CScript& script); bool EraseWatchOnly(const CScript& script); + bool WriteMultiSig(const CScript& script); + bool EraseMultiSig(const CScript& script); + bool WriteBestBlock(const CBlockLocator& locator); bool ReadBestBlock(CBlockLocator& locator); @@ -106,8 +109,8 @@ class CWalletDB : public CDB // presstab bool WriteStakeSplitThreshold(uint64_t nStakeSplitThreshold); - bool WriteMultiSend(std::vector > vMultiSend); - bool EraseMultiSend(std::vector > vMultiSend); + bool WriteMultiSend(std::vector>>> vMultiSend); + bool EraseMultiSend(std::vector>>> vMultiSend); bool WriteMSettings(bool fMultiSendStake, bool fMultiSendMasternode, int nLastMultiSendHeight); bool WriteMSDisabledAddresses(std::vector vDisabledAddresses); bool EraseMSDisabledAddresses(std::vector vDisabledAddresses);

aGXhMgXvm@I%17~MeUStHQfK;Fx+ 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 B$R+>) literal 17454 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 diff --git a/share/pixmaps/bitcoin256.xpm b/share/pixmaps/bitcoin256.xpm index 74f842d..a5e2b7b 100755 --- a/share/pixmaps/bitcoin256.xpm +++ b/share/pixmaps/bitcoin256.xpm @@ -1,397 +1,982 @@ /* XPM */ -static char *bitcoin256[] = { -/* columns rows colors chars-per-pixel */ -"256 256 135 2 ", -" c #2F263C", -". c #30263D", -"X c #31293F", -"o c #372F44", -"O c #382F44", -"+ c #392F48", -"@ c #373044", -"# c #383045", -"$ c #373048", -"% c #3B324A", -"& c #3F384C", -"* c #3F3651", -"= c #41394E", -"- c #413653", -"; c #433A55", -": c #453A5A", -"> c #483C5E", -", c #4B3E62", -"< c #4E3E6B", -"1 c #474055", -"2 c #4A4256", -"3 c #4E475A", -"4 c #4F485B", -"5 c #524A5D", -"6 c #4D4065", -"7 c #4F4169", -"8 c #554E61", -"9 c #51446C", -"0 c #575062", -"q c #5B5466", -"w c #5E5768", -"e c #5F596A", -"r c #554576", -"t c #564874", -"y c #584976", -"u c #574678", -"i c #584779", -"p c #5C4C7C", -"a c #5F507F", -"s c #625B6D", -"d c #604F7F", -"f c #655E70", -"g c #60507F", -"h c #676171", -"j c #696373", -"k c #6E6877", -"l c #6E6879", -"z c #76707E", -"x c #5F4F80", -"c c #5F5080", -"v c #604F81", -"b c #635582", -"n c #675885", -"m c #685A87", -"M c #6A5B88", -"N c #6F618B", -"B c #72648E", -"V c #777181", -"C c #7B7584", -"Z c #7E7987", -"A c #746690", -"S c #766991", -"D c #7B6E95", -"F c #7D7097", -"G c #7E7299", -"H c #827D8A", -"J c #847C91", -"K c #82759A", -"L c #867A9E", -"P c #897EA0", -"I c #86818F", -"U c #878390", -"Y c #8B8693", -"T c #8D8895", -"R c #948F9B", -"E c #97949E", -"W c #98949E", -"Q c #8D82A3", -"! c #9186A6", -"~ c #938AA6", -"^ c #958AAA", -"/ c #988FAC", -"( c #9995A0", -") c #9D99A4", -"_ c #9B92AF", -"` c #9E95B1", -"' c #A19DA8", -"] c #A197B3", -"[ c #A49BB5", -"{ c #A69EB8", -"} c #A5A1AC", -"| c #ABA7B1", -" . c #ADA9B3", -".. c #ACA4BC", -"X. c #B2AEB7", -"o. c #B6B2BB", -"O. c #B9B6BE", -"+. c #B3ACC2", -"@. c #B7B1C6", -"#. c #B9B2C7", -"$. c #BDBAC2", -"%. c #BBB5C9", -"&. c #BEB8CB", -"*. c #C1BEC5", -"=. c #C2BCCE", -"-. c #C4BFD0", -";. c #C3C0C7", -":. c #C5C2C9", -">. c #CAC7CE", -",. c #CAC8CE", -"<. c #C6C1D1", -"1. c #CAC5D4", -"2. c #CECAD4", -"3. c #CEC9D8", -"4. c #D1CED3", -"5. c #D2CEDB", -"6. c #D3D1D7", -"7. c #D6D2DC", -"8. c #D8D6DB", -"9. c #DAD9DD", -"0. c #D7D3E0", -"q. c #DAD6E1", -"w. c #DCD9E3", -"e. c #E2DFE8", -"r. c #E3E2E6", -"t. c #E4E2EA", -"y. c #E8E6ED", -"u. c #EBE9EE", -"i. c #EEECF1", -"p. c #F0EFF2", -"a. c #F2F1F5", -"s. c #F7F6F8", -"d. c #F8F7F9", -"f. c gray100", -"g. c None", -/* pixels */ -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.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.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.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.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.r.r.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.u.2.} H q = y A Q ..3.u.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.p.6. .I s = o . . X o t i u u i v S ^ +.5.i.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.a.9.o.T f 2 o X o @ o o o o t p p p p i i u r u n D / #.0.a.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.r.$.R k 4 # X . o o o @ o o o o o o o 9 p p p p p p p p p p p u u i M K ` &.e.a.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.y.:.' V 8 % X X o o o o o o o o @ o o o o o o o t a p p p p p p p p p p p p p y i u u p B L ..<.t.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.u.,.} Z q = o X @ @ @ o o o o o o o o o o o o o o o o o 9 p p p p p p p p p p p p p p p p p p i y i r u g B Q ..3.y.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.p.6. .I s ; @ . . X o o o o o @ o o o o o o o o o o o o o o o o o o o t p p p p p p p p p p p p p p p p p p p p p p p i i u u i b S ^ +.5.u.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.a.9.o.T h 2 o X X # @ o @ @ o o o o o o o o o o o o o o o o o o o o @ o o o t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i u u i n D / #.0.p.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.s.w.O.E k 3 # . X o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o @ @ t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i i u p M G ] &.w.a.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.r.:.) z 5 & X X o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ o # 9 d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i u u u p N L [ <.e.s.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.u.>.} C 0 & o X o o @ @ o o o o o o o o o o o o o o o @ o o @ o o o o o o o o o o o @ o o o o o o # # + y v d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p y u u u g B P ..1.y.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.p.6.| H s = o X X o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o @ o o o o o @ @ # # + # # O # # # t p p p p v v v v p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i p i u u i v S ! +.5.p.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.a.8.o.T h 2 o X X o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o @ @ @ @ O # # # # # # # # + g.g.g.g.g.g.g.g.g.g.g.g.p p p p p v v v a p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i u u i n D / #.0.p.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.s.w.$.R k 3 # X X o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ O o @ @ o o o o O # # + # # O # # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p p c v c v p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i u u p M K ` =.w.a.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.r.:.) z 5 % X X X o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o O o @ @ o o # # + + # # O O $ + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p d v c c x p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i p p i i u u p M L [ <.e.s.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.y.>.} C q & o X X @ o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o O # # + # # @ # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p p v v c p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i i u u i p B P ..1.y.d.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.u.4.| H s = o . . X o o o o o o o o o @ o o o o o @ o o o o o o O o o o o o o # # @ @ O # + # # # @ # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p p x c v v c p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i i u u v S ! +.5.u.d.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.$.Y f 1 @ X X o o @ o @ o o o o o o o o o o o o o o o o o o o o o o o o @ o O # # + + @ @ # @ % g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.x p p p p c v x x p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i y u i b D / %.a.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.f X o o o o o o o o o o o o o o o o o o o o o @ @ o o o O o o @ O # # + # # O # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p v v v v p p p p p p p p p p p p p p p p p p p p p p p p p p p p i p p i u b w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o o o o o o o o o o o o o o o o o o o @ @ o o # # + # # # # $ g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p v v v p x p p p p p p p p p p p p p p p p p p p p p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o o o o o @ o o o o # @ @ o o o o # + % # # @ # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p p v x x x p p p p p p p p p p p p p p p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o o o o o @ # o @ o # # + o O o + # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p p g g a v v v v p p p p p g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p x p p p v v g p p p p p p p p p p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o o o O # + + # # O # + # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p p v v v x x p p p p p p p p p p p x x b x p p p p p g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p x p v v v p x p p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o o O o O # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.x p p p p c v c p a p p p p p p p p p p p p p p p p p p p p p p p p v v v p p a p p g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p i p p v v v v p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g g g p p p p p g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p c x x v x p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g g g g a p a x p g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O $ O g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p a p g g x x p p p p p p p p p p p p p p p p a p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p x x x p p p p p g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.x y p a p v v v v p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p x v v v p p p a p g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o o g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p c c v v g p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p d v g g p p p p p g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p p p v v v v x p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p v v v d p y p p p g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.x d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o $ O g.g.g.g.g.g.g.g.g.g.g.g.g.g.# + # o o > v v x p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p x x v v v p p p p p g.g.g.g.g.g.g.g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o o g.g.g.g.g.g.g.g.+ # # # # + # # # o o ; i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p d g v v c p p p p g.g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ @ o o o # g.g.g.g.g.g.g.# # # # # o o o o o o o * t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p x v c g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.# # @ o o o o o o o o o O t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p a p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O o O g.g.g.g.g.g.g.# # @ o o o o o @ o o o O 9 p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# # @ @ o o o o o o O o o 6 p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o O O o g.g.g.g.g.g.g.O # @ o o o o o o o o o o , p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # @ o o O O g.g.g.g.g.g.g.# O @ o o o o o o o o o o ; y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p a y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O O O g.g.g.g.g.g.g.O # @ o o o o o o o o o X * y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O O O g.g.g.g.g.g.g.# @ @ o o o o @ o o o o @ # t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.# @ O @ @ @ @ @ @ X O O O @ 9 p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o O o $ O g.g.g.g.g.g.g.# # @ @ @ @ @ @ O O X @ O @ 3 p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p a p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o @ o o O g.g.g.g.g.g.g.O O @ @ @ O O @ O O @ @ o o : p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p a p p p p p p p a p p p a p p p p p p p a p p p p a p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.O O O @ X O O O O O @ @ o o - y p p p p p p p p p p p p p p p p p p p p p p p p p p p p i i i y u i u u i i i i i i u u u i y i i i i i i i u u u u i i i i i i y i i i i i i i i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# # # @ o o o o o o o o o o O t p p p p p p p p p p p p p p p p p p p p p p p p p p p i M F F F G G F F F F F F F F F F G F F F F F F F F F F F G F F F F F F F G F F F F F F D N b p u u u i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.O # # @ o o o O o o o o o o o 7 p p p p p p p p p p p p p p p p p p p p p p p p p p p u _ d.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.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.d.i.e.1...! B p u u y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.O O O o o o o o o o o o o o o > d p p p p p p p p p p p p p p p p p p p p p p p p p p u _ d.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.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.w.+.L v u i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.O O O o o o o o o o o o o o o - p p p p p p p p p p p p p p p p p p p p p p p p p p p u ` d.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.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.r...B u u p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.# # @ o o o o o o o o o o o o % y p p p p p p p p p p p p p p p p y p p p p p p p p p r _ d.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.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.a.&.S u t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o o g.g.g.g.g.g.g.# # @ o o o o o o o o o o o o o t p p p p p p p p p p p p p p p p d p p p p p p p p p r ` d.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.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.f.f.d.+.M t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o + O g.g.g.g.g.g.g.o # @ o o @ o o o o o o o o o o 6 p p p p p p p p p p p p p p p p p p p p p p p p p p r _ d.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.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.f.f.f.f.y.~ i y p p p p p p p p p p p p p p p p p w p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.# @ @ o o o o o o o o o o o o o - p p p p p p p p p p p p p p p p p p p p p p p p p p r _ d.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.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.f.f.f.f.f.f.%.b y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o o g.g.g.g.g.g.g.# @ O @ @ o o o o o o o o o o o = i p p p p p p p p p p p p p p p p p p p p p p p p p u ` d.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.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.f.f.f.f.f.f.f.q.A u p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o $ O g.g.g.g.g.g.g.O # O o o o o o o o o o o o o o o 9 p p p p p p p p p p p p y d p p p p p p p p p p p u ` d.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.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.f.f.f.f.f.f.f.f.y.D u p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# # O o o o o o o o o o o o o o o > p p p p p p p p p p p p p p p p p p p p p p p p p u L <.1.1.1.1.1.1.<.-.:.:.-.=.<.<.=.%.%.%.%.#.#.#.%.#.+.+.+.+.+.+.+.+.+.+.+.+.+...+.+.=.5.e.a.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.u.G r p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o o g.g.g.g.g.g.g.# @ O @ o o o o o o o o o o o o o = p p p p p p p p p p p p p p p p p p p p p p p p p x y i i u i u i i u u y t u u u u u u u r u u u r u r r r u u r r r r r r r r r r r u u i p M K ..5.s.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.y.S u p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o = g.g.g.g.g.g.g.@ @ O @ X @ @ @ o o o o o o o o O O i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i p p p p p p p p p p p p p p p p y y u i A [ w.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.w.M u p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p x p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o O o $ X g.g.g.g.g.g.g.# O O @ O @ @ O o o o o o o o o O o , p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i u b / r.f.f.f.f.f.f.f.f.f.f.f.f.f.f.1.y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x x p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o @ o o O g.g.g.g.g.g.g.@ # @ O O O O O o o o o o o o o O o - d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p u n +.d.f.f.f.f.f.f.f.f.f.f.f.f.d.] u p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.@ # O @ O O O O o o o o o o o o o o O t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i u P u.f.f.f.f.f.f.f.f.f.f.f.f.p.A u p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p x p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# @ @ O @ @ @ O o o o o o o o o o o o 6 d p p p p p p p p p p p p p p p p y d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p u S e.f.f.f.f.f.f.f.f.f.f.f.d.<.u p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.O # @ O @ @ @ X o o o o o o o o o o o : p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p u B r.f.f.f.f.f.f.f.f.f.f.f.d.L u p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o # g.g.g.g.g.g.g.@ @ @ O O O X @ O o o o o o o o o o o O i p p p p p y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i D p.f.f.f.f.f.f.f.f.f.f.f.3.i p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.@ @ @ O O O O @ o o o o o o o o o o o o 6 p p p p p d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i ^ f.f.f.f.f.f.f.f.f.f.f.d.K u p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.@ # @ @ @ @ @ @ o o o o O o o o o o o o - p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p =.f.f.f.f.f.f.f.f.f.f.f.%.u p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o # g.g.g.g.g.g.g.# # O @ @ O @ @ o o o o o o o o o o o o # t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i B p.f.f.f.f.f.f.f.f.f.f.u.M i p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O O O g.g.g.g.g.g.g.@ O O @ @ O O O o o o o o o o o o o o o o > p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i +.f.f.f.f.f.f.f.f.f.f.d.^ u p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O O O g.g.g.g.g.g.g.O O O @ @ X O O o o o o o o o o o o o o o = p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i S a.f.f.f.f.f.f.f.f.f.f.=.u p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o O O g.g.g.g.g.g.g.# # # @ o o o o o o o o o o o o o o o o o o 9 d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p 1.f.f.f.f.f.f.f.f.f.f.t.b i p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o O O g.g.g.g.g.g.g.O # @ @ o o o o o o o o O o o o o o o o o o - p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p y ^ f.f.f.f.f.f.f.f.f.f.d.F i p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o O O O g.g.g.g.g.g.g.O O O o o o o o o o o o o o o o o o o o o o # t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p B p.f.f.f.f.f.f.f.f.f.d._ u p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o O O O O g.g.g.g.g.g.g.O O O o o O o o O o o o o @ o o o o o o o o o > p p p p p p p p p p p d y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p v 7.f.f.f.f.f.f.f.f.f.d.+.u p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# # O o o o o o o o o o o O o o o o o o o o o % i p p p p p p p p p p p p p y p y p i p p y p i p p p p p p i p p y p i p p p p p p i p p y p i p p p p i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i +.f.f.f.f.f.f.f.f.f.d.3.i p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# # O o @ o o o o o o o o o o o o o o o o o O O 6 p p p p p p p p p p p p a c c c x v p p p c x v p p p p x c p p p c x v p p p p x c p p p c x g p p p g p a p p p p p p p p p p p p p p p p p p p p p p p p p p p p ` f.f.f.f.f.f.f.f.f.f.w.p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.O O O @ o o o o o o o o o o o o o o o o o o o o - p p p p p p p p p p p u ..w.t.e.r.t.t.t.e.e.t.t.t.e.r.e.r.t.t.t.e.e.t.t.t.e.r.e.r.t.t.t.e.e.t.r.r.e.r.e.r.y.F i p p p p p p p p p p p p p p p p p p p p p p p p p p Q f.f.f.f.f.f.f.f.f.f.y.n p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.O O O @ o O o o o o @ o o o o o o o @ o o o o o O 9 p p p p p p p p p p u =.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.f.f.f.f.f.f.f.f.f.f.f.f.f.f.P u p p p p p p p p p p p p p p p p p p p p p p p p p p K f.f.f.f.f.f.f.f.f.f.p.M i p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.# O O @ @ @ @ o o o o o o o o o o o o o o o o o o - p p p p p p p p p p y =.d.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.f.f.f.f.f.f.f.f.f.f.f.f.f.P u p p p p p p p p p p p p p p p p p p p p p p p p p p S d.f.f.f.f.f.f.f.f.f.a.B i p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o $ O g.g.g.g.g.g.g.# # O @ @ @ @ @ o o O o o o o o o o o o o o o o o o 9 p p p p p p p p p u =.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.f.f.f.f.f.f.f.f.f.f.f.f.f.f.P u p p p p p p p p p p p p p p p p p p p p p p p p p y S a.f.f.f.f.f.f.f.f.f.a.A y p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o O O g.g.g.g.g.g.g.O @ O @ X O O @ o o o o o o o o o o o o o o o o O o ; p p p p p p p p p u &.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.f.f.f.f.f.f.f.f.f.f.f.f.f.f.P u p p p p p p p p p p p p p p p p p p p p p p p p p i A d.f.f.f.f.f.f.f.f.f.a.A p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o # g.g.g.g.g.g.g.# # # @ O O @ @ o o o o o o o @ o o o o o o o o O O O 9 p p p p p p p p t &.d.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.f.f.f.f.f.f.f.f.f.f.f.f.f.P i p p p p p p p p p p p p p p p p p p p p p p p p p p A d.f.f.f.f.f.f.f.f.f.a.A i p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# # O @ O X @ @ o @ o o o o o o o o o o o o o o o o o ; p p p p p p p p u =.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.f.f.f.f.f.f.f.f.f.f.f.f.f.f.P u p p p p p p p p p p p p p p p p p p p p p p p p p p G d.f.f.f.f.f.f.f.f.f.p.N p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o # g.g.g.g.g.g.g.O O O @ O @ @ @ o o o o o o o o o o o o o O o o o o o o 7 p p p p p p p u =.d.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.f.f.f.f.f.f.f.f.f.f.f.f.f.P u y p p p p p p p p p p p p p p p p p p p p p p p p y P f.f.f.f.f.f.f.f.f.f.y.M i p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.# @ O @ O O O @ o o o o o o o o o o o o o o o o o o @ X - p p p p p p p u ..e.y.y.t.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.t.y.y.y.y.y.y.y.y.y.y.y.y.y.L i p p p p p p p p p p p p p p p p p p p p p p p p p i / f.f.f.f.f.f.f.f.f.f.e.v p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o # g.g.g.g.g.g.g.@ # O @ O O O O o o o O o o o o o o o o o o o o o @ @ o o 7 p p p p p p p g d v v p g g g p v v p v a a p g g p g g p g p v a a g p g a a p g g p g g p g a p p p p p p p p p p p p p p p p p p p p p p p p p p p p i ..f.f.f.f.f.f.f.f.f.f.5.i p p p p p p p p y p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o @ O g.g.g.g.g.g.g.# @ @ O @ @ @ O o o o o o o o o o o o o o o O o o o o o o * y p p p p p p p p p y p p p p p p y p y p p i p p y p i p p p p p y y p p p y p p p i p p y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p a <.f.f.f.f.f.f.f.f.f.f.&.u p p p p p p p p a p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o # g.g.g.g.g.g.g.O # O @ @ @ X O o o o o @ o o o o o o o o o o o o o o o o o 6 p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p M y.f.f.f.f.f.f.f.f.f.d.{ r p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O $ O g.g.g.g.g.g.g.@ @ @ O O @ O O O o o o o o O o o o o o o o o o o o o o o o % t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i K f.f.f.f.f.f.f.f.f.f.d.L u p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o # g.g.g.g.g.g.g.@ @ O @ O O O X o o o o o o o o o o o o o o o @ o o o o o o o : p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i ..f.f.f.f.f.f.f.f.f.f.p.M p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ @ o o o O g.g.g.g.g.g.g.O # # @ @ @ @ @ o o o o o o o o o o o o o o o o o o o o o o o o < p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p n e.f.f.f.f.f.f.f.f.f.f.5.y p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.@ # @ @ @ @ @ @ o o o o o o o o o o o o o o o o o o o o o o o o = y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i ! f.f.f.f.f.f.f.f.f.f.d...u p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O o O g.g.g.g.g.g.g.O # @ @ X O O @ o o @ o o o o o o o o # o o o o o o o o o o o o o > p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g 6.f.f.f.f.f.f.f.f.f.f.s.D i p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.O O O @ O O O @ o o o o o O o o o o o o o o o o o @ o o o o o o o O t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p y ! f.f.f.f.f.f.f.f.f.f.f.7.p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# # O @ o o @ o O o o o o o o o o o o o o o o o o o o o o o o o o o * i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p M y.f.f.f.f.f.f.f.f.f.f.d.` u p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o $ O g.g.g.g.g.g.g.# O # @ o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o > p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p *.f.f.f.f.f.f.f.f.f.f.f.u.M i p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.O O O o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o O 9 v p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p y [ f.f.f.f.f.f.f.f.f.f.f.d...u p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.O O O o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o = i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i ` d.f.f.f.f.f.f.f.f.f.f.f.y.M i p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.# # @ o o o o o o o o o o o o o o o @ o o o o o @ o o o o o o o o o o o o - p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i p [ d.f.f.f.f.f.f.f.f.f.f.f.d.` t p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o O o $ O g.g.g.g.g.g.g.# # @ o o o o O o o o @ o o o o o o o o o o o o o o o o o o # o o o o o o o 6 p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i b @.f.f.f.f.f.f.f.f.f.f.f.f.f.6.p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o @ o o O g.g.g.g.g.g.g.@ # @ o o o o o o o o o O o o o o o o o o o O o o o o o o o o o o o o o o o O 9 p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i i L w.f.f.f.f.f.f.f.f.f.f.f.f.f.p.S t p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.# @ @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O O o = y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i u p F <.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d._ u p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o o g.g.g.g.g.g.g.# o O @ @ o o o o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o @ O o ; p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p i i u u M ^ 3.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.#.i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# # O o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o > p p p p i u u u u y i i i i y y i i i i i i i i i i i i i i i i i i y y i i i i i i i i p v B L [ 3.p.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.-.p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.@ # @ o o @ o o o o O o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o , p p i Q =.<.<.<.<.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.5.7.w.i.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.1.c i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o o g.g.g.g.g.g.g.# O O o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o # 9 p u ..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.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.f.f.f.f.f.f.d.=.a i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o # g.g.g.g.g.g.g.# @ O @ X @ @ @ o o o o o o o o o o o @ o o o o @ o o o o o o o o o o o o o o o o o o + 9 r ..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.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.f.f.f.f.f.d...p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.a p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.@ O O @ O @ @ @ o o o @ o o o o o o o o o o o o o o o o o o o o @ o o o o o o O o o o o + < ..d.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.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.f.f.f.i.! i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O $ O g.g.g.g.g.g.g.# # O @ O O O O o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ $ [ 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.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.f.f.f.-.N i e p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o # g.g.g.g.g.g.g.# O O @ O O O O o o o o o o o o o o o O o o o o o o o O o o o o o O o o o o o o o o o o o ( d.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.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.q.Q y i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.@ # O O @ @ @ O o o o o o o o o o o o o o o o o o o o o o @ o o o o o o o o @ o o o o o o . E d.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.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.q.^ v u p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.# @ @ O @ @ X O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . E d.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.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.p.=.L p u y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o $ # g.g.g.g.g.g.g.@ @ @ O O @ O X o o o o o o o o O o o o @ o O o o o o o o O o o o o o o o o o o o o o o o . ( d.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.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.y.&.! M i i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.@ @ @ O O O O @ o o o O @ o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o X E d.f.f.f.f.f.f.f.f.f.d.p.a.a.p.a.p.a.p.a.a.a.p.p.p.a.a.a.p.a.p.a.a.p.p.a.p.p.p.p.u.t.7.-...Q A p u u i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p y p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ @ o o o O g.g.g.g.g.g.g.O # @ @ @ @ @ @ o o o o o o o o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f._ b M n n M M M M n M n m m m n m m m m m m m m M M m m m b c a i u u i y y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o # g.g.g.g.g.g.g.@ # @ @ @ @ @ @ @ o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o O . W d.f.f.f.f.f.f.f.f.f.! u i i p p u i p i p p p p u p i p p p u i p i i x i p i p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O o O g.g.g.g.g.g.g.# # O @ @ O O O o o o o o o O o o @ o o o o o o o o o o o o o o o o o O o o o o o o o o o W d.f.f.f.f.f.f.f.f.f.! u p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.O O O @ X O O O o o o o o o o o o O o o o o o o o o @ o o o o o o o o o o o o O o o o o o E f.f.f.f.f.f.f.f.f.f.^ u p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o O O # g.g.g.g.g.g.g.# # @ @ o o o o o o O o o o o o o o o o o o O o o o o O o o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.! r p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o O O O g.g.g.g.g.g.g.# O O @ o o o o o o o o o @ o o o o o o o @ o o o o o o o o o o o o o o o o O o o o o o o W d.f.f.f.f.f.f.f.f.f.J 9 x p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o O O g.g.g.g.g.g.g.O O O O o o @ o o o o o o o o o o o o o o o o o o o o o o o @ o o o o o o @ o o o o o o o E d.f.f.f.f.f.f.f.f.f.C o 9 a p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O O # g.g.g.g.g.g.g.O O O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o E f.f.f.f.f.f.f.f.f.f.C @ , p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# # @ o o o o o o o o o o o o @ o o o o O o o o o o o o o o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.C . o o - y d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p x p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# # @ o o o o o @ o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o E d.f.f.f.f.f.f.f.f.f.C X o o o # 9 p p p p p p p p p p p p p p p p p p p p p p p p p p p y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x x p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.# O O o o O o o o o o o o o O o o o o o @ o o o o o o o o o o o o o o @ o o o o o o o o o E f.f.f.f.f.f.f.f.f.f.C . o o o o X : y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.@ O O o o o o o o o o o o o o o o o o o o o o o o o o o o O o o O o o o o o o o o o o o o E d.f.f.f.f.f.f.f.f.f.C . o o o o o o * 9 p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p x p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.# # @ @ @ @ o o o o o o @ o o o o o o o o o o o o o O o @ o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.C . o o o o o @ o @ ; y d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o $ O g.g.g.g.g.g.g.# O O @ @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.C X o o o o o o o @ X % , p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o O O g.g.g.g.g.g.g.@ # O @ o o o o O o o o o o o o o @ o o O o o o o o o o o o O o o o o o o o # o o o @ o o . R f.f.f.f.f.f.f.f.f.f.C . o o o o o o o o o o o = 7 a p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.# O O @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o . ( d.f.f.f.f.f.f.f.f.f.C X o O o o o o o o o o o o o ; t p p p p p p p p p p p p p p p p p p p p p p p p a p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.# @ @ o o o o @ o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o @ E d.f.f.f.f.f.f.f.f.f.C . o o o o o o o o o o o o o o # : y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j @ o o o o O g.g.g.g.g.g.g.O # O o o o o o o o o o o o o o o o o O o o o o O o o o o o o o o o o o o o o o o o o o @ E d.f.f.f.f.f.f.f.f.f.C X o o o o o o o @ o o o o O o o o # , y p p p p p p p p p p p p p p p p p p p p p p p p p p p y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.# O @ o o o o o o o o o o O o o o o o o o # o o o o o o o o o o @ o o o O o o o o o o o @ . W f.f.f.f.f.f.f.f.f.f.C . o o o o o o o o o o o o o o o o o o # , y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.x d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.@ # @ o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . ( d.f.f.f.f.f.f.f.f.f.C . o o o o o o O o o o o o o o o o o o @ o + > y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o @ O g.g.g.g.g.g.g.# # @ @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.C . o O o @ o o o o o o o o o o o o o o o o o o @ ; 9 p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o O g.g.g.g.g.g.g.# O O @ o o o o o o o o o o o o o o o o o o o o o o o o @ o o o o o o O o o @ o o o o o o . E d.f.f.f.f.f.f.f.f.f.C X o o o o o o o o o o @ o o o o @ o o o o o o o o o - 7 i p a p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o O $ O g.g.g.g.g.g.g.O @ O @ o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . ( d.f.f.f.f.f.f.f.f.f.C . o o o o o o o o o o o o o o o o o o o o o o o o o o o # > t p p p y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p d p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j o o o o o # g.g.g.g.g.g.g.# O O @ o o o o @ o O o o o o o o o o o o o o o o o o O o o o o o o o o o o O o o o o o o X E d.f.f.f.f.f.f.f.f.f.C . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o ; 6 y a p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o # g.g.g.g.g.g.g.# + # o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.C . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X # : 9 y d d d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.p p p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.d.j # o o o o O g.g.g.g.g.g.g.g.# # o o o o o o o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.C . o o o o o @ o o o o o o o o o o o o o o o o o o o o @ o o o o O O X @ # ; 7 y p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p v p g.g.g.g.g.g.g.p v p p p p M w.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.l # o o o o O g.g.g.g.g.g.g.g.# o o o @ o o o o o o @ o o O o o o o o o o o O o o o o o o o o o o o o o @ o o o o o o . R f.f.f.f.f.f.f.f.f.f.C . o o o o o o o o O o o o O o o o o o o o o o o o o o o o o o o o o O O @ @ @ # - 7 t i d d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p x g.g.g.g.g.g.g.g.p p p p p i B y.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.Z # o o @ o O g.g.g.g.g.g.g.g.# o @ o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o O o o o o o o o O o . ( d.f.f.f.f.f.f.f.f.f.C X o o @ o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o O O @ @ @ @ @ X o = ; 9 y p d p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.g.p x p p p p S p.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.R # @ @ o o # # g.g.g.g.g.g.g.g.+ # o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o @ o o @ E d.f.f.f.f.f.f.f.f.f.C o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X O # - > 7 t p p d d p p p p p p p p p p p p p p p p p p p p p p p p p p p p x p g.g.g.g.g.g.g.g.p p p p p p L d.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.X.& o o o o # # g.g.g.g.g.g.g.g.# # O o o o o o O o o o o o o o o o o o o o o o o o o o o O o o @ o o o o o o o o o @ E d.f.f.f.f.f.f.f.f.f.C . o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o X o o = ; 6 9 i p p d p p p p p p p p p p p p p p p p p p p p p p p p v g.g.g.g.g.g.g.g.g.x p p p p p ^ f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.6.1 o @ @ o O # g.g.g.g.g.g.g.g.# # # o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o O o o o o o @ . E f.f.f.f.f.f.f.f.f.f.C X o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o O o o o o o o o o o o o o o X o O % ; > 7 t i p p p p a p p p p p p p p p p p p p p p p p g.g.g.g.g.g.g.g.x p p p p p v +.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.a.w X @ @ @ O % g.g.g.g.g.g.g.g.g.# o o o o o @ o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.C . o o o O o o o o o o o o o @ o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o O O o o o o @ # % ; > 6 9 t y i p d p d p p p v p x p p v g.g.g.g.g.g.g.g.g.p p p p p p n 7.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.U @ o o o o O O g.g.g.g.g.g.g.g.g.+ # @ o o o o o o o o o o o o o o o @ o o o o o @ o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.C . @ o O o o o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o @ o o o o o o o O o o o o o o o o o o o o o o o o o o o X o o o # + * - ; > 6 6 9 9 u t i p p g.g.g.g.g.g.g.g.x x p p p p p F a.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.$.= o o o o o # g.g.g.g.g.g.g.g.g.# @ @ @ o o o o o O o @ o o o o o o o o o o o o o o o o o o o o o o o @ o o o o o . E d.f.f.f.f.f.f.f.f.f.C . o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o O o o o o o o O o o o o o o o @ o o o o o o o o o o o o o # # % % g.g.g.g.g.g.g.g.g.p x p p p p p ] f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.u.q o o o o o + # g.g.g.g.g.g.g.g.g.# @ @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o . R f.f.f.f.f.f.f.f.f.f.C . @ o o o o o o o o o o o o @ o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ @ # g.g.g.g.g.g.g.g.g.g.x p p p p p b 5.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.R @ o o o o O # g.g.g.g.g.g.g.g.g.g.@ # o o o o o o o o o o o o o O o o o o o o o o o o o O o o o o o o o o o o o . ( d.f.f.f.f.f.f.f.f.f.C . o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ # # g.g.g.g.g.g.g.g.g.p x p p p p p K s.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.8.2 o o O o o # # g.g.g.g.g.g.g.g.g.+ # @ o o o o o o o o o o o o o o o o o O o o o o o o o o # o o O o o o o o @ E d.f.f.f.f.f.f.f.f.f.C . o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o O o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ # # g.g.g.g.g.g.g.g.g.p v p p p p p v +.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.H @ o o o o o o g.g.g.g.g.g.g.g.g.g.+ # @ o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o E f.f.f.f.f.f.f.f.f.f.C . o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o @ O @ # g.g.g.g.g.g.g.g.g.g.p c p p p p i D p.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.4.1 o o o o o o # g.g.g.g.g.g.g.g.g.g.# O O o o O o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.C . o o o o @ o o o o o o o o O o o o o O o o o o o o @ o o O o o o o o o o o o o o o o o o @ o o o o O o o o o o o o o o O o o o o o o o o o o o o o @ o # + g.g.g.g.g.g.g.g.g.g.p c p p p p y v ..f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.I # o o o o o + # g.g.g.g.g.g.g.g.g.g.% O O o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o . W d.f.f.f.f.f.f.f.f.f.C X o o o o o O o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o @ # # g.g.g.g.g.g.g.g.g.g.g.v p p p p p y D p.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.w.4 o o o o o o # g.g.g.g.g.g.g.g.g.g.g.# # O o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o . E d.f.f.f.f.f.f.f.f.f.C o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o # o o o o o o o o o @ o o o o o o o o @ # # g.g.g.g.g.g.g.g.g.g.p p p p p p p v %.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.' # o o o o o o @ g.g.g.g.g.g.g.g.g.g.g.# # o o o o o O o o o o o o o o o o o o o o o o o o o o @ o o o o o . W f.f.f.f.f.f.f.f.f.f.C . o o o o o @ o o o o o o o o o o o o o o o o o o o o o O o o o o o o o O o o o o o o o O o o O @ o o o o o o o o o o o o o o o o o o o o o o o o @ # + g.g.g.g.g.g.g.g.g.g.p v p p p p p p L d.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.a.j @ o o o o o o # g.g.g.g.g.g.g.g.g.g.g.# # O o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o . ) d.f.f.f.f.f.f.f.f.f.Z o o o o o o o o O o o o o o o o @ o o O o o @ o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ @ # + % g.g.g.g.g.g.g.g.g.g.p c p p p p p i M 7.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.4.2 o o o o o o + # g.g.g.g.g.g.g.g.g.g.g.# # # o @ o o o o o o o o o o o o o O o o o o o o o o @ o o o o X f R W W W W W W W R W 8 o o O o o o o o o o o o o o o o o o o o o o o O o o o o o o o @ o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ # # + g.g.g.g.g.g.g.g.g.g.x v p p p p p p p ..f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.) % @ o o o o @ # # g.g.g.g.g.g.g.g.g.g.g.# # @ o o o o o o @ o o o o o o o o o o o @ o o o o O o o o o o X . o o o @ o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o O o o o o o o o o o o o o o o o o o o o # # g.g.g.g.g.g.g.g.g.g.g.p v p p p p p p i L s.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.d.V @ o o o o @ @ + # g.g.g.g.g.g.g.g.g.g.g.# O # o o o o O o o O o o o o o o o o o o o o o o o o o o o o # o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o O o @ o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o @ # O g.g.g.g.g.g.g.g.g.g.g.g.d p p p p p p i N q.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.y.q o o o o o @ # # # g.g.g.g.g.g.g.g.g.g.g.# # @ o o o o o o o @ o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o @ o o o o o o o O # O # g.g.g.g.g.g.g.g.g.g.g.g.p p p p p p p i v %.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.>.2 o o o o @ @ @ + # g.g.g.g.g.g.g.g.g.g.g.+ # @ o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o @ o o o o o o o o o o o O o o o o o o o o o o o o o o O o o o @ o o o o o o o o o o o o o o @ # # g.g.g.g.g.g.g.g.g.g.g.g.d x p p p p p p p [ f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.X.& o o o o o o o # # g.g.g.g.g.g.g.g.g.g.g.% # # @ @ o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o @ o o o o o o @ o o o o o o o o o O o o o o o o o o o o o o o @ @ % # g.g.g.g.g.g.g.g.g.g.g.g.v p p p p p p p p Q a.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.) # o o o o o o O # # g.g.g.g.g.g.g.g.g.g.g.g.# # @ @ o O o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o @ # O + g.g.g.g.g.g.g.g.g.g.g.p a p p p p p p p i D u.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.d.T # X o o o o o o # # g.g.g.g.g.g.g.g.g.g.g.g.+ # @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o @ o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o @ o o o @ # O # g.g.g.g.g.g.g.g.g.g.g.g.p c p p p p p p p p A w.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.s.H o o o o o o o O # # g.g.g.g.g.g.g.g.g.g.g.g.+ # # @ o o o @ o o o o o O o o o o O o o o o o o o @ o o o o o o @ o o o o o o o o o o o o o o o o o o @ O o o o o o o o o o o o o o o o O o o o o o o o o o o o O o o @ o o o o o o o o o o o o # # # g.g.g.g.g.g.g.g.g.g.g.g.x v p p p p p p p i M 6.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.a.C o o o @ o o o o O # g.g.g.g.g.g.g.g.g.g.g.g.g.# O @ o O O O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ # # + g.g.g.g.g.g.g.g.g.g.g.g.x v p p p p p p p i n 1.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.a.V o o o o o o o o # # g.g.g.g.g.g.g.g.g.g.g.g.g.# + @ O O o O o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o @ o o o o o o O o o o o o o O O # # # g.g.g.g.g.g.g.g.g.g.g.g.g.x x p p p p p p p p n <.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.a.C o o o o o o o o o # # g.g.g.g.g.g.g.g.g.g.g.g.g.# O # o o o o o @ o o O o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o @ o o o o o o O o o o o O o o o o @ o o o o o o o o o o O o o o o o o o o o o o o o o o o @ # O + g.g.g.g.g.g.g.g.g.g.g.g.g.x p p p p p p p p i n -.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.a.H o o o o o O @ @ # # + g.g.g.g.g.g.g.g.g.g.g.g.g.# # # o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o @ o @ # # g.g.g.g.g.g.g.g.g.g.g.g.g.a p p p p p p p p p i n <.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.d.Y # o # o o o o o o # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.# # @ @ @ @ o O o o o o o o o o @ o o o o o o o o o o o o O o o o o o o o o o o O o o o O o @ o o o o o o o o O o o o o o o o o o @ o o o o o o @ o o o o O o @ @ # # # # g.g.g.g.g.g.g.g.g.g.g.g.g.p x p p p p p p p p i M 1.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.d.( # o o o o o o o o o # + g.g.g.g.g.g.g.g.g.g.g.g.g.# # # @ @ o o o o o o o o o o o o o o O o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o @ @ # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.x x p p p p p p p p p N 5.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.| = o o o o o o o o @ # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.# # @ o o o o o o @ o o o o o o o o o o o o o o o o o o o o o @ o O o o o o o o o o o o o o o o o o o @ o o o o o o O o o o o o o o o o o o o o o o o @ # # + g.g.g.g.g.g.g.g.g.g.g.g.g.p x p p p p p p p p p i S w.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.*.3 X o o o o o o o # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.% # O # o o o o o o o o O o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o # # # O g.g.g.g.g.g.g.g.g.g.g.g.g.g.p v p p p p p p p p p p K t.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.6.w X o o o o o o o o O # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.@ % # @ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o # o o o o o o @ o @ o o o o @ # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.p x p p p p p p p p p p p ! p.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.y.z o o o o o o o O o # # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.# @ @ o o O o o o o @ o o o o o O o o o o o o o o o o o o o o O @ o o o o o o o O o o o o o o o o o o o o o o o o o o o o o @ @ o @ # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.x v p p p p p p p p p i p [ d.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.d.R # o o o o o o o @ o O # % g.g.g.g.g.g.g.g.g.g.g.g.g.g.% # # # O o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o O @ @ # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.p x c p p p p p p p p p i n #.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.o.2 X o o o o @ o o o o + @ g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.# # O @ o o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o @ o o o o O o o o o o o o o o o o @ # + + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.v v p p p p p p p p p p i A 5.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.8.f o o @ o o o o o o @ # # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.+ # # @ @ o o o o o o o o o o o o @ o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o @ @ # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p x x p p p p p p p p p i p Q y.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.a.T o X o o o o o o @ @ @ # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.# + @ @ o o o o o o o o o o o o o o O o o o o o o o o o O o o o o o o o o o o o o o @ o o o o o o o o # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.x x p p p p p p p p p p i g { d.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.X.1 X o o o @ o o o o o O + # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.+ # # # o O o o o o o O o o o o o o o o o o o o o o o o o o o o # o O o o o o o o o o o o o # @ # # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p x p p p p p p p p p p i M <.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.9.k X o o @ @ O o o o o o # o % g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.# # # @ o o o o o o o o o o o o o o @ o o o o o o o o o o o o o o o o o o o o o o o o @ # # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p v p p p p p p p p p p p u K r.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.d.) % o o @ o o o o o o o o # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.@ # # o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o @ @ @ o @ @ + # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.v v p p p p p p p p p p p i p { d.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.4.s X X o o o o o o o o @ @ # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.# # # @ # o o o o o o o o o o o o o o o o o o o o o o o o @ o o o @ @ o # # $ g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.x p c p p p p p p p p p p p u A 3.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.a.R % o @ o o o o o o @ o o O # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.+ # # o o o o o o o o o o o o o @ o @ o o o o o o o o o o o o # + # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p x c p p p p p p p p p p p i y / i.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.4.w X o o o o o o @ o o o # # # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.+ # # o o o o @ o o o o o o o o o o o o o o o o o o O # # # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p x v p p p p p p p p p p p p i N -.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.s.) = X o o o o o o o o o o o # # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.# # # o o @ @ @ o o o o O o o o o o o @ o o o # # # + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.x x x p p p p p p p p p p p p i ^ y.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.8.k o X o o o o o o o o o o # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.% O # @ @ o o o o o o o o o o @ @ o o # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p v c p p p p p p p p p p p p u N =.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.d.| 2 X o o o o o o o o o # @ # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.% # + # @ o o o o o o o o # # + # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p v p p p p p p p p p p p p i p / u.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.r.H # X o o o o o o o @ @ o o # + + g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.# # + # o o o o o o # + # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p x v p p p p p p p p p p p p y i D 1.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.;.w X o o o @ o o o @ o o @ @ O # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.# # + # o # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p x p p p p p p p p p p p p p i v ..a.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.a.) ; X o o o o o o o o @ @ o @ O # % g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.+ # O # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p x c p p p p p p p p p p p p p i i L w.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.9.C o X @ @ o o o o o o O o O o # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p c p p p p p p p p p p p p p p u B %.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.*.s X X o o o o o o o o o o @ O # % # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.x p x p p p p p p p p p p p p p p u v [ p.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.s.} 1 . o # o o o o o o o o o o o O O # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.x c c p p p p p p p p p p p p p p i i Q w.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.y.Y % X o o o o o o @ o o o o @ o # % # % g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p x x p p p p p p p p p p p p p x y i D <.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.6.l @ X o @ @ o o o o o o o o o O # # # # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.x p v p p p p p p p p p p p p p p p p u M +.d.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.$.s X X # o o o o o o o o o o O O @ + O # g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.p p v x p p p p p p p p p p p p p p p u b [ i.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.s.| 5 X X @ @ @ @ @ @ o o o o o o o @ # # + g.g.g.g.g.g.g.g.g.g.g.g.p p v p p p p p p p y p p p p p p p p u g ^ e.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.u.R ; X X @ @ @ @ @ o o o o o o o o @ # # # # g.g.g.g.g.g.x p c v p p p p p p p p p p p p p p p p u i Q q.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.r.I = X X X O @ o o o o o o o o @ o o o + # # g.g.p p v x p p p p p p p p p p p p p p a p i i L 3.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.6.C = . O @ o o o o o O o o o o o o # @ # # i b p p p p p p p p p p p p p p p p p i i G 1.d.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.2.j o X o o @ @ o o o o o o o o o o o o t p p p p p p p p p p p p p p p p u u D =.d.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.$.s X X o # o o o o o o o o o o o o t p p p p p p p p p p p p p p i u S &.d.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.O.s X X o o o o o o o o o o o o 9 p p p p p p p p p p p p i u S &.d.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.d.o.q X X @ # o o o o o o o o t p p p p p p p p p p u i D =.d.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.d.o.w X X o o o o o o o o t p p p p p p p p u i K 1.d.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.d.o.w X X o o o o o o t p p p p p p i p P 3.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.d.O.f X X o o o @ 9 p p p i r g ^ q.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.d.*.j o . o @ t p i u M [ y.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.>.V % < p D @.p.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.9.R ~ 5.d.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.f.f.f.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g." -}; +static char * C:\Users\Admin\Documents\GitHub\ittrium\share\pixmaps\bitcoin256_xpm[] = { +"256 256 723 2", +" c None", +". c #4ACDFF", +"+ c #4ACCFF", +"@ c #4CCDFF", +"# c #4BCEFF", +"$ c #4BCDFF", +"% c #49CCFF", +"& c #49CBFF", +"* c #48CCFF", +"= c #4CCEFF", +"- c #4BCCFF", +"; c #48CBFF", +"> c #47CAFF", +", c #47CBFF", +"' c #46CAFF", +") c #4DCFFF", +"! c #46C9FF", +"~ c #45C9FF", +"{ c #45CAFF", +"] c #4DCEFF", +"^ c #4CCFFF", +"/ c #44C8FF", +"( c #44C9FF", +"_ c #4ED0FF", +": c #4ECFFF", +"< c #4ECEFF", +"[ c #47C9FF", +"} c #43C8FF", +"| c #43C7FF", +"1 c #4FD0FF", +"2 c #42C8FF", +"3 c #42C7FF", +"4 c #42C6FF", +"5 c #41C6FF", +"6 c #41C7FF", +"7 c #40C6FF", +"8 c #40C5FF", +"9 c #41C5FF", +"0 c #3FC5FF", +"a c #48CAFF", +"b c #3FC4FF", +"c c #40C4FF", +"d c #3EC4FF", +"e c #3EC5FF", +"f c #53D3FF", +"g c #54D4FF", +"h c #52D2FF", +"i c #45C8FF", +"j c #44C7FF", +"k c #3DC3FF", +"l c #39C0FF", +"m c #39C1FF", +"n c #38C1FF", +"o c #38C0FF", +"p c #54D3FF", +"q c #53D4FF", +"r c #51D1FF", +"s c #3AC1FF", +"t c #38BFFF", +"u c #37BFFF", +"v c #37C0FF", +"w c #55D5FF", +"x c #55D4FF", +"y c #51D2FF", +"z c #50D1FF", +"A c #3DC4FF", +"B c #37BEFF", +"C c #36BEFF", +"D c #56D5FF", +"E c #35BEFF", +"F c #35BDFF", +"G c #50D2FF", +"H c #50D0FF", +"I c #3CC3FF", +"J c #36BFFF", +"K c #34BDFF", +"L c #4FD1FF", +"M c #3CC2FF", +"N c #36BDFF", +"O c #33BCFF", +"P c #3AC0FF", +"Q c #33BDFF", +"R c #3EC3FF", +"S c #3BC2FF", +"T c #32BCFF", +"U c #32BBFF", +"V c #34BCFF", +"W c #56D4FF", +"X c #52D1FF", +"Y c #3BC1FF", +"Z c #31BBFF", +"` c #5AD7FF", +" . c #59D8FF", +".. c #59D7FF", +"+. c #58D7FF", +"@. c #59D6FF", +"#. c #58D6FF", +"$. c #3BC3FF", +"%. c #34BEFF", +"&. c #31BAFF", +"*. c #30BAFF", +"=. c #2DB9FF", +"-. c #2DB8FF", +";. c #2DB7FF", +">. c #2CB8FF", +",. c #5AD8FF", +"'. c #5BD8FF", +"). c #57D6FF", +"!. c #3AC2FF", +"~. c #30BBFF", +"{. c #2EB8FF", +"]. c #2CB7FF", +"^. c #2BB6FF", +"/. c #5AD9FF", +"(. c #2EB9FF", +"_. c #2BB7FF", +":. c #2AB7FF", +"<. c #2AB6FF", +"[. c #5BD9FF", +"}. c #5CD8FF", +"|. c #33BBFF", +"1. c #2AB5FF", +"2. c #29B5FF", +"3. c #2FB9FF", +"4. c #28B4FF", +"5. c #28B5FF", +"6. c #5CD9FF", +"7. c #27B4FF", +"8. c #57D7FF", +"9. c #27B3FF", +"0. c #2FBAFF", +"a. c #26B4FF", +"b. c #30B9FF", +"c. c #26B3FF", +"d. c #25B2FF", +"e. c #29B6FF", +"f. c #25B3FF", +"g. c #24B2FF", +"h. c #57D6FE", +"i. c #24B1FF", +"j. c #56D5FE", +"k. c #28B3FF", +"l. c #25B1FF", +"m. c #26B2FF", +"n. c #23B1FF", +"o. c #50D0FC", +"p. c #23B0FF", +"q. c #55D4FE", +"r. c #5BDAFF", +"s. c #42C2F7", +"t. c #1397E9", +"u. c #2CB6FF", +"v. c #22B0FF", +"w. c #5CDAFF", +"x. c #35B6F3", +"y. c #0083E2", +"z. c #22B1FF", +"A. c #51D1FC", +"B. c #0A8DE6", +"C. c #0087E3", +"D. c #4FCFFF", +"E. c #54D4FE", +"F. c #2AACF0", +"G. c #0082E2", +"H. c #018AE5", +"I. c #29B4FF", +"J. c #57D5FF", +"K. c #4ECDFB", +"L. c #058AE5", +"M. c #0088E4", +"N. c #0089E4", +"O. c #21AFFF", +"P. c #54D3FE", +"Q. c #27AAEF", +"R. c #018BE5", +"S. c #4ECEFB", +"T. c #058BE5", +"U. c #008AE5", +"V. c #0189E4", +"W. c #21B0FF", +"X. c #2AADF0", +"Y. c #028BE5", +"Z. c #0189E5", +"`. c #20B0FF", +" + c #088EE6", +".+ c #018AE4", +"++ c #20AFFF", +"@+ c #32B4F3", +"#+ c #028AE5", +"$+ c #55D5FE", +"%+ c #1195E8", +"&+ c #0086E3", +"*+ c #028AE4", +"=+ c #20AEFF", +"-+ c #3EC0F6", +";+ c #0085E3", +">+ c #028BE4", +",+ c #1FAEFF", +"'+ c #53D3FE", +")+ c #1DA0EC", +"!+ c #0085E2", +"~+ c #56D6FF", +"{+ c #4CCBFB", +"]+ c #048AE5", +"^+ c #53D2FE", +"/+ c #2FB2F2", +"(+ c #038BE5", +"_+ c #1FADFF", +":+ c #1298E9", +"<+ c #44C5F8", +"[+ c #0188E3", +"}+ c #038BE6", +"|+ c #048BE5", +"1+ c #22AFFF", +"2+ c #1FAFFF", +"3+ c #1EADFF", +"4+ c #1EAEFF", +"5+ c #52D2FE", +"6+ c #29ACF0", +"7+ c #048CE4", +"8+ c #038AE5", +"9+ c #048CE6", +"0+ c #53D4FE", +"a+ c #0F95E8", +"b+ c #0088E3", +"c+ c #058CE6", +"d+ c #43C4F8", +"e+ c #0188E4", +"f+ c #048CE5", +"g+ c #1DADFF", +"h+ c #59D9FF", +"i+ c #2AADF1", +"j+ c #058CE5", +"k+ c #048DE5", +"l+ c #1EACFF", +"m+ c #1398EA", +"n+ c #1DACFF", +"o+ c #47C8FA", +"p+ c #51D1FE", +"q+ c #33B6F4", +"r+ c #048BE6", +"s+ c #048DE6", +"t+ c #1CACFF", +"u+ c #1DA2ED", +"v+ c #0087E4", +"w+ c #058DE5", +"x+ c #50D0FD", +"y+ c #0B91E7", +"z+ c #058DE6", +"A+ c #1CADFF", +"B+ c #41C2F8", +"C+ c #0288E4", +"D+ c #068DE6", +"E+ c #1CABFF", +"F+ c #2DB1F3", +"G+ c #058EE6", +"H+ c #068DE5", +"I+ c #068EE5", +"J+ c #1BACFF", +"K+ c #50D1FE", +"L+ c #1BA1EC", +"M+ c #068EE6", +"N+ c #058EE5", +"O+ c #1BABFF", +"P+ c #52D1FE", +"Q+ c #4FD0FD", +"R+ c #0C93E7", +"S+ c #068FE5", +"T+ c #43C5F9", +"U+ c #078EE5", +"V+ c #1AAAFF", +"W+ c #50D0FE", +"X+ c #55D6FF", +"Y+ c #33B7F4", +"Z+ c #078EE6", +"`+ c #4FD0FE", +" @ c #23A8EF", +".@ c #078FE6", +"+@ c #088FE5", +"@@ c #4FD1FE", +"#@ c #52D3FE", +"$@ c #159BEA", +"%@ c #068FE6", +"&@ c #088FE6", +"*@ c #1AABFF", +"=@ c #51D2FE", +"-@ c #4CCCFD", +";@ c #0A92E7", +">@ c #1BAAFF", +",@ c #19AAFF", +"'@ c #41C3F9", +")@ c #038CE5", +"!@ c #35B9F5", +"~@ c #0089E3", +"{@ c #0990E5", +"]@ c #19A9FF", +"^@ c #54D5FF", +"/@ c #28ADF0", +"(@ c #078FE5", +"_@ c #18A9FF", +":@ c #1CA1EC", +"<@ c #0289E4", +"[@ c #18AAFF", +"}@ c #038BE4", +"|@ c #0990E6", +"1@ c #4BCCFD", +"2@ c #0991E6", +"3@ c #0A90E6", +"4@ c #43C6FA", +"5@ c #0A91E6", +"6@ c #17A8FF", +"7@ c #3CBFF8", +"8@ c #34B8F5", +"9@ c #0890E7", +"0@ c #088FE7", +"a@ c #0990E7", +"b@ c #0A90E7", +"c@ c #0A91E7", +"d@ c #2CB1F3", +"e@ c #0990E8", +"f@ c #17A9FF", +"g@ c #24AAF0", +"h@ c #028BE6", +"i@ c #0991E8", +"j@ c #0890E8", +"k@ c #0A91E8", +"l@ c #0B91E8", +"m@ c #0B92E7", +"n@ c #1FA5EE", +"o@ c #0991E7", +"p@ c #0C92E7", +"q@ c #16A8FF", +"r@ c #189EED", +"s@ c #048CE7", +"t@ c #0992E7", +"u@ c #0B92E8", +"v@ c #0C93E8", +"w@ c #0C94E9", +"x@ c #16A7FF", +"y@ c #149CEC", +"z@ c #068EE7", +"A@ c #0A92E8", +"B@ c #1199EB", +"C@ c #0790E7", +"D@ c #0992E8", +"E@ c #15A7FF", +"F@ c #15A8FF", +"G@ c #0E96EA", +"H@ c #0891E8", +"I@ c #0992E9", +"J@ c #0A93E8", +"K@ c #0B93E8", +"L@ c #0C93E9", +"M@ c #0D95E9", +"N@ c #0D95EB", +"O@ c #0891EA", +"P@ c #0A92EA", +"Q@ c #0A93E9", +"R@ c #0A93EA", +"S@ c #0B93EA", +"T@ c #0C95E9", +"U@ c #0C94EA", +"V@ c #0C95EA", +"W@ c #0D96EB", +"X@ c #15A6FF", +"Y@ c #0B94EB", +"Z@ c #0992EA", +"`@ c #0C95EB", +" # c #0E96EB", +".# c #0A94EA", +"+# c #0B94EA", +"@# c #14A7FF", +"## c #0A94EB", +"$# c #0E97EC", +"%# c #14A6FF", +"&# c #1CA4F1", +"*# c #0B95EC", +"=# c #0B94EC", +"-# c #0C96EC", +";# c #0C97EC", +"># c #0D97EC", +",# c #0E97ED", +"'# c #0E98ED", +")# c #0B95ED", +"!# c #0B96EC", +"~# c #0C95ED", +"{# c #0C96ED", +"]# c #0F98EE", +"^# c #0C97ED", +"/# c #0C97EE", +"(# c #0D98EE", +"_# c #0E98EE", +":# c #0E99EE", +"<# c #0F99EE", +"[# c #13A5FF", +"}# c #0B96ED", +"|# c #0B97ED", +"1# c #0D98EF", +"2# c #0C97EF", +"3# c #0C98EF", +"4# c #0D99EF", +"5# c #0D99EE", +"6# c #0E99EF", +"7# c #0E9AEF", +"8# c #0F9AEF", +"9# c #13A6FF", +"0# c #0D99F0", +"a# c #0C98F0", +"b# c #0E99F0", +"c# c #0E9AF0", +"d# c #0F9AF0", +"e# c #0F9AF1", +"f# c #109BF1", +"g# c #12A6FF", +"h# c #0D99F1", +"i# c #0C99F1", +"j# c #0C99F2", +"k# c #0D9AF1", +"l# c #0E99F1", +"m# c #0E9AF1", +"n# c #0F9BF1", +"o# c #16A7FE", +"p# c #15A8FE", +"q# c #15A7FE", +"r# c #15A6FE", +"s# c #14A6FE", +"t# c #14A7FE", +"u# c #13A5FE", +"v# c #13A6FE", +"w# c #12A5FE", +"x# c #0C9AF2", +"y# c #0D9AF2", +"z# c #0E9AF2", +"A# c #0E9BF2", +"B# c #0F9BF2", +"C# c #109CF2", +"D# c #119CF2", +"E# c #12A5FF", +"F# c #0D9AF3", +"G# c #0D9BF3", +"H# c #0D9BF2", +"I# c #0F9CF2", +"J# c #109DF3", +"K# c #119DF3", +"L# c #14A5FE", +"M# c #12A4FE", +"N# c #0D9CF4", +"O# c #0E9BF3", +"P# c #0E9CF3", +"Q# c #0F9DF3", +"R# c #0F9CF3", +"S# c #119DF4", +"T# c #119EF4", +"U# c #119FF4", +"V# c #11A4FE", +"W# c #0E9DF5", +"X# c #0D9CF5", +"Y# c #0E9CF5", +"Z# c #0E9CF4", +"`# c #0E9DF4", +" $ c #0F9DF4", +".$ c #109EF4", +"+$ c #119EF5", +"@$ c #119FF5", +"#$ c #15A6FD", +"$$ c #14A6FD", +"%$ c #14A5FD", +"&$ c #13A4FD", +"*$ c #12A4FD", +"=$ c #12A5FD", +"-$ c #11A4FD", +";$ c #0F9DF6", +">$ c #0E9DF6", +",$ c #0E9EF5", +"'$ c #0F9EF5", +")$ c #109EF5", +"!$ c #109FF5", +"~$ c #11A0F6", +"{$ c #12A0F6", +"]$ c #15A5FD", +"^$ c #14A4FD", +"/$ c #12A3FD", +"($ c #11A3FD", +"_$ c #0F9DF7", +":$ c #0F9EF7", +"<$ c #109EF7", +"[$ c #109FF7", +"}$ c #119FF7", +"|$ c #11A0F7", +"1$ c #12A0F7", +"2$ c #13A1F7", +"3$ c #14A5FC", +"4$ c #13A4FC", +"5$ c #12A4FC", +"6$ c #12A3FC", +"7$ c #11A3FC", +"8$ c #10A2FD", +"9$ c #0F9EF8", +"0$ c #0F9FF7", +"a$ c #0F9FF8", +"b$ c #109FF8", +"c$ c #12A1F8", +"d$ c #13A1F8", +"e$ c #14A4FC", +"f$ c #14A4FB", +"g$ c #13A4FB", +"h$ c #13A3FB", +"i$ c #12A3FB", +"j$ c #12A2FB", +"k$ c #11A2FB", +"l$ c #10A1FB", +"m$ c #10A1FC", +"n$ c #0FA0F9", +"o$ c #10A0F9", +"p$ c #109FF9", +"q$ c #11A0F8", +"r$ c #12A0F8", +"s$ c #13A2F8", +"t$ c #13A2F9", +"u$ c #14A3F9", +"v$ c #13A3FA", +"w$ c #12A3FA", +"x$ c #12A2FA", +"y$ c #11A2FA", +"z$ c #10A1FA", +"A$ c #10A0FA", +"B$ c #11A1FA", +"C$ c #12A1FA", +"D$ c #14A2F9", +"E$ c #14A3FA", +"F$ c #13A3F9", +"G$ c #13A2FA", +"H$ c #12A2F9", +"I$ c #12A1F9", +"J$ c #11A1F9", +"K$ c #11A0F9", +"L$ c #10A1F9", +"M$ c #0FA0FA", +"N$ c #11A3FB", +"O$ c #12A1F7", +"P$ c #10A2FC", +"Q$ c #15A5FC", +"R$ c #11A1F7", +"S$ c #10A0F6", +"T$ c #119FF6", +"U$ c #109FF6", +"V$ c #18A4F8", +"W$ c #0F9FF6", +"X$ c #109EF6", +"Y$ c #0F9EF6", +"Z$ c #1DA7F7", +"`$ c #13A5FD", +" % c #0F9DF5", +".% c #22ACF7", +"+% c #0F9EF4", +"@% c #109DF4", +"#% c #26B0F8", +"$% c #12A4FF", +"%% c #12A6FE", +"&% c #109EF3", +"*% c #0F9CF4", +"=% c #0D9CF3", +"-% c #30B7F8", +";% c #16A8FE", +">% c #109CF3", +",% c #0C9AF3", +"'% c #39BEF9", +")% c #3FC2FA", +"!% c #109DF2", +"~% c #0E9BF1", +"{% c #0A98F2", +"]% c #14A0F3", +"^% c #47CAFB", +"/% c #0996F1", +"(% c #17A2F3", +"_% c #4ECFFC", +":% c #14A5FF", +"<% c #0896F1", +"[% c #1CA6F4", +"}% c #0C98F1", +"|% c #0794F0", +"1% c #23ABF5", +"2% c #0E98EF", +"3% c #0693EF", +"4% c #29B0F5", +"5% c #0492EE", +"6% c #31B6F7", +"7% c #17A7FF", +"8% c #0B97EF", +"9% c #0592EE", +"0% c #3BBEF9", +"a% c #0D97ED", +"b% c #0B96EE", +"c% c #0793ED", +"d% c #43C5FA", +"e% c #4ACCFC", +"f% c #0C96EE", +"g% c #0994ED", +"h% c #119CEF", +"i% c #51D1FD", +"j% c #0693EC", +"k% c #1AA3F0", +"l% c #56D6FE", +"m% c #52D2FD", +"n% c #0D96EC", +"o% c #0C95EC", +"p% c #0590EB", +"q% c #26ACF3", +"r% c #58D8FF", +"s% c #0A95EC", +"t% c #048FEB", +"u% c #33B8F6", +"v% c #0A95ED", +"w% c #0A94ED", +"x% c #0691EB", +"y% c #0A94EC", +"z% c #0894EC", +"A% c #4DCCFC", +"B% c #0691EC", +"C% c #169FEF", +"D% c #0995ED", +"E% c #0490EB", +"F% c #24ABF2", +"G% c #0994EC", +"H% c #038FEB", +"I% c #35B8F6", +"J% c #45C6F9", +"K% c #0A93EB", +"L% c #0993EB", +"M% c #0F98ED", +"N% c #52D1FD", +"O% c #0993EC", +"P% c #048EEA", +"Q% c #1EA5F0", +"R% c #59D7FE", +"S% c #0A93EC", +"T% c #0892EC", +"U% c #028DEA", +"V% c #31B5F5", +"W% c #0994EB", +"X% c #0892EB", +"Y% c #0590EA", +"Z% c #0690EB", +"`% c #1099ED", +" & c #54D3FD", +".& c #22A9F1", +"+& c #39BDF7", +"@& c #0892EA", +"#& c #0791EA", +"$& c #0691EA", +"%& c #0993EA", +"&& c #0791EB", +"*& c #028DE9", +"=& c #1BA3EF", +"-& c #5BD9FE", +";& c #58D6FE", +">& c #008CE9", +",& c #5DDBFF", +"'& c #0792EB", +")& c #0591EA", +"!& c #4DCDFB", +"~& c #59D6FE", +"{& c #018DE9", +"]& c #1CA3EF", +"^& c #58D7FE", +"/& c #008BE9", +"(& c #39BBF6", +"_& c #5EDBFF", +":& c #57D5FE", +"<& c #0891EB", +"[& c #058FEA", +"}& c #52D1FC", +"|& c #0692EA", +"1& c #24AAF1", +"2& c #59D8FE", +"3& c #5CDBFF", +"4& c #159DEE", +"5& c #5AD8FE", +"6& c #0692EB", +"7& c #37BAF5", +"8& c #5FDCFF", +"9& c #5AD7FE", +"0& c #0690EA", +"a& c #038FEA", +"b& c #55D4FD", +"c& c #0591EB", +"d& c #2EB3F3", +"e& c #5FDDFF", +"f& c #048FEA", +"g& c #0893EB", +"h& c #51D0FB", +"i& c #5CD8FE", +"j& c #008AE9", +"k& c #2AAFF2", +"l& c #60DCFF", +"m& c #5CD9FE", +"n& c #2DB0F3", +"o& c #60DDFF", +"p& c #5AD9FE", +"q& c #5DDAFF", +"r& c #038EEA", +"s& c #55D3FC", +"t& c #5BD8FE", +"u& c #0089E8", +"v& c #36B9F5", +"w& c #60DEFF", +"x& c #018CE9", +"y& c #159DED", +"z& c #028CE9", +"A& c #47C8F9", +"B& c #5EDCFF", +"C& c #5EDAFF", +"D& c #29AEF2", +"E& c #61DEFF", +"F& c #5DDAFE", +"G& c #5CDAFE", +"H& c #5BD7FE", +"I& c #5FDBFF", +"J& c #61DDFF", +"K& c #60DBFF", +"L& c #5DD9FF", +"M& c #55D3FF", +"N& c #52D3FF", +" ", +" ", +" . . + . ", +" @ # $ $ . + + + % & & * ", +" = $ @ # $ . . - + + % & & ; ; ; ; > ", +" = = = $ $ # $ . . - + + % & & * % ; ; > > , , ' ", +" ) ) = = = $ @ # $ . . - . + % & & ; ; ; ; > > , , > ' ! ~ { ! ", +" ) ) ] ] ) ^ = $ $ $ # $ . . + + + % & ; ; * ; ; > > , > > ' ! ~ { ~ ~ ~ / ( ", +" _ : ) ] < ] ^ = = = $ $ # $ . . + + + % & ; ; ; ; ; > > , > ' ' [ ! { ~ ~ ~ / / / } | | ", +" 1 : : : ) ] < ) ) = = = $ = # $ . + + . + % & ; * & ; ; > > , > > ' ! ! { ! ~ ~ / / / } } | } 2 3 | ", +" 1 1 : : : ) ] < ) ) = = = $ @ # $ . $ + . + % & ; * ; ; ; > > , > ' ' ! ! { ~ ~ ~ / / / } | | } 2 3 3 4 4 5 ", +" 1 1 : : : ) ] ] ) ^ = = $ $ $ # $ . . + . + % & ; * & ; ; > > , > ' ' ! ~ { ! ~ ~ / / / } | | } 2 3 3 4 4 5 6 5 7 ", +" 1 1 1 : : : ) ) ] ] ^ = = $ $ # # $ . . + + + % & ; * ; ; ; > > , > ' ' ! ! { ~ ~ ~ / / / } | | | 2 3 3 3 4 5 6 5 7 8 8 ", +" 1 1 1 : : : ) ) ] ) ) = = $ $ = # $ . . + . % % & ; * & ; ; > > , > ' ' ! ~ { ~ ~ ~ / / / } | | } 3 3 3 4 5 6 6 7 7 9 8 7 0 ", +" 1 1 : : : ) ) ] ) ) = = $ $ = # $ . + + . % % & ; * ; ; ; > a , > ' ! ! ~ ~ ~ ~ ~ / / / } | | | 2 3 3 4 4 5 6 7 7 9 8 8 0 0 b ", +" 1 1 : : : ) ) ] ) ) = = $ $ = # $ . + + . % % & ; * ; ; ; > > , > ' ! ! { { ! ~ ~ / / / } | | } 2 3 3 4 4 6 5 7 7 9 8 8 0 0 b b ", +" 1 : : : ) ) ] ) ) = = $ $ = # $ . + + . % % & ; ; ; ; > > a , > ' ' ! ~ { ~ ~ ~ / / } } | | } 3 3 3 4 4 6 5 7 7 8 8 8 0 c b 0 b d ", +" 1 : _ : ) < ] ) ^ = = $ $ # # $ . - + + % % & ; * ; ; ; > a ; > ' ' ! ~ { ~ ~ ~ / / } } | | } 3 3 3 4 4 6 5 7 7 8 7 8 0 b b 0 e d d ", +" f g f f h h h : : : ) ] ] ) ^ = = $ $ $ $ $ . - + + % & & ; ; ; ; ; > ; , , ' ' ~ { ~ ~ i / ( } } j | } 3 | 3 4 5 6 5 7 7 9 8 8 0 b b 0 e d d k k l m n o ", +" p p q q f f h h h h h r _ : ) < ] ) ^ = = $ $ # # $ . + + + % & & * * & ; > > ; ; ~ / ( } } j | } 3 3 3 4 5 6 5 7 7 8 8 8 0 0 b 0 0 d d k k k s s l l m o o t t u v ", +" w x g g p q q f f h h h h h r r y z : ) ] ] ) = = = $ $ $ $ $ . + + + % % & * * ; ; ; > } j | } 3 3 3 4 5 6 5 7 7 8 8 8 0 b b 0 e d d k k A A s s s l l n o o t t u v u u B C ", +" D x w x g p p q q f f h h h h h r r r z z z ) < ] ] ^ = = $ $ $ # $ . - + + % % & ; * % ; 2 3 3 4 5 6 5 7 7 8 8 0 0 b b 0 e d d k k k A k s s s l l m o o t t v v u u u C C E E F ", +" x x w w x g p p q q f f h h f h h r r G z z H H 1 ) ] ] ] ^ = = $ $ = $ . . + + + % & & * * 6 5 7 8 9 8 0 0 c b 0 e d d k k A A k I s s s l m n o l t t v v u u B C J E E F F E K K ", +" x x D w x g p p f f f f h h h h h r r y z r H H L L 1 ] ] ) ^ = = $ $ # $ . . - + + % % 9 8 0 0 c b 0 d d d k k A k k I M s s s l m n o o o t v v u u B C J E E N F E K K K O ", +" x x D w x g p p f q f f h h f h r r r r z r H H L L 1 1 ) ) = = = $ $ # $ $ . + + + % & 0 0 b b 0 d d d k k A k k I M M s s P l m n o l t t v o u u B C J E E N F E K K K O O Q ", +" x x D w x g p p f q f f h h f h h r r G z z H H L L 1 1 : : ) = = = $ $ # $ . . + + + % & & 0 b b 0 d d d k R A k k I M S S s l l m n o l t t u v u u C C J E E F F E K K K O O Q O T ", +" x x w w x g p f f q f f h h f h r r y G z z z H 1 L 1 1 : : : = = = $ $ # $ . . - . + % & & * c b 0 e d d k k A k k I M S S M s l l m n o l t t v v u u C C C E E F F E K K K O O Q O T U U ", +" x x w x g g p f q g f f h h h h h r r G z z z H L L 1 1 : : _ ) ) = = $ $ # $ $ . - + + % & & * * 0 0 d d d k k A k k I M S S M S l l m n o l t t u v u u C C C E E F F E K K K O V Q O T U U U U ", +" W w x x g p f q p f f h h h h r r X G z z z H L L 1 1 1 : : : ) ] $ $ $ # $ . . - + + % & & * % ; 0 d d d k k A k I I M S S M Y Y l l m n o o t t u o u u C C C E E F F E K K K O Q Q O T U U U U Z ", +" ` ` . ...+.@.#.+. w x x g p f q p f f h h h h r r y G z r z H L L 1 1 : : _ ) ) < ] $ $ # $ . + - . + % & & * % ; ; d d d k k A k I I M $.S M Y Y s l m n o o t u v u u u C C C E F F F %.K K K O O Q O T U U T U Z &.*. =.-.-.;.;.>. ", +" ,.'.,.` .. ...+.#.#.#.+.).). w x x g p f q f f f h h h h r r y G z r z H L L 1 1 : : : ) ) ] ] ) = # $ . + - . + % & & * ; ; ; > d d k k A k I I M S S S Y Y s !. m o o o t u v u u u C C C E E N E E K K Q O Q Q O T T U T U Z &.*.~. {.{.=.-.-.;.;.].>.].].^. ", +" '.'./.,.,.,.` .. ...+.#.#.#.+.).).D D x x g p f q f f f h h h h r r y y z z H H L L 1 1 : : : ) ) ] ] ] = # $ . + - + + % & & * ; ; ; > > d k k A k I I M S S M Y Y !.S s o o o t t v u u u C C C E F F E E K K K O O Q O T U U U U Z &.*.~.&. (.{.-.-.-.-.;.].>.].].^.^._.:.<.<. ", +" [.}.'.[./.,.,.` ` .. ...+.#.#.#.+.).).D D ).D g g p f q f f f h h h h r r y G z r H H L L 1 1 : : : ) ) ] ] ) = = . + + . + % & ; ; ; ; ; > > , k k k k I I M $.S M Y s !.s s s o o t t u o u u C C C E F F E E K K Q O O Q O T |.U T U Z &.*.~.&.*.*. (.{.-.-.-.;.;.>.>.].].^.^._.:.<.<.1.2.2.2. ", +" [.[.'.'.[.,.,.` ` .. ...+.+.#.+.+.).).D D D D D x g p f q f f f h h h h r r y G z z H 1 1 z 1 1 : : : ) ) ] ] ) = = $ . + + + % % & ; * & ; ; > > , > k A k I M M $.S M Y s !.s s s l o t u v u u u C C C E F F E %.K K O O K Q O T O U T U Z &.*.~.*.*.*.3. (.{.-.-.-.;.].>.;.].].^.^._.<.<.<.1.2.2.2.4.4.5. ", +" 6.[.'.'.[.[.,.,.` ` . ...+.@.#.+.+.).).D D D D D x x w p f q f f f h h h h r r y G z z H 1 L 1 1 1 : : : ) ) ] ] ) = = = $ $ # $ . . + + % % & ; * & ; ; > > , > > A k I M M S S S Y s !.s s s l l m o l t u v t u u C C C E F F E %.K K O O K Q O T U U T Z Z &.*.~.*.*.*.3.3. (.{.-.-.-.;.].>.>.].].^.^._.<.<.<.1.1.2.2.4.4.4.5.4.7. ", +" 6.[.'.'.[.[.,.,.` ` . ...+.+.#.+.8.).).D D ).D D x x w x x f f f f h h f h h r r y z z z H H 1 1 : : : ) ] < ) ^ = = $ $ = # $ . . + . + % & ; * & ; ; > > , > ' ' k I I M S S S Y s !.Y s s l l m o o o t t v u u u C C C E F F F E K K K K Q O T U U T Z Z &.*.~.*.*.*.3.3.3. {.{.-.-.-.;.].>.-.].].^.^._.<.<.<.1.1.2.2.4.4.2.5.4.7.9.9. ", +" 6.[.'.'.[.[.,.'.` ` . ...+...#.+.8.).).D D D D D x x w x g g q f f h h f h h r r r z z z H H 1 : : : ) ] ] ] ) = = $ $ $ # $ . . + . + % & ; * ; ; ; > > , > ' ' ! I I M S S S Y s !.s s s l l m o o o t u v t u u C C C E F F F E K K O O T |.U T Z Z &.*.~.*.*.*.3.3.0.3. {.-.-.-.;.].>.].].].^.^._.<.<.<.1.<.2.2.4.4.2.5.4.7.7.9.7.a. ", +" [.'.'.[.[.,.'.` ` . ...+.@.#.+.8.).).D D D D D x x w x g g p f f h h f h h r r y G z z H H L : : : ) ] ] ) ^ = = $ $ = # $ . . + . % % & ; * ; ; , > a , > ' ' ! ~ M M S S S Y s !.Y s s l l m o o o t u v u u u C J C E F F F %.K K O O K |.U U Z Z &.*.~.*.*.3.3.b.0.3.(. {.=.-.-.;.].>.].].].^.^._.<.<.<.1.<.2.2.4.4.2.5.4.7.9.9.7.a.c. ", +" [.'.'.'.[.,.'.` ` . ...+.#.#.+.).).).D D D D x x x w x g g p f q f h h h h h r r r z z z H H L z : : ) ] ] ] ^ = = $ $ = # $ . . + . % % & ; * ; ; , > > , > ' ' ! ~ ~ M S S S Y s !.Y s s l l m o o o t u v t u u C C C E F F F %.K K O O O Q U U Z Z &.*.~.*.*.3.3.0.0.3.(.(. -.-.-.;.;.>.;.].].^.^._.<.^.<.1.1.2.2.4.4.2.5.4.7.9.9.7.c.c.c.d. ", +" }.'.'./.,.'.` ` . ...+.#.#.+.).).).D D D D x x W w x g g p q q f h h f h h r r y z z z H H L 1 1 : ) ) ] ) ) = = $ $ = # $ . + + . % % & ; * ; ; ; > > , > ' ! ! ~ ~ { S S Y s !.Y s s l l m o o o t u v t u u C C C E F F F %.K K O O Q O O U Z Z &.*.~.*.*.3.3.*.0.3.(.(.{. -.-.;.;.>.;.].].^.^._.<.<.<.1.2.2.2.4.4.5.5.4.7.9.9.7.c.c.c.d.d.d. ", +" }.'.[./.,.'.` ` .. ...+.#.#.+.8.).).D D D D x x D w x g g p f q f f h h h h r r y G r z H H L H 1 1 ) ) ] ) ^ = = $ $ = # . . - + . % % & ; * ; ; ; > a , > ' ! ! ~ { ' S Y s !.Y s s l l m o o o t u v t u u C J C E F F E %.K K O O O O T T Z Z &.~.~.*.*.3.3.0.0.3.(.{.{.-.{.-.;.;.>.;.].].^.^._.<.<.<.1.e.2.2.4.4.5.5.4.7.9.9.7.a.c.c.d.d.f.f. ", +" '.[./.,.'.` ` ......+.#.#.+.).).).D D ).D x x D w x g p p f q f f f h f h h r r y z z z H 1 L H 1 1 : < ] ) ^ = = $ $ # # . . + + + % % & ; * ; ; , > > , > ' ! ! { { ~ ~ Y s !.s s s l l m o o o t u v u u u C C E E F F E K K K O O Q O T T Z &.~.~.*.*.3.3.0.0.3.(.{.{.=.-.-.;.;.>.;.].].^.^._.<.^.1.1.e.2.2.4.4.4.5.4.7.9.9.7.c.c.c.d.d.c.d.g. ", +" [.,.,.'.` ` .. .+.+.#.#.#.8.).h.D D D D x x w w x g g p f q f f h h f h h r r y z z z H 1 L H 1 1 : : ) ^ = = $ $ # # $ . + + + % % & ; * ; ; , > a , > ' ! ! { { ~ ~ !.s s s l l l o o t t u u u u u C C E E F F F %.K K O O O O T T |. &.*.~.*.*.3.3.0.0.3.(.{.{.-.-.-.;.].].].].^.^.^._.<.<.<.1.2.2.2.4.4.4.5.7.7.9.9.9.a.c.c.d.d.f.d.g.g.i. ", +" ,.,.,.` ` .. .+.+.#.#.+.).).h.j.D D D x x w w x g p p q g f f h h f h h r r y z z z H 1 L H 1 1 : : : ^ = = $ $ # $ $ . - + + % & & ; * ; ; > > , , > ' ' ! { { ~ ~ ~ s s l l l o o t t v v u u u C C C E F F E %.K K O O Q O T T |.U ~.~.*.*.3.3.*.0.3.(.{.{.=.-.-.;.].>.;.].].^.^._.<.<.<.1.2.2.2.4.4.4.5.7.7.k.9.7.c.c.c.d.d.f.d.g.g.i.i. ", +" '.,.` ` ....+.+.#.#.+.).).).j.j.j.D x x D w x g p p q q f f f h f h h r r y z z z H 1 L H 1 : : _ ) ) = $ $ $ # . . + . + % & & * % ; ; , > > , > ' ! ! { { ~ ~ ~ s l m n o l t t v v u u C C C E E F F E K K K O O Q O T T |.U Z *.*.3.3.3.0.3.(.{.{.=.-.;.;.].].;.].].^.^._.<.<.1.1.e.2.2.4.4.4.5.7.7.k.9.7.c.c.c.d.d.f.d.g.g.l.g.i. ", +" ,.` ` . .+.+.#.#.+.).).h.D j.h.j.x x x w x g p p q g f f h h h h h r r r z z z H 1 L 1 1 1 : : : ) $ $ # $ . . + + + % & & * * ; ; ; > , , > ' ! ! { { ~ ~ ~ l n o o t t v v u u C C C E E F F E K K K O O Q O T T |.U *.*.3.3.3.0.(.(.{.{.-.-.;.;.].>.].].].^.^.:.<.<.1.1.2.2.2.4.4.5.5.7.7.9.9.7.c.c.c.d.m.f.d.g.g.l.i.i.n. ", +" ` ` ...+.+.@.#.+.).).h.D j.h.o. w x g p p q q f f h h f h h r r y z z z H 1 L 1 1 1 : _ ) ) < $ $ . . - + + % & & * * ; ; > > ; , > ' ' ! { { ~ ~ ~ o o t t v v u u B C C E E N F E K K K O O Q O T T U U T *.3.3.3.0.3.(.{.{.-.-.-.;.].>.].].].^.^.:.<.^.1.1.e.2.2.4.4.5.5. 7.9.9.7.c.c.c.d.d.f.d.d.g.l.i.i.n.p. ", +" ` ...+.+.@.#.+.).).h.D q.r.s. x g p p q g f f h h h h h r r G z z H H L L 1 1 : : : ) ) < ] $ . - . + % & & * * ; ; ; > > , > ' ! ! { ! ' ~ t v v u u C C J E E N E E K K K O O Q O T T |.U T 3.3.0.0.3.(.{.{.-.-.-.;.>.>.].].].^.^.:.<.^.1.1.2.2.2.4.4.5.4.4. 7.c.c.c.d.d.f.d.g.g.l.i.i.n.p.p. ", +" ...+.+.#.#.+.).).).j.j.j.,.t. g p p f q f f h h h h h r r G z r H H L L 1 1 : : : ) ) ] ] ) - + + % & & * * ; ; > > ; , > ' ! ! { ! ' u u C C J E E F E E K K K O O Q O T T U |.T 0.3.3.(.{.-.-.-.;.;.].>.].].u.^._.:.<.^.1.1.2.2.2.4.4.5.4.7.7. c.c.c.d.d.f.d.g.g.i.i.i.n.p.p.v. ", +" ..+.+.#.#.+.).).).j.).q.w.x.y. p f f f f f h h h h X r r G z r H H 1 L 1 1 : : : ) ) ] ] ) % & & * * ; ; > > ; , > ' ! C F N F %.K K K O O O O T U U |. 3.(.(.{.-.-.-.-.;.].>.].].u.^._.:.<.^.<.1.e.2.2.4.4.5.4.7.7. c.c.d.d.f.d.g.i.i.i.i.n.p.p.v.z. ", +" +.+.#.#.+.).).).D j.j.h.A.B.C. q f f f h h h h h r y G z r H H L L 1 1 D.: : ) ) < ] ) = * * ; ; ; > ; K K O O Q Q T T |. (.(.{.-.-.-.-.;.>.>.].].u.^._.:.<.^.1.1.e.2.2.4.4.5.4.7.7.9. c.d.d.f.d.g.g.l.g.i.n.p.p.v.z.v. ", +" +.#.#.8.).).).D j.D E.r.F.G.H. f f f h h h h X r r G z z z H 1 L 1 1 : : _ ) ) < ] ) = {.-.-.{.;.;.>.-.].].].^._.:.<.<.<.1.2.2.2.4.I.5.4.7.7.9. d.d.d.d.g.g.i.i.i.n.p.v.v.z.v.v. ", +" #.#.8.).).J.D D j.q.).K.L.M.N. f h h h h h r y G z z z H L L 1 1 : : _ ) ) < ] ) = -.-.;.;.].-.].].^.^._.:.<.<.1.1.2.2.2.4.4.5.4.7.9.k.k. d.f.d.g.i.i.i.i.n.p.v.z.n.v.v.O. ", +" #.+.).).J.D D j.D P.[.Q.y.R.N. h h h h r r G z r z H L L 1 1 : : _ ) ) < ] ) = ;.;.>.>.].].].^.^.:.<.<.1.1.2.2.2.4.4.5.4.7.7.k.k. f.d.g.i.i.i.i.n.p.v.z.p.v.v.O.O. ", +" +.).).).D D D j.q.).S.T.M.U.V. h h r r y G z r z H L L 1 1 : : _ ) ) < ) ) = >.>.].].^.^._.:.<.<.1.1.e.2.2.4.I.5.4.7.9.k.7. d.g.g.i.i.i.n.p.v.z.v.v.v.O.O.W. ", +" ).).D D D D j.x P.[.X.y.Y.Z.V. r y G z z z H L L 1 1 : : _ ) ] < ) ) = ].].^.^.^.:.<.<.1.2.2.2.2.4.2.5.4.7.7.k.9. g.i.i.g.i.n.p.v.z.v.v.v.O.O.W.`. ", +" ).D D ).D D q.q.j.A. +M.H.Z..+ G z z H 1 L L 1 1 : : : ) ) < ] ^.^.:.<.<.1.2.e.2.4.4.4.5.4.7.9.k.9. i.i.i.i.n.p.v.z.v.v.v.O.O.W.++++ ", +" D D ).D D q.x P.[.@+y.#+V.Z..+ H H L L 1 1 : : : : 1.2.2.2.2.4.5.4.4.7.9.k. i.g.n.n.p.p.z.v.v.v.O.O.W.++++++ ", +" D ).D D x q.w q.$+%+&+#+.+H.*+ 4.4.5.7. i.n.n.p.v.z.p.v.v.O.O.W.++++++=+ ", +" D D D x D w P. .-+;+#+.+H.>+*+ n.n.p.v.z.p.v.v.O.O.W.++++++=+,+ ", +" D x x W $+x '+ .)+!+Y.#+*+>+#+ n.p.v.z.p.v.O.O.O.O.++++=+=+,+,+ ", +" D x x w q.E.~+{+]+N.#+*+*+#+#+ p.v.z.p.v.O.O.W.W.++++++=+,+,+=+ ", +" x x w q.g ^+,./+!+(+*+*+#+#+(+ z.z.p.v.O.O.W.W.++++++=+,+,+,+_+ ", +" x w x E.E.P.$+:+C.(+>+#+(+(+(+ z.v.v.O.O.O.W.++++=+=+,+=+,+_+_+ ", +" w x E.p ^+~+<+[+>+>+#+(+(+}+|+ v.v.1+O.O.++++++=+=+2+,+,+_+3+4+ ", +" x g E.p 5+ .6+!+7+#+8+(+}+|+9+ v.v.O.W.W.++O.=+=+2+,+,+_+3+4+4+ ", +" g g P.'+'+0+a+b+(+(+(+}+|+9+c+ O.O.W.`.++O.=+=+2+,+,+_+3+4+3+3+ ", +" p p 0+'+).d+e+Y.(+(+}+|+9+c+f+ O.W.W.++O.=+=+,+,+,+_+3+4+3+g+g+ ", +" p '+g 5+h+i+;+j+(+}+|+f+c+f+k+ O.`.++O.=+=+2+,+,+_+3+4+3+g+g+l+ ", +" q 0+f '+q.m+M.9+}+|+9+j+c+f+f+ `.++O.=+=+,+,+,+_+3+4+3+g+g+l+n+ ", +" q '+5+x o+(+(+}+|+9+c+k+c+f+k+ ++O.=+=+,+,+,+_+3+4+3+g+g+l+n+n+ ", +" f f p+8.q+&+c+r+f+c+s+j+c+k+k+ ++=+=+,+,+_+_+3+4+3+g+g+l+g+g+t+ ", +" '+h p+8.u+v+c+f+c+s+c+f+s+k+w+ =+,+,+,+_+_+3+4+3+g+g+n+g+g+t+n+ ", +" 5+5+'+x+y+#+c+c+s+c+9+s+z+w+w+ ,+,+=+_+_+4+4+3+g+g+n+n+A+t+t+t+ ", +" h p+~+B+C+w+c+k+c+9+s+z+w+z+D+ ,+=+_+_+4+4+3+g+n+n+n+A+t+n+t+E+ ", +" h p+8.F+C.D+z+f+9+s+z+G+z+H+I+ =+_+_+4+4+3+g+g+n+g+A+t+n+E+E+J+ ", +" h K+w L+M.M+j+9+s+z+z+N+D+I+I+ _+_+4+4+3+g+n+n+g+g+t+n+t+E+J+O+ ", +" p+P+Q+R+#+z+9+s+z+z+z+H+M+I+S+ _+4+4+3+g+n+n+g+A+t+n+t+E+J+O+O+ ", +" K+g T+#+c+9+k+z+G+z+D+I+M+I+U+ 4+4+3+g+n+n+g+A+t+n+E+O+J+O+O+V+ ", +" W+X+Y+C.w+s+w+G+z+D+M+M+M+Z+U+ 4+3+g+n+n+g+A+t+t+E+E+J+O+O+V+V+ ", +" `+X+ @v+G+w+G+z+D+M+M+M+.@Z++@ 3+g+n+n+g+A+t+t+E+E+O+O+O+V+V+V+ ", +" @@#@$@.+M+G+w+D+M+M+%@Z+Z+&@&@ g+n+n+n+A+t+t+E+O+O+O+*@V+V+V+*@ ", +" =@-@;@f+G+z+H+M+M+.@Z+Z+&@+@+@ n+n+g+t+t+t+E+E+O+O+V+V+>@*@V+,@ ", +" f '@)@G+D+D+M+M+%@Z+Z+&@+@&@+@ n+n+t+t+t+E+O+O+O+*@V+O+*@V+,@,@ ", +" g !@~@Z+D+I+M+.@Z+U++@+@&@+@{@ g+A+t+t+E+E+O+O+O+V+V+*@V+,@]@]@ ", +" ^@/@b+ +M+I+(@U+U+&@&@&@&@{@{@ t+t+t+E+E+O+O+V+V+O+*@V+,@]@]@_@ ", +" q :@<@.@M+.@Z+Z+&@+@+@+@{@{@{@ t+t+E+t+O+O+*@V+O+*@V+,@,@]@[@[@ ", +" p+:+}@(@(@U+U++@+@+@+@{@{@{@|@ t+E+E+O+O+V+V+O+*@V+,@,@]@[@_@_@ ", +" 1@;@z+.@Z+Z+&@&@&@&@|@|@2@|@3@ E+O+O+O+V+V+O+*@V+,@,@]@[@_@]@_@ ", +" 4@s+Z+Z+Z+&@&@&@&@|@|@|@|@3@5@ J+O+O+V+V+O+*@V+,@]@_@_@[@_@_@6@ ", +" 7@#+&@.@&@&@&@&@|@|@2@|@3@5@y+ O+O+V+V+*@*@,@,@]@_@[@,@_@_@6@6@ ", +" 8@H.9@0@0@0@0@a@a@a@a@b@c@y+y+ O+V+V+V+*@V+,@]@_@[@]@_@_@6@6@_@ ", +" d@Z.e@0@0@9@a@a@a@a@b@c@y+y+y+ V+V+O+*@,@,@]@_@[@_@_@_@6@6@6@f@ ", +" g@h@i@j@j@i@i@i@k@k@k@l@l@y+m@ V+*@V+,@,@]@_@[@_@_@_@6@6@f@6@6@ ", +" n@(+o@9@o@o@o@c@c@;@m@m@m@m@p@ *@V+,@,@]@_@[@_@_@_@6@6@f@6@6@q@ ", +" r@s@i@o@o@t@c@c@;@m@m@u@u@v@w@ V+,@,@]@]@[@]@_@_@6@6@f@6@q@q@x@ ", +" y@z@A@i@i@k@k@A@u@u@u@u@v@w@w@ ,@,@]@_@[@]@_@_@6@6@f@6@q@q@x@x@ ", +" B@C@D@D@A@A@A@u@u@u@u@v@w@w@w@ ,@]@]@[@]@_@_@6@6@f@6@q@q@x@E@F@ ", +" G@H@I@A@J@J@K@K@K@K@v@L@w@w@M@ ]@]@[@]@_@_@6@6@f@6@q@q@x@E@E@E@ ", +" N@O@P@Q@R@S@S@S@S@w@T@U@V@W@W@ _@[@]@_@_@6@6@f@6@q@q@x@F@E@E@X@ ", +" Y@Z@P@R@S@S@S@S@U@`@`@`@W@W@ # [@]@_@_@6@6@f@6@q@q@x@E@E@E@X@X@ ", +" .#.#.#+#+#+#U@U@V@`@`@W@W@ # # _@_@_@6@6@f@6@q@x@x@E@E@E@X@X@@# ", +" ##.#Y@Y@Y@V@V@`@`@`@W@W@ # #$# _@_@6@6@f@6@q@x@x@E@E@E@X@%#@#E@ ", +" &#*#=#=#=#=#`@-#-#;#>#>#,#$#$#'# _@6@6@f@6@q@x@x@E@E@E@X@%#@#%#%# ", +" )#)#*#!#-#~#{#-#>#>#,#,#,#'#]# 6@f@f@6@q@x@x@E@E@E@X@%#@#%#%#%# ", +" )#)#)#{#^#/#/#(#(#_#_#:#:#<#<# 6@f@6@q@x@x@F@E@E@X@%#@#%#%#%#[# ", +" }#|#{#/#/#(#(#(#_#_#_#:#<#<#<# f@6@q@q@x@F@E@E@X@%#@#X@%#%#[#[# ", +" 1#2#/#2#3#4#4#5#:#6#6#7#8#8#8#8# 6@q@x@x@E@E@E@X@%#@#X@%#%#[#[#9# ", +" 0#a#a#a#0#0#0#b#b#c#c#d#d#d#e#f# q@q@x@E@E@E@X@%#@#X@%#[#[#[#9#g# ", +" h#i#j#k#k#k#l#l#m#m#n#n#n#n#f#f# o#o#p#q#q#r#s#t#s#s#s#u#u#v#w#w# ", +" x#j#y#y#y#z#z#z#A#B#B#B#B#C#C#D# x@F@E@E@X@%#@#%#%#%#[#9#9#E#E#E# ", +" F#G#H#H#A#A#A#A#B#B#I#I#C#C#J#K# q#q#q#r#t#s#s#s#L#u#u#v#w#w#w#M# ", +" N#N#O#O#O#P#P#Q#Q#R#J#J#J#S#T#U# q#r#r#s#s#s#s#s#u#u#u#w#w#w#M#V# ", +" W#X#Y#Z#`# $ $ $ $ $.$.$T#+$@$@$ #$#$$$$$$$$$%$&$&$&$*$=$*$*$-$-$ ", +" ;$>$>$,$,$'$'$'$)$!$!$@$@$~$~${$ ]$%$%$%$%$^$&$&$&$*$*$/$/$($($($ ", +" _$_$:$<$<$:$<$:$[$[$}$|$|$|$1$2$ %$3$3$3$4$4$4$4$5$4$6$6$7$7$7$8$ ", +" 9$0$a$b$[$[$}$|$|$1$1$c$c$d$d$d$ e$f$f$g$h$h$i$i$h$j$j$k$k$k$l$m$ ", +" n$o$b$p$b$q$q$q$r$c$c$c$s$d$t$u$ f$f$f$h$v$w$w$v$x$x$y$y$k$l$l$l$ ", +" z$A$o$o$B$B$B$C$x$x$x$t$t$D$E$E$ E$F$G$t$x$x$G$C$C$B$B$B$A$o$A$z$ ", +" l$l$l$k$k$k$j$x$w$i$h$h$h$f$f$f$ G$t$t$H$H$H$I$I$J$J$K$o$o$L$o$M$ ", +" l$l$k$N$k$j$i$i$i$h$h$g$f$f$f$f$ d$d$d$c$c$O$1$|$|$}$[$}$b$b$a$t$ ", +" P$7$7$7$6$5$5$5$4$4$3$3$3$3$3$Q$ O$R$R$R$|$S$~$~$T$U$U$U$[$0$:$V$ ", +" -$($($/$*$*$*$^$&$%$%$%$%$]$#$#$ ~$~$|$T$T$U$U$W$X$X$X$X$Y$:$;$Z$ ", +" V#V#M#=$=$=$`$`$$$$$$$$$#$r#q#q# @$@$+$+$)$)$)$ % % % %W#W#Y#W#.% ", +" M#M#w#w#w#u#u#v#s#s#s#r#r#q#q#o# @$+$+$)$.$+% $@% $ $`#Z#Y#Y#Y##% ", +" $%w#E#%%u#u#s#s#s#t#r#q#q#E@o#x@ T#&%.$&% $*%*%*%*%Z#Z#Z#Z#=%W#-% ", +" w#w#v#u#[#%#%#%#@#X@X@E@q#o#o#;% J#J#J#R#R#>%R#R#P#P#O#O#O#,%@%'% ", +" E#9#[#[#s#s#s#s#r#r#q#q#o#q@q@6@ J#J#Q#R#R#R#R#P#O#O#O#G#G#,%J#)% ", +" 9#[#[#%#%#@#%#X@E@E@E@x@x@q@6@f@ !%I#B#B#B#n#~%m#m#m#k#y#H#{%]%^% ", +" [#[#%#%#%#%#X@E@E@E@x@x@q@6@f@6@ f#n#f#n#n#~%m#m#m#h#k#k#i#/%(%_% ", +" :%%#%#@#%#X@E@E@E@x@q@q@6@f@6@6@ d#d#d#d#c#b#b#b#0#0#k#i#k#<%[%'+ ", +" %#%#@#%#X@E@E@E@x@q@q@6@f@6@6@_@ d#d#d#c#c#b#b#0#0#0#a#}%h#|%1%#. ", +" %#@#%#X@E@E@E@x@q@q@6@6@6@6@_@_@ d#d#6#6#2%2%1#4#4#3#3#3#0#3%4%,. ", +" @#%#X@E@E@x@x@q@6@6@6@6@_@_@_@[@ <#:#_#_#_#(#(#4#3#3#3#3#4#5%6%r. ", +" X@X@E@E@x@7%q@6@6@6@6@_@_@_@[@]@ :#_#_#_#(#(#1#2#2#2#2#8%3#9%0%/. ", +" X@E@E@E@7%q@6@f@6@6@_@_@_@[@]@]@ '#,#,#a%(#(#/#/#/#/#b%b%/#c%d%+. ", +" E@E@x@7%q@6@f@6@6@_@_@_@[@]@,@,@ ,#,#a%(#(#/#/#/#/#b%b%/#b%b%e%~+ ", +" E@x@x@q@6@f@6@6@_@_@_@[@]@,@,@V+ ,#a%(#(#/#/#/#/#b%b%f%f%g%h%i%E. ", +" x@x@q@6@f@6@6@_@_@_@_@]@,@,@V+*@ a%a%a%{#{#{#{#}#}#{#}#|#j%k%l%m% ", +" x@q@6@f@6@6@_@_@_@[@]@,@,@V+*@V+ a%n%-#-#-#-#*#*#o%*#*#!#p%q%r%=@ ", +" q@6@f@6@6@_@_@[@[@]@,@,@V+*@V+V+ >#-#-#-#-#*#*#{#}#*#s%)#t%u%+.p+ ", +" 6@6@6@6@_@_@_@_@]@,@,@V+*@V+V+O+ -#-#{#{#)#)#{#*#s%v%w%v%x%'@).5+ ", +" f@6@6@_@_@[@_@]@,@,@V+*@V+>@O+O+ -#-#{#*#*#!#*#v%v%y%w%z%{#A%D '+ ", +" 6@6@_@_@[@_@]@,@V+V+V+V+O+O+O+E+ -#-#)#*#*#*#s%s%y%w%v%B%C%q.E.x ", +" _@_@_@[@_@]@,@V+V+V+V+>@O+O+E+E+ -#*#)#)#)#v%v%w%D%D%}#E%F%/.E.w ", +" _@_@[@_@]@,@V+V+V+V+O+O+O+E+E+t+ *#*#)#*#s%y%y%G%G%G%s%H%I%[.P.x ", +" _@_@]@]@,@V+V+V+V+O+O+O+E+t+t+t+ *#*#=#y%s%y%y%G%y%G%G%x%J% .P.x ", +" [@_@]@,@V+*@V+V+O+O+O+E+t+t+t+g+ =#=#=###K%K%L%K%L%L%x%M%N%j.q.j. ", +" ]@]@,@V+*@V+V+O+O+O+E+t+t+n+n+n+ Y@####K%L%L%K%L%L%O%P%Q%R%q.D j. ", +" ,@,@V+*@V+V+O+O+E+E+t+t+n+n+n+g+ ##K%S%O%G%O%O%O%T%O%U%V%[.q.D j. ", +" ,@V+*@V+V+O+O+O+E+t+t+n+n+n+n+g+ ##K%L%W%L%L%L%X%T%L%Y%J%,.q.D h. ", +" V+V+V+V+O+O+E+E+t+t+t+n+n+g+g+3+ K%O%W%O%O%O%T%T%O%Z%`% &h.D h.). ", +" V+V+V+O+O+E+E+t+t+A+n+n+g+g+3+4+ O%O%L%L%L%X%L%X%L%U%.&r.q.).h.). ", +" V+V+O+O+E+E+t+t+A+n+n+g+3+3+4+_+ L%L%L%L%X%X%X%X%X%U%+&r.j.).).+. ", +" V+O+O+O+E+t+t+A+n+n+g+3+4+3+_+_+ L%L%L%@&@&@&@&#&$&K%S. .h.h.#. ", +" O+O+E+E+t+t+g+n+n+g+3+3+3+_+,+,+ %&@&@&@&@&X%&&X%*&=&-&l%8.;&#. ", +" O+E+E+t+t+g+n+n+g+3+3+3+_+,+,+,+ @&X%L%X%X%#&&&Z@>&!@,&j.#.;&+. ", +" E+t+t+t+g+n+n+g+3+4+3+_+,+,+,+=+ X%@&@&@&#&&&'&)&@&!&,.;&~&+.+. ", +" t+t+t+g+n+n+g+3+4+3+_+,+,+,+=+++ @&@&X%&&&&'&'&{&]&-&h.#.^&.... ", +" t+t+g+n+n+g+3+4+3+_+,+,+,+=+++++ @&X%&&&&$&x%'&/&(&_&:&+.^&.... ", +" t+g+n+n+g+3+4+3+_+,+,+,+=+++++++ <&&&&&x%x%&&[&Y@}&,.;&R%....` ", +" g+n+n+g+3+3+_+_+,+,+=+=+++++++W. #&&&|&$&&&X%/&1&,&h...2&..` ,. ", +" n+n+g+3+3+3+_+,+,+=+=+++++`.O.O. #&$&x%#&x%&&*&<+3&;&.. .` ` ,. ", +" g+g+3+4+_+_+,+,+=+=+++++`.O.O.v. $&$&&&x%&&*&4&5&R% .R%` ,.,.,. ", +" g+3+4+_+_+,+,+,+=+++++`.O.O.v.v. $&$&Z%Z%6&/&7&8&;& .9&,.,.,.'. ", +" 3+4+_+_+,+,+,+++++++`.O.O.v.v.v. $&0&Z%x%a&-#b&5&R%9&,.,.,.'.'. ", +" 4+_+_+,+,+,+++++++W.O.O.v.v.v.v. $&0&c&'&/&d&e&;&` 5&,./.'.'.[. ", +" _+_+,+,+=+++++++O.O.O.v.v.z.v.p. 0&c&x%f&g&h&i&~&,.,./.'.'.[.[. ", +" ,+,+,+=+=+++++W.O.O.v.v.z.v.p.n. Y%Y%'&j&k&l&~&,.5&/.'.'.[.6.6. ", +" ,+,+=+=+++++W.O.O.v.v.z.v.p.n.n. Y%0&f&<&h&m&9&,./.'.'.[.[.6.6. ", +" ,+=+=+++++W.O.O.v.v.z.v.p.n.n.i. Y%&&j&n&o&^&,.p&'.'.[.6.6.6.q& ", +" =+++++++W.O.O.v.v.z.v.p.n.i.i.i. 0&r&Y@s&-&5&t&'.'.[.6.6.6.q&q& ", +" ++++++W.O.O.v.v.z.v.p.n.i.i.i.g. #&u&v&w&^&'.t&'.[.6.6.6.q&q&,& ", +" ++++W.O.O.v.v.z.p.p.n.i.i.i.g.d. x&y&-&5&t&t&'.[.6.6.6.q&q&,&q& ", +" `.W.O.v.v.v.z.p.p.n.i.i.i.g.d.f. z&A&B&9&'.t&[.6.6.6.q&q&,&q&C& ", +" O.O.v.v.v.z.p.p.n.i.i.i.g.d.f.d. D&E&R%'.t&[.6.6.6.q&q&,&q&C&_& ", +" O.W.v.v.z.p.p.n.i.i.g.g.d.f.d.d. s&F&t&'.[.6.6.6.q&q&,&q&C&_&_& ", +" v.v.p.z.v.n.n.i.i.i.g.d.f.d.d.c. G&m&H&t&[.6.6.6.q&q&,&q&C&_&_&_& ", +" v.v.z.p.n.n.i.i.i.g.d.f.d.d.c.c.c. 5&/.5&t&[.-&6.6.q&q&q&,&q&C&_&_&B&I& ", +" z.v.p.n.n.i.i.i.g.d.f.d.d.c.c.a.9.9.7. ,./.[.'.'.-&6.6.w.q&q&,&q&C&_&_&8&I&I& ", +" v.p.p.n.i.i.i.g.d.f.d.d.c.c.a.9.9.7.7.4. '.,./.[.'.-&-&6.6.q&q&q&,&C&C&_&_&8&I&I&l& ", +" p.i.i.i.i.g.d.f.d.d.c.f.a.9.9.7.4.4.5.4.2. ` '.,./.'.'.[.[.w.6.q&q&q&,&q&C&_&_&8&I&I&l&l& ", +" i.i.i.g.g.d.f.d.d.c.c.9.9.9.7.4.5.4.4.2.2.2. ` '.,.'.'.'.[.[.w.6.q&q&q&,&q&C&_&_&8&I&I&l&l&l& ", +" i.i.g.g.d.f.d.f.c.c.7.9.9.7.4.5.4.4.2.2.2.1.<.<. ` ` ,.,./.'.'.[.[.6.6.q&q&q&,&C&C&_&_&8&I&I&l&l&l&J& ", +" i.g.g.d.f.d.c.c.c.7.9.9.7.4.5.4.4.2.2.2.1.<.<.<.^.^. ` ` ,.,.,.'.'.[.[.6.6.q&q&q&,&C&C&_&_&8&I&I&l&l&J&J& ", +" g.d.f.d.c.c.c.9.9.9.7.4.5.4.4.2.2.2.1.<.<.<._.^.u.]. .` ` ,.,./.'.'.[.[.6.6.q&q&q&,&C&C&_&_&8&I&I&l&l&J&l&l& ", +" d.d.c.c.c.7.9.9.7.4.5.4.4.2.2.2.1.<.<.:.^.^.].].].].;. .` ` ,.,.[.'.'.[.6.6.6.q&q&q&q&C&C&_&_&8&I&I&l&l&J&l&J& ", +" d.m.c.c.7.9.9.7.4.5.4.4.2.2.1.1.<.<.^.^.^.].].].>.;.;.-. .. .` ` ,.,.[.'.'.[.6.6.6.q&q&q&q&C&_&_&_&8&I&l&l&l&J&l&J&J& ", +" c.c.7.9.9.7.4.5.4.4.2.2.2.1.<.<.<.^.^.].].].>.;.;.-.-.{.(. .. .` ,.,.,./.'.'.[.6.6.6.q&q&q&q&C&_&_&_&8&I&l&l&l&J&l&J&J& ", +" 7.9.9.7.4.4.4.4.2.2.2.1.<.<.:.^.^.].].].>.;.;.-.-.{.{.(.3. .... .` ,.,.,.'.'.'.[.6.6.6.q&q&,&q&C&_&_&_&8&I&l&l&l&J&l&J&J& ", +" 7.4.2.4.4.2.2.2.1.<.<.:.^.^.].].].>.;.;.-.-.{.(.(.3.0.3.3. .. . .` ,.,.,.'.'.'.[.6.6.6.q&q&,&q&C&_&_&B&I&I&l&l&l&J&l&J&J& ", +" 5.4.4.2.2.2.1.<.<.:.^.^.].].].>.;.;.-.-.{.(.3.3.3.3.3.*.*. +.+. . .` ,.,.,.'.'.'.[.6.6.6.q&q&,&q&C&_&_&_&I&I&I&l&l&J&l&J& ", +" 2.2.1.1.<.<._.^.^.].].].].;.;.-.-.{.(.(.3.0.3.3.*.*.~.*.&. +..... .` ` ,.,.[.'.'.[.6.6.q&q&q&,&q&C&_&_&_&I&I&K&l&l&J&l&J& ", +" 2.1.<.<.^.^.^.].].].].;.-.-.-.{.(.(.3.0.3.*.*.*.*.*.&.Z U #.+... . .` ` ,.,.[.'.[.[.6.6.6.q&q&q&q&C&_&_&B&I&I&l&l&l&J&l& ", +" <.^.^.^.].].>.].;.-.-.-.{.(.(.3.0.3.*.*.*.~.*.&.Z U U U T #.+... ...` ,.,.,.[.'.'.[.6.6.6.q&q&,&q&C&_&_&B&I&I&l&l&l&J&l& ", +" ^.^.].].>.].;.-.-.-.{.(.3.3.3.3.*.*.*.~.*.&.Z U U U T O Q @.#.+... ...` ,.,.,.[.'.'.[.6.6.6.q&q&,&q&C&_&_&B&I&I&l&l&l&J& ", +" ].>.].;.-.-.-.{.(.3.3.0.3.0.*.*.~.&.&.Z U U U T O Q O O K @.#.+... ...` ,.,.,.[.'.'.[.6.6.q&q&q&,&q&C&_&_&8&I&I&l&l&l& ", +" ;.;.-.-.{.{.(.3.0.0.3.*.*.*.~.&.&.Z U U U T O Q O O K K K E #.@.#.+... ...` ,.,.'.'.'.[.[.6.6.q&q&q&,&C&C&_&_&8&I&I&l&l&l& ", +" -.-.{.(.3.0.3.3.*.*.*.~.&.&.Z U U T T O Q O O K K %.F F E +.#.#.+... ...` ,.,.'.'.'.[.[.6.6.q&q&q&,&C&C&_&_&8&I&I&l&l& ", +" (.3.3.3.3.*.*.*.~.&.&.Z U U T T O O O O K K E F F E E C C 8.+.#.#.+... ...` ,.,./.'.'.[.[.6.6.q&q&q&,&C&C&_&_&8&I&I&l&l& ", +" 0.3.3.3.*.*.~.&.&.Z U U T T O O O O K K E F F E E C C u u 8.+.#.#.+... .` ` ,.,./.[.'.[.[.6.6.q&q&q&,&C&C&_&_&I&I&I&l& ", +" *.*.*.~.&.Z Z U U T T O O O O K K E F F E C C C u u u u t 8.8.+.#.#.+... .` ` ,.,./.'.'.[.6.6.6.q&q&q&,&C&C&_&_&8&I&I&l& ", +" *.*.&.&.Z U U U T O Q O O K K E F F E E C C u u v u t t o ).).+.#.+.+... ...` ,.,./.'.'.[.6.6.6.q&q&q&q&C&_&_&_&8&I&I& ", +" Z Z U U U O O Q O O K K E F F E C C C u u u u t o o o m l ).).8.#.#.+.+... ...` ,.,./.'.'.[.6.6.6.q&q&q&,&C&C&_&_&8&8&I& ", +" U U U O O Q O O K K E F F E C C C u u v u t o o o m l l s ).).).#.#.+.+... ...` ,.,.[.'.'.[.6.6.6.q&q&q&q&C&C&_&_&8&I& ", +" O O Q O O K K E F F E C C C u u v u t o o o m l l s s !.Y D ).).).#.#.+..... .` ,.,.,.[.'.'.[.6.6.6.q&q&q&q&C&_&_&_&8& ", +" Q O O K K E F F E C C C u u v u t o o o l l P s s !.Y Y S D D ).).+.#.#.+.+... .` ,.,.,./.'.'.[.6.6.6.q&q&q&q&C&_&_&_&8& ", +" K K E F F E C C C u u v u t o o o m l P s s !.s Y S S M M D D ).).+.+.#.+.+... .` ,.,.,.[.'.'.[.6.6.6.q&q&,&q&C&_&_&_& ", +" E F E E C C C u u v u t o o l l l s s s !.Y Y S S S M I k ).D D ).).).#.#.+..... .` ,.,.,.'.'.'.[.6.6.6.q&q&,&q&C&_&_&_& ", +" E C C C u u v u t o o l l l s s s !.Y Y S S M M I k k k k ).D D ).).+.#.#.+.......` ,.,.,.'.'.'.[.6.6.6.q&q&,&C&C&_&I& ", +" C C u u v t t o o m l l s s !.!.Y S S S M M I k k k k d d e D ).D D ).).8.#.#.+... ...` ` ,.,.[.'.'.[.6.6.6.q&q&,&C&C&_&I& ", +" u v u t o o m s l s s s s Y Y S S M M I k A k k d d 0 b b D ).D ).).).+.#.#.+.......` ,.,.,.[.'.'.[.6.6.L&q&q&q&q&C&_& ", +" t o o m l l s s s s Y S S S M M I k A k k d d 0 b b 0 8 8 D D D D ).).).+.#.#.+... ...` ,.,.,.[.'.'.[.6.6.L&q&q&,&q&C&_& ", +" o n l l s s s s Y S S S M M I k A k k d d 0 b b 0 0 8 8 7 D D D D D ).).#.#.#.+... ...` ,.,.,.[.'.'.[.6.6.L&q&q&,&C&C& ", +" l s s !.s Y S S S M I I k A k k d d 0 b b 0 8 8 8 7 5 6 5 x D D D D ).).).#.#.#.+... ...` ,.,.'.'.'.'.[.6.6.L&q&q&,&q& ", +" s !.s Y S S S M I I k A k k d d 0 b b 0 8 8 8 7 5 6 5 4 3 x x D D D ).).).#.#.#.+.......` ,.,.'.'.'.[.[.6.6.q&q&q&,&C& ", +" Y S S S M I I k k k R d d 0 b b 0 8 8 8 7 5 6 5 4 3 3 3 } x x D D D D ).).).+.#.#.+... ...` ,.,.'.'.'.[.[.6.6.q&q&q&,& ", +" S S M I I k k k d d d 0 b b 0 8 8 8 7 5 6 5 4 3 3 2 | | } x x D D D D ).).).+.#.#.+... ...` ,.,.[.'.'.'.[.6.6.q&q&q&_& ", +" I k A k k d d d 0 b b 0 8 8 8 7 5 6 5 4 3 3 3 } | | } / / D x x D D D D ).).).+.#.#.+.....` ` ,.,./.'.'.[.[.6.6.q&q&q& ", +" k k k d d d 0 b b 0 8 8 8 7 5 5 4 4 3 3 3 | | } } / / ~ ~ D x x D D D D ).).).+.#.#.+... .` ` ,.,./.'.'.[.6.6.6.q&q&q& ", +" d d d 0 b 0 0 8 8 8 7 5 5 4 4 3 3 | | | } / / / ~ ~ ~ { ! x D x x D D D D ).).#.+.#.#.+... .` ,.,.,./.'.'.[.6.6.6.q&q& ", +" d b b b 0 8 8 7 7 5 6 4 4 3 3 2 | | } } / / ~ ~ { { ! ! ' w w x x D D D D ).).8.#.#.+.+... ...` ,.,./.'.'.[.6.6.6.q&q& ", +" b 0 8 8 8 7 5 6 4 4 3 3 2 | | } / / / ~ ~ ~ ~ ! ! ' > , > g w w x x D D D D ).).).#.#.+.+.....` ` ,.,.[.'.'.[.6.6.6.q& ", +" 7 8 7 7 5 6 4 3 3 3 2 | | } / / / ~ ~ ~ ~ ! ' ' > , > > ; ; g w x x x D D D D ).).8.#.#.+.+.....` ` ,.,.'.'.'.[.6.6.6. ", +" 7 5 6 4 3 3 3 } | | } / / / ~ ~ ~ ~ ! ' ' > , > > ; ; * & g g x x x x D D D D ).).+.#.#.+.+... .` ,.,.,.[.'.'.[.6.6.6. ", +" 4 3 3 3 | | | } / / / ~ ~ { ~ ! ' ' , > > > ; ; * ; & % + g g x w x x D D D D ).).+.#.#.+.+... .` ,.,.,.[.'.'.[.6.w. ", +" 3 3 | | | } / / / ~ ~ { ~ ! ' ' , , > ; ; ; * ; & % + + + p g g x w x x D D D D ).).+.#.#.+... . .` ,.,.,.[.'.'.[.6.w. ", +" | | } / / / ~ ~ { ~ ! ' > > > > , ; ; * & & % + + + . $ # p g g x w x x D D D D ).).+.#.#.+.......` ,.,.,.[.'.'.[.6. ", +" } / / / ~ ~ { ~ ! ' > , > > ; ; ; * & % % + + + . $ # $ $ f p g g x w x x D D D D ).).+.#.#.+.......` ,.,.,.[.'.[.[.6. ", +" / ~ ~ { ~ [ ' ' , > > ; ; ; * & & % + + + . $ # $ $ = = ^ f p g g x w x x D D D D ).).+.#.#.+.......` ,.,.,.[.'.'.[. ", +" ~ { ~ ! ' > > > > ; ; ; * & & % + + . . $ # $ $ = = ^ ] ] q f p g x x w x x D D D ).).).#.#.#.+... ...` ,.,.,.'.'.6.[. ", +" ! ' > , > > ; ; ; * & & % + + . . $ # $ $ = = ^ ] ] ) : : p q f p g g x D x D D D D ).).).+.#.#.+... ...` ,.,.,.[.'.}. ", +" > , > > ; ; ; * & % % + + . $ $ # $ $ = = ^ ] ] ) : : : 1 p q f p g x w w x D D D D ).).).+.#.+.+... .` ` ,.,.'.[.'. ", +" > ; ; * * & & % + + . . $ # $ = ] = ^ ] ] ) : : : 1 1 1 1 g p q f M&g x x x x x D D D ).).).+.#.#.+.......` ,.,.'.[.'. ", +" ; ; ; & & % + + . $ # # $ = ] = ] ] ] ) : : : 1 1 1 1 H z g f q p M&g x w x x D D D D ).).).+.#.#.+.......` ,.,.[.[. ", +" & % + + + . . $ # $ = ] = ] ] ] ) : : : 1 1 L 1 H z z z r f f p q f p g x x x x D D D D ).).).+.#.#.+.....` ` ,.,.[.[. ", +" % + + . . $ # $ $ = = ) ] ] ) : : : 1 1 L 1 H z z z y r h h N&f f q p p g x w x x D D D D ).).).+.#.#.+.....` ` ,.,./. ", +" . $ $ # $ $ = = ) ] ] ) : : : 1 1 L 1 H z z z y r h h h h N&f f q p p g x w x x D D D D ).).).+.#.#.+... .` ` ,.,./. ", +" # $ $ = = ) ] ] ) : : : 1 1 L 1 H z z z y r r h h h f f f q p p g x w x x D D D D ).).+.#.#.#.+... .` ` ,.,. ", +" = = = ) ] ] ) : : D.1 1 L 1 H z z z r r h h h h f f f q p g g x w x x D D D D ).).#.#.#.+.+... .` ` ,.'. ", +" ) ] ] ) : : 1 1 1 L 1 H z z z y r h h h h f f f q p g g x w x x D D D D ).).+.#.#.+.+... .` ,.,. ", +" ] ) : : 1 1 1 L 1 H z z y r r h h h h f f f q p p g x x x x D D D D ).).+.#.#.+.+... .` ,. ", +" : 1 1 1 L H H z z G r r h h h h f f q f p g g x x x x D D D D ).).+.#.#.+.+... .` ` ", +" 1 1 L H z z z y r r h h h h f f f f p g x x w x x D D D ~+).~+8.#.#.+..... .` ", +" 1 H z z y r r h h h h f f f f p g x x w x x D D D D ).).8.#.#.+... . .,. ", +" z z y r r h h h h f f q f p g x x w x x D D D D ).).#.#.#.+....... ", +" r r h h h h f f q f p g x x w x x D D D D ).).+.#.#.+... . . ", +" h h h h f f q f p g g x w x x D D D J.).).+.#.#.+... . ", +" h f f q f p q g w x x x D D D ).).).+.#.#.+... . ", +" f q f p g g x x x D D D D ).).).+.#.+.+... ", +" p g x x x x D D D D ).).).+.#.+.+. ", +" w x x x D D D ).).8.#.#.#.+. ", +" x D D D D ).).).#.#.@. ", +" ).).).+. ", +" ", +" "}; diff --git a/share/pixmaps/bitcoin32.png b/share/pixmaps/bitcoin32.png index 90a418eb1dbb9eb18acb8ca5c2f59bf2d9e4dee5..2f849e0c22fea39456d64b6119893bace0439d96 100755 GIT binary patch delta 1823 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 tW8RjS*~M(#%WT~j c #393148", -", c #3C334C", -"< c #3D344D", -"1 c #3F344F", -"2 c #40384C", -"3 c #40394C", -"4 c #403652", -"5 c #423653", -"6 c #443E51", -"7 c #463E52", -"8 c #43375A", -"9 c #493D5F", -"0 c #4B3E62", -"q c #503E73", -"w c #494154", -"e c #4D4458", -"r c #4F416A", -"t c #50436A", -"y c #52456D", -"u c #585263", -"i c #595364", -"p c #5A5366", -"a c #5D5768", -"s c #524073", -"d c #554671", -"f c #514075", -"g c #564677", -"h c #584976", -"j c #5B4D76", -"k c #544378", -"l c #544478", -"z c #584779", -"x c #584879", -"c c #5A4B7A", -"v c #5B4A7B", -"b c #5B4B7B", -"n c #5B4B7D", -"m c #5C4B7D", -"M c #5C4C7C", -"N c #5D4C7C", -"B c #5C4D7C", -"V c #5F4F7F", -"C c #605A6B", -"Z c #655F6F", -"A c #6D6776", -"S c #5E4D80", -"D c #604F80", -"F c #615281", -"G c #635482", -"H c #645483", -"J c #675885", -"K c #685986", -"L c #685A86", -"P c #6A5B87", -"I c #6A5C87", -"U c #6D5B8A", -"Y c #70638C", -"T c #797383", -"R c #7E7887", -"E c #746691", -"W c #766890", -"Q c #7B6D94", -"! c #7A6C95", -"~ c #7B6C98", -"^ c #81749A", -"/ c #83779B", -"( c #83779C", -") c #84779C", -"_ c #857B9A", -"` c #878290", -"' c #888292", -"] c #8C8794", -"[ c #908B97", -"{ c #908A98", -"} c #918C9A", -"| c #948F9B", -" . c #95909C", -".. c #97949E", -"X. c #9388A8", -"o. c #9488AD", -"O. c #978CAF", -"+. c #988EAD", -"@. c #9A96A2", -"#. c #9C98A3", -"$. c #9C93B0", -"%. c #9E94B1", -"&. c #A095B2", -"*. c #A095B5", -"=. c #A299B4", -"-. c #A69DB7", -";. c #A89FBA", -":. c #A89FBC", -">. c #ADAAB3", -",. c #A9A1BA", -"<. c #ABA3BC", -"1. c #B1AFB7", -"2. c #B7B0C6", -"3. c #BBB5C9", -"4. c #BCB5C9", -"5. c #BFB8CB", -"6. c #C2BCCF", -"7. c #C4BECF", -"8. c #C2C0C6", -"9. c #C9C6CD", -"0. c #C8C3D3", -"q. c #CBC6D5", -"w. c #CCC7D6", -"e. c #CDCCD1", -"r. c #D3CEDC", -"t. c #D2D0D5", -"y. c #D5D4D8", -"u. c #D5D1DD", -"i. c #D9D6E1", -"p. c #DCD9E3", -"a. c #E1DEE7", -"s. c #E5E2EB", -"d. c #E9E7EE", -"f. c #EBE9EF", -"g. c #ECEAEC", -"h. c #EDEDEE", -"j. c #EEECF1", -"k. c #F0EFF3", -"l. c #F2F1F4", -"z. c #F4F2F6", -"x. c #F7F6F8", -"c. c #FBFBFB", -"v. c #FEFFFE", -"b. c None", -/* pixels */ -"b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.", -"b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.", -"b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.", -"b.b.b.b.b.b.b.b.b.b.b.b.g.e.>.} =.4.u.j.b.b.b.b.b.b.b.b.b.b.b.b.", -"b.b.b.b.b.b.b.h.t.1.| T p 2 + O s v G ~ o.;.5.i.j.b.b.b.b.b.b.b.", -"b.b.b.b.b.8.R a 7 # b.b.b.b.b.b.b.b.b.b.f n P Q o.q.b.b.b.b.b.", -"b.b.b.b.b.] b.b.b.b.b.D M M M M n B M b.b.b.b.b.f $.b.b.b.b.b.", -"b.b.b.b.b.[ b.$ 5 v D D S m v l v x n S D S M M M b.&.b.b.b.b.b.", -"b.b.b.b.b.[ b.% < h M v K / / / ~ / W M z M M F M b.&.b.b.b.b.b.", -"b.b.b.b.b.[ b.* : y M g X.l.k.k.l.l.x.p.^ z M S M b.&.b.b.b.b.b.", -"b.b.b.b.b.[ b.* % 9 M M V I K K I L Q w.x.E v M M b.&.b.b.b.b.b.", -"b.b.b.b.b.[ b.* - 4 M m g g g g g c l F f.3.l S M b.&.b.b.b.b.b.", -"b.b.b.b.b.[ b.* : - r ! 0.0.0.0.2.F v g 7.p.v S M b.&.b.b.b.b.b.", -"b.b.b.b.b.[ b.* : % 1 Y ,.,.,.,.%.M v g q.u.v M M b.&.b.b.b.b.b.", -"b.b.b.b.b.[ b.* : - - r l q s s f h f Y x.<.l S M b.&.b.b.b.b.b.", -"b.b.b.b.b.[ b.* : - % : j ^ / ( ) ) $.d.a.J B S M b.&.b.b.b.b.b.", -"b.b.b.b.b.[ b.* : ; % + p v.z.j.k.j.d.3.I v B S M b.&.b.b.b.b.b.", -"b.b.b.b.b.[ b.* : ; - + u c._ H K J F g v M n S M b.&.b.b.b.b.b.", -"b.b.b.b.b.[ b.* : ; * % u c.Z 8 h N N N M M M S M b.&.b.b.b.b.b.", -"b.b.b.b.b.[ b.% : ; % + u c.Z + , 0 g B S M M D M b.%.b.b.b.b.b.", -"b.b.b.b.b...b.* : : & @ i c.Z + - % : 4 0 t d b c b.-.b.b.b.b.b.", -"b.b.b.b.b.9.e b.: : = # i v.Z + ; % - % % % > > b.U w.b.b.b.b.b.", -"b.b.b.b.b.b.@.= b.: : % 3 A 7 % * * : % % : : b.M <.b.b.b.b.b.b.", -"b.b.b.b.b.b.b.{ = b.: : * + % % ; ; - : - % b.M *.b.b.b.b.b.b.b.", -"b.b.b.b.b.b.b.b.#.6 b.b.: : : : * : : ; b.b.H :.b.b.b.b.b.b.b.b.", -"b.b.b.b.b.b.b.b.b.6.C X b.b.: : : : b.b.k E 6.b.b.b.b.b.b.b.b.b.", -"b.b.b.b.b.b.b.b.b.b.h. .w . b.b.b.b.l H *.s.b.b.b.b.b.b.b.b.b.b.", -"b.b.b.b.b.b.b.b.b.b.b.b.y.` 2 o f F O.r.b.b.b.b.b.b.b.b.b.b.b.b.", -"b.b.b.b.b.b.b.b.b.b.b.b.b.b.e.' +.r.b.b.b.b.b.b.b.b.b.b.b.b.b.b.", -"b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.", -"b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.", -"b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b.b." -}; +static char * C:\Users\Admin\Documents\GitHub\ittrium\share\pixmaps\bitcoin32_xpm[] = { +"32 32 124 2", +" c None", +". c #4BCDFF", +"+ c #49CBFF", +"@ c #4ED0FF", +"# c #4DCEFF", +"$ c #47CAFF", +"% c #45C9FF", +"& c #42C7FF", +"* c #40C6FF", +"= c #52D3FF", +"- c #4DCFFF", +"; c #43C7FF", +"> c #41C6FF", +", c #3EC4FF", +"' c #38C0FF", +") c #55D4FF", +"! c #53D3FF", +"~ c #51D1FF", +"{ c #4FD0FF", +"] c #4ACDFF", +"^ c #3CC3FF", +"/ c #36BFFF", +"( c #34BDFF", +"_ c #32BCFF", +": c #5BD8FE", +"< c #59D7FE", +"[ c #57D6FF", +"} c #55D4FE", +"| c #48CBFF", +"1 c #3CC2FF", +"2 c #3AC1FF", +"3 c #36BEFF", +"4 c #32BBFF", +"5 c #30BAFF", +"6 c #2EB8FF", +"7 c #2CB7FF", +"8 c #2AB6FF", +"9 c #28B4FF", +"0 c #59D8FE", +"a c #56D5FE", +"b c #54D4FF", +"c c #50D1FF", +"d c #46CAFF", +"e c #2FBAFF", +"f c #2AB5FF", +"g c #26B3FF", +"h c #52D1FD", +"i c #1DA2ED", +"j c #56D6FF", +"k c #50D1FE", +"l c #4ECFFF", +"m c #29B5FF", +"n c #25B2FF", +"o c #23B1FF", +"p c #39BBF5", +"q c #007DE0", +"r c #21B0FF", +"s c #20A4EE", +"t c #0082E2", +"u c #21AFFF", +"v c #1FAEFF", +"w c #1097E9", +"x c #0088E4", +"y c #1DADFF", +"z c #0A91E7", +"A c #068EE5", +"B c #1DACFF", +"C c #1BABFF", +"D c #1BABFE", +"E c #19A9FE", +"F c #0B94EA", +"G c #0D95EA", +"H c #18A9FE", +"I c #17A8FE", +"J c #0E99EF", +"K c #109AF0", +"L c #16A8FF", +"M c #15A7FF", +"N c #109FF7", +"O c #13A1F7", +"P c #14A5FC", +"Q c #12A3FC", +"R c #14A5FE", +"S c #16A7FE", +"T c #119FF5", +"U c #109EF5", +"V c #18A9FF", +"W c #0F99EF", +"X c #0E99F0", +"Y c #1AAAFE", +"Z c #0B95EC", +"` c #0E98ED", +" . c #0590EB", +".. c #139CEE", +"+. c #0089E8", +"@. c #21A8F1", +"#. c #20AEFF", +"$. c #22B0FF", +"%. c #0086E7", +"&. c #3CBEF7", +"*. c #24B1FF", +"=. c #25AAF1", +"-. c #56D5FD", +";. c #24B2FF", +">. c #27B3FF", +",. c #5CD9FE", +"'. c #5EDBFE", +"). c #2BB7FF", +"!. c #5AD7FE", +"~. c #5BD9FF", +"{. c #60DCFE", +"]. c #59D7FF", +"^. c #5EDBFF", +"/. c #33BCFF", +"(. c #35BDFF", +"_. c #37BFFF", +":. c #5CD9FF", +"<. c #5AD8FF", +"[. c #55D5FF", +"}. c #4ACCFF", +"|. c #58D6FF", +"1. c #4CCEFF", +"2. c #54D3FF", +"3. c #56D5FF", +" . + ", +" @ # . + $ % & * ", +" = - . + ; > , ' ", +" ) ! ~ { ] + , ^ ' / ( _ ", +" : < [ } = ~ @ # . | $ 1 2 ' 3 ( 4 5 6 7 8 9 ", +" 0 a b ! c { ] | d ' 3 ( e 6 7 f 9 g ", +" h i j k l # 6 7 m 9 n o ", +" p q r ", +" s t u v ", +" w x v y ", +" z A B C ", +" z z D E ", +" F G H I ", +" J K L M ", +" N O P Q ", +" R S T U ", +" L V W X ", +" H Y Z ` ", +" C B ... ", +" y v +.@. ", +" #.$. %.&. ", +" $.*. =.-. ", +" ;.>. ,.'. ", +" >.m ). !.~.'.{. ", +" ).6 5 _ ].~.^.{. ", +" /.(._.2 [ ].:.^. ", +" _.2 1 , [ <.:.^. ", +" , > ; % [.[ <.:. ", +" % | }. ) |.<. ", +" }.1.{ ~ 2.) |.<. ", +" ~ ! 3.|. ", +" [.|. "}; diff --git a/share/pixmaps/bitcoin64.png b/share/pixmaps/bitcoin64.png index 9ac4854a862d7d2785389600977cc846afcf9151..af451dbe8eb5eede657721f9e1365e588d9e7f4a 100755 GIT binary patch literal 4319 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 diff --git a/share/pixmaps/bitcoin64.xpm b/share/pixmaps/bitcoin64.xpm index 656b2c9..d256e3f 100755 --- a/share/pixmaps/bitcoin64.xpm +++ b/share/pixmaps/bitcoin64.xpm @@ -1,148 +1,315 @@ /* XPM */ -static char *bitcoin64[] = { -/* columns rows colors chars-per-pixel */ -"48 48 94 2 ", -" c #2E263C", -". c #31273E", -"X c #31293E", -"o c #362E43", -"O c #382F45", -"+ c #373044", -"@ c #393146", -"# c #3C334B", -"$ c #3F3451", -"% c #433A53", -"& c #473C5D", -"* c #483C5E", -"= c #4B3F63", -"- c #503E72", -"; c #4B4357", -": c #534C5F", -"> c #4F4169", -", c #51436B", -"< c #5B5467", -"1 c #5D5669", -"2 c #554576", -"3 c #574874", -"4 c #584A76", -"5 c #574678", -"6 c #58477A", -"7 c #5C4B7C", -"8 c #5F507D", -"9 c #625B6D", -"0 c #60517F", -"q c #676072", -"w c #6B6475", -"e c #706B7A", -"r c #5F4F80", -"t c #604F81", -"y c #625281", -"u c #675886", -"i c #6D5E8A", -"p c #70628E", -"a c #777283", -"s c #7C7685", -"d c #766793", -"f c #796B95", -"g c #7C6E9A", -"h c #7D7196", -"j c #7F719A", -"k c #827C8B", -"l c #81749B", -"z c #85799E", -"x c #8577A0", -"c c #8678A1", -"v c #868290", -"b c #898492", -"n c #918B98", -"m c #9186A6", -"M c #958AAC", -"N c #988EAD", -"B c #9995A0", -"V c #9F9BA6", -"C c #9C92AF", -"Z c #9D94B2", -"A c #A096B3", -"S c #A69DB9", -"D c #A9A5AF", -"F c #ADA5BC", -"G c #B0ADB5", -"H c #B5B1BB", -"J c #B6AEC4", -"K c #B8B1C6", -"L c #BFBCC3", -"P c #BCB4CB", -"I c #BFB9CB", -"U c #C2BCCF", -"Y c #C3BED1", -"T c #C8C6CC", -"R c #CAC5D5", -"E c #CECBD4", -"W c #D1CFD3", -"Q c #D2CDDB", -"! c #D6D2DE", -"~ c #DAD8DD", -"^ c #D8D4E0", -"/ c #DFDCE5", -"( c #E0DEE4", -") c #E3E2E5", -"_ c #E5E3EA", -"` c #E8E6EC", -"' c #EDECEF", -"] c #ECEAF0", -"[ c #F0EEF4", -"{ c #F4F3F5", -"} c #F5F4F8", -"| c #F9F7FA", -" . c #FEFEFE", -".. c None", -/* pixels */ -"................................................................................................", -"................................................................................................", -"................................................................................................", -"................................................................................................", -".......................................... .| / _ | ...........................................", -"................................ . .) T D k < % 8 f N P Q ` | .................................", -"...................... . .` E G b 9 % + X o X @ 5 6 7 6 7 u l Z P ^ ] . .......................", -".............. .' W H n q ; + X X + + O ............7 7 7 7 5 6 r i c S Y ^ ] ...............", -"..............{ w + X X o ........................................7 2 2 2 r x [ ..............", -"..............' 1 + ................8 7 8 7 8 r r 8 7 7 8 7 ..................d ] ..............", -"..............[ 1 ......# 4 7 8 8 r t t 7 8 7 7 7 7 8 7 r r r r 7 r 7 r ......d ] ..............", -"..............' 1 ....# @ 3 8 7 7 7 7 5 7 7 7 7 7 7 7 7 7 7 7 8 7 7 r t u ....d ' ..............", -"..............' 1 ....@ + > 7 7 8 7 8 t r y y 8 y y y 8 2 2 8 7 7 7 7 7 r ....d ] ..............", -"..............[ 1 ....@ + * 7 7 7 6 p _ ] ] ] ] ] ] ` ( I c 6 7 7 8 7 7 r ....d ] ..............", -"..............' 1 ....@ + $ 7 7 7 6 p ` ` ] ` ` ` ` ` | . .K 8 7 7 7 r r ....d ' ..............", -"..............' 1 ....@ + @ 3 7 7 7 7 y y y y y 8 8 0 i Z [ | J 2 7 7 r t ....d ] ..............", -"..............' 1 ....@ o o = 8 7 7 7 7 7 7 7 7 5 7 7 4 2 l { { j 6 7 7 r ....d ] ..............", -"..............' 1 ....@ o o % 7 7 7 2 2 2 2 2 2 5 5 7 7 7 2 U .F 2 8 7 r ....d ] ..............", -"..............[ 1 ....@ o o o , 7 j F F F J F F F f 4 7 7 2 Z .R 2 7 7 r ....d ] ..............", -"..............[ 1 ....@ o o o % 5 A . . . . . . .N 5 7 7 2 N .R 7 7 7 r ....d ] ..............", -"..............[ 1 ....@ + o + o > u p d d p p d d y 7 7 7 2 F .P 2 8 8 t ....d ] ..............", -"..............' 1 ....@ @ o o o $ 4 7 7 7 4 7 4 4 7 7 7 7 7 / | N 2 7 7 t ....d ] ..............", -"..............' 9 ....@ + o o O o & 8 5 4 5 5 5 5 5 5 2 8 K .( u 7 7 r r ....d ] ..............", -"..............' 1 ....@ @ o + o o o > l m m m m m m M S / .' z 2 7 7 r r ....d ] ..............", -"..............[ 1 ....@ @ + o + + + @ W . . . . . . . . .! h 2 8 7 7 r r ....d ' ..............", -"..............' 1 ....@ + o + o o + X T .Y S S F F S C j 8 5 7 7 7 7 7 r ....d ] ..............", -"..............' 1 ....@ + o o O + o X T .h - 2 2 2 2 2 5 7 8 7 7 7 7 8 t ....d ] ..............", -"..............{ 1 ....@ + + + o + o X T .e $ 4 7 7 7 7 8 7 7 7 7 7 7 7 r ....d ' ..............", -"..............' 1 ....@ + o o @ o + X T .e X @ = 4 7 7 7 7 7 7 7 7 7 7 r ....d ] ..............", -"..............' 1 ....@ + + o o O o o T .e X o o # * 3 7 7 r 8 7 7 7 7 t ....d ] ..............", -"..............{ 9 ....+ o + o o + + X T .e X o o o o O $ * , 5 7 7 r r r ....f [ ..............", -".............. .k o ..O @ + @ o o @ X T .e X o + o o o o o O @ $ % & = , ..7 M ...............", -"................T # ....@ + + + + o o E .e o o + o O O o o o o o o o ....r R ................", -"................ .v o ....@ @ + o O o s B : o + O o + o o o + O + + + ....6 M .................", -"..................' q X ....O @ + O O X o o o o @ o @ O O O + @ @ ....7 g ' ..................", -"....................` q o ......+ @ o O + + o o o o o o O O @ @ ......7 f _ ....................", -"......................' a o o ....@ @ + o O o O + o O o @ @ O ......7 x ` ......................", -"........................| V $ X ......@ @ @ o o @ o @ @ @ ......7 r A } ........................", -".......................... .T 9 o o ......+ @ @ @ @ @ ......8 2 p Y ...........................", -"..............................[ V % . O ......O @ ......r 5 t Z _ ..............................", -"................................ .~ s O X O ........8 7 r l E .................................", -".................................... .T w o o @ 7 7 6 d U | ....................................", -"........................................ .L w O 5 h U | ........................................", -"............................................| T R | ............................................", -"................................................................................................", -"................................................................................................", -"................................................................................................", -"................................................................................................" -}; +static char * C:\Users\Admin\Documents\GitHub\ittrium\share\pixmaps\bitcoin64_xpm[] = { +"64 64 248 2", +" c None", +". c #4CCEFF", +"+ c #4BCDFF", +"@ c #4ACCFF", +"# c #49CBFF", +"$ c #48CBFF", +"% c #47CAFF", +"& c #4ECFFF", +"* c #4DCEFF", +"= c #46CAFF", +"- c #45C9FF", +"; c #44C8FF", +"> c #43C7FF", +", c #41C6FF", +"' c #4FD0FF", +") c #46C9FF", +"! c #43C8FF", +"~ c #42C7FF", +"{ c #40C6FF", +"] c #40C5FF", +"^ c #4BCEFF", +"/ c #3EC4FF", +"( c #55D4FF", +"_ c #54D4FF", +": c #53D3FF", +"< c #52D2FF", +"[ c #51D1FF", +"} c #50D0FF", +"| c #3FC5FF", +"1 c #3DC3FF", +"2 c #3CC3FF", +"3 c #39C1FF", +"4 c #38C0FF", +"5 c #37BFFF", +"6 c #36BEFF", +"7 c #35BEFF", +"8 c #54D3FF", +"9 c #50D1FF", +"0 c #34BDFF", +"a c #33BCFF", +"b c #5AD8FF", +"c c #59D7FF", +"d c #58D6FF", +"e c #4DCFFF", +"f c #3DC4FF", +"g c #3BC2FF", +"h c #35BDFF", +"i c #32BBFF", +"j c #31BBFF", +"k c #2EB8FF", +"l c #2DB8FF", +"m c #2CB7FF", +"n c #5BD8FF", +"o c #57D6FF", +"p c #56D5FF", +"q c #4ACDFF", +"r c #47CBFF", +"s c #3AC1FF", +"t c #30BAFF", +"u c #2BB6FF", +"v c #2AB6FF", +"w c #29B5FF", +"x c #59D7FE", +"y c #58D6FE", +"z c #56D6FF", +"A c #52D3FF", +"B c #49CCFF", +"C c #39C0FF", +"D c #2FB9FF", +"E c #28B4FF", +"F c #27B3FF", +"G c #58D7FF", +"H c #57D6FE", +"I c #31BAFF", +"J c #2DB7FF", +"K c #2AB5FF", +"L c #28B5FF", +"M c #25B3FF", +"N c #25B2FF", +"O c #5AD8FE", +"P c #56D5FE", +"Q c #52D1FD", +"R c #55D5FF", +"S c #53D3FE", +"T c #26B3FF", +"U c #24B1FF", +"V c #57D5FE", +"W c #5CDAFF", +"X c #34B6F3", +"Y c #52D2FE", +"Z c #22B0FF", +"` c #0B91E7", +" . c #51D1FE", +".. c #4ED0FF", +"+. c #21B0FF", +"@. c #55D4FE", +"#. c #5BDAFF", +"$. c #33B5F3", +"%. c #0084E2", +"&. c #23B1FF", +"*. c #20AFFF", +"=. c #1298E9", +"-. c #0087E4", +";. c #1FAEFF", +">. c #58D8FF", +",. c #45C6F9", +"'. c #0088E4", +"). c #048CE6", +"!. c #1EADFF", +"~. c #5ADAFF", +"{. c #2DB1F2", +"]. c #0086E3", +"^. c #068EE6", +"/. c #1DADFF", +"(. c #199EEC", +"_. c #1CACFF", +":. c #4ACBFC", +"<. c #0B93E8", +"[. c #038CE5", +"}. c #078EE6", +"|. c #1BABFF", +"1. c #3BBEF7", +"2. c #058DE5", +"3. c #088FE6", +"4. c #1DACFF", +"5. c #1AAAFF", +"6. c #2CB0F2", +"7. c #048CE5", +"8. c #0990E5", +"9. c #19AAFF", +"0. c #1FA5EE", +"a. c #0990E6", +"b. c #0A91E6", +"c. c #18A9FF", +"d. c #169DEC", +"e. c #078FE7", +"f. c #0A92E7", +"g. c #0B92E7", +"h. c #19A9FF", +"i. c #17A8FF", +"j. c #1098EB", +"k. c #0991E8", +"l. c #0C94E9", +"m. c #16A7FF", +"n. c #0D96EC", +"o. c #0B94EA", +"p. c #0C95EB", +"q. c #0E96EC", +"r. c #18A9FE", +"s. c #17A8FE", +"t. c #15A7FE", +"u. c #15A6FE", +"v. c #0C96EE", +"w. c #0C97EE", +"x. c #0E98EE", +"y. c #0F99EE", +"z. c #15A6FF", +"A. c #14A6FE", +"B. c #0C99F1", +"C. c #0E9AF1", +"D. c #0F9BF1", +"E. c #109BF1", +"F. c #12A5FE", +"G. c #0E9DF5", +"H. c #0F9DF5", +"I. c #109EF5", +"J. c #119FF5", +"K. c #15A6FD", +"L. c #13A5FD", +"M. c #12A4FD", +"N. c #11A4FD", +"O. c #10A0F9", +"P. c #11A0F9", +"Q. c #12A2F9", +"R. c #13A2F9", +"S. c #13A3FA", +"T. c #12A2FA", +"U. c #11A1FA", +"V. c #10A1FA", +"W. c #11A3FD", +"X. c #12A4FC", +"Y. c #14A5FC", +"Z. c #15A5FD", +"`. c #12A0F7", +" + c #119FF6", +".+ c #109EF6", +"++ c #109FF7", +"@+ c #16A7FE", +"#+ c #109DF3", +"$+ c #0F9CF3", +"%+ c #0D9BF3", +"&+ c #129FF4", +"*+ c #0F9AF0", +"=+ c #0B98F1", +"-+ c #17A2F3", +";+ c #0E99EF", +">+ c #0A96EE", +",+ c #20A8F3", +"'+ c #16A8FF", +")+ c #0D97ED", +"!+ c #0893EC", +"~+ c #2CB2F5", +"{+ c #0C96EC", +"]+ c #0B95ED", +"^+ c #0993EC", +"/+ c #3ABEF8", +"(+ c #0B95EC", +"_+ c #4ACBFB", +":+ c #0B94EC", +"<+ c #0590EB", +"[+ c #18A0EF", +"}+ c #0A94EB", +"|+ c #028CE9", +"1+ c #2CB1F3", +"2+ c #5EDCFF", +"3+ c #20AEFF", +"4+ c #0993EB", +"5+ c #038EE9", +"6+ c #5DDBFF", +"7+ c #21AFFF", +"8+ c #038FEA", +"9+ c #139BED", +"0+ c #1FADFF", +"a+ c #008BE9", +"b+ c #34B7F5", +"c+ c #60DDFF", +"d+ c #0D97EC", +"e+ c #56D4FD", +"f+ c #5CD9FE", +"g+ c #24B2FF", +"h+ c #3CBEF6", +"i+ c #5BD9FE", +"j+ c #5DDAFF", +"k+ c #5EDBFF", +"l+ c #5FDBFE", +"m+ c #5CDAFE", +"n+ c #5FDBFF", +"o+ c #60DCFF", +"p+ c #5BD9FF", +"q+ c #5DDAFE", +"r+ c #5EDAFE", +"s+ c #61DDFF", +"t+ c #5CD9FF", +"u+ c #32BCFF", +"v+ c #33BDFF", +"w+ c #3BC1FF", +"x+ c #3CC2FF", +"y+ c #57D5FF", +" ", +" . + @ # $ % ", +" & * . + @ # $ % = - ; > , ", +" ' & * . + @ $ $ % ) - ! > ~ { ] ", +" & * ^ + @ $ $ % ) - ! ~ , { ] / ", +" ( _ : < [ } * ^ + @ # ~ { | / 1 2 3 4 5 6 7 ", +" ( 8 : < [ 9 ' . + @ # / 1 2 3 4 5 6 7 0 a ", +" b c d ( _ : < [ 9 ' e + @ $ $ f 2 g 4 5 6 h 0 a i j k l m ", +" n b c d o p : : < [ } ' & . ^ q @ $ r % 2 g s 3 4 5 6 7 0 a i j t k l m u v w ", +" n b x y z p ( 8 A < 9 9 & . ^ + B $ $ = - g s C 4 5 6 h 0 i j t D k l m u v w E F ", +" n b G y H p ( : : < 9 } ' . ^ q B $ $ = - s C 4 5 6 h 0 a I t D k J m u K L E F M N ", +" O x G P Q R S : < 9 } ' e + q B $ r = - 4 5 6 h 0 a i t D k l m u K w E F T N U ", +" x V W X G Y < 9 } ' e $ $ 7 0 a i k J m u K L E M N U Z ", +" H o Q ` .9 } ..e * l m v w L E N U Z +. ", +" @.#.$.%. 9 ' w E &.Z +.*. ", +" @.z =.-. Z +.*.;. ", +" >.,.'.). +.*.;.!. ", +" ~.{.].^. *.;.!./. ", +" p (.'.^. ;.!./._. ", +" :.<.[.}. !./._.|. ", +" 1.2.^.3. 4._.|.5. ", +" 6.7.3.8. _.|.5.9. ", +" 0.2.a.b. |.5.9.c. ", +" d.e.f.g. 5.h.c.i. ", +" j.k.<.l. 9.c.i.m. ", +" n.o.p.q. r.s.t.u. ", +" v.w.x.y. s.m.z.A. ", +" B.C.D.E. t.t.A.F. ", +" G.H.I.J. K.L.M.N. ", +" O.P.Q.R. S.T.U.V. ", +" W.X.Y.Z. `. +.+++ ", +" F.A.u.@+ #+$+%+&+ ", +" A.z.m.s. D.*+=+-+ ", +" t.@+s.r. x.;+>+,+ ", +" '+i.c.9. )+)+!+~+ ", +" i.c.9.|. {+]+^+/+ ", +" c.9.|._. (+^+)+_+ ", +" 5.|._./. :+<+[+H ", +" |._./.!. }+|+1+2+ ", +" _./.!.3+ 4+5+,.6+ ", +" /.!.3+7+ 8+9+x b ", +" 0+;.7+Z a+b+c+x ", +" 3+7+Z &. d+e+W f+ ", +" 7+Z &.g+ h+c+i+j+ ", +" Z &.g+M x f+W k+l+ ", +" U g+T F E w b i+m+j+n+o+ ", +" T F E w v m c b p+q+r+n+o+ ", +" E w v m J k D c b p+j+k+n+o+s+ ", +" v m J k D t j G c b t+j+k+n+o+ ", +" k D t j u+v+h G c n t+j+k+n+o+ ", +" t i a v+h 6 5 o G c n t+j+k+n+ ", +" 0 h 6 5 4 3 w+ o G b n t+j+k+ ", +" 6 5 4 s w+x+1 p o G b n t+j+k+ ", +" s g x+1 / | , p o c b n t+j+ ", +" x+1 / | , ~ > ; ( p o c b n t+j+ ", +" | , ~ > ; - % ( p d c b n t+ ", +" ~ > ; - = $ # @ _ ( p o c b p+t+ ", +" - % $ # @ + . _ ( p d c b n ", +" $ B @ + . e ' 9 : _ ( p d c b n ", +" + . & ' 9 [ < : _ p y+d c b ", +" e ' 9 [ < : _ p z d c ", +" [ < : _ p o G c ", +" _ p o d ", +" "}; diff --git a/share/pixmaps/favicon.ico b/share/pixmaps/favicon.ico index 830aa98df5de209eea1ecbabc83505d9eee51898..de51520dac1aaa5149cce6d60f5206b736d4539d 100755 GIT binary patch literal 370070 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%0DB664;=2@xH_K> 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 literal 5430 zcmeHLdr(tX8o$==b2_zubfz=g-IcnER$k#19*dASj}QnUKoSUVg(|EdC~t{ig+;6& z31Er>qAvJCtSBNB6+}?6RTph%-Bp(pyv+)GglsJE#1-lOnpLdCvKQKl3{nV3vJ*JA%?*tY`v@D@i*_v3}4u>b$n1_0h^ zZ*G-eYi(B!!|=Ov|tt%ZJo+WvOhhhUm>I!3$>Q1WnHr&3{BME>*3ujvg0N$;u ztjSM|jICp>v?*bm+h1Z^*me2axt5eAW*t6X+famK7Cmnb?ElsN-IZ#&K%{Z|*!rxG zGY35FU4YMU1g@0>xURHrNtT3a+728m>xcedKf6Xp>p9Q(;K)k1mA2QA8+Pv~hL|8F zu*_`0)7lvV962C!;C!t~$l7!BVz=4i}D|gj2g~;PCcR$QFk~ zx|hOO5E@t0b)s4MqWK(4dxN*F3*;(dpmcpEsN>V2QCkCNs}Dh{d(cbgvn}imi6S|i z*6xQ>6$hYXT`Dbm&)M^kDN@clU&a^hLvBNwmjZS~B|>RJCeBZTljYUWQgisF`~iGn zrNWsHDp4rxR~16jo`cX-aS-ZvYGJE18Zx|s;m@IQRWHy#GD@O25a_@yPUK1|k~ot3 z6rQw;U<1qVcnU9YPllJGSiLrNe|KYR^t1Ns>+4&3^2o6*+MTEcEuB2r77kts9EnXTPnw@AjnbVet%kvWepjmlJxRZB+|aJ>9cSBa ztW$)8^B*jrp(KlKuYbOi_ z!v+<=Tdyj|)YR0v@`9oXftBN5T$fl_@U0xnP~Ru0D_|Z5%x5(Bj0`h!(0SRCS)p_m zm}h&3R5xm>CiLU_={|Y5KT)}-5C0*=Uik!?w|K`cAt^)L_KUPdo$#|iuRo%>$1#jA=+OKPwAc(1x_kZa+v zj%UTpcV{^3d5mce!XG7(0q!ZR4_i(1bFBy`%?A=D3&K`;!dk8v5(NQ}?j1atB9!k; zcMpj^z31TYD8NUvvs08Fz_hfWXozEOr{q{L&!Fzc7xAycb3kg6NLL{wdjvri)gc(d>)p#BO6E~I+OXkNMw zBemFnLFE%l^QU?$f=_6whA<{9pOqZ{oGZUJ<5Soguo||>W8qU-45<7fAXN}VYPqK} z%s0Oq)~sv%6<{fL!c ze_ZtcwQOI|#HGW{_O2hH^Z04V_6>s!VK8js1;AHdc0k`Zckm1-h%de|Kl;AW*UpXB zkJRbJu7qa>zJt&{@aW+nbT^)*$IXZRQFkMWX(X;>qK+y_1muORrO){`#V0V0 zSSX20gIkxb!o=7QP!zk7_JR4}C-EKAvvM(2i4}}ozX`SEcM`n+?IE<=%>O@K=WYSqujyuV n0~lQda1TFos1}e<2=IiW+>8i4MJ*nss73PuvM%Ts!%X`(9~g-9 diff --git a/share/pixmaps/nsis-header.bmp b/share/pixmaps/nsis-header.bmp index b6a2519f440fd26c3cab1fe2363e1408c02fdde4..c8e049d091eb94124d618a69f640ab01dfd7a6c2 100755 GIT binary patch literal 14676 zcmeHN2~<=^7NwiL+4n`#e7d1U+0h085l}=0L1hso$`VE$w{eRZj$2%gOB~#{Q6wOu zsE8nF25=W0LF0lbxQiMMDk8+?OdOM%+y0#IPj`ceJsw*5=k({*t5>gH-Fj8;RegGg zNBgL}dA#s;#BU0IPWW+DEb&%R;iKMIhyJ}`bi6tcP!0qdmBUP>vXW9NYn8*;HezaP z&C6cmT~{_}|Hc3pk)d*o^byDZ1Gg0Kqm*m>We=hJbH_?(S`N=a|!qm%=cXG8OIpRf*_BguQ z*;AzZPB@$$3=U=lkt=b4_4d)I=>9F~f2TGj6_7t>o+fu*yv3^@+{i)C#zK#2L#+OFM4`9np_(}uE%d*8DQJ#-ILKuH03|mQUsR2- zGUt7uHf3op2h+wJJ5uNnj{-JuyYn5aTS2=n=T5RlQ(&;Zf;hmsYo&$1l!VVrhI3gmVQ>RWYE-vZm={GiPdQYWDBnfBEv| z0|pELpa}^HPEL}0QZ$4xh}J)ptmxxR8Z3-DTCrjUWblj}IZ`MT!gJ@(pC26^{ayp7 zWThWxSd%@r-GqwqQ&T<8ttIL&i^U&;DV8MM4ND&0@SzSh=~a|hNhn5wF(@L4pc7ruvw2eu2yGXykXfztw5`_O<^XbZL2PcVP7D7C<$ zWa}QKTaw*2-4%tYE~j>>)-O8+pU?G`JWSKfNUpWmUSWQEXF0Di)568UKz9B!Rf{45JuQ#r zFV#>gnnRKih9qbvoj{RIqsX?CP19Xa^dI)SZiCV9Ip&JO)I^t4x8Cq&hLNifUl-*+ z7<^h<+Qo|(FJHcV=FAzy3bq^upPHIlTU&eY-o5hjawJvkS_J)b=gw8Xc@TWqxXhkC zd();(5C)(nB_&7(n1%r2(4j*E2M(k;XeA{ucI?=!tSr=`YVY2?lP6DR+9EEVJb4lu zH#kTVU=mYB6O>dL#e1s_e%)ds7W|R)$qKv|$5@wBpJw_x+r*9EtU`?W`t|D=KL!aP zoa0oy@Bd~b!;);q26z9yD^W@1BBwLuEaC38OYHE7+>=}~H;lqc6zIpQ|P+$b$@8}5bfA{X) z`uh69!a}AB#N4@a;f#@yk&p=q31L?uC4db`!glT2g(ZT-gIx=nk}9KE{hfaOdOa_p z^adm=*%}ToZOE`7J1pF7o1G;16pRCKuoB*J;J^X);AhR6#jGzR{}?|T)3s~Y9y@kS z){^Pdr^5|%b8{CiT$quO0dKl??Hc@%k%X&WxNu?Hwrw~C0CCI~Qw1U=B?Z92%^MmT za&mHzcrmq@BmjNo$`#CqNF-wT3_&pzLsb34_~%vHUIN8nYNW$$$h1PxbEjIuw6d~t z&z?OP34p-yhA{>NFr}9vXzT#3#1ud;Sg-)6AV3LE1Q2<7d2njBW}FBxmv}=4nJ>F) z-n@CIPoKsD$A*BlKYH|NrWSts=+UD)ckVDV%~a6@B~?c8@+zzQ%QVD_!W4eGr4y1f z54&b#I{XyVj^iMD#{mYYA=zdOYXhdhqOq|tFfb5DPx#dB+qV&FrcRxDZL z6P)p}jnZv#je?63cD4wNa1|h>xl5NWNCRjlZbsZO8KGia& z@1e2Xi&C-{{!|v(xI^g9=MD<8+Azy~Yz$?f+w8KHZ4QpQ8Yi)@QRYl~ z>_~w?Q5Riudu&%sO4geDC!$`J_nQ)B@%mCMxfn?*2klN3^R!gINf502d)LH)olFg- zA=Xgm!~`0zp2%PKH@=0D`qwe$q}WyR_2q}ID@L2wrsI;^UhMFvz$)ACC&Q70Y3-50 zLoE!C!<0SQ{H?+$;&By_HlBPWj5=!j4|>R)3GTr$b#1$M zH_!DnG1RzG)CZeDO@~}Vl)*lCu)BQ+A-``L5$(iq@sjiq~f>e)6SESltu{~esFGFk# zS9<+i8hk3lCndqoLnQfr+wsr{P#r)h9Dxo@6%MJ&0L82P>@`aMp`+tbECLf0tFA*E J5WrWh{{d6I2R{G+ literal 19492 zcmeHOS5%bQmfrI`Z}WEVow@5yYe#cv1B$kQqM{hEK}@Z-kv5@-0wU(v+M=x(X$2)H zDvBruRDwANM1lgMqLKsy2C!#;yEw(qPZdnY!TA&0UHn4c)-R3HXdjs4^&oG zQWdvPpFUCL$4Y7MD&EO@R#jHfhYuf&Ym56;Rh9IS?>#SgMip->jL&cn4Zaz^DJd+X z5AWa0_4{}4gg%~u2KxL|RV96W{P@xMO!;+H{0!%%B_&i^Tq5t|-n)tl?&Bkmp-LLQ zEiNpiS7qh&vZPerQ#5eIbG%zweSGu!jd8pcZ{Nx}#!_BZMrAKw8oyWl7e0SM@87*Q z_K)?z`z1xihHtCKj()WLT5?|WqL4y^H&NuT8>!%7p4H!L`?z)WIz7nDqF3eRlyo9d z+L4%pgg&`xe0J$C(c|u3XE{ zH*-IcMmpdX@WSq`p>+IEyyye)Ov1r9+OT}Jj77Vq=FTzxQT^PgXX{S%`-(M`pZkc) z8MoA!Bed9k90m3tNv9+B8}*ktI{N#V^UjT1gdZ_>@FT_?6&l9ta*<9SJQ>e_&@JeH)2g+?2eHf>1 zUf#buN_ZY~1wZN6ReSyXX#oXHnMqEJ-9}y`T&LZIBO=`aa7%09^=KfUbiM08c=7K!*djqx%mD_OR=q1=)hWL|@<`=;KeHszhcV z<>XRs_5;eicb_nS^a*{BZ-EDR6Z{8!p!Y!s_wgP21dn5$xL3&b1oyRTsy$C+8R*%j zGxSw?j7?WbZ`1 zSifrV)1Cuo;Jq?%k=UNFpjEVK#yp9UY?yr>%(UzJIPVb+=;}x~!Y}Ihzu%E#iw=U9 z9oxTki&skQ?C#iCWKxTrI*0G$(6R%y`{!4*eBMHlzu-x;=^Xn!+P>5|>^*#=c~fUe z^JRMrpG7_YD@WM;+2f}eY0u_<&an?>Elv28z7wa`qLUb(U=^Fu%2}&{O`D2w(wyZY|_yM2JtS1qp zp}(O$`_T{0+8JdLdK9?9UOKn2BiHub$gN`!a&6I>68FbZetH(I_nJeM9EFe{ae@UTmHB^xs)>4S%l9-5T?H^ zULiV7(E%oXzqjX{NnK2kw}AYscX7lua){>o0fxwJ;Rs(w`z?GXf!=yT^hnZYB9^BzHcpt=i)yUOa! zNk2#J^_$nPY0Ln3iN)0VV$O3X�wSpK$CC-=s&g_C_2KlS5b5m*Z{-L+H{^EQkJs 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 diff --git a/share/pixmaps/nsis-wizard.bmp b/share/pixmaps/nsis-wizard.bmp index 43ab8fe194ec868888e579515f758cc899011399..00d119ce9e47bf63fbd63d46eb7d140d232eee71 100755 GIT binary patch literal 196664 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 literal 132552 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 zbQI1Check(); - if (pmn->IsEnabled() && pmn->protocolVersion == PROTOCOL_VERSION) EnableHotColdMasterNode(pmn->vin, pmn->addr); + if (pmn->IsEnabled() && pmn->protocolVersion >= ActiveProtocol()) + EnableHotColdMasterNode(pmn->vin, pmn->addr); } } diff --git a/src/activemasternode.h b/src/activemasternode.h index b2ed1cd..3553376 100755 --- a/src/activemasternode.h +++ b/src/activemasternode.h @@ -33,7 +33,7 @@ class CActiveMasternode /// Register any Masternode bool Register(CTxIn vin, CService service, CKey key, CPubKey pubKey, CKey keyMasternode, CPubKey pubKeyMasternode, std::string& errorMessage); - /// Get XIT collateral input that can be used for the Masternode + /// Get 5000 XIT collateral input that can be used for the Masternode bool GetMasterNodeVin(CTxIn& vin, CPubKey& pubkey, CKey& secretKey, std::string strTxHash, std::string strOutputIndex); bool GetVinFromOutput(COutput out, CTxIn& vin, CPubKey& pubkey, CKey& secretKey); @@ -61,7 +61,7 @@ class CActiveMasternode /// Register remote Masternode bool Register(std::string strService, std::string strKey, std::string strTxHash, std::string strOutputIndex, std::string& errorMessage); - /// Get XIT collateral input that can be used for the Masternode + /// Get 5000 XIT collateral input that can be used for the Masternode bool GetMasterNodeVin(CTxIn& vin, CPubKey& pubkey, CKey& secretKey); vector SelectCoinsMasternode(); diff --git a/src/addrman.h b/src/addrman.h index 341f0c7..70d93f4 100755 --- a/src/addrman.h +++ b/src/addrman.h @@ -47,7 +47,6 @@ class CAddrInfo : public CAddress friend class CAddrMan; public: - ADD_SERIALIZE_METHODS; template @@ -200,7 +199,6 @@ class CAddrMan int vvNew[ADDRMAN_NEW_BUCKET_COUNT][ADDRMAN_BUCKET_SIZE]; protected: - //! Find an entry. CAddrInfo* Find(const CNetAddr& addr, int* pnId = NULL); diff --git a/src/chain.h b/src/chain.h index b813b0a..50247e3 100755 --- a/src/chain.h +++ b/src/chain.h @@ -119,7 +119,7 @@ class CBlockIndex //! pointer to the index of some further predecessor of this block CBlockIndex* pskip; - //ittrium: trust score of block chain + //ppcoin: trust score of block chain uint256 bnChainTrust; //! height of the entry in the chain. The genesis block has height 0 @@ -149,7 +149,7 @@ class CBlockIndex //! Verification status of this block. See enum BlockStatus unsigned int nStatus; - unsigned int nFlags; // ittrium: block index flags + unsigned int nFlags; // ppcoin: block index flags enum { BLOCK_PROOF_OF_STAKE = (1 << 0), // is proof-of-stake block BLOCK_STAKE_ENTROPY = (1 << 1), // entropy bit for stake modifier diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 32d75b8..35268a9 100755 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -62,19 +62,18 @@ static Checkpoints::MapCheckpoints mapCheckpoints = (6133, uint256("0x7f91e176ce9c6cdff238be16505b6f93444225e1bcfbbfb3dcb370a2b97e5569")) (9999, uint256("0x87bc66f59d2357927e42d4846b807bc3e61084c3e06b63569545ed7698aef7f7")) (19333, uint256("0xa0209e76d00be2a96c6f422c73ae34a341c9981b1b8064bcd39d5d7d5ce70dd0")) - (27033, uint256("0x89f578d968265cc425253199da3b6a01dbd99b706338d20ce78ae93299f3a605")) - (39993, uint256("0x3d084690bcd0474fb149d11b75a1cdfa3dca45f66bb6458c438a57fd36f134b7")); + (27033, uint256("0x89f578d968265cc425253199da3b6a01dbd99b706338d20ce78ae93299f3a605")); static const Checkpoints::CCheckpointData data = { &mapCheckpoints, 1533333333, // * UNIX timestamp of last checkpoint block - 39993, // * total number of transactions between genesis and last checkpoint + 27033, // * total number of transactions between genesis and last checkpoint // (the tx=... number in the SetBestChain debug.log lines) 1440 // * estimated number of transactions per day after checkpoint }; static Checkpoints::MapCheckpoints mapCheckpointsTestnet = - boost::assign::map_list_of(0, uint256("0x")); + boost::assign::map_list_of(0, uint256("0x00000f036ca027597072fe7ea639a6a58839be8e3e3126f113d0a7d03b355b26")); static const Checkpoints::CCheckpointData dataTestnet = { &mapCheckpointsTestnet, 1533333336, diff --git a/src/clientversion.h b/src/clientversion.h index 24b11fa..33e1320 100755 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -15,9 +15,9 @@ //! These need to be macros, as clientversion.cpp's and ittrium*-res.rc's voodoo requires it #define CLIENT_VERSION_MAJOR 1 -#define CLIENT_VERSION_MINOR 0 -#define CLIENT_VERSION_REVISION 3 -#define CLIENT_VERSION_BUILD 3 +#define CLIENT_VERSION_MINOR 1 +#define CLIENT_VERSION_REVISION 0 +#define CLIENT_VERSION_BUILD 0 //! Set to true for release, false for prerelease or test build #define CLIENT_VERSION_IS_RELEASE true diff --git a/src/coincontrol.h b/src/coincontrol.h index a8d1629..5223efe 100755 --- a/src/coincontrol.h +++ b/src/coincontrol.h @@ -75,6 +75,17 @@ class CCoinControl vOutpoints.assign(setSelected.begin(), setSelected.end()); } + unsigned int QuantitySelected() + { + return setSelected.size(); + } + + void SetSelection(std::set setSelected) + { + this->setSelected.clear(); + this->setSelected = setSelected; + } + private: std::set setSelected; }; diff --git a/src/crypter.cpp b/src/crypter.cpp index f48257f..223de93 100755 --- a/src/crypter.cpp +++ b/src/crypter.cpp @@ -57,15 +57,13 @@ bool CCrypter::Encrypt(const CKeyingMaterial& vchPlaintext, std::vector(nCLen); - EVP_CIPHER_CTX ctx; - bool fOk = true; - EVP_CIPHER_CTX_init(&ctx); - if (fOk) fOk = EVP_EncryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, chKey, chIV) != 0; - if (fOk) fOk = EVP_EncryptUpdate(&ctx, &vchCiphertext[0], &nCLen, &vchPlaintext[0], nLen) != 0; - if (fOk) fOk = EVP_EncryptFinal_ex(&ctx, (&vchCiphertext[0]) + nCLen, &nFLen) != 0; - EVP_CIPHER_CTX_cleanup(&ctx); + EVP_CIPHER_CTX* ctx = EVP_CIPHER_CTX_new(); + if (fOk) fOk = EVP_EncryptInit_ex(ctx, EVP_aes_256_cbc(), NULL, chKey, chIV) != 0; + if (fOk) fOk = EVP_EncryptUpdate(ctx, &vchCiphertext[0], &nCLen, &vchPlaintext[0], nLen) != 0; + if (fOk) fOk = EVP_EncryptFinal_ex(ctx, (&vchCiphertext[0]) + nCLen, &nFLen) != 0; + EVP_CIPHER_CTX_free(ctx); if (!fOk) return false; @@ -84,15 +82,13 @@ bool CCrypter::Decrypt(const std::vector& vchCiphertext, CKeyingM vchPlaintext = CKeyingMaterial(nPLen); - EVP_CIPHER_CTX ctx; - bool fOk = true; - EVP_CIPHER_CTX_init(&ctx); - if (fOk) fOk = EVP_DecryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, chKey, chIV) != 0; - if (fOk) fOk = EVP_DecryptUpdate(&ctx, &vchPlaintext[0], &nPLen, &vchCiphertext[0], nLen) != 0; - if (fOk) fOk = EVP_DecryptFinal_ex(&ctx, (&vchPlaintext[0]) + nPLen, &nFLen) != 0; - EVP_CIPHER_CTX_cleanup(&ctx); + EVP_CIPHER_CTX* ctx = EVP_CIPHER_CTX_new(); + if (fOk) fOk = EVP_DecryptInit_ex(ctx, EVP_aes_256_cbc(), NULL, chKey, chIV) != 0; + if (fOk) fOk = EVP_DecryptUpdate(ctx, &vchPlaintext[0], &nPLen, &vchCiphertext[0], nLen) != 0; + if (fOk) fOk = EVP_DecryptFinal_ex(ctx, (&vchPlaintext[0]) + nPLen, &nFLen) != 0; + EVP_CIPHER_CTX_free(ctx); if (!fOk) return false; @@ -131,15 +127,13 @@ bool EncryptAES256(const SecureString& sKey, const SecureString& sPlaintext, con sCiphertext.resize(nCLen); // Perform the encryption - EVP_CIPHER_CTX ctx; - bool fOk = true; - EVP_CIPHER_CTX_init(&ctx); - if (fOk) fOk = EVP_EncryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, (const unsigned char*)&sKey[0], (const unsigned char*)&sIV[0]); - if (fOk) fOk = EVP_EncryptUpdate(&ctx, (unsigned char*)&sCiphertext[0], &nCLen, (const unsigned char*)&sPlaintext[0], nLen); - if (fOk) fOk = EVP_EncryptFinal_ex(&ctx, (unsigned char*)(&sCiphertext[0]) + nCLen, &nFLen); - EVP_CIPHER_CTX_cleanup(&ctx); + EVP_CIPHER_CTX* ctx = EVP_CIPHER_CTX_new(); + if (fOk) fOk = EVP_EncryptInit_ex(ctx, EVP_aes_256_cbc(), NULL, (const unsigned char*)&sKey[0], (const unsigned char*)&sIV[0]); + if (fOk) fOk = EVP_EncryptUpdate(ctx, (unsigned char*)&sCiphertext[0], &nCLen, (const unsigned char*)&sPlaintext[0], nLen); + if (fOk) fOk = EVP_EncryptFinal_ex(ctx, (unsigned char*)(&sCiphertext[0]) + nCLen, &nFLen); + EVP_CIPHER_CTX_free(ctx); if (!fOk) return false; @@ -172,15 +166,13 @@ bool DecryptAES256(const SecureString& sKey, const std::string& sCiphertext, con sPlaintext.resize(nPLen); - EVP_CIPHER_CTX ctx; - bool fOk = true; - EVP_CIPHER_CTX_init(&ctx); - if (fOk) fOk = EVP_DecryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, (const unsigned char*)&sKey[0], (const unsigned char*)&sIV[0]); - if (fOk) fOk = EVP_DecryptUpdate(&ctx, (unsigned char*)&sPlaintext[0], &nPLen, (const unsigned char*)&sCiphertext[0], nLen); - if (fOk) fOk = EVP_DecryptFinal_ex(&ctx, (unsigned char*)(&sPlaintext[0]) + nPLen, &nFLen); - EVP_CIPHER_CTX_cleanup(&ctx); + EVP_CIPHER_CTX* ctx = EVP_CIPHER_CTX_new(); + if (fOk) fOk = EVP_DecryptInit_ex(ctx, EVP_aes_256_cbc(), NULL, (const unsigned char*)&sKey[0], (const unsigned char*)&sIV[0]); + if (fOk) fOk = EVP_DecryptUpdate(ctx, (unsigned char*)&sPlaintext[0], &nPLen, (const unsigned char*)&sCiphertext[0], nLen); + if (fOk) fOk = EVP_DecryptFinal_ex(ctx, (unsigned char*)(&sPlaintext[0]) + nPLen, &nFLen); + EVP_CIPHER_CTX_free(ctx); if (!fOk) return false; diff --git a/src/ecwrapper.cpp b/src/ecwrapper.cpp index 7aba237..5149916 100755 --- a/src/ecwrapper.cpp +++ b/src/ecwrapper.cpp @@ -7,10 +7,11 @@ #include "serialize.h" #include "uint256.h" -#include #include #include +#include "bignum.h" + namespace { /** @@ -39,6 +40,11 @@ int ECDSA_SIG_recover_key_GFp(EC_KEY* eckey, ECDSA_SIG* ecsig, const unsigned ch int n = 0; int i = recid / 2; +#if OPENSSL_VERSION_NUMER >= 0x10100000L + const BIGNUM *sig_r, *sig_s; + ECDSA_SIG_get0(ecsig, &sig_r, &sig_s); +#endif + const EC_GROUP* group = EC_KEY_get0_group(eckey); if ((ctx = BN_CTX_new()) == NULL) { ret = -1; @@ -59,7 +65,11 @@ int ECDSA_SIG_recover_key_GFp(EC_KEY* eckey, ECDSA_SIG* ecsig, const unsigned ch ret = -1; goto err; } +#if OPENSSL_VERSION_NUMER >= 0x10100000L + if (!BN_add(x, x, sig_r)) { +#else if (!BN_add(x, x, ecsig->r)) { +#endif ret = -1; goto err; } @@ -115,12 +125,20 @@ int ECDSA_SIG_recover_key_GFp(EC_KEY* eckey, ECDSA_SIG* ecsig, const unsigned ch goto err; } rr = BN_CTX_get(ctx); +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + if (!BN_mod_inverse(rr, sig_r, order, ctx)) { +#else if (!BN_mod_inverse(rr, ecsig->r, order, ctx)) { +#endif ret = -1; goto err; } sor = BN_CTX_get(ctx); +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + if (!BN_mod_mul(sor, sig_r, rr, order, ctx)) { +#else if (!BN_mod_mul(sor, ecsig->s, rr, order, ctx)) { +#endif ret = -1; goto err; } @@ -218,8 +236,20 @@ bool CECKey::Recover(const uint256& hash, const unsigned char* p64, int rec) if (rec < 0 || rec >= 3) return false; ECDSA_SIG* sig = ECDSA_SIG_new(); +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + BIGNUM *sig_r = NULL; + BIGNUM *sig_s = NULL; + if (!(sig_r = BN_bin2bn(&p64[0], 32, nullptr)) || + !(sig_s = BN_bin2bn(&p64[32], 32, nullptr)) || + !ECDSA_SIG_set0(sig, sig_r, sig_s)) { + BN_free(sig_r); + BN_free(sig_s); + return false; + } +#else BN_bin2bn(&p64[0], 32, sig->r); BN_bin2bn(&p64[32], 32, sig->s); +#endif bool ret = ECDSA_SIG_recover_key_GFp(pkey, sig, (unsigned char*)&hash, sizeof(hash), rec, 0) == 1; ECDSA_SIG_free(sig); return ret; diff --git a/src/hash.cpp b/src/hash.cpp index 9507055..98edcea 100755 --- a/src/hash.cpp +++ b/src/hash.cpp @@ -5,6 +5,9 @@ #include "hash.h" #include "crypto/hmac_sha512.h" #include "crypto/scrypt.h" +#include "crypto/common.h" +#include "crypto/hmac_sha512.h" +#include "pubkey.h" inline uint32_t ROTL32(uint32_t x, int8_t r) { diff --git a/src/hash.h b/src/hash.h index 6a27043..9ea15f2 100755 --- a/src/hash.h +++ b/src/hash.h @@ -172,7 +172,7 @@ inline uint256 Hash(const T1 p1begin, const T1 p1end, const T2 p2begin, const T2 return result; } -/** Compute the 256-bit hash of the concatenation of three objects. */ +/** Compute the 256-bit hash of the concatenation of four objects. */ template inline uint256 Hash(const T1 p1begin, const T1 p1end, const T2 p2begin, const T2 p2end, const T3 p3begin, const T3 p3end, const T4 p4begin, const T4 p4end) { @@ -182,7 +182,7 @@ inline uint256 Hash(const T1 p1begin, const T1 p1end, const T2 p2begin, const T2 return result; } -/** Compute the 256-bit hash of the concatenation of three objects. */ +/** Compute the 256-bit hash of the concatenation of four objects. */ template inline uint256 Hash(const T1 p1begin, const T1 p1end, const T2 p2begin, const T2 p2end, const T3 p3begin, const T3 p3end, const T4 p4begin, const T4 p4end, const T5 p5begin, const T5 p5end) { @@ -192,7 +192,7 @@ inline uint256 Hash(const T1 p1begin, const T1 p1end, const T2 p2begin, const T2 return result; } -/** Compute the 256-bit hash of the concatenation of three objects. */ +/** Compute the 256-bit hash of the concatenation of five objects. */ template inline uint256 Hash(const T1 p1begin, const T1 p1end, const T2 p2begin, const T2 p2end, const T3 p3begin, const T3 p3end, const T4 p4begin, const T4 p4end, const T5 p5begin, const T5 p5end, const T6 p6begin, const T6 p6end) { diff --git a/src/init.cpp b/src/init.cpp index ff2360a..18affbe 100755 --- a/src/init.cpp +++ b/src/init.cpp @@ -83,8 +83,8 @@ static CZMQNotificationInterface* pzmqNotificationInterface = NULL; /** Used to pass flags to the Bind() function */ enum BindFlags { - BF_NONE = 0, - BF_EXPLICIT = (1U << 0), + BF_NONE = 0, + BF_EXPLICIT = (1U << 0), BF_REPORT_ERROR = (1U << 1), BF_WHITELIST = (1U << 2), }; @@ -175,6 +175,7 @@ void PrepareShutdown() RenameThread("ittrium-shutoff"); mempool.AddTransactionsUpdated(1); StopRPCThreads(); + #ifdef ENABLE_WALLET if (pwalletMain) bitdb.Flush(false); @@ -413,10 +414,8 @@ std::string HelpMessage(HelpMessageMode mode) string debugCategories = "addrman, alert, bench, coindb, db, lock, rand, rpc, selectcoins, mempool, net, ittrium, (obfuscation, swifttx, masternode, mnpayments, mnbudget)"; // Don't translate these and qt below if (mode == HMM_BITCOIN_QT) debugCategories += ", qt"; - strUsage += HelpMessageOpt("-debug=", strprintf(_("Output debugging information (default: %u, supplying is optional)"), 0) + ". " + - _("If is not supplied, output all debugging information.") + _(" can be:") + " " + debugCategories + "."); - if (GetBoolArg("-help-debug", false)) - strUsage += HelpMessageOpt("-nodebug", "Turn off debugging messages, same as -debug=0"); + strUsage += HelpMessageOpt("-debug=", strprintf(_("Output debugging information (default: %u, supplying is optional)"), 0) + ". " + + _("If is not supplied, output all debugging information.") + _(" can be:") + " " + debugCategories + "."); #ifdef ENABLE_WALLET strUsage += HelpMessageOpt("-gen", strprintf(_("Generate coins (default: %u)"), 0)); strUsage += HelpMessageOpt("-genproclimit=", strprintf(_("Set the number of threads for coin generation if enabled (-1 = all cores, default: %d)"), 1)); @@ -440,7 +439,7 @@ std::string HelpMessage(HelpMessageMode mode) } strUsage += HelpMessageOpt("-shrinkdebugfile", _("Shrink debug.log file on client startup (default: 1 when no -debug)")); strUsage += HelpMessageOpt("-testnet", _("Use the test network")); - strUsage += HelpMessageOpt("-litemode=", strprintf(_("Disable all Ittrium specific functionality (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, default: %u)"), 0)); + strUsage += HelpMessageOpt("-litemode=", strprintf(_("Disable all XIT specific functionality (Masternodes, Obfuscation, SwiftTX, Budgeting) (0-1, default: %u)"), 0)); #ifdef ENABLE_WALLET strUsage += HelpMessageGroup(_("Staking options:")); @@ -463,7 +462,7 @@ std::string HelpMessage(HelpMessageMode mode) strUsage += HelpMessageGroup(_("Obfuscation options:")); strUsage += HelpMessageOpt("-enableobfuscation=", strprintf(_("Enable use of automated obfuscation for funds stored in this wallet (0-1, default: %u)"), 0)); strUsage += HelpMessageOpt("-obfuscationrounds=", strprintf(_("Use N separate masternodes to anonymize funds (2-8, default: %u)"), 2)); - strUsage += HelpMessageOpt("-anonymizeittriumamount=", strprintf(_("Keep N Ittrium anonymized (default: %u)"), 0)); + strUsage += HelpMessageOpt("-anonymizeittriumamount=", strprintf(_("Keep N XIT anonymized (default: %u)"), 0)); strUsage += HelpMessageOpt("-liquidityprovider=", strprintf(_("Provide liquidity to Obfuscation by infrequently mixing coins on a continual basis (0-100, default: %u, 1=very frequent, high fees, 100=very infrequent, low fees)"), 0)); strUsage += HelpMessageGroup(_("SwiftTX options:")); @@ -761,7 +760,7 @@ bool AppInit2(boost::thread_group& threadGroup) // Make sure enough file descriptors are available int nBind = std::max((int)mapArgs.count("-bind") + (int)mapArgs.count("-whitebind"), 1); - nMaxConnections = GetArg("-maxconnections", 125); + nMaxConnections = GetArg("-maxconnections", 64); nMaxConnections = std::max(std::min(nMaxConnections, (int)(FD_SETSIZE - nBind - MIN_CORE_FILEDESCRIPTORS)), 0); int nFD = RaiseFileDescriptorLimit(nMaxConnections + MIN_CORE_FILEDESCRIPTORS); if (nFD < MIN_CORE_FILEDESCRIPTORS) diff --git a/src/kernel.cpp b/src/kernel.cpp index 3fbbf76..83abc4c 100755 --- a/src/kernel.cpp +++ b/src/kernel.cpp @@ -300,7 +300,7 @@ bool CheckStakeKernelHash(unsigned int nBits, const CBlock blockFrom, const CTra return error("CheckStakeKernelHash() : nTime violation"); if (nTimeBlockFrom + nStakeMinAge > nTimeTx) // Min age requirement - return error("CheckStakeKernelHash() : min age violation - nTimeBlockFrom=%d nStakeMinAge=%d nTimeTx=%d", nTimeBlockFrom, nStakeMinAge, nTimeTx); + return error("CheckStakeKernelHash() : min age violation - nTimeBlockFrom=%d nStakeMinAge=%d nTimeTx=%d", nTimeBlockFrom, nStakeMinAge, nTimeTx); //grab difficulty uint256 bnTargetPerCoinDay; diff --git a/src/keystore.cpp b/src/keystore.cpp index 7257ed2..8f16185 100755 --- a/src/keystore.cpp +++ b/src/keystore.cpp @@ -86,3 +86,30 @@ bool CBasicKeyStore::HaveWatchOnly() const LOCK(cs_KeyStore); return (!setWatchOnly.empty()); } + + +bool CBasicKeyStore::AddMultiSig(const CScript& dest) +{ + LOCK(cs_KeyStore); + setMultiSig.insert(dest); + return true; +} + +bool CBasicKeyStore::RemoveMultiSig(const CScript& dest) +{ + LOCK(cs_KeyStore); + setMultiSig.erase(dest); + return true; +} + +bool CBasicKeyStore::HaveMultiSig(const CScript& dest) const +{ + LOCK(cs_KeyStore); + return setMultiSig.count(dest) > 0; +} + +bool CBasicKeyStore::HaveMultiSig() const +{ + LOCK(cs_KeyStore); + return (!setMultiSig.empty()); +} diff --git a/src/keystore.h b/src/keystore.h index ec12865..ca7a356 100755 --- a/src/keystore.h +++ b/src/keystore.h @@ -45,11 +45,18 @@ class CKeyStore virtual bool RemoveWatchOnly(const CScript& dest) = 0; virtual bool HaveWatchOnly(const CScript& dest) const = 0; virtual bool HaveWatchOnly() const = 0; + + //! Support for MultiSig addresses + virtual bool AddMultiSig(const CScript& dest) = 0; + virtual bool RemoveMultiSig(const CScript& dest) = 0; + virtual bool HaveMultiSig(const CScript& dest) const = 0; + virtual bool HaveMultiSig() const = 0; }; typedef std::map KeyMap; typedef std::map ScriptMap; typedef std::set WatchOnlySet; +typedef std::set MultiSigScriptSet; /** Basic key store, that keeps keys in an address->secret map */ class CBasicKeyStore : public CKeyStore @@ -58,6 +65,7 @@ class CBasicKeyStore : public CKeyStore KeyMap mapKeys; ScriptMap mapScripts; WatchOnlySet setWatchOnly; + MultiSigScriptSet setMultiSig; public: bool AddKeyPubKey(const CKey& key, const CPubKey& pubkey); @@ -102,6 +110,11 @@ class CBasicKeyStore : public CKeyStore virtual bool RemoveWatchOnly(const CScript& dest); virtual bool HaveWatchOnly(const CScript& dest) const; virtual bool HaveWatchOnly() const; + + virtual bool AddMultiSig(const CScript& dest); + virtual bool RemoveMultiSig(const CScript& dest); + virtual bool HaveMultiSig(const CScript& dest) const; + virtual bool HaveMultiSig() const; }; typedef std::vector > CKeyingMaterial; diff --git a/src/leveldb/db/memtable.cc b/src/leveldb/db/memtable.cc index bfec0a7..31ad995 100755 --- a/src/leveldb/db/memtable.cc +++ b/src/leveldb/db/memtable.cc @@ -101,7 +101,7 @@ void MemTable::Add(SequenceNumber s, ValueType type, p += 8; p = EncodeVarint32(p, val_size); memcpy(p, value.data(), val_size); - assert((p + val_size) - buf == encoded_len); + assert((p + val_size) - buf == (long)encoded_len); table_.Insert(buf); } diff --git a/src/leveldb/util/bloom.cc b/src/leveldb/util/bloom.cc index a27a2ac..79276b8 100755 --- a/src/leveldb/util/bloom.cc +++ b/src/leveldb/util/bloom.cc @@ -47,7 +47,7 @@ class BloomFilterPolicy : public FilterPolicy { dst->resize(init_size + bytes, 0); dst->push_back(static_cast(k_)); // Remember # of probes in filter char* array = &(*dst)[init_size]; - for (size_t i = 0; i < n; i++) { + for (size_t i = 0; i < (size_t)n; i++) { // Use double-hashing to generate a sequence of hash values. // See analysis in [Kirsch,Mitzenmacher 2006]. uint32_t h = BloomHash(keys[i]); diff --git a/src/leveldb/util/logging.cc b/src/leveldb/util/logging.cc index ca6b324..2a1028a 100755 --- a/src/leveldb/util/logging.cc +++ b/src/leveldb/util/logging.cc @@ -55,7 +55,7 @@ bool ConsumeDecimalNumber(Slice* in, uint64_t* val) { const int delta = (c - '0'); static const uint64_t kMaxUint64 = ~static_cast(0); if (v > kMaxUint64/10 || - (v == kMaxUint64/10 && delta > kMaxUint64%10)) { + (v == kMaxUint64/10 && (uint64_t)delta > kMaxUint64%10)) { // Overflow return false; } diff --git a/src/main.cpp b/src/main.cpp index ecdaf89..5921fc5 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -72,8 +72,8 @@ bool fAlerts = DEFAULT_ALERTS; unsigned int nStakeMinAge = 45 * 60; int64_t nReserveBalance = 0; -/** Fees smaller than this (in uxit) are considered zero fee (for relaying and mining) - * We are ~100 times smaller then bitcoin (as of 2015-06-23), set minRelayTxFee only 10 times higher +/** Fees smaller than this (in duffs) are considered zero fee (for relaying and mining) + * We are ~100 times smaller then bitcoin now (2015-06-23), set minRelayTxFee only 10 times higher * so it's still 10 times lower comparing to bitcoin. */ CFeeRate minRelayTxFee = CFeeRate(10000); @@ -912,7 +912,7 @@ int GetIXConfirmations(uint256 nTXHash) return 0; } -// ittrium: total coin age spent in transaction, in the unit of coin-days. +// ppcoin: total coin age spent in transaction, in the unit of coin-days. // Only those coins meeting minimum age requirement counts. As those // transactions not in main chain are not currently indexed so we // might not find out about their coin age. Older transactions are @@ -1621,7 +1621,7 @@ int64_t GetBlockValue(int nHeight) if (nHeight < Params().LAST_POW_BLOCK()) //1.5% premine 300 Blocks * 1650 Coins = 495,000 XIT nSubsidy = 1650 * COIN; - else if (nHeight <= 30000) //slow start for instamine prevention + else if (nHeight >= 301 && nHeight <= 30000) //slow start for instamine prevention nSubsidy = 3 * COIN; else if (nHeight > 30000 && nHeight <= 60000) nSubsidy = 6 * COIN; @@ -2084,12 +2084,12 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin view.SetBestBlock(pindex->GetBlockHash()); return true; } - - if (pindex->nHeight <= Params().LAST_POW_BLOCK() && block.IsProofOfStake()) + int nLastPOWBlock = Params().LAST_POW_BLOCK(); + if (pindex->nHeight <= nLastPOWBlock && block.IsProofOfStake()) return state.DoS(100, error("ConnectBlock() : PoS period not active"), REJECT_INVALID, "PoS-early"); - if (pindex->nHeight > Params().LAST_POW_BLOCK() && block.IsProofOfWork()) + if (pindex->nHeight > nLastPOWBlock && block.IsProofOfWork()) return state.DoS(100, error("ConnectBlock() : PoW period ended"), REJECT_INVALID, "PoW-ended"); @@ -2108,7 +2108,8 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin // two in the chain that violate it. This prevents exploiting the issue against nodes in their // initial block download. bool fEnforceBIP30 = (!pindex->phashBlock) || // Enforce on CreateNewBlock invocations which don't have a hash. - !((pindex->nHeight == 0 && pindex->GetBlockHash() == uint256("0x000003616197a9a9093a9cdda330cb4e0d52c4d7d3585dd985602913d93dfc0a"))); + !((pindex->nHeight == 91842 && pindex->GetBlockHash() == uint256("0x00000000000a4d0a398161ffc163c503763b1f4360639393e0e4c8e300e0caec")) || + (pindex->nHeight == 91880 && pindex->GetBlockHash() == uint256("0x00000000000743f190a18c5577a3c2d2a1f610ae9601ac046a38084ccb7cd721"))); if (fEnforceBIP30) { BOOST_FOREACH (const CTransaction& tx, block.vtx) { const CCoins* coins = view.AccessCoins(tx.GetHash()); @@ -2188,7 +2189,7 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin pos.nTxOffset += ::GetSerializeSize(tx, SER_DISK, CLIENT_VERSION); } - // ittrium: track money supply and mint amount info + // ppcoin: track money supply and mint amount info CAmount nMoneySupplyPrev = pindex->pprev ? pindex->pprev->nMoneySupply : 0; pindex->nMoneySupply = nMoneySupplyPrev + nValueOut - nValueIn; pindex->nMint = pindex->nMoneySupply - nMoneySupplyPrev; @@ -2876,21 +2877,21 @@ CBlockIndex* AddToBlockIndex(const CBlock& block) //update previous block pointer pindexNew->pprev->pnext = pindexNew; - // ittrium: compute chain trust score + // ppcoin: compute chain trust score pindexNew->bnChainTrust = (pindexNew->pprev ? pindexNew->pprev->bnChainTrust : 0) + pindexNew->GetBlockTrust(); - // ittrium: compute stake entropy bit for stake modifier + // ppcoin: compute stake entropy bit for stake modifier if (!pindexNew->SetStakeEntropyBit(pindexNew->GetStakeEntropyBit())) LogPrintf("AddToBlockIndex() : SetStakeEntropyBit() failed \n"); - // ittrium: record proof-of-stake hash value + // ppcoin: record proof-of-stake hash value if (pindexNew->IsProofOfStake()) { if (!mapProofOfStake.count(hash)) LogPrintf("AddToBlockIndex() : hashProofOfStake not found in map \n"); pindexNew->hashProofOfStake = mapProofOfStake[hash]; } - // ittrium: compute stake modifier + // ppcoin: compute stake modifier uint64_t nStakeModifier = 0; bool fGeneratedStakeModifier = false; if (!ComputeNextStakeModifier(pindexNew->pprev, nStakeModifier, fGeneratedStakeModifier)) @@ -3055,7 +3056,7 @@ bool CheckBlock(const CBlock& block, CValidationState& state, bool fCheckPOW, bo // Check that the header is valid (particularly PoW). This is mostly // redundant with the call in AcceptBlockHeader. - if (!CheckBlockHeader(block, state, fCheckPOW && block.IsProofOfWork())) + if (block.IsProofOfWork() && !CheckBlockHeader(block, state, fCheckPOW)) return state.DoS(100, error("CheckBlock() : CheckBlockHeader failed"), REJECT_INVALID, "bad-header", true); @@ -3065,6 +3066,7 @@ bool CheckBlock(const CBlock& block, CValidationState& state, bool fCheckPOW, bo return state.Invalid(error("CheckBlock() : block timestamp too far in the future"), REJECT_INVALID, "time-too-new"); + // Check the merkle root. if (fCheckMerkleRoot) { bool mutated; @@ -3133,7 +3135,9 @@ bool CheckBlock(const CBlock& block, CValidationState& state, bool fCheckPOW, bo LogPrintf("CheckBlock() : skipping transaction locking checks\n"); } - // masternode payments / budgets + + // ----------- masternode payments / budgets ----------- + CBlockIndex* pindexPrev = chainActive.Tip(); if (pindexPrev != NULL) { int nHeight = 0; @@ -3187,7 +3191,7 @@ bool CheckWork(const CBlock block, CBlockIndex* const pindexPrev) unsigned int nBitsRequired = GetNextWorkRequired(pindexPrev, &block); - if (block.IsProofOfWork() && (pindexPrev->nHeight + 1 <= 300)) { + if (block.IsProofOfWork() && (pindexPrev->nHeight + 1 <= 68589)) { double n1 = ConvertBitsToDouble(block.nBits); double n2 = ConvertBitsToDouble(nBitsRequired); @@ -3248,8 +3252,7 @@ bool ContextualCheckBlockHeader(const CBlockHeader& block, CValidationState& sta return state.DoS(0, error("%s : forked chain older than last checkpoint (height %d)", __func__, nHeight)); // Reject block.nVersion=1 blocks when 95% (75% on testnet) of the network has upgraded: - if (block.nVersion < 2 && - CBlockIndex::IsSuperMajority(2, pindexPrev, Params().RejectBlockOutdatedMajority())) { + if (block.nVersion < 2 && CBlockIndex::IsSuperMajority(2, pindexPrev, Params().RejectBlockOutdatedMajority())) { return state.Invalid(error("%s : rejected nVersion=1 block", __func__), REJECT_OBSOLETE, "bad-version"); } @@ -3318,23 +3321,8 @@ bool AcceptBlockHeader(const CBlock& block, CValidationState& state, CBlockIndex if (mi == mapBlockIndex.end()) return state.DoS(0, error("%s : prev block %s not found", __func__, block.hashPrevBlock.ToString().c_str()), 0, "bad-prevblk"); pindexPrev = (*mi).second; - if (pindexPrev->nStatus & BLOCK_FAILED_MASK) - //{ - //If this "invalid" block is an exact match from the checkpoints, then reconsider it -// if (pindex && Checkpoints::CheckBlock(pindex->nHeight - 1, block.hashPrevBlock, true)) { -// LogPrintf("%s : Reconsidering block %s height %d\n", __func__, pindexPrev->GetBlockHash().GetHex(), pindexPrev->nHeight); -// CValidationState statePrev; -// ReconsiderBlock(statePrev, pindexPrev); -// if (statePrev.IsValid()) { -// ActivateBestChain(statePrev); -// return true; -// } -// } - - return state.DoS(100, error("%s : prev block height=%d hash=%s is invalid, unable to add block %s", __func__, pindexPrev->nHeight, block.hashPrevBlock.GetHex(), block.GetHash().GetHex()), - REJECT_INVALID, "bad-prevblk"); -// } - + if (pindexPrev->nStatus & BLOCK_FAILED_MASK) + return state.DoS(100, error("%s : prev block invalid", __func__), REJECT_INVALID, "bad-prevblk"); } if (!ContextualCheckBlockHeader(block, state, pindexPrev)) @@ -3362,21 +3350,8 @@ bool AcceptBlock(CBlock& block, CValidationState& state, CBlockIndex** ppindex, if (mi == mapBlockIndex.end()) return state.DoS(0, error("%s : prev block %s not found", __func__, block.hashPrevBlock.ToString().c_str()), 0, "bad-prevblk"); pindexPrev = (*mi).second; - if (pindexPrev->nStatus & BLOCK_FAILED_MASK) - //{ - //If this "invalid" block is an exact match from the checkpoints, then reconsider it -// if (Checkpoints::CheckBlock(pindexPrev->nHeight, block.hashPrevBlock, true)) { -// LogPrintf("%s : Reconsidering block %s height %d\n", __func__, pindexPrev->GetBlockHash().GetHex(), pindexPrev->nHeight); -// CValidationState statePrev; -// ReconsiderBlock(statePrev, pindexPrev); -// if (statePrev.IsValid()) { -// ActivateBestChain(statePrev); -// return true; -// } -// } - return state.DoS(100, error("%s : prev block %s is invalid, unable to add block %s", __func__, block.hashPrevBlock.GetHex(), block.GetHash().GetHex()), - REJECT_INVALID, "bad-prevblk"); -// } + if (pindexPrev->nStatus & BLOCK_FAILED_MASK) + return state.DoS(100, error("%s : prev block invalid", __func__), REJECT_INVALID, "bad-prevblk"); } if (block.GetHash() != Params().HashGenesisBlock() && !CheckWork(block, pindexPrev)) @@ -3487,13 +3462,13 @@ bool ProcessNewBlock(CValidationState& state, CNode* pfrom, CBlock* pblock, CDis // Preliminary checks bool checked = CheckBlock(*pblock, state); - // ittrium: check proof-of-stake + // ppcoin: check proof-of-stake // Limited duplicity on stake: prevents block flood attack // Duplicate stake allowed only when there is orphan child block //if (pblock->IsProofOfStake() && setStakeSeen.count(pblock->GetProofOfStake())/* && !mapOrphanBlocksByPrev.count(hash)*/) // return error("ProcessNewBlock() : duplicate proof-of-stake (%s, %d) for block %s", pblock->GetProofOfStake().first.ToString().c_str(), pblock->GetProofOfStake().second, pblock->GetHash().ToString().c_str()); - // Ittrium: check proof-of-stake block signature + // NovaCoin: check proof-of-stake block signature if (!pblock->CheckBlockSignature()) return error("ProcessNewBlock() : bad proof-of-stake block signature"); @@ -3515,7 +3490,7 @@ bool ProcessNewBlock(CValidationState& state, CNode* pfrom, CBlock* pblock, CDis MarkBlockAsReceived(pblock->GetHash()); if (!checked) { - return error ("%s : CheckBlock FAILED for block %s", __func__, pblock->GetHash().GetHex()); + return error("%s : CheckBlock FAILED", __func__); } // Store to disk @@ -5397,30 +5372,18 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, } // Note: whenever a protocol update is needed toggle between both implementations (comment out the formerly active one) -// so we can leave the existing clients untouched (old SPORK will stay on so they don't see even older clients). +// so we can leave the existing clients untouched (old SPORK will stay on so they don't see even older clients). // Those old clients won't react to the changes of the other (new) SPORK because at the time of their implementation -// - +// it was the one which was commented out int ActiveProtocol() { - - // SPORK_14 was used for 70710. Leave it 'ON' so they don't see < 70710 nodes. They won't react to SPORK_15 - // messages because it's not in their code -/* - if (IsSporkActive(SPORK_14_NEW_PROTOCOL_ENFORCEMENT)) { - if (chainActive.Tip()->nHeight >= Params().ModifierUpgradeBlock()) - return MIN_PEER_PROTO_VERSION_AFTER_ENFORCEMENT; - } - - return MIN_PEER_PROTO_VERSION_BEFORE_ENFORCEMENT; -*/ - - - // SPORK_15 is used for 70910. Nodes < 70910 don't see it and still get their protocol version via SPORK_14 and their - // own ModifierUpgradeBlock() - + if (IsSporkActive(SPORK_17_NEW_PROTOCOL_ENFORCEMENT_3)) + return MIN_PEER_PROTO_VERSION_AFTER_ENFORCEMENT17; + if (IsSporkActive(SPORK_15_NEW_PROTOCOL_ENFORCEMENT_2)) - return MIN_PEER_PROTO_VERSION_AFTER_ENFORCEMENT; + return MIN_PEER_PROTO_VERSION_AFTER_ENFORCEMENT15; + + // Return the current protocol version if no spork is active. return MIN_PEER_PROTO_VERSION_BEFORE_ENFORCEMENT; } @@ -5584,7 +5547,7 @@ bool SendMessages(CNode* pto, bool fSendTrickle) pnode->setAddrKnown.clear(); // Rebroadcast our address - AdvertizeLocal(pnode); + AdvertiseLocal(pnode); } if (!vNodes.empty()) nLastRebroadcast = GetTime(); diff --git a/src/masternode-budget.cpp b/src/masternode-budget.cpp index 27a1447..2a66eef 100755 --- a/src/masternode-budget.cpp +++ b/src/masternode-budget.cpp @@ -412,7 +412,6 @@ bool CBudgetManager::AddProposal(CBudgetProposal& budgetProposal) } mapProposals.insert(make_pair(budgetProposal.GetHash(), budgetProposal)); - LogPrintf("CBudgetManager::AddProposal - proposal %s added\n", budgetProposal.GetName ().c_str ()); return true; } @@ -442,7 +441,7 @@ void CBudgetManager::CheckAndRemove() CBudgetProposal* pbudgetProposal = &((*it2).second); pbudgetProposal->fValid = pbudgetProposal->IsValid(strError); if (!strError.empty ()) { - LogPrintf("CBudgetManager::CheckAndRemove - invalid budget proposal %s - %s\n", pbudgetProposal->GetName().c_str (), strError); + LogPrintf("CBudgetManager::CheckAndRemove - invalid budget proposal - %s\n", strError); strError = ""; } ++it2; @@ -1642,9 +1641,10 @@ bool CBudgetVote::SignatureValid(bool fSignatureCheck) CMasternode* pmn = mnodeman.Find(vin); if (pmn == NULL) { - if (fDebug){ - LogPrintf("CBudgetVote::SignatureValid() - Unknown Masternode - %s\n", vin.prevout.hash.ToString()); - } + if (fDebug) { + LogPrintf("CBudgetVote::SignatureValid() - Unknown Masternode - %s\n", vin.prevout.hash.ToString()); + } + return false; } diff --git a/src/masternode-payments.cpp b/src/masternode-payments.cpp index fee835f..ad24665 100755 --- a/src/masternode-payments.cpp +++ b/src/masternode-payments.cpp @@ -228,7 +228,8 @@ bool IsBlockPayeeValid(const CBlock& block, int nBlockHeight) return true; } - const CTransaction& txNew = (nBlockHeight > Params().LAST_POW_BLOCK() ? block.vtx[1] : block.vtx[0]); + int nLastPOWBlock = Params().LAST_POW_BLOCK(); + const CTransaction& txNew = (nBlockHeight > nLastPOWBlock ? block.vtx[1] : block.vtx[0]); //check if it's a budget block if (IsSporkActive(SPORK_13_ENABLE_SUPERBLOCKS)) { @@ -292,7 +293,7 @@ void CMasternodePayments::FillBlockPayee(CMutableTransaction& txNew, int64_t nFe if (winningNode) { payee = GetScriptForDestination(winningNode->pubKeyCollateralAddress.GetID()); } else { -// LogPrintf("CreateNewBlock: Failed to detect masternode to pay\n"); + LogPrintf("CreateNewBlock: Failed to detect masternode to pay\n"); hasPayment = false; } } @@ -326,7 +327,10 @@ void CMasternodePayments::FillBlockPayee(CMutableTransaction& txNew, int64_t nFe CBitcoinAddress address2(address1); LogPrintf("Masternode payment of %s to %s\n", FormatMoney(masternodePayment).c_str(), address2.ToString().c_str()); - } + } else { + if (!fProofOfStake) + txNew.vout[0].nValue = blockValue - masternodePayment; + } } int CMasternodePayments::GetMinMasternodePaymentsProto() diff --git a/src/masternode.cpp b/src/masternode.cpp index a1b9c85..9fe0fd6 100755 --- a/src/masternode.cpp +++ b/src/masternode.cpp @@ -323,7 +323,7 @@ bool CMasternode::IsValidNetAddr() // TODO: regtest is fine with any addresses for now, // should probably be a bit smarter if one day we start to implement tests for this return Params().NetworkID() == CBaseChainParams::REGTEST || - (IsReachable(addr) && addr.IsRoutable()); + (IsReachable(addr) || addr.IsRoutable()); } CMasternodeBroadcast::CMasternodeBroadcast() diff --git a/src/masternode.h b/src/masternode.h index d58d4c9..4c3fef9 100755 --- a/src/masternode.h +++ b/src/masternode.h @@ -1,7 +1,6 @@ // Copyright (c) 2014-2015 The Dash developers // Copyright (c) 2015-2017 The PIVX developers -// Copyright (c) 2017-2018 The Ittrium developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef MASTERNODE_H diff --git a/src/masternodeman.cpp b/src/masternodeman.cpp index bb54f1d..8c77a1b 100755 --- a/src/masternodeman.cpp +++ b/src/masternodeman.cpp @@ -223,7 +223,6 @@ void CMasternodeMan::AskForMN(CNode* pnode, CTxIn& vin) } // ask for the mnb info once from the node that sent mnp - LogPrint("masternode", "CMasternodeMan::AskForMN - Asking node for missing entry, vin: %s\n", vin.prevout.hash.ToString()); pnode->PushMessage("dseg", vin); int64_t askAgain = GetTime() + MASTERNODE_MIN_MNP_SECONDS; @@ -354,24 +353,26 @@ int CMasternodeMan::stable_size () int64_t nMasternode_Min_Age = GetSporkValue(SPORK_16_MN_WINNER_MINIMUM_AGE); int64_t nMasternode_Age = 0; - BOOST_FOREACH (CMasternode& mn, vMasternodes) { - if (mn.protocolVersion < nMinProtocol) { - continue; // Skip obsolete versions - } - if (IsSporkActive (SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT)) { - nMasternode_Age = GetAdjustedTime() - mn.sigTime; - if ((nMasternode_Age) < nMasternode_Min_Age) { - continue; // Skip masternodes younger than (default) 8000 sec (MUST be > MASTERNODE_REMOVAL_SECONDS) - } - } - mn.Check (); - if (!mn.IsEnabled ()) - continue; // Skip not-enabled masternodes + BOOST_FOREACH (CMasternode& mn, vMasternodes) { + if (mn.protocolVersion < nMinProtocol) { + continue; // Skip obsolete versions + } - nStable_size++; - } + if (IsSporkActive (SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT)) { + nMasternode_Age = GetAdjustedTime() - mn.sigTime; + + if ((nMasternode_Age) < nMasternode_Min_Age) { + continue; // Skip masternodes younger than (default) 8000 sec (MUST be > MASTERNODE_REMOVAL_SECONDS) + } + } - return nStable_size; + mn.Check (); + if (!mn.IsEnabled ()) + continue; // Skip not-enabled masternodes + + nStable_size++; + } + return nStable_size; } int CMasternodeMan::CountEnabled(int protocolVersion) @@ -602,22 +603,24 @@ int CMasternodeMan::GetMasternodeRank(const CTxIn& vin, int64_t nBlockHeight, in // scan for winner BOOST_FOREACH (CMasternode& mn, vMasternodes) { - if (mn.protocolVersion < minProtocol) { - if (fDebug) { - LogPrintf("Skipping Masternode with obsolete version %d\n", mn.protocolVersion); - } - continue; - } - if (IsSporkActive(SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT)) { - nMasternode_Age = GetAdjustedTime() - mn.sigTime; - if ((nMasternode_Age) < nMasternode_Min_Age) { - if (fDebug){ - LogPrintf("Skipping just activated Masternode. Age: %ld\n", nMasternode_Age); - } - continue; // Skip masternodes younger than (default) 8000 sec - } - } - if (fOnlyActive) { + if (mn.protocolVersion < minProtocol) { + if (fDebug) { + LogPrintf("Skipping Masternode with obsolete version %d\n", mn.protocolVersion); + } + continue; + } + if (IsSporkActive(SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT)) { + nMasternode_Age = GetAdjustedTime() - mn.sigTime; + + if ((nMasternode_Age) < nMasternode_Min_Age) { + if (fDebug) { + LogPrintf("Skipping just activated Masternode. Age: %ld\n", nMasternode_Age); + } + continue; + } + } + + if (fOnlyActive) { mn.Check(); if (!mn.IsEnabled()) continue; } @@ -765,7 +768,6 @@ void CMasternodeMan::ProcessMessage(CNode* pfrom, std::string& strCommand, CData masternodeSync.AddedMasternodeList(mnb.GetHash()); } else { LogPrintf("mnb - Rejected Masternode entry %s\n", mnb.vin.prevout.hash.ToString()); - if (nDoS > 0) Misbehaving(pfrom->GetId(), nDoS); } @@ -774,7 +776,6 @@ void CMasternodeMan::ProcessMessage(CNode* pfrom, std::string& strCommand, CData else if (strCommand == "mnp") { //Masternode Ping CMasternodePing mnp; vRecv >> mnp; - LogPrint("masternode", "mnp - Masternode ping, vin: %s\n", mnp.vin.prevout.hash.ToString()); if (mapSeenMasternodePing.count(mnp.GetHash())) return; //seen @@ -847,7 +848,7 @@ void CMasternodeMan::ProcessMessage(CNode* pfrom, std::string& strCommand, CData if (vin == CTxIn()) { pfrom->PushMessage("ssc", MASTERNODE_SYNC_LIST, nInvCount); - LogPrint("masternode", "dseg - Sent %d Masternode entries to peer %i\n", nInvCount, pfrom->GetId()); + LogPrintf("dseg - Sent %d Masternode entries to %s\n", nInvCount, pfrom->addr.ToString()); } } /* @@ -979,7 +980,6 @@ void CMasternodeMan::ProcessMessage(CNode* pfrom, std::string& strCommand, CData return; } - LogPrint("masternode", "dsee - Got NEW OLD Masternode entry %s\n", vin.prevout.hash.ToString()); // make sure it's still unspent @@ -1113,7 +1113,7 @@ void CMasternodeMan::ProcessMessage(CNode* pfrom, std::string& strCommand, CData if (pmn->IsEnabled()) { TRY_LOCK(cs_vNodes, lockNodes); if (!lockNodes) return; - LogPrint("masternode", "dseep - relaying %s \n", vin.prevout.hash.ToString()); + LogPrint("masternode", "dseep - relaying %s \n", vin.ToString().c_str()); BOOST_FOREACH (CNode* pnode, vNodes) if (pnode->nVersion >= masternodePayments.GetMinMasternodePaymentsProto()) pnode->PushMessage("dseep", vin, vchSig, sigTime, stop); @@ -1153,7 +1153,7 @@ void CMasternodeMan::UpdateMasternodeList(CMasternodeBroadcast mnb) mapSeenMasternodePing.insert(std::make_pair(mnb.lastPing.GetHash(), mnb.lastPing)); mapSeenMasternodeBroadcast.insert(std::make_pair(mnb.GetHash(), mnb)); - LogPrintf("CMasternodeMan::UpdateMasternodeList -- masternode=%s\n", mnb.vin.prevout.ToStringShort()); + LogPrintf("CMasternodeMan::UpdateMasternodeList -- masternode=%s addr=%s\n", mnb.vin.prevout.ToStringShort(), mnb.addr.ToString()); CMasternode* pmn = Find(mnb.vin); if (pmn == NULL) { diff --git a/src/miner.cpp b/src/miner.cpp index 94403bd..4c3ea02 100755 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -116,7 +116,7 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn, CWallet* pwallet, pblocktemplate->vTxFees.push_back(-1); // updated at end pblocktemplate->vTxSigOps.push_back(-1); // updated at end - // ittrium: if coinstake available add coinstake tx + // ppcoin: if coinstake available add coinstake tx static int64_t nLastCoinStakeSearchTime = GetAdjustedTime(); // only initialized at startup if (fProofOfStake) { @@ -332,7 +332,7 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn, CWallet* pwallet, } } } - + if (!fProofOfStake) { //Masternode and general budget payments FillBlockPayee(txNew, nFees, fProofOfStake); @@ -347,6 +347,7 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn, CWallet* pwallet, nLastBlockSize = nBlockSize; LogPrintf("CreateNewBlock(): total size %u\n", nBlockSize); + // Compute final coinbase transaction. pblock->vtx[0].vin[0].scriptSig = CScript() << nHeight << OP_0; if (!fProofOfStake) { @@ -454,8 +455,8 @@ void BitcoinMiner(CWallet* pwallet, bool fProofOfStake) //control the amount of times the client will check for mintable coins static bool fMintableCoins = false; static int nMintableLastCheck = 0; - - if (fProofOfStake && (GetTime() - nMintableLastCheck > 5 * 60)) // 5 minute check time + + if (fProofOfStake && (GetTime() - nMintableLastCheck > 5 * 60)) // 5 minute check time { nMintableLastCheck = GetTime(); fMintableCoins = pwallet->MintableCoins(); @@ -468,7 +469,7 @@ void BitcoinMiner(CWallet* pwallet, bool fProofOfStake) continue; } - while (vNodes.empty() || pwallet->IsLocked() || !fMintableCoins || nReserveBalance >= pwallet->GetBalance() || !masternodeSync.IsSynced()) { + while (chainActive.Tip()->nTime < 1533333333 || vNodes.empty() || pwallet->IsLocked() || !fMintableCoins || nReserveBalance >= pwallet->GetBalance() || !masternodeSync.IsSynced()) { nLastCoinStakeSearchInterval = 0; MilliSleep(5000); if (!fGenerateBitcoins && !fProofOfStake) @@ -485,6 +486,8 @@ void BitcoinMiner(CWallet* pwallet, bool fProofOfStake) } } + MilliSleep(1000); + // // Create new block // diff --git a/src/net.cpp b/src/net.cpp index 5a2a04b..746f3ec 100755 --- a/src/net.cpp +++ b/src/net.cpp @@ -84,7 +84,7 @@ static CNode* pnodeLocalHost = NULL; uint64_t nLocalHostNonce = 0; static std::vector vhListenSocket; CAddrMan addrman; -int nMaxConnections = 125; +int nMaxConnections = 64; bool fAddressesInitialized = false; vector vNodes; @@ -220,10 +220,11 @@ bool IsPeerAddrLocalGood(CNode* pnode) } // pushes our own address to a peer -void AdvertizeLocal(CNode* pnode) +void AdvertiseLocal(CNode* pnode) { if (fListen && pnode->fSuccessfullyConnected) { CAddress addrLocal = GetLocalAddress(&pnode->addr); + LogPrintf("AdvertiseLocal: advertising address %s\n", addrLocal.ToString()); // If discovery is enabled, sometimes give our peer the address it // tells us that it sees us as in case it has a better idea of our // address than we do. @@ -352,6 +353,15 @@ CNode* FindNode(const CNetAddr& ip) return NULL; } +CNode* FindNode(const CSubNet& subNet) +{ + LOCK(cs_vNodes); + BOOST_FOREACH(CNode* pnode, vNodes) + if (subNet.Match((CNetAddr)pnode->addr)) + return (pnode); + return NULL; +} + CNode* FindNode(const std::string& addrName) { LOCK(cs_vNodes); @@ -478,9 +488,9 @@ void CNode::PushVersion() nLocalHostNonce, FormatSubVersion(CLIENT_NAME, CLIENT_VERSION, std::vector()), nBestHeight, true); } - -std::map CNode::setBanned; +banmap_t CNode::setBanned; CCriticalSection CNode::cs_setBanned; +bool CNode::setBannedIsDirty; void CNode::ClearBanned() { @@ -489,31 +499,84 @@ void CNode::ClearBanned() bool CNode::IsBanned(CNetAddr ip) { - bool fResult = false; - { - LOCK(cs_setBanned); - std::map::iterator i = setBanned.find(ip); - if (i != setBanned.end()) { - int64_t t = (*i).second; - if (GetTime() < t) - fResult = true; - } - } - return fResult; + bool fResult = false; + { + LOCK(cs_setBanned); + for (banmap_t::iterator it = setBanned.begin(); it != setBanned.end(); it++) + { + CSubNet subNet = (*it).first; + CBanEntry banEntry = (*it).second; + + if (subNet.Match(ip) && GetTime() < banEntry.nBanUntil) + fResult = true; + } + } + return fResult; } -bool CNode::Ban(const CNetAddr& addr) +bool CNode::IsBanned(CSubNet subnet) { - int64_t banTime = GetTime() + GetArg("-bantime", 60 * 60 * 24); // Default 24-hour ban - { - LOCK(cs_setBanned); - if (setBanned[addr] < banTime) - setBanned[addr] = banTime; - } - return true; + bool fResult = false; + { + LOCK(cs_setBanned); + banmap_t::iterator i = setBanned.find(subnet); + if (i != setBanned.end()) + { + CBanEntry banEntry = (*i).second; + if (GetTime() < banEntry.nBanUntil) + fResult = true; + } + } + return fResult; +} + + +void CNode::Ban(const CNetAddr& addr,int64_t bantimeoffset, bool sinceUnixEpoch) { + CSubNet subNet(addr); + Ban(subNet, bantimeoffset, sinceUnixEpoch); + DumpBanlist(); } +void CNode::Ban(const CSubNet& subNet, int64_t bantimeoffset, bool sinceUnixEpoch) { + CBanEntry banEntry(GetTime()); + if (bantimeoffset <= 0) + { + bantimeoffset = GetArg("-bantime", 60 * 60 * 24); // Default 24-hour ban + sinceUnixEpoch = false; + } + banEntry.nBanUntil = (sinceUnixEpoch ? 0 : GetTime()) + bantimeoffset; + + + LOCK(cs_setBanned); + if (setBanned[subNet].nBanUntil < banEntry.nBanUntil) + setBanned[subNet] = banEntry; + + setBannedIsDirty = true; +} + +bool CNode::Unban(const CNetAddr& addr) +{ + CSubNet subNet(addr.ToString()+(addr.IsIPv4() ? "/32" : "/128")); + return Unban(subNet); +} + +bool CNode::Unban(const CSubNet& subNet) +{ + LOCK(cs_setBanned); + if (setBanned.erase(subNet)) { + DumpBanlist(); + return true; +} + return false; +} + +void CNode::GetBanned(banmap_t &banMap) +{ + LOCK(cs_setBanned); + banMap = setBanned; // thread safe copy +} + std::vector CNode::vWhitelistedRange; CCriticalSection CNode::cs_vWhitelistedRange; @@ -1139,6 +1202,40 @@ void DumpAddresses() addrman.size(), GetTimeMillis() - nStart); } +void CNode::DumpBanlist() +{ + int64_t nStart = GetTimeMillis(); + + //CNode::SweepBanned(); clean unused entries (if bantime has expired) + + CBanDB bandb; + banmap_t banmap; + CNode::GetBanned(banmap); + bandb.Write(banmap); + + LogPrint("net", "Flushed %d banned node ips/subnets to banlist.dat %dms\n", + banmap.size(), GetTimeMillis() - nStart); +} + +void CNode::SweepBanned() +{ + int64_t now = GetTime(); + + LOCK(cs_setBanned); + banmap_t::iterator it = setBanned.begin(); + while (it != setBanned.end()) + { + CBanEntry banEntry = (*it).second; + if (now > banEntry.nBanUntil) + { + setBanned.erase(it++); + setBannedIsDirty = true; + } + else + ++it; + } +} + void static ProcessOneShot() { string strDest; @@ -1411,7 +1508,7 @@ void ThreadMessageHandler() } } -// ittrium: stake minter thread +// ppcoin: stake minter thread void static ThreadStakeMinter() { boost::this_thread::interruption_point(); @@ -1611,7 +1708,7 @@ void StartNode(boost::thread_group& threadGroup) // Dump network addresses threadGroup.create_thread(boost::bind(&LoopForever, "dumpaddr", &DumpAddresses, DUMP_ADDRESSES_INTERVAL * 1000)); - // ittrium:mint proof-of-stake blocks in the background + // ppcoin:mint proof-of-stake blocks in the background if (GetBoolArg("-staking", true)) threadGroup.create_thread(boost::bind(&TraceThread, "stakemint", &ThreadStakeMinter)); } @@ -1730,7 +1827,7 @@ void RelayInv(CInv& inv) { LOCK(cs_vNodes); BOOST_FOREACH (CNode* pnode, vNodes){ - if((pnode->nServices==NODE_BLOOM_WITHOUT_MN) && inv.IsMasterNodeType())continue; + if((pnode->nServices==NODE_BLOOM_WITHOUT_MN) && inv.IsMasterNodeType())continue; if (pnode->nVersion >= ActiveProtocol()) pnode->PushInventory(inv); } diff --git a/src/net.h b/src/net.h index c9713ce..5744714 100755 --- a/src/net.h +++ b/src/net.h @@ -8,6 +8,7 @@ #ifndef BITCOIN_NET_H #define BITCOIN_NET_H +#include "addrdb.h" #include "bloom.h" #include "compat.h" #include "hash.h" @@ -69,6 +70,7 @@ void AddOneShot(std::string strDest); bool RecvLine(SOCKET hSocket, std::string& strLine); void AddressCurrentlyConnected(const CService& addr); CNode* FindNode(const CNetAddr& ip); +CNode* FindNode(const CSubNet& subNet); CNode* FindNode(const std::string& addrName); CNode* FindNode(const CService& ip); CNode* ConnectNode(CAddress addrConnect, const char* pszDest = NULL, bool obfuScationMaster = false); @@ -106,7 +108,7 @@ enum { }; bool IsPeerAddrLocalGood(CNode* pnode); -void AdvertizeLocal(CNode* pnode); +void AdvertiseLocal(CNode* pnode); void SetLimited(enum Network net, bool fLimited = true); bool IsLimited(enum Network net); bool IsLimited(const CNetAddr& addr); @@ -271,8 +273,9 @@ class CNode protected: // Denial-of-service detection/prevention // Key is IP address, value is banned-until-time - static std::map setBanned; + static banmap_t setBanned; static CCriticalSection cs_setBanned; + static bool setBannedIsDirty; std::vector vecRequestsFulfilled; //keep track of what client has asked for @@ -634,8 +637,16 @@ class CNode // new code. static void ClearBanned(); // needed for unit testing static bool IsBanned(CNetAddr ip); - static bool Ban(const CNetAddr& ip); + static bool IsBanned(CSubNet subNet); + static void Ban(const CNetAddr& ip, int64_t bantimeoffset = 0, bool sinceUnixEpoch = false); + static void Ban(const CSubNet& subNet, int64_t bantimeoffset = 0, bool sinceUnixEpoch = false); + static void DumpBanlist(); + static bool Unban(const CNetAddr& ip); + static bool Unban(const CSubNet& subNet); + static void GetBanned(banmap_t &banMap); void copyStats(CNodeStats& stats); + //!clean unused entries (if bantime has expired) + static void SweepBanned(); static bool IsWhitelistedRange(const CNetAddr& ip); static void AddWhitelistedRange(const CSubNet& subnet); diff --git a/src/netbase.cpp b/src/netbase.cpp index 02be8d8..e61b042 100755 --- a/src/netbase.cpp +++ b/src/netbase.cpp @@ -1259,6 +1259,13 @@ CSubNet::CSubNet(const std::string& strSubnet, bool fAllowLookup) network.ip[x] &= netmask[x]; } +CSubNet::CSubNet(const CNetAddr &addr) : + valid(addr.IsValid()) +{ + memset(netmask, 255, sizeof(netmask)); + network = addr; +} + bool CSubNet::Match(const CNetAddr& addr) const { if (!valid || !addr.IsValid()) @@ -1269,18 +1276,59 @@ bool CSubNet::Match(const CNetAddr& addr) const return true; } +static inline int NetmaskBits(uint8_t x) +{ + switch (x) { + case 0x00: return 0; break; + case 0x80: return 1; break; + case 0xc0: return 2; break; + case 0xe0: return 3; break; + case 0xf0: return 4; break; + case 0xf8: return 5; break; + case 0xfc: return 6; break; + case 0xfe: return 7; break; + case 0xff: return 8; break; + default: return -1; break; + } +} + std::string CSubNet::ToString() const { - std::string strNetmask; - if (network.IsIPv4()) - strNetmask = strprintf("%u.%u.%u.%u", netmask[12], netmask[13], netmask[14], netmask[15]); - else - strNetmask = strprintf("%x:%x:%x:%x:%x:%x:%x:%x", - netmask[0] << 8 | netmask[1], netmask[2] << 8 | netmask[3], - netmask[4] << 8 | netmask[5], netmask[6] << 8 | netmask[7], - netmask[8] << 8 | netmask[9], netmask[10] << 8 | netmask[11], - netmask[12] << 8 | netmask[13], netmask[14] << 8 | netmask[15]); - return network.ToString() + "/" + strNetmask; + /* Parse binary 1{n}0{N-n} to see if mask can be represented as /n */ + int cidr = 0; + bool valid_cidr = true; + int n = network.IsIPv4() ? 12 : 0; + for (; n < 16 && netmask[n] == 0xff; ++n) + cidr += 8; + if (n < 16) { + int bits = NetmaskBits(netmask[n]); + if (bits < 0) + valid_cidr = false; + else + cidr += bits; + ++n; + } + for (; n < 16 && valid_cidr; ++n) + if (netmask[n] != 0x00) + valid_cidr = false; + + /* Format output */ + std::string strNetmask; + if (valid_cidr) { + strNetmask = strprintf("%u", cidr); + } + else { + if (network.IsIPv4()) + strNetmask = strprintf("%u.%u.%u.%u", netmask[12], netmask[13], netmask[14], netmask[15]); + else + strNetmask = strprintf("%x:%x:%x:%x:%x:%x:%x:%x", + netmask[0] << 8 | netmask[1], netmask[2] << 8 | netmask[3], + netmask[4] << 8 | netmask[5], netmask[6] << 8 | netmask[7], + netmask[8] << 8 | netmask[9], netmask[10] << 8 | netmask[11], + netmask[12] << 8 | netmask[13], netmask[14] << 8 | netmask[15]); + } + + return network.ToString() + "/" + strNetmask; } bool CSubNet::IsValid() const @@ -1298,6 +1346,11 @@ bool operator!=(const CSubNet& a, const CSubNet& b) return !(a == b); } +bool operator<(const CSubNet& a, const CSubNet& b) +{ + return (a.network < b.network || (a.network == b.network && memcmp(a.netmask, b.netmask, 16) < 0)); +} + #ifdef WIN32 std::string NetworkErrorString(int err) { diff --git a/src/netbase.h b/src/netbase.h index 6273a9a..0c50096 100755 --- a/src/netbase.h +++ b/src/netbase.h @@ -117,6 +117,7 @@ class CSubNet public: CSubNet(); explicit CSubNet(const std::string& strSubnet, bool fAllowLookup = false); + explicit CSubNet(const CNetAddr &addr); bool Match(const CNetAddr& addr) const; @@ -124,7 +125,17 @@ class CSubNet bool IsValid() const; friend bool operator==(const CSubNet& a, const CSubNet& b); - friend bool operator!=(const CSubNet& a, const CSubNet& b); + friend bool operator!=(const CSubNet& a, const CSubNet& b); + friend bool operator<(const CSubNet& a, const CSubNet& b); + + ADD_SERIALIZE_METHODS; + + template + inline void SerializationOp(Stream& s, Operation ser_action, int nType, int nVersion) { + READWRITE(network); + READWRITE(FLATDATA(netmask)); + READWRITE(valid); + } }; /** A combination of a network address (CNetAddr) and a (TCP) port */ diff --git a/src/obfuscation.cpp b/src/obfuscation.cpp index 0e27367..c2b28d2 100755 --- a/src/obfuscation.cpp +++ b/src/obfuscation.cpp @@ -1727,16 +1727,16 @@ bool CObfuscationPool::MakeCollateralAmounts() // try to use non-denominated and not mn-like funds bool success = pwalletMain->CreateTransaction(vecSend, wtx, reservekeyChange, - nFeeRet, strFail, &coinControl, ONLY_NONDENOMINATED_NOT5000IFMN); + nFeeRet, strFail, &coinControl, ONLY_NONDENOMINATED_NOT10000IFMN); if (!success) { // if we failed (most likeky not enough funds), try to use all coins instead - // MN-like funds should not be touched in any case and we can't mix denominated without collaterals anyway CCoinControl* coinControlNull = NULL; - LogPrintf("MakeCollateralAmounts: ONLY_NONDENOMINATED_NOT5000IFMN Error - %s\n", strFail); + LogPrintf("MakeCollateralAmounts: ONLY_NONDENOMINATED_NOT10000IFMN Error - %s\n", strFail); success = pwalletMain->CreateTransaction(vecSend, wtx, reservekeyChange, - nFeeRet, strFail, coinControlNull, ONLY_NOT5000IFMN); + nFeeRet, strFail, coinControlNull, ONLY_NOT10000IFMN); if (!success) { - LogPrintf("MakeCollateralAmounts: ONLY_NOT5000IFMN Error - %s\n", strFail); + LogPrintf("MakeCollateralAmounts: ONLY_NOT10000IFMN Error - %s\n", strFail); reservekeyCollateral.ReturnKey(); return false; } @@ -1814,7 +1814,7 @@ bool CObfuscationPool::CreateDenominated(CAmount nTotalValue) CCoinControl* coinControl = NULL; bool success = pwalletMain->CreateTransaction(vecSend, wtx, reservekeyChange, - nFeeRet, strFail, coinControl, ONLY_NONDENOMINATED_NOT5000IFMN); + nFeeRet, strFail, coinControl, ONLY_NONDENOMINATED_NOT10000IFMN); if (!success) { LogPrintf("CreateDenominated: Error - %s\n", strFail); // TODO: return reservekeyDenom here @@ -1998,13 +1998,13 @@ int CObfuscationPool::GetDenominations(const std::vector& vout, bool fSi } -int CObfuscationPool::GetDenominationsByAmounts(std::vector& vecAmount) +int CObfuscationPool::GetDenominationsByAmounts(std::vector& vecAmount) { CScript e = CScript(); std::vector vout1; // Make outputs by looping through denominations, from small to large - BOOST_REVERSE_FOREACH (CAmount v, vecAmount) { + BOOST_REVERSE_FOREACH (int64_t v, vecAmount) { CTxOut o(v, e); vout1.push_back(o); } diff --git a/src/obfuscation.h b/src/obfuscation.h index 988e0b5..14ac5c7 100755 --- a/src/obfuscation.h +++ b/src/obfuscation.h @@ -47,8 +47,8 @@ class CActiveMasternode; #define OBFUSCATION_RELAY_OUT 2 #define OBFUSCATION_RELAY_SIG 3 -static const CAmount OBFUSCATION_COLLATERAL = (10 * COIN); -static const CAmount OBFUSCATION_POOL_MAX = (99999.99 * COIN); +static const int64_t OBFUSCATION_COLLATERAL = (10 * COIN); +static const int64_t OBFUSCATION_POOL_MAX = (99999.99 * COIN); extern CObfuscationPool obfuScationPool; extern CObfuScationSigner obfuScationSigner; @@ -112,7 +112,7 @@ class CObfuScationEntry } /// Add entries to use for Obfuscation - bool Add(const std::vector vinIn, int64_t amountIn, const CTransaction collateralIn, const std::vector voutIn) + bool Add(const std::vector vinIn, CAmount amountIn, const CTransaction collateralIn, const std::vector voutIn) { if (isSet) { return false; @@ -496,7 +496,7 @@ class CObfuscationPool /// Get the denominations for a specific amount of ittrium. int GetDenominationsByAmount(CAmount nAmount, int nDenomTarget = 0); // is not used anymore? - int GetDenominationsByAmounts(std::vector& vecAmount); + int GetDenominationsByAmounts(std::vector& vecAmount); std::string GetMessageByID(int messageID); @@ -507,7 +507,7 @@ class CObfuscationPool void RelayFinalTransaction(const int sessionID, const CTransaction& txNew); void RelaySignaturesAnon(std::vector& vin); void RelayInAnon(std::vector& vin, std::vector& vout); - void RelayIn(const std::vector& vin, const CAmount& nAmount, const CTransaction& txCollateral, const std::vector& vout); + void RelayIn(const std::vector& vin, const int64_t& nAmount, const CTransaction& txCollateral, const std::vector& vout); void RelayStatus(const int sessionID, const int newState, const int newEntriesCount, const int newAccepted, const int errorID = MSG_NOERR); void RelayCompletedTransaction(const int sessionID, const bool error, const int errorID); }; diff --git a/src/pow.cpp b/src/pow.cpp index 1c64dab..7c69de7 100755 --- a/src/pow.cpp +++ b/src/pow.cpp @@ -12,10 +12,11 @@ #include "primitives/block.h" #include "uint256.h" #include "util.h" +#include "spork.h" #include -unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHeader* pblock) +unsigned int static DarkGravityWave(const CBlockIndex* pindexLast) { /* current difficulty formula, ittrium - DarkGravity v3, written by Evan Duffield - evan@dashpay.io */ const CBlockIndex* BlockLastSolved = pindexLast; @@ -44,8 +45,8 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHead if (nActualSpacing < 0) nActualSpacing = 1; - // ittrium: target change every block - // ittrium: retarget with exponential moving toward target spacing + // ppcoin: target change every block + // ppcoin: retarget with exponential moving toward target spacing uint256 bnNew; bnNew.SetCompact(pindexLast->nBits); @@ -104,7 +105,12 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHead bnNew = Params().ProofOfWorkLimit(); } - return bnNew.GetCompact(); + return bnNew.GetCompact(); +} + +unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHeader* pblock) +{ + return DarkGravityWave(pindexLast); } bool CheckProofOfWork(uint256 hash, unsigned int nBits) diff --git a/src/primitives/block.h b/src/primitives/block.h index 37573ac..c45f78f 100755 --- a/src/primitives/block.h +++ b/src/primitives/block.h @@ -1,7 +1,5 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2013 The Bitcoin developers -// Copyright (c) 2015-2018 The PIVX developers -// Copyright (c) 2017-2018 The Ittrium developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -83,7 +81,7 @@ class CBlock : public CBlockHeader // network and disk std::vector vtx; - // ittrium: block signature - signed by one of the coin base txout[N]'s owner + // ppcoin: block signature - signed by one of the coin base txout[N]'s owner std::vector vchBlockSig; // memory only @@ -132,7 +130,7 @@ class CBlock : public CBlockHeader return block; } - // ittrium: two types of block: proof-of-work or proof-of-stake + // ppcoin: two types of block: proof-of-work or proof-of-stake bool IsProofOfStake() const { return (vtx.size() > 1 && vtx[1].IsCoinStake()); diff --git a/src/primitives/transaction.h b/src/primitives/transaction.h index 82c1cbd..63e074b 100755 --- a/src/primitives/transaction.h +++ b/src/primitives/transaction.h @@ -160,13 +160,13 @@ class CTxOut bool IsDust(CFeeRate minRelayTxFee) const { - // "Dust" is defined in terms of CTransaction::minRelayTxFee, which has units uxit-per-kilobyte. + // "Dust" is defined in terms of CTransaction::minRelayTxFee, which has units duffs-per-kilobyte. // If you'd pay more than 1/3 in fees to spend something, then we consider it dust. // A typical txout is 34 bytes big, and will need a CTxIn of at least 148 bytes to spend - // i.e. total is 148 + 32 = 182 bytes. Default -minrelaytxfee is 10000 uxit per kB - // and that means that fee per txout is 182 * 10000 / 1000 = 1820 uxit. - // So dust is a txout less than 1820 *3 = 5460 uxit - // with default -minrelaytxfee = minRelayTxFee = 10000 uxit per kB. + // i.e. total is 148 + 32 = 182 bytes. Default -minrelaytxfee is 10000 duffs per kB + // and that means that fee per txout is 182 * 10000 / 1000 = 1820 duffs. + // So dust is a txout less than 1820 *3 = 5460 duffs + // with default -minrelaytxfee = minRelayTxFee = 10000 duffs per kB. size_t nSize = GetSerializeSize(SER_DISK,0)+148u; return (nValue < 3*minRelayTxFee.GetFee(nSize)); } @@ -259,7 +259,7 @@ class CTransaction bool IsCoinStake() const { - // ittrium: the coin stake transaction is marked with the first output empty + // ppcoin: the coin stake transaction is marked with the first output empty return (vin.size() > 0 && (!vin[0].prevout.IsNull()) && vout.size() >= 2 && vout[0].IsEmpty()); } @@ -275,7 +275,7 @@ class CTransaction std::string ToString() const; - bool GetCoinAge(uint64_t& nCoinAge) const; // ittrium: get transaction coin age + bool GetCoinAge(uint64_t& nCoinAge) const; // ppcoin: get transaction coin age }; /** A mutable version of CTransaction. */ diff --git a/src/qt/addressbookpage.cpp b/src/qt/addressbookpage.cpp index 6d19a6d..044f1ba 100755 --- a/src/qt/addressbookpage.cpp +++ b/src/qt/addressbookpage.cpp @@ -17,6 +17,7 @@ #include "csvmodelwriter.h" #include "editaddressdialog.h" #include "guiutil.h" +#include "qtmaterialflatbutton.h" #include #include @@ -51,7 +52,7 @@ AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget* parent) : QDialog connect(ui->tableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(accept())); ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers); ui->tableView->setFocus(); - ui->closeButton->setText(tr("C&hoose")); + ui->closeButton->setText(tr("Choose")); ui->exportButton->hide(); break; case ForEditing: diff --git a/src/qt/askpassphrasedialog.cpp b/src/qt/askpassphrasedialog.cpp index bf1daca..69fddf6 100755 --- a/src/qt/askpassphrasedialog.cpp +++ b/src/qt/askpassphrasedialog.cpp @@ -16,6 +16,7 @@ #include #include #include +#include "qtmaterialflatbutton.h" AskPassphraseDialog::AskPassphraseDialog(Mode mode, QWidget* parent, WalletModel* model) : QDialog(parent), ui(new Ui::AskPassphraseDialog), @@ -89,7 +90,7 @@ AskPassphraseDialog::~AskPassphraseDialog() delete ui; } -void AskPassphraseDialog::accept() +void AskPassphraseDialog::on_acceptButton_clicked() { SecureString oldpass, newpass1, newpass2; if (!model) @@ -176,6 +177,11 @@ void AskPassphraseDialog::accept() } } +void AskPassphraseDialog::on_cancelButton_clicked() +{ + this->close(); +} + void AskPassphraseDialog::textChanged() { // Validate input, set Ok button to enabled when acceptable @@ -193,7 +199,7 @@ void AskPassphraseDialog::textChanged() acceptable = !ui->passEdit1->text().isEmpty() && !ui->passEdit2->text().isEmpty() && !ui->passEdit3->text().isEmpty(); break; } - ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(acceptable); + ui->acceptButton->setEnabled(true); } bool AskPassphraseDialog::event(QEvent* event) diff --git a/src/qt/askpassphrasedialog.h b/src/qt/askpassphrasedialog.h index 655ba32..f86c7d3 100755 --- a/src/qt/askpassphrasedialog.h +++ b/src/qt/askpassphrasedialog.h @@ -32,7 +32,6 @@ class AskPassphraseDialog : public QDialog explicit AskPassphraseDialog(Mode mode, QWidget* parent, WalletModel* model); ~AskPassphraseDialog(); - void accept(); private: Ui::AskPassphraseDialog* ui; @@ -42,6 +41,8 @@ class AskPassphraseDialog : public QDialog private slots: void textChanged(); + void on_acceptButton_clicked(); + void on_cancelButton_clicked(); protected: bool event(QEvent* event); diff --git a/src/qt/bip38tooldialog.cpp b/src/qt/bip38tooldialog.cpp index f711ad2..f1da335 100755 --- a/src/qt/bip38tooldialog.cpp +++ b/src/qt/bip38tooldialog.cpp @@ -16,6 +16,7 @@ #include "bip38.h" #include "init.h" #include "wallet.h" +#include "qtmaterialflatbutton.h" #include #include diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 9492bf7..0e09573 100755 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -56,6 +57,7 @@ #include #include #include +#include "qtmaterialflatbutton.h" #if QT_VERSION < 0x050000 #include @@ -88,6 +90,9 @@ BitcoinGUI::BitcoinGUI(const NetworkStyle* networkStyle, QWidget* parent) : QMai signMessageAction(0), verifyMessageAction(0), bip38ToolAction(0), + multisigCreateAction(0), + multisigSpendAction(0), + multisigSignAction(0), aboutAction(0), receiveCoinsAction(0), optionsAction(0), @@ -112,6 +117,10 @@ BitcoinGUI::BitcoinGUI(const NetworkStyle* networkStyle, QWidget* parent) : QMai this->setStyleSheet(GUIUtil::loadStyleSheet()); GUIUtil::restoreWindowGeometry("nWindow", QSize(850, 550), this); + QFontDatabase::addApplicationFont(":/fonts/Roboto-Medium"); + QFontDatabase::addApplicationFont(":/fonts/Roboto-Bold"); + QFont font("Roboto",10,QFont::Medium); + QApplication::setFont(font); QString windowTitle = tr("Ittrium Core") + " - "; #ifdef ENABLE_WALLET @@ -280,7 +289,7 @@ void BitcoinGUI::createActions(const NetworkStyle* networkStyle) { QActionGroup* tabGroup = new QActionGroup(this); - overviewAction = new QAction(QIcon(":/icons/overview"), tr("&Overview"), this); + overviewAction = new QAction(QIcon(":/icons/overview_m"), tr("&Overview"), this); overviewAction->setStatusTip(tr("Show general overview of wallet")); overviewAction->setToolTip(overviewAction->statusTip()); overviewAction->setCheckable(true); @@ -291,7 +300,7 @@ void BitcoinGUI::createActions(const NetworkStyle* networkStyle) #endif tabGroup->addAction(overviewAction); - sendCoinsAction = new QAction(QIcon(":/icons/send"), tr("&Send"), this); + sendCoinsAction = new QAction(QIcon(":/icons/send_m"), tr("&Send"), this); sendCoinsAction->setStatusTip(tr("Send coins to a Ittrium address")); sendCoinsAction->setToolTip(sendCoinsAction->statusTip()); sendCoinsAction->setCheckable(true); @@ -302,7 +311,7 @@ void BitcoinGUI::createActions(const NetworkStyle* networkStyle) #endif tabGroup->addAction(sendCoinsAction); - receiveCoinsAction = new QAction(QIcon(":/icons/receiving_addresses"), tr("&Receive"), this); + receiveCoinsAction = new QAction(QIcon(":/icons/receiving_addresses_m"), tr("&Receive"), this); receiveCoinsAction->setStatusTip(tr("Request payments (generates QR codes and ittrium: URIs)")); receiveCoinsAction->setToolTip(receiveCoinsAction->statusTip()); receiveCoinsAction->setCheckable(true); @@ -313,7 +322,7 @@ void BitcoinGUI::createActions(const NetworkStyle* networkStyle) #endif tabGroup->addAction(receiveCoinsAction); - historyAction = new QAction(QIcon(":/icons/history"), tr("&Transactions"), this); + historyAction = new QAction(QIcon(":/icons/history_m"), tr("&Transactions"), this); historyAction->setStatusTip(tr("Browse transaction history")); historyAction->setToolTip(historyAction->statusTip()); historyAction->setCheckable(true); @@ -328,7 +337,7 @@ void BitcoinGUI::createActions(const NetworkStyle* networkStyle) QSettings settings; if (settings.value("fShowMasternodesTab").toBool()) { - masternodeAction = new QAction(QIcon(":/icons/masternodes"), tr("&Masternodes"), this); + masternodeAction = new QAction(QIcon(":/icons/masternodes_m"), tr("&Masternodes"), this); masternodeAction->setStatusTip(tr("Browse masternodes")); masternodeAction->setToolTip(masternodeAction->statusTip()); masternodeAction->setCheckable(true); @@ -381,9 +390,13 @@ void BitcoinGUI::createActions(const NetworkStyle* networkStyle) backupWalletAction->setStatusTip(tr("Backup wallet to another location")); changePassphraseAction = new QAction(QIcon(":/icons/key"), tr("&Change Passphrase..."), this); changePassphraseAction->setStatusTip(tr("Change the passphrase used for wallet encryption")); - unlockWalletAction = new QAction(tr("&Unlock Wallet..."), this); + + unlockWalletAction = new QAction(QIcon(":/icons/lock_open"), tr("&Unlock Wallet..."), this); unlockWalletAction->setToolTip(tr("Unlock wallet")); - lockWalletAction = new QAction(tr("&Lock Wallet"), this); + + lockWalletAction = new QAction(QIcon(":/icons/lock_closed"), tr("&Lock Wallet"), this); + lockWalletAction->setToolTip(tr("Lock Wallet")); + signMessageAction = new QAction(QIcon(":/icons/edit"), tr("Sign &message..."), this); signMessageAction->setStatusTip(tr("Sign messages with your Ittrium addresses to prove you own them")); verifyMessageAction = new QAction(QIcon(":/icons/transaction_0"), tr("&Verify message..."), this); @@ -394,7 +407,7 @@ void BitcoinGUI::createActions(const NetworkStyle* networkStyle) multiSendAction->setToolTip(tr("MultiSend Settings")); multiSendAction->setCheckable(true); - openInfoAction = new QAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation), tr("&Information"), this); + openInfoAction = new QAction(QIcon(":/icons/information"), tr("&Information"), this); openInfoAction->setStatusTip(tr("Show diagnostic information")); openRPCConsoleAction = new QAction(QIcon(":/icons/debugwindow"), tr("&Debug console"), this); openRPCConsoleAction->setStatusTip(tr("Open debugging console")); @@ -416,12 +429,20 @@ void BitcoinGUI::createActions(const NetworkStyle* networkStyle) usedReceivingAddressesAction = new QAction(QIcon(":/icons/address-book"), tr("&Receiving addresses..."), this); usedReceivingAddressesAction->setStatusTip(tr("Show the list of used receiving addresses and labels")); - openAction = new QAction(QApplication::style()->standardIcon(QStyle::SP_FileIcon), tr("Open &URI..."), this); + multisigCreateAction = new QAction(QIcon(":/icons/address-book"), tr("&Multisignature creation..."), this); + multisigCreateAction->setStatusTip(tr("Create a new multisignature address and add it to this wallet")); + multisigSpendAction = new QAction(QIcon(":/icons/send"), tr("&Multisignature spending..."), this); + multisigSpendAction->setStatusTip(tr("Spend from a multisignature address")); + multisigSignAction = new QAction(QIcon(":/icons/editpaste"), tr("&Multisignature signing..."), this); + multisigSignAction->setStatusTip(tr("Sign with a multisignature address")); + + openAction = new QAction(QIcon(":/icons/open"), tr("Open &URI..."), this); openAction->setStatusTip(tr("Open a Ittrium: URI or payment request")); + openBlockExplorerAction = new QAction(QIcon(":/icons/explorer"), tr("&Blockchain explorer"), this); openBlockExplorerAction->setStatusTip(tr("Block explorer window")); - showHelpMessageAction = new QAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation), tr("&Command-line options"), this); + showHelpMessageAction = new QAction(QIcon(":/icons/information"), tr("&Command-line options"), this); showHelpMessageAction->setMenuRole(QAction::NoRole); showHelpMessageAction->setStatusTip(tr("Show the Ittrium Core help message to get a list with possible Ittrium command-line options")); @@ -445,6 +466,9 @@ void BitcoinGUI::createActions(const NetworkStyle* networkStyle) connect(usedReceivingAddressesAction, SIGNAL(triggered()), walletFrame, SLOT(usedReceivingAddresses())); connect(openAction, SIGNAL(triggered()), this, SLOT(openClicked())); connect(multiSendAction, SIGNAL(triggered()), this, SLOT(gotoMultiSendDialog())); + connect(multisigCreateAction, SIGNAL(triggered()), this, SLOT(gotoMultisigCreate())); + connect(multisigSpendAction, SIGNAL(triggered()), this, SLOT(gotoMultisigSpend())); + connect(multisigSignAction, SIGNAL(triggered()), this, SLOT(gotoMultisigSign())); } #endif // ENABLE_WALLET } @@ -470,6 +494,10 @@ void BitcoinGUI::createMenuBar() file->addAction(usedSendingAddressesAction); file->addAction(usedReceivingAddressesAction); file->addSeparator(); + file->addAction(multisigCreateAction); + file->addAction(multisigSpendAction); + file->addAction(multisigSignAction); + file->addSeparator(); } file->addAction(quitAction); @@ -510,7 +538,13 @@ void BitcoinGUI::createToolBars() { if (walletFrame) { QToolBar* toolbar = new QToolBar(tr("Tabs toolbar")); - toolbar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); + toolbar->setObjectName("Main-Toolbar"); // Name for CSS addressing + toolbar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); +// // Add some empty space at the top of the toolbars +// QAction* spacer = new QAction(this); +// toolbar->addAction(spacer); +// toolbar->widgetForAction(spacer)->setObjectName("ToolbarSpacer"); + toolbar->addAction(overviewAction); toolbar->addAction(sendCoinsAction); toolbar->addAction(receiveCoinsAction); @@ -520,6 +554,8 @@ void BitcoinGUI::createToolBars() toolbar->addAction(masternodeAction); } toolbar->setMovable(false); // remove unused icon in upper left corner + toolbar->setOrientation(Qt::Vertical); + toolbar->setIconSize(QSize(40,40)); overviewAction->setChecked(true); /** Create additional container for toolbar and walletFrame and make it the central widget. @@ -530,12 +566,14 @@ void BitcoinGUI::createToolBars() layout->addWidget(walletFrame); layout->setSpacing(0); layout->setContentsMargins(QMargins()); + layout->setDirection(QBoxLayout::LeftToRight); QWidget* containerWidget = new QWidget(); containerWidget->setLayout(layout); setCentralWidget(containerWidget); } } + void BitcoinGUI::setClientModel(ClientModel* clientModel) { this->clientModel = clientModel; @@ -614,6 +652,9 @@ void BitcoinGUI::setWalletActionsEnabled(bool enabled) changePassphraseAction->setEnabled(enabled); signMessageAction->setEnabled(enabled); verifyMessageAction->setEnabled(enabled); + multisigCreateAction->setEnabled(enabled); + multisigSpendAction->setEnabled(enabled); + multisigSignAction->setEnabled(enabled); bip38ToolAction->setEnabled(enabled); usedSendingAddressesAction->setEnabled(enabled); usedReceivingAddressesAction->setEnabled(enabled); @@ -768,6 +809,21 @@ void BitcoinGUI::gotoVerifyMessageTab(QString addr) if (walletFrame) walletFrame->gotoVerifyMessageTab(addr); } +void BitcoinGUI::gotoMultisigCreate() +{ + if(walletFrame) walletFrame->gotoMultisigDialog(0); +} + +void BitcoinGUI::gotoMultisigSpend() +{ + if(walletFrame) walletFrame->gotoMultisigDialog(1); +} + +void BitcoinGUI::gotoMultisigSign() +{ + if(walletFrame) walletFrame->gotoMultisigDialog(2); +} + void BitcoinGUI::gotoBip38Tool() { if (walletFrame) walletFrame->gotoBip38Tool(); @@ -908,7 +964,7 @@ void BitcoinGUI::setNumBlocks(int count) } progressBarLabel->setVisible(true); - progressBar->setFormat(tr("%1 behind").arg(timeBehindText)); + progressBar->setFormat(tr("%1 behind. Scanning block %2").arg(timeBehindText).arg(count)); progressBar->setMaximum(1000000000); progressBar->setValue(clientModel->getVerificationProgress() * 1000000000.0 + 0.5); progressBar->setVisible(true); @@ -1075,18 +1131,46 @@ bool BitcoinGUI::eventFilter(QObject* object, QEvent* event) void BitcoinGUI::setStakingStatus() { - if (pwalletMain) - fMultiSend = pwalletMain->isMultiSendEnabled(); - - if (nLastCoinStakeSearchInterval) { - labelStakingIcon->show(); - labelStakingIcon->setPixmap(QIcon(":/icons/staking_active").pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE)); - labelStakingIcon->setToolTip(tr("Staking is active\n MultiSend: %1").arg(fMultiSend ? tr("Active") : tr("Not Active"))); - } else { - labelStakingIcon->show(); - labelStakingIcon->setPixmap(QIcon(":/icons/staking_inactive").pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE)); - labelStakingIcon->setToolTip(tr("Staking is not active\n MultiSend: %1").arg(fMultiSend ? tr("Active") : tr("Not Active"))); - } + if (pwalletMain) { + fMultiSend = pwalletMain->isMultiSendEnabled(); + labelStakingIcon->show(); + QString tooltip = ""; + tooltip.append("walletunlocked: "); + if (!pwalletMain->IsLocked()) + tooltip.append("true\n"); + else + tooltip.append("false\n"); + tooltip.append("mintablecoins: "); + if (!pwalletMain->MintableCoins()) + tooltip.append("true\n"); + else + tooltip.append("false\n"); + tooltip.append("enoughCoins: "); + if (nReserveBalance <= pwalletMain->GetBalance()) + tooltip.append("true\n"); + else + tooltip.append("false\n"); + tooltip.append("mnsync: "); + if (masternodeSync.IsSynced()) + tooltip.append("true\n"); + else + tooltip.append("false\n"); + tooltip.append("staking status: "); + if (nLastCoinStakeSearchInterval) { + tooltip.append("true\n"); + labelStakingIcon->setPixmap(QIcon(":/icons/staking_active").pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE)); + } + else { + tooltip.append("false\n"); + labelStakingIcon->setPixmap(QIcon(":/icons/staking_inactive").pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE)); + } + tooltip.append("multisend: "); + if (fMultiSend) + tooltip.append("true\n"); + else + tooltip.append("false\n"); + labelStakingIcon->setToolTip(tooltip); + } } #ifdef ENABLE_WALLET @@ -1125,7 +1209,7 @@ void BitcoinGUI::setEncryptionStatus(int status) case WalletModel::UnlockedForAnonymizationOnly: labelEncryptionIcon->show(); labelEncryptionIcon->setPixmap(QIcon(":/icons/lock_open").pixmap(STATUSBAR_ICONSIZE, STATUSBAR_ICONSIZE)); - labelEncryptionIcon->setToolTip(tr("Wallet is encrypted and currently unlocked for anonimization and staking only")); + labelEncryptionIcon->setToolTip(tr("Wallet is encrypted and currently unlocked for anonymization and staking only")); encryptWalletAction->setChecked(true); changePassphraseAction->setEnabled(true); unlockWalletAction->setVisible(true); @@ -1275,7 +1359,11 @@ void UnitDisplayStatusBarControl::setOptionsModel(OptionsModel* optionsModel) /** When Display Units are changed on OptionsModel it will refresh the display text of the control on the status bar */ void UnitDisplayStatusBarControl::updateDisplayUnit(int newUnits) { - setText(BitcoinUnits::name(newUnits)); + if (Params().NetworkID() == CBaseChainParams::MAIN) { + setPixmap(QIcon(":/icons/unit_" + BitcoinUnits::id(newUnits)).pixmap(39, STATUSBAR_ICONSIZE)); + } else { + setPixmap(QIcon(":/icons/unit_t" + BitcoinUnits::id(newUnits)).pixmap(39, STATUSBAR_ICONSIZE)); + } } /** Shows context menu with Display Unit options by the mouse coordinates */ diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h index 3654b16..cafc87f 100755 --- a/src/qt/bitcoingui.h +++ b/src/qt/bitcoingui.h @@ -18,7 +18,6 @@ #include #include #include -#include class ClientModel; class NetworkStyle; @@ -102,6 +101,9 @@ class BitcoinGUI : public QMainWindow QAction* signMessageAction; QAction* verifyMessageAction; QAction* bip38ToolAction; + QAction* multisigCreateAction; + QAction* multisigSpendAction; + QAction* multisigSignAction; QAction* aboutAction; QAction* receiveCoinsAction; QAction* optionsAction; @@ -214,6 +216,11 @@ private slots: /** Show MultiSend Dialog */ void gotoMultiSendDialog(); + /** Show MultiSig Dialog */ + void gotoMultisigCreate(); + void gotoMultisigSpend(); + void gotoMultisigSign(); + /** Show BIP 38 tool - default to Encryption tab */ void gotoBip38Tool(); diff --git a/src/qt/bitcoinunits.cpp b/src/qt/bitcoinunits.cpp index a37eb62..562245c 100755 --- a/src/qt/bitcoinunits.cpp +++ b/src/qt/bitcoinunits.cpp @@ -42,11 +42,11 @@ QString BitcoinUnits::id(int unit) { switch (unit) { case XIT: - return QString("xit"); + return QString("ittrium"); case mXIT: - return QString("mxit"); + return QString("mittrium"); case uXIT: - return QString::fromUtf8("uxit"); + return QString::fromUtf8("uittrium"); default: return QString("???"); } diff --git a/src/qt/blockexplorer.cpp b/src/qt/blockexplorer.cpp index 6c1792c..a0469eb 100755 --- a/src/qt/blockexplorer.cpp +++ b/src/qt/blockexplorer.cpp @@ -14,6 +14,7 @@ #include #include #include +#include "qtmaterialflatbutton.h" extern double GetDifficulty(const CBlockIndex* blockindex = NULL); @@ -175,7 +176,7 @@ const CBlockIndex* getexplorerBlockIndex(int64_t height) std::string getexplorerBlockHash(int64_t Height) { - std::string genesisblockhash = "000003616197a9a9093a9cdda330cb4e0d52c4d7d3585dd985602913d93dfc0a"; + std::string genesisblockhash = "000000fdacddaba54eb66a4c09dc795efbfc75fcd0572c99f489424367bc9ec9"; CBlockIndex* pindexBest = mapBlockIndex[chainActive.Tip()->GetBlockHash()]; if ((Height < 0) || (Height > pindexBest->nHeight)) { return genesisblockhash; @@ -286,8 +287,8 @@ std::string BlockToString(CBlockIndex* pBlock) std::string TxToString(uint256 BlockHash, const CTransaction& tx) { - CAmount Input = 0; - CAmount Output = tx.GetValueOut(); + int64_t Input = 0; + int64_t Output = tx.GetValueOut(); std::string InputsContentCells[] = {_("#"), _("Taken from"), _("Address"), _("Amount")}; std::string InputsContent = makeHTMLTableRow(InputsContentCells, sizeof(InputsContentCells) / sizeof(std::string)); @@ -391,7 +392,7 @@ std::string AddressToString(const CBitcoinAddress& Address) CScript AddressScript; AddressScript.SetDestination(Address.Get()); - CAmount Sum = 0; + int64_t Sum = 0; bool fAddrIndex = false; if (!fAddrIndex) diff --git a/src/qt/clientmodel.cpp b/src/qt/clientmodel.cpp index 4be8a10..e30c7e0 100755 --- a/src/qt/clientmodel.cpp +++ b/src/qt/clientmodel.cpp @@ -9,7 +9,7 @@ #include "guiconstants.h" #include "peertablemodel.h" - +#include "bantablemodel.h" #include "alert.h" #include "chainparams.h" #include "checkpoints.h" @@ -32,12 +32,14 @@ static const int64_t nClientStartupTime = GetTime(); ClientModel::ClientModel(OptionsModel* optionsModel, QObject* parent) : QObject(parent), optionsModel(optionsModel), peerTableModel(0), + banTableModel(0), cachedNumBlocks(0), cachedMasternodeCountString(""), cachedReindexing(0), cachedImporting(0), numBlocksAtStartup(-1), pollTimer(0) { peerTableModel = new PeerTableModel(this); + banTableModel = new BanTableModel(this); pollTimer = new QTimer(this); connect(pollTimer, SIGNAL(timeout()), this, SLOT(updateTimer())); pollTimer->start(MODEL_UPDATE_DELAY); @@ -211,6 +213,11 @@ PeerTableModel* ClientModel::getPeerTableModel() return peerTableModel; } +BanTableModel *ClientModel::getBanTableModel() +{ + return banTableModel; +} + QString ClientModel::formatFullVersion() const { return QString::fromStdString(FormatFullVersion()); @@ -236,6 +243,11 @@ QString ClientModel::formatClientStartupTime() const return QDateTime::fromTime_t(nClientStartupTime).toString(); } +void ClientModel::updateBanlist() +{ + banTableModel->refresh(); +} + // Handlers for core signals static void ShowProgress(ClientModel* clientmodel, const std::string& title, int nProgress) { @@ -260,12 +272,19 @@ static void NotifyAlertChanged(ClientModel* clientmodel, const uint256& hash, Ch Q_ARG(int, status)); } +static void BannedListChanged(ClientModel *clientmodel) +{ + qDebug() << QString("%1: Requesting update for peer banlist").arg(__func__); + QMetaObject::invokeMethod(clientmodel, "updateBanlist", Qt::QueuedConnection); +} + void ClientModel::subscribeToCoreSignals() { // Connect signals to client uiInterface.ShowProgress.connect(boost::bind(ShowProgress, this, _1, _2)); uiInterface.NotifyNumConnectionsChanged.connect(boost::bind(NotifyNumConnectionsChanged, this, _1)); uiInterface.NotifyAlertChanged.connect(boost::bind(NotifyAlertChanged, this, _1, _2)); + uiInterface.BannedListChanged.connect(boost::bind(BannedListChanged, this)); } void ClientModel::unsubscribeFromCoreSignals() diff --git a/src/qt/clientmodel.h b/src/qt/clientmodel.h index 92e5ebb..c99d748 100755 --- a/src/qt/clientmodel.h +++ b/src/qt/clientmodel.h @@ -11,6 +11,7 @@ #include class AddressTableModel; +class BanTableModel; class OptionsModel; class PeerTableModel; class TransactionTableModel; @@ -47,6 +48,7 @@ class ClientModel : public QObject OptionsModel* getOptionsModel(); PeerTableModel* getPeerTableModel(); + BanTableModel *getBanTableModel(); //! Return number of connections, default is in- and outbound (total) int getNumConnections(unsigned int flags = CONNECTIONS_ALL) const; @@ -76,6 +78,7 @@ class ClientModel : public QObject private: OptionsModel* optionsModel; PeerTableModel* peerTableModel; + BanTableModel *banTableModel; int cachedNumBlocks; QString cachedMasternodeCountString; @@ -108,6 +111,7 @@ public slots: void updateMnTimer(); void updateNumConnections(int numConnections); void updateAlert(const QString& hash, int status); + void updateBanlist(); }; #endif // BITCOIN_QT_CLIENTMODEL_H diff --git a/src/qt/coincontroldialog.cpp b/src/qt/coincontroldialog.cpp index 8d71110..588dbd7 100755 --- a/src/qt/coincontroldialog.cpp +++ b/src/qt/coincontroldialog.cpp @@ -19,13 +19,14 @@ #include "main.h" #include "obfuscation.h" #include "wallet.h" +#include "multisigdialog.h" +#include "qtmaterialflatbutton.h" #include // for 'map_list_of()' #include #include #include -#include #include #include #include @@ -38,11 +39,13 @@ QList CoinControlDialog::payAmounts; int CoinControlDialog::nSplitBlockDummy; CCoinControl* CoinControlDialog::coinControl = new CCoinControl(); -CoinControlDialog::CoinControlDialog(QWidget* parent) : QDialog(parent), - ui(new Ui::CoinControlDialog), - model(0) +CoinControlDialog::CoinControlDialog(QWidget* parent, bool fMultisigEnabled) : QDialog(parent), + ui(new Ui::CoinControlDialog), + model(0) { ui->setupUi(this); + this->fMultisigEnabled = fMultisigEnabled; + /* Open CSS when configured */ this->setStyleSheet(GUIUtil::loadStyleSheet()); @@ -118,7 +121,7 @@ CoinControlDialog::CoinControlDialog(QWidget* parent) : QDialog(parent), connect(ui->treeWidget->header(), SIGNAL(sectionClicked(int)), this, SLOT(headerSectionClicked(int))); // ok button - connect(ui->buttonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(buttonBoxClicked(QAbstractButton*))); + connect(ui->selectButton, SIGNAL(clicked()), this, SLOT(selectButtonClicked())); // (un)select all connect(ui->pushButtonSelectAll, SIGNAL(clicked()), this, SLOT(buttonSelectAllClicked())); @@ -173,6 +176,7 @@ void CoinControlDialog::setModel(WalletModel* model) updateView(); updateLabelLocked(); CoinControlDialog::updateLabels(model, this); + updateDialogLabels(); } } @@ -186,10 +190,9 @@ QString CoinControlDialog::strPad(QString s, int nPadLength, QString sPadding) } // ok button -void CoinControlDialog::buttonBoxClicked(QAbstractButton* button) +void CoinControlDialog::selectButtonClicked() { - if (ui->buttonBox->buttonRole(button) == QDialogButtonBox::AcceptRole) - done(QDialog::Accepted); // closes the dialog + this->close(); // closes the dialog } // (un)select all @@ -210,6 +213,7 @@ void CoinControlDialog::buttonSelectAllClicked() if (state == Qt::Unchecked) coinControl->UnSelectAll(); // just to be sure CoinControlDialog::updateLabels(model, this); + updateDialogLabels(); } // Toggle lock state @@ -221,6 +225,10 @@ void CoinControlDialog::buttonToggleLockClicked() ui->treeWidget->setEnabled(false); for (int i = 0; i < ui->treeWidget->topLevelItemCount(); i++) { item = ui->treeWidget->topLevelItem(i); + + if (item->text(COLUMN_TYPE) == "MultiSig") + continue; + COutPoint outpt(uint256(item->text(COLUMN_TXHASH).toStdString()), item->text(COLUMN_VOUT_INDEX).toUInt()); if (model->isLockedCoin(uint256(item->text(COLUMN_TXHASH).toStdString()), item->text(COLUMN_VOUT_INDEX).toUInt())) { model->unlockCoin(outpt); @@ -235,6 +243,7 @@ void CoinControlDialog::buttonToggleLockClicked() } ui->treeWidget->setEnabled(true); CoinControlDialog::updateLabels(model, this); + updateDialogLabels(); } else { QMessageBox msgBox; msgBox.setObjectName("lockMessageBox"); @@ -442,8 +451,10 @@ void CoinControlDialog::viewItemChanged(QTreeWidgetItem* item, int column) } // selection changed -> update labels - if (ui->treeWidget->isEnabled()) // do not update on every click for (un)select all + if (ui->treeWidget->isEnabled()){ // do not update on every click for (un)select all CoinControlDialog::updateLabels(model, this); + updateDialogLabels(); + } } // todo: this is a temporary qt5 fix: when clicking a parent node in tree mode, the parent node // including all childs are partially selected. But the parent node should be fully selected @@ -497,6 +508,42 @@ void CoinControlDialog::updateLabelLocked() ui->labelLocked->setVisible(false); } +void CoinControlDialog::updateDialogLabels() +{ + + if (this->parentWidget() == nullptr) { + CoinControlDialog::updateLabels(model, this); + return; + } + + vector vCoinControl; + vector vOutputs; + coinControl->ListSelected(vCoinControl); + model->getOutputs(vCoinControl, vOutputs); + + CAmount nAmount = 0; + unsigned int nQuantity = 0; + for (const COutput& out : vOutputs) { + // unselect already spent, very unlikely scenario, this could happen + // when selected are spent elsewhere, like rpc or another computer + uint256 txhash = out.tx->GetHash(); + COutPoint outpt(txhash, out.i); + if(model->isSpent(outpt)) { + coinControl->UnSelect(outpt); + continue; + } + + // Quantity + nQuantity++; + + // Amount + nAmount += out.tx->vout[out.i].nValue; + } + MultisigDialog* multisigDialog = (MultisigDialog*)this->parentWidget(); + + multisigDialog->updateCoinControl(nAmount, nQuantity); +} + void CoinControlDialog::updateLabels(WalletModel* model, QDialog* dialog) { if (!model) @@ -679,7 +726,7 @@ void CoinControlDialog::updateLabels(WalletModel* model, QDialog* dialog) dFeeVary = (double)std::max(CWallet::minTxFee.GetFeePerK(), payTxFee.GetFeePerK()) / 1000; else dFeeVary = (double)std::max(CWallet::minTxFee.GetFeePerK(), mempool.estimateFee(nTxConfirmTarget).GetFeePerK()) / 1000; - QString toolTip4 = tr("Can vary +/- %1 uxit per input.").arg(dFeeVary); + QString toolTip4 = tr("Can vary +/- %1 duff(s) per input.").arg(dFeeVary); l3->setToolTip(toolTip4); l4->setToolTip(toolTip4); @@ -747,7 +794,14 @@ void CoinControlDialog::updateView() double dPrioritySum = 0; int nChildren = 0; int nInputSum = 0; - BOOST_FOREACH (const COutput& out, coins.second) { + for(const COutput& out: coins.second) { + isminetype mine = pwalletMain->IsMine(out.tx->vout[out.i]); + bool fMultiSigUTXO = (mine & ISMINE_MULTISIG); + // when multisig is enabled, it will only display outputs from multisig addresses + if (fMultisigEnabled && !fMultiSigUTXO) + continue; + + int nInputSize = 0; nSum += out.tx->vout[out.i].nValue; nChildren++; @@ -760,6 +814,21 @@ void CoinControlDialog::updateView() itemOutput->setFlags(flgCheckbox); itemOutput->setCheckState(COLUMN_CHECKBOX, Qt::Unchecked); + //MultiSig + if (fMultiSigUTXO) { + itemOutput->setText(COLUMN_TYPE, "MultiSig"); + + if (!fMultisigEnabled) { + COutPoint outpt(out.tx->GetHash(), out.i); + coinControl->UnSelect(outpt); // just to be sure + itemOutput->setDisabled(true); + itemOutput->setIcon(COLUMN_CHECKBOX, QIcon(":/icons/lock_closed")); + } + } else { + itemOutput->setText(COLUMN_TYPE, "Personal"); + } + + // address CTxDestination outputAddress; QString sAddress = ""; diff --git a/src/qt/coincontroldialog.h b/src/qt/coincontroldialog.h index 4b973ea..98f8639 100755 --- a/src/qt/coincontroldialog.h +++ b/src/qt/coincontroldialog.h @@ -18,6 +18,7 @@ class WalletModel; +class MultisigDialog; class CCoinControl; class CTxMemPool; @@ -31,10 +32,12 @@ class CoinControlDialog : public QDialog Q_OBJECT public: - explicit CoinControlDialog(QWidget* parent = 0); + explicit CoinControlDialog(QWidget* parent = nullptr, bool fMultisigEnabled = false); ~CoinControlDialog(); void setModel(WalletModel* model); + void updateDialogLabels(); + // static because also called from sendcoinsdialog static void updateLabels(WalletModel*, QDialog*); @@ -49,6 +52,7 @@ class CoinControlDialog : public QDialog WalletModel* model; int sortColumn; Qt::SortOrder sortOrder; + bool fMultisigEnabled; QMenu* contextMenu; QTreeWidgetItem* contextMenuItem; @@ -65,6 +69,7 @@ class CoinControlDialog : public QDialog COLUMN_AMOUNT, COLUMN_LABEL, COLUMN_ADDRESS, + COLUMN_TYPE, COLUMN_OBFUSCATION_ROUNDS, COLUMN_DATE, COLUMN_CONFIRMATIONS, @@ -118,7 +123,7 @@ private slots: void radioListMode(bool); void viewItemChanged(QTreeWidgetItem*, int); void headerSectionClicked(int); - void buttonBoxClicked(QAbstractButton*); + void selectButtonClicked(); void buttonSelectAllClicked(); void buttonToggleLockClicked(); void updateLabelLocked(); diff --git a/src/qt/forms/addressbookpage.ui b/src/qt/forms/addressbookpage.ui index 43250ea..9049340 100755 --- a/src/qt/forms/addressbookpage.ui +++ b/src/qt/forms/addressbookpage.ui @@ -89,52 +89,52 @@ - + Create a new address - - &New + + New - + :/icons/add:/icons/add - + false - + Copy the currently selected address to the system clipboard - - &Copy + + Copy - + :/icons/editcopy:/icons/editcopy - + false - + Delete the currently selected address from the list - - &Delete + + Delete - + :/icons/remove:/icons/remove - + false @@ -153,34 +153,34 @@ - + Export the data in the current tab to a file - - &Export + + Export - + :/icons/export:/icons/export - + false - + 0 0 - - C&lose + + Close - + false @@ -189,6 +189,13 @@ + + + QtMaterialFlatButton + QWidget +

PhaseBlock HeightRewardProof of Stake (27%)Masternodes (73%)
Phase 10-3001650 XITnana
Phase 11650,001-1,800,0006 XIT1.62 XIT4.38 XIT
Phase 121,800,000-7,868,6333 XIT0.81 XIT2.19 XIT