diff --git a/Makefile.am b/Makefile.am index ee7a1e797..f47a60017 100644 --- a/Makefile.am +++ b/Makefile.am @@ -169,7 +169,7 @@ check-local: @qa/pull-tester/run-bitcoind-for-test.sh $(JAVA) -jar $(JAVA_COMPARISON_TOOL) qa/tmp/compTool $(COMPARISON_TOOL_REORG_TESTS) endif -EXTRA_DIST = $(top_srcdir)/share/genbuild.sh qa/pull-tester/pull-tester.sh $(DIST_DOCS) $(WINDOWS_PACKAGING) $(OSX_PACKAGING) +EXTRA_DIST = $(top_srcdir)/share/genbuild.sh qa/pull-tester/pull-tester.sh qa/rpc-tests $(DIST_DOCS) $(WINDOWS_PACKAGING) $(OSX_PACKAGING) CLEANFILES = $(OSX_DMG) $(OSX_APP) $(BITCOIN_WIN_INSTALLER) diff --git a/README.md b/README.md index 07cd26cd2..cb959c800 100644 --- a/README.md +++ b/README.md @@ -87,3 +87,15 @@ RPC 22555 P2P 22556 ![](http://dogesay.com/wow//////such/coin) + +Translations +------------ + +Changes to translations as well as new translations can be submitted to +[Bitcoin Core's Transifex page](https://www.transifex.com/projects/p/bitcoin/). + +Periodically the translations are pulled from Transifex and merged into the git repository. See the +[translation process](doc/translation_process.md) for details on how this works. + +If the changes are Dogecoin specific, they can be submitted as pull request against this repository. +If it is a general translation, consider submitting it through upstream, as we will pull these changes later on. diff --git a/configure.ac b/configure.ac index a263d2c6f..34cc691e1 100644 --- a/configure.ac +++ b/configure.ac @@ -108,6 +108,12 @@ AC_ARG_ENABLE([lcov], [use_lcov=yes], [use_lcov=no]) +AC_ARG_ENABLE([glibc-back-compat], + [AS_HELP_STRING([--enable-glibc-back-compat], + [enable backwards compatibility with glibc and libstdc++])], + [use_glibc_compat=$enableval], + [use_glibc_compat=no]) + AC_ARG_WITH([protoc-bindir],[AS_HELP_STRING([--with-protoc-bindir=BIN_DIR],[specify protoc bin path])], [protoc_bin_path=$withval], []) @@ -319,6 +325,21 @@ fi AX_CHECK_LINK_FLAG([[-Wl,--large-address-aware]], [LDFLAGS="$LDFLAGS -Wl,--large-address-aware"]) +if test x$use_glibc_compat != xno; then + + #__fdelt_chk's params and return type have changed from long unsigned int to long int. + # See which one is present here. + AC_MSG_CHECKING(__fdelt_chk type) + AC_TRY_COMPILE([#define __USE_FORTIFY_LEVEL 2 + #include + extern "C" long unsigned int __fdelt_warn(long unsigned int);],[], + [ fdelt_type="long unsigned int"], + [ fdelt_type="long int"]) + AC_MSG_RESULT($fdelt_type) + AC_DEFINE_UNQUOTED(FDELT_TYPE, $fdelt_type,[parameter and return value type for __fdelt_chk]) + +fi + if test x$use_hardening != xno; then AX_CHECK_COMPILE_FLAG([-Wstack-protector],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -Wstack-protector"]) AX_CHECK_COMPILE_FLAG([-fstack-protector-all],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -fstack-protector-all"]) @@ -691,6 +712,7 @@ AM_CONDITIONAL([USE_QRCODE], [test x$use_qr = xyes]) AM_CONDITIONAL([USE_LCOV],[test x$use_lcov == xyes]) AM_CONDITIONAL([USE_COMPARISON_TOOL],[test x$use_comparison_tool != xno]) AM_CONDITIONAL([USE_COMPARISON_TOOL_REORG_TESTS],[test x$use_comparison_tool_reorg_test != xno]) +AM_CONDITIONAL([GLIBC_BACK_COMPAT],[test x$use_glibc_compat = xyes]) AC_DEFINE(CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MAJOR, [Major version]) AC_DEFINE(CLIENT_VERSION_MINOR, _CLIENT_VERSION_MINOR, [Minor version]) diff --git a/contrib/README.md b/contrib/README.md index cd0dd3b02..92d0a343d 100644 --- a/contrib/README.md +++ b/contrib/README.md @@ -1,24 +1,38 @@ -Python Tools +Wallet Tools --------------------- ### [BitRPC](/contrib/bitrpc) ### Allows for sending of all standard Bitcoin commands via RPC rather than as command line args. -### [PyMiner](/contrib/pyminer) ### - -This is a 'getwork' CPU mining client for Bitcoin. It is pure-python, and therefore very, very slow. The purpose is to provide a reference implementation of a miner, for study. - ### [SpendFrom](/contrib/spendfrom) ### Use the raw transactions API to send coins received on a particular address (or addresses). -### WalletTools -Removed. Please see [/contrib/bitrpc](/contrib/bitrpc). - Repository Tools --------------------- +### [Developer tools](/contrib/devtools) ### +Specific tools for developers working on this repository. +Contains the script `github-merge.sh` for merging github pull requests securely and signing them using GPG. + +### [Linearize](/contrib/linearize) ### +Construct a linear, no-fork, best version of the blockchain. + +### [PyMiner](/contrib/pyminer) ### + +This is a 'getwork' CPU mining client for Bitcoin. It is pure-python, and therefore very, very slow. The purpose is to provide a reference implementation of a miner, for study. + +### [Qos](/contrib/qos) ### + +A Linux bash script that will set up tc to limit the outgoing bandwidth for connections to the Bitcoin network. This means one can have an always-on bitcoind instance running, and another local bitcoind/bitcoin-qt instance which connects to this node and receives blocks from it. + +### [Seeds](/contrib/seeds) ### +Utility to generate the pnSeed[] array that is compiled into the client. + +Build Tools and Keys +--------------------- + ### [Debian](/contrib/debian) ### Contains files used to package bitcoind/bitcoin-qt for Debian-based Linux systems. If you compile bitcoind/bitcoin-qt yourself, there are some useful files here. @@ -29,18 +43,11 @@ Gavin's notes on getting gitian builds up and running using KVM. ### [Gitian-downloader](/contrib/gitian-downloader) Various PGP files of core developers. -### [Linearize](/contrib/linearize) ### -Construct a linear, no-fork, best version of the blockchain. - ### [MacDeploy](/contrib/macdeploy) ### Scripts and notes for Mac builds. -### [Qos](/contrib/qos) ### - -A Linux bash script that will set up tc to limit the outgoing bandwidth for connections to the Bitcoin network. This means one can have an always-on bitcoind instance running, and another local bitcoind/bitcoin-qt instance which connects to this node and receives blocks from it. - -### [Seeds](/contrib/seeds) ### -Utility to generate the pnSeed[] array that is compiled into the client. +Test and Verify Tools +--------------------- ### [TestGen](/contrib/testgen) ### Utilities to generate test vectors for the data-driven Bitcoin tests. @@ -51,8 +58,3 @@ tests each pull and when master is tested using jenkins. ### [Verify SF Binaries](/contrib/verifysfbinaries) ### This script attempts to download and verify the signature file SHA256SUMS.asc from SourceForge. - -### [Developer tools](/contrib/devtools) ### -Specific tools for developers working on this repository. -Contains the script `github-merge.sh` for merging github pull requests securely and signing them using GPG. - diff --git a/contrib/bitrpc/bitrpc.py b/contrib/bitrpc/bitrpc.py index b02b29917..b2b4e2952 100644 --- a/contrib/bitrpc/bitrpc.py +++ b/contrib/bitrpc/bitrpc.py @@ -1,6 +1,7 @@ from jsonrpc import ServiceProxy import sys import string +import getpass # ===== BEGIN USER SETTINGS ===== # if you do not set these you will be prompted for a password for every command @@ -301,24 +302,24 @@ elif cmd == "validateaddress": print "\n---An error occurred---\n" elif cmd == "walletpassphrase": - try: - pwd = raw_input("Enter wallet passphrase: ") - access.walletpassphrase(pwd, 60) - print "\n---Wallet unlocked---\n" - except: - print "\n---An error occurred---\n" + try: + pwd = getpass.getpass(prompt="Enter wallet passphrase: ") + access.walletpassphrase(pwd, 60) + print "\n---Wallet unlocked---\n" + except: + print "\n---An error occurred---\n" elif cmd == "walletpassphrasechange": - try: - pwd = raw_input("Enter old wallet passphrase: ") - pwd2 = raw_input("Enter new wallet passphrase: ") - access.walletpassphrasechange(pwd, pwd2) - print - print "\n---Passphrase changed---\n" - except: - print - print "\n---An error occurred---\n" - print + try: + pwd = getpass.getpass(prompt="Enter old wallet passphrase: ") + pwd2 = getpass.getpass(prompt="Enter new wallet passphrase: ") + access.walletpassphrasechange(pwd, pwd2) + print + print "\n---Passphrase changed---\n" + except: + print + print "\n---An error occurred---\n" + print else: print "Command not found or not supported" \ No newline at end of file diff --git a/contrib/gitian-descriptors/deps-linux.yml b/contrib/gitian-descriptors/deps-linux.yml index 61a8f23a5..515d08c17 100644 --- a/contrib/gitian-descriptors/deps-linux.yml +++ b/contrib/gitian-descriptors/deps-linux.yml @@ -17,7 +17,7 @@ reference_datetime: "2013-06-01 00:00:00" remotes: [] files: - "openssl-1.0.1g.tar.gz" -- "miniupnpc-1.8.tar.gz" +- "miniupnpc-1.9.tar.gz" - "qrencode-3.4.3.tar.bz2" - "protobuf-2.5.0.tar.bz2" - "db-5.1.29.NC.tar.gz" @@ -31,7 +31,7 @@ script: | export LIBRARY_PATH="$STAGING/lib" # Integrity Check echo "53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028 openssl-1.0.1g.tar.gz" | sha256sum -c - echo "bc5f73c7b0056252c1888a80e6075787a1e1e9112b808f863a245483ff79859c miniupnpc-1.8.tar.gz" | sha256sum -c + echo "2923e453e880bb949e3d4da9f83dd3cb6f08946d35de0b864d0339cf70934464 miniupnpc-1.9.tar.gz" | sha256sum -c echo "dfd71487513c871bad485806bfd1fdb304dedc84d2b01a8fb8e0940b50597a98 qrencode-3.4.3.tar.bz2" | sha256sum -c echo "13bfc5ae543cf3aa180ac2485c0bc89495e3ae711fc6fab4f8ffe90dfb4bb677 protobuf-2.5.0.tar.bz2" | sha256sum -c echo "08238e59736d1aacdd47cfb8e68684c695516c37f4fbe1b8267dde58dc3a576c db-5.1.29.NC.tar.gz" | sha256sum -c @@ -46,8 +46,8 @@ script: | make install_sw cd .. # - tar xzfm miniupnpc-1.8.tar.gz - cd miniupnpc-1.8 + tar xzfm miniupnpc-1.9.tar.gz + cd miniupnpc-1.9 # miniupnpc is always built with -fPIC INSTALLPREFIX=$STAGING make $MAKEOPTS install rm -f $STAGING/lib/libminiupnpc.so* # no way to skip shared lib build @@ -95,4 +95,4 @@ script: | done # cd $STAGING - find include lib bin host | sort | zip -X@ $OUTDIR/dogecoin-deps-linux${GBUILD_BITS}-gitian-r4.zip + find include lib bin host | sort | zip -X@ $OUTDIR/dogecoin-deps-linux${GBUILD_BITS}-gitian-r5.zip diff --git a/contrib/gitian-descriptors/deps-win.yml b/contrib/gitian-descriptors/deps-win.yml index a3aa8e2f5..af267c99a 100644 --- a/contrib/gitian-descriptors/deps-win.yml +++ b/contrib/gitian-descriptors/deps-win.yml @@ -16,7 +16,7 @@ remotes: [] files: - "openssl-1.0.1g.tar.gz" - "db-5.1.29.NC.tar.gz" -- "miniupnpc-1.8.tar.gz" +- "miniupnpc-1.9.tar.gz" - "zlib-1.2.8.tar.gz" - "libpng-1.6.8.tar.gz" - "qrencode-3.4.3.tar.bz2" @@ -30,7 +30,7 @@ script: | # Input Integrity Check echo "53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028 openssl-1.0.1g.tar.gz" | sha256sum -c echo "08238e59736d1aacdd47cfb8e68684c695516c37f4fbe1b8267dde58dc3a576c db-5.1.29.NC.tar.gz" | sha256sum -c - echo "bc5f73c7b0056252c1888a80e6075787a1e1e9112b808f863a245483ff79859c miniupnpc-1.8.tar.gz" | sha256sum -c + echo "2923e453e880bb949e3d4da9f83dd3cb6f08946d35de0b864d0339cf70934464 miniupnpc-1.9.tar.gz" | sha256sum -c echo "36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d zlib-1.2.8.tar.gz" | sha256sum -c echo "32c7acf1608b9c8b71b743b9780adb7a7b347563dbfb4a5263761056da44cc96 libpng-1.6.8.tar.gz" | sha256sum -c echo "dfd71487513c871bad485806bfd1fdb304dedc84d2b01a8fb8e0940b50597a98 qrencode-3.4.3.tar.bz2" | sha256sum -c @@ -69,11 +69,11 @@ script: | make install_lib install_include cd ../.. # - tar xzf $INDIR/miniupnpc-1.8.tar.gz - cd miniupnpc-1.8 + tar xzf $INDIR/miniupnpc-1.9.tar.gz + cd miniupnpc-1.9 echo " - --- miniupnpc-1.8/Makefile.mingw.orig 2013-09-29 18:52:51.014087958 -1000 - +++ miniupnpc-1.8/Makefile.mingw 2013-09-29 19:09:29.663318691 -1000 + --- miniupnpc-1.9/Makefile.mingw.orig 2013-09-29 18:52:51.014087958 -1000 + +++ miniupnpc-1.9/Makefile.mingw 2013-09-29 19:09:29.663318691 -1000 @@ -67,8 +67,8 @@ wingenminiupnpcstrings.o: wingenminiupnpcstrings.c @@ -126,5 +126,5 @@ script: | done # cd $INSTALLPREFIX - find include lib | sort | zip -X@ $OUTDIR/dogecoin-deps-win$BITS-gitian-r11.zip + find include lib | sort | zip -X@ $OUTDIR/dogecoin-deps-win$BITS-gitian-r12.zip done # for BITS in diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml index 3bdef293f..0a149e55a 100644 --- a/contrib/gitian-descriptors/gitian-linux.yml +++ b/contrib/gitian-descriptors/gitian-linux.yml @@ -21,8 +21,8 @@ remotes: - "url": "https://github.com/dogecoin/dogecoin.git" "dir": "dogecoin" files: -- "dogecoin-deps-linux32-gitian-r4.zip" -- "dogecoin-deps-linux64-gitian-r4.zip" +- "dogecoin-deps-linux32-gitian-r5.zip" +- "dogecoin-deps-linux64-gitian-r5.zip" - "boost-linux32-1.55.0-gitian-r1.zip" - "boost-linux64-1.55.0-gitian-r1.zip" script: | @@ -36,12 +36,12 @@ script: | # mkdir -p $STAGING cd $STAGING - unzip ../build/dogecoin-deps-linux${GBUILD_BITS}-gitian-r4.zip + unzip ../build/dogecoin-deps-linux${GBUILD_BITS}-gitian-r5.zip unzip ../build/boost-linux${GBUILD_BITS}-1.55.0-gitian-r1.zip cd ../build function do_configure { - ./configure "$@" --enable-upnp-default --prefix=$STAGING --with-protoc-bindir=$STAGING/host/bin --with-boost=$STAGING --disable-maintainer-mode --disable-dependency-tracking PKG_CONFIG_PATH="$STAGING/lib/pkgconfig" CPPFLAGS="-I$STAGING/include ${OPTFLAGS}" LDFLAGS="-L$STAGING/lib ${OPTFLAGS}" CXXFLAGS="-frandom-seed=dogecoin ${OPTFLAGS}" BOOST_CHRONO_EXTRALIBS="-lrt" + ./configure "$@" --enable-upnp-default --prefix=$STAGING --with-protoc-bindir=$STAGING/host/bin --with-boost=$STAGING --disable-maintainer-mode --disable-dependency-tracking PKG_CONFIG_PATH="$STAGING/lib/pkgconfig" CPPFLAGS="-I$STAGING/include ${OPTFLAGS}" LDFLAGS="-L$STAGING/lib ${OPTFLAGS}" CXXFLAGS="-frandom-seed=dogecoin ${OPTFLAGS}" BOOST_CHRONO_EXTRALIBS="-lrt" --enable-glibc-back-compat } # cd dogecoin @@ -60,19 +60,6 @@ script: | make $MAKEOPTS install-strip make $MAKEOPTS clean - # Build fully static versions of dogecoind and dogecoin-cli for older Linux distros - STATIC_BINDIR="$HOME/bindir.static" - mkdir -p $STATIC_BINDIR - # For 32-bit, -pie cannot be used with -static, as invalid executables are generated - # For 64-bit, -pie with -static causes a link error - # Disable hardening in configure and manually pass 'static-safe' hardening flags - OPTFLAGS='-O2 -static -Wstack-protector -fstack-protector-all -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,-z,now' - do_configure --bindir=$STATIC_BINDIR --disable-tests --enable-upnp-default --without-gui --disable-hardening - make $MAKEOPTS - make $MAKEOPTS install-strip - cp $STATIC_BINDIR/dogecoind $BINDIR/dogecoin.static - cp $STATIC_BINDIR/dogecoin-cli $BINDIR/dogecoin-cli.static - # sort distribution tar file and normalize user/group/mtime information for deterministic output mkdir -p $OUTDIR/src rm -rf $TEMPDIR diff --git a/contrib/gitian-descriptors/gitian-win.yml b/contrib/gitian-descriptors/gitian-win.yml index dab0a00d4..7d00d1a04 100644 --- a/contrib/gitian-descriptors/gitian-win.yml +++ b/contrib/gitian-descriptors/gitian-win.yml @@ -26,8 +26,8 @@ files: - "qt-win64-5.2.0-gitian-r3.zip" - "boost-win32-1.55.0-gitian-r6.zip" - "boost-win64-1.55.0-gitian-r6.zip" -- "dogecoin-deps-win32-gitian-r11.zip" -- "dogecoin-deps-win64-gitian-r11.zip" +- "dogecoin-deps-win32-gitian-r12.zip" +- "dogecoin-deps-win64-gitian-r12.zip" - "protobuf-win32-2.5.0-gitian-r4.zip" - "protobuf-win64-2.5.0-gitian-r4.zip" script: | @@ -61,7 +61,7 @@ script: | cd $STAGING unzip $INDIR/qt-win${BITS}-5.2.0-gitian-r3.zip unzip $INDIR/boost-win${BITS}-1.55.0-gitian-r6.zip - unzip $INDIR/dogecoin-deps-win${BITS}-gitian-r11.zip + unzip $INDIR/dogecoin-deps-win${BITS}-gitian-r12.zip unzip $INDIR/protobuf-win${BITS}-2.5.0-gitian-r4.zip if [ "$NEEDDIST" == "1" ]; then # Make source code archive which is architecture independent so it only needs to be done once diff --git a/contrib/gitian-descriptors/qt-win.yml b/contrib/gitian-descriptors/qt-win.yml index 34ad51ac8..9dbe90259 100644 --- a/contrib/gitian-descriptors/qt-win.yml +++ b/contrib/gitian-descriptors/qt-win.yml @@ -15,8 +15,8 @@ reference_datetime: "2011-01-30 00:00:00" remotes: [] files: - "qt-everywhere-opensource-src-5.2.0.tar.gz" -- "dogecoin-deps-win32-gitian-r11.zip" -- "dogecoin-deps-win64-gitian-r11.zip" +- "dogecoin-deps-win32-gitian-r12.zip" +- "dogecoin-deps-win64-gitian-r12.zip" script: | # Defines export TZ=UTC @@ -48,7 +48,7 @@ script: | # # Need mingw-compiled openssl from dogecoin-deps: cd $DEPSDIR - unzip $INDIR/dogecoin-deps-win${BITS}-gitian-r11.zip + unzip $INDIR/dogecoin-deps-win${BITS}-gitian-r12.zip # cd $BUILDDIR # diff --git a/doc/Doxyfile b/doc/Doxyfile index 6f9f470b5..0312e697b 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -34,7 +34,7 @@ PROJECT_NAME = Dogecoin # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 1.7.0 +PROJECT_NUMBER = 1.7.2 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer @@ -683,7 +683,7 @@ RECURSIVE = YES # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. -EXCLUDE = +EXCLUDE = src/leveldb src/json src/test /src/qt/test # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded @@ -705,7 +705,7 @@ EXCLUDE_PATTERNS = # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test -EXCLUDE_SYMBOLS = +EXCLUDE_SYMBOLS = boost google # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see @@ -1577,7 +1577,7 @@ HIDE_UNDOC_RELATIONS = YES # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) -HAVE_DOT = NO +HAVE_DOT = YES # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is # allowed to run in parallel. When set to 0 (the default) doxygen will @@ -1659,7 +1659,7 @@ INCLUDED_BY_GRAPH = YES # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. -CALL_GRAPH = NO +CALL_GRAPH = YES # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function @@ -1667,7 +1667,7 @@ CALL_GRAPH = NO # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. -CALLER_GRAPH = NO +CALLER_GRAPH = YES # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will generate a graphical hierarchy of all classes instead of a textual one. @@ -1685,7 +1685,7 @@ DIRECTORY_GRAPH = YES # generated by dot. Possible values are svg, png, jpg, or gif. # If left blank png will be used. -DOT_IMAGE_FORMAT = png +DOT_IMAGE_FORMAT = svg # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. diff --git a/doc/README_windows.txt b/doc/README_windows.txt index 5775a38ea..5d25cd03e 100644 --- a/doc/README_windows.txt +++ b/doc/README_windows.txt @@ -1,6 +1,8 @@ -Dogecoin 0.9.0rc1 BETA +Dogecoin 1.7.2 ALPHA -Copyright (c) 2009-2014 Bitcoin Core Developers +* Copyright (c) 2009-2014 Bitcoin Developers +* Copyright (c) 2011-2013 Litecoin Developers +* Copyright (c) 2013-2014 Dogecoin Developers Distributed under the MIT/X11 software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/doc/build-osx.md b/doc/build-osx.md index fb64882e1..659ac9750 100644 --- a/doc/build-osx.md +++ b/doc/build-osx.md @@ -86,7 +86,9 @@ If not, you can ensure that the Homebrew OpenSSL is correctly linked by running brew link openssl --force -Rerunning "openssl version" should now return the correct version. +Rerunning "openssl version" should now return the correct version. If it +doesn't, make sure `/usr/local/bin` comes before `/usr/bin` in your +PATH. ### Building `dogecoind` diff --git a/doc/build-unix.md b/doc/build-unix.md index 6bc562973..5e3292423 100644 --- a/doc/build-unix.md +++ b/doc/build-unix.md @@ -42,15 +42,14 @@ Licenses of statically linked libraries: Boost MIT-like license miniupnpc New (3-clause) BSD license -- Versions used in this release: -- GCC 4.3.3 -- OpenSSL 1.0.1c -- Berkeley DB 5.1.29.NC -- Boost 1.55 -- miniupnpc 1.6 -- qt 4.8.3 -- protobuf 2.5.0 -- libqrencode 3.2.0 +- For the versions used in this release, see doc/release-process.md under *Fetch and build inputs*. + +System requirements +-------------------- + +C++ compilers are memory-hungry. It is recommended to have at least 1 GB of +memory available when compiling Dogecoin Core. With 512MB of memory or less +compilation will take much longer due to swap thrashing. Dependency Build Instructions: Ubuntu & Debian ---------------------------------------------- diff --git a/doc/coding.md b/doc/coding.md index 4cffb4608..58cd27627 100644 --- a/doc/coding.md +++ b/doc/coding.md @@ -43,8 +43,61 @@ Common types: set set or multiset bn CBigNum -------------------------- +Doxygen comments +----------------- + +To facilitate the generation of documentation, use doxygen-compatible comment blocks for functions, methods and fields. + +For example, to describe a function use: +```c++ +/** + * ... text ... + * @param[in] arg1 A description + * @param[in] arg2 Another argument description + * @pre Precondition for function... + */ +bool function(int arg1, const char *arg2) +``` +A complete list of `@xxx` commands can be found at http://www.stack.nl/~dimitri/doxygen/manual/commands.html. +As Doxygen recognizes the comments by the delimiters (`/**` and `*/` in this case), you don't +*need* to provide any commands for a comment to be valid, just a description text is fine. + +To describe a class use the same construct above the class definition: +```c++ +/** + * Alerts are for notifying old versions if they become too obsolete and + * need to upgrade. The message is displayed in the status bar. + * @see GetWarnings() + */ +class CAlert +{ +``` + +To describe a member or variable use: +```c++ +int var; //!< Detailed description after the member +``` + +Also OK: +```c++ +/// +/// ... text ... +/// +bool function2(int arg1, const char *arg2) +``` + +Not OK (used plenty in the current source, but not picked up): +```c++ +// +// ... text ... +// +``` + +A full list of comment syntaxes picked up by doxygen can be found at http://www.stack.nl/~dimitri/doxygen/manual/docblocks.html, +but if possible use one of the above styles. + Locking/mutex usage notes +------------------------- The code is multi-threaded, and uses mutexes and the LOCK/TRY_LOCK macros to protect data structures. @@ -60,8 +113,8 @@ between the various components is a goal, with any necessary locking done by the components (e.g. see the self-contained CKeyStore class and its cs_KeyStore lock for example). -------- Threads +------- - ThreadScriptCheck : Verifies block scripts. diff --git a/doc/gitian-building.md b/doc/gitian-building.md new file mode 100644 index 000000000..f6c27800a --- /dev/null +++ b/doc/gitian-building.md @@ -0,0 +1,423 @@ +Gitian building +================ + +*Setup instructions for a gitian build of Dogecoin using a Debian VM or physical system.* + +Gitian is the deterministic build process that is used to build the Dogecoin +Core executables [1]. It provides a way to be reasonably sure that the +executables are really built from source on github. It also makes sure that +the same, tested dependencies are used and statically built into the executable. + +Multiple developers build the source code by following a specific descriptor +("recipe"), cryptographically sign the result, and upload the resulting signature. +These results are compared and only if they match, the build is accepted and uploaded +to dogecoin.com. + +More independent gitian builders are needed, which is why I wrote this +guide. It is preferred to follow these steps yourself instead of using someone else's +VM image to avoid 'contaminating' the build. + +[1] For all platforms except for MacOSX, at this point. Work for deterministic +builds for Mac is under way here: https://github.com/theuni/osx-cross-depends . + +Table of Contents +------------------ + +- [Create a new VirtualBox VM](#create-a-new-virtualbox-vm) +- [Connecting to the VM](#connecting-to-the-vm) +- [Setting up Debian for gitian building](#setting-up-debian-for-gitian-building) +- [Installing gitian](#installing-gitian) +- [Setting up gitian images](#setting-up-gitian-images) +- [Getting and building the inputs](#getting-and-building-the-inputs) +- [Building Dogecoin](#building-dogecoin) +- [Building an alternative repository](#building-an-alternative-repository) +- [Signing externally](#signing-externally) +- [Uploading signatures](#uploading-signatures) + +Create a new VirtualBox VM +--------------------------- + +The first step is to create a new Virtual Machine, which will be explained in +this section. This VM will be used to do the Gitian builds. In this guide it +will be explained how to set up the environment, and how to get the builds +started. + +Debian Linux was chosen as the host distribution because it has a lightweight install (in +contrast to Ubuntu) and is readily available. We here show the steps for +VirtualBox [1], but any kind of virtualization can be used. You can also install +on actual hardware instead of using a VM, in this case you can skip this section. + +In the VirtualBox GUI click "Create" and choose the following parameters in the wizard: + +![](gitian-building/create_vm_page1.png) + +- Type: Linux, Debian (64 bit) + +![](gitian-building/create_vm_memsize.png) + +- Memory Size: at least 1024MB, anything lower will really slow the build down + +![](gitian-building/create_vm_hard_drive.png) + +- Hard Drive: Create a virtual hard drive now + +![](gitian-building/create_vm_hard_drive_file_type.png) + +- Hard Drive file type: Use the default, VDI (VirtualBox Disk Image) + +![](gitian-building/create_vm_storage_physical_hard_drive.png) + +- Storage on Physical hard drive: Dynamically Allocated + +![](gitian-building/create_vm_file_location_size.png) + +- Disk size: at least 40GB; as low as 20GB *may* be possible, but better to err on the safe side +- Push the `Create` button + +Get the [Debian 7.4 net installer](http://cdimage.debian.org/debian-cd/7.4.0/amd64/iso-cd/debian-7.4.0-amd64-netinst.iso). +This DVD image can be validated using a SHA256 hashing tool, for example on +Unixy OSes by entering the following in a terminal: + + echo "b712a141bc60269db217d3b3e456179bd6b181645f90e4aac9c42ed63de492e9 /home/orion/Downloads/debian-7.4.0-amd64-netinst.iso" | sha256sum -c + # (must return OK) + +After creating the VM, we need to configure it. + +- Click the `Settings` button, then go to the `Network` tab. Adapter 1 should be attacked to `NAT`. + +![](gitian-building/network_settings.png) + +- Click `Advanced`, then `Port Forwarding`. We want to set up a port through where we can reach the VM to get files in and out. +- Create a new rule by clicking the plus icon. + +![](gitian-building/port_forwarding_rules.png) + +- Set up the new rule the following way: + - Name: `SSH` + - Protocol: `TCP` + - Leave Host IP empty + - Host Port: `22222` + - Leave Guest IP empty + - Guest Port: `22` + +- Click `Ok` twice to save. + +Then start the VM. On the first launch you will be asked for a CD or DVD image. Choose the downloaded iso. + +![](gitian-building/select_startup_disk.png) + +[1] https://www.virtualbox.org/ + +Installing Debian +------------------ + +In this section it will be explained how to install Debian on the newly created VM. + +- Choose the non-graphical installer. We do not need the graphical environment, it will only increase installation time and disk usage. + +![](gitian-building/debian_install_1_boot_menu.png) + +**Note**: Navigation in the Debian installer: To keep a setting at the default +and proceed, just press `Enter`. To select a different button, press `Tab`. + +- Choose locale and keyboard settings (doesn't matter, you can just go with the defaults or select your own information) + +![](gitian-building/debian_install_2_select_a_language.png) +![](gitian-building/debian_install_3_select_location.png) +![](gitian-building/debian_install_4_configure_keyboard.png) + +- The VM will detect network settings using DHCP, this should all proceed automatically +- Configure the network: + - System name `debian`. + - Leave domain name empty. + +![](gitian-building/debian_install_5_configure_the_network.png) + +- Choose a root password and enter it twice (and remember it for later) + +![](gitian-building/debian_install_6a_set_up_root_password.png) + +- Name the new user `debian` (the full name doesn't matter, you can leave it empty) + +![](gitian-building/debian_install_7_set_up_user_fullname.png) +![](gitian-building/debian_install_8_set_up_username.png) + +- Choose a user password and enter it twice (and remember it for later) + +![](gitian-building/debian_install_9_user_password.png) + +- The installer will set up the clock using a time server, this process should be automatic +- Set up the clock: choose a time zone (depends on the locale settings that you picked earlier; specifics don't matter) + +![](gitian-building/debian_install_10_configure_clock.png) + +- Disk setup + - Partitioning method: Guided - Use the entire disk + +![](gitian-building/debian_install_11_partition_disks.png) + + - Select disk to partition: SCSI1 (0,0,0) + +![](gitian-building/debian_install_12_choose_disk.png) + + - Partitioning scheme: All files in one partition + +![](gitian-building/debian_install_13_partition_scheme.png) + + - Finish partitioning and write changes to disk -> *Yes* (`Tab`, `Enter` to select the `Yes` button) + +![](gitian-building/debian_install_14_finish.png) +![](gitian-building/debian_install_15_write_changes.png) + +- The base system will be installed, this will take a minute or so +- Choose a mirror (any will do) + +![](gitian-building/debian_install_16_choose_a_mirror.png) + +- Enter proxy information (unless you are on an intranet, you can leave this empty) + +![](gitian-building/debian_install_18_proxy_settings.png) + +- Wait a bit while 'Select and install software' runs +- Participate in popularity contest -> *No* +- Choose software to install. We need just the base system. + +![](gitian-building/debian_install_19_software_selection.png) + +- Make sure only 'SSH server' and 'Standard System Utilities' are checked +- Uncheck 'Debian Desktop Environment' and 'Print Server' + +![](gitian-building/debian_install_20_install_grub.png) + +- Install the GRUB boot loader to the master boot record? -> Yes + +![](gitian-building/debian_install_21_finish_installation.png) + +- Installation Complete -> *Continue* +- After installation, the VM will reboot and you will have a working Debian VM. Congratulations! + +Connecting to the VM +---------------------- + +After the VM has booted you can connect to it using SSH, and files can be copied from and to the VM using a SFTP utility. +Connect to `localhost`, port `22222` (or the port configured when installing the VM). +On Windows you can use putty[1] and WinSCP[2]. + +For example to connect as `root` from a Linux command prompt use + + $ ssh root@localhost -p 22222 + The authenticity of host '[localhost]:22222 ([127.0.0.1]:22222)' can't be established. + ECDSA key fingerprint is 8e:71:f9:5b:62:46:de:44:01:da:fb:5f:34:b5:f2:18. + Are you sure you want to continue connecting (yes/no)? yes + Warning: Permanently added '[localhost]:22222' (ECDSA) to the list of known hosts. + root@localhost's password: (enter root password configured during install) + Linux debian 3.2.0-4-amd64 #1 SMP Debian 3.2.54-2 x86_64 + root@debian:~# + +Replace `root` with `debian` to log in as user. + +[1] http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html +[2] http://winscp.net/eng/index.php + +Setting up Debian for gitian building +-------------------------------------- + +In this section we will be setting up the Debian installation for Gitian building. + +First we need to log in as `root` to set up dependencies and make sure that our +user can use the sudo command. Type/paste the following in the terminal: + + +```bash +apt-get install git ruby sudo apt-cacher-ng qemu-utils debootstrap lxc python-cheetah parted kpartx bridge-utils +adduser debian sudo +``` + +When you get a colorful screen with a question about the 'LXC directory', just +go with the default (`/var/lib/lxc`). + +Then set up LXC and the rest with the following is a complex jumble of settings and workarounds: + +```bash +# the version of lxc-start in Debian 7.4 needs to run as root, so make sure +# that the build script can exectute it without providing a password +echo "%sudo ALL=NOPASSWD: /usr/bin/lxc-start" > /etc/sudoers.d/gitian-lxc +# add cgroup for LXC +echo "cgroup /sys/fs/cgroup cgroup defaults 0 0" >> /etc/fstab +# make /etc/rc.local script that sets up bridge between guest and host +echo '#!/bin/sh -e' > /etc/rc.local +echo 'brctl addbr br0' >> /etc/rc.local +echo 'ifconfig br0 10.0.3.2/24 up' >> /etc/rc.local +echo 'exit 0' >> /etc/rc.local +# make sure that USE_LXC is always set when logging in as debian +echo 'export USE_LXC=1' >> /home/debian/.profile +reboot +``` + +At the end the VM is rebooted to make sure that the changes take effect. + +**Note**: If you're following this guide on a physical system instead of a VirtualBox VM you could use `10.0.2.2` instead +of `10.0.3.2` in the above `ifconfig` line. This avoids having to patch gitian-builder in next section. + +Installing gitian +------------------ + +Re-login as the user `debian` that was created during installation. +The rest of the steps in this guide will be performed as that user. + +There is no `python-vm-builder` package in Debian, so we need to install it from source ourselves, + +```bash +wget http://archive.ubuntu.com/ubuntu/pool/universe/v/vm-builder/vm-builder_0.12.4+bzr489.orig.tar.gz +echo "ec12e0070a007989561bfee5862c89a32c301992dd2771c4d5078ef1b3014f03 vm-builder_0.12.4+bzr489.orig.tar.gz" | sha256sum -c +# (verification -- must return OK) +tar -zxvf vm-builder_0.12.4+bzr489.orig.tar.gz +cd vm-builder-0.12.4+bzr489 +sudo python setup.py install +cd .. +``` + +**Note**: When sudo asks for a password, enter the password for the user *debian* not for *root*. + +Clone the git repositories for dogecoin and gitian, + +```bash +git clone https://github.com/devrandom/gitian-builder.git +git clone https://github.com/dogecoin/dogecoin +``` + +We need to change the guest IP range for the gitian builder because otherwise it will +collide with VirtualBox its NAT IP range. Gitian does not have a way yet to configure +this, so we need to patch the IPs using `sed`. This is not nice but it will +have to do for now... (a [pull request +(#52)](https://github.com/devrandom/gitian-builder/pull/52) to make this +configurable without patching has been submitted): + +```bash +sed -i 's/10.0.2.2/10.0.3.2/g' gitian-builder/target-bin/bootstrap-fixup +sed -i 's/10.0.2.5/10.0.3.5/g' gitian-builder/etc/lxc.config.in +``` + +*note* After you update the gitian-builder repository, you may need to repeat these manual changes. + +Setting up gitian images +------------------------- + +Gitian needs virtual images of the operating system to build in. +Currently this is Ubuntu Precise for both x86 architectures. +These images will be copied and used every time that a build is started to +make sure that the build is deterministic. +Creating the images will take a while, but only has to be done once. + +Execute the following as user `debian`: + +```bash +cd gitian-builder +bin/make-base-vm --lxc --arch i386 --suite precise +bin/make-base-vm --lxc --arch amd64 --suite precise +``` + +There will be a lot of warnings printed during build of the images. These can be ignored. + +**Note**: When sudo asks for a password, enter the password for the user *debian* not for *root*. + +Getting and building the inputs +-------------------------------- + +In [doc/release-process.md](release-process.md) in the dogecoin repository under 'Fetch and build inputs'. +you will find a list of `wget` commands that can be executed to get the dependencies. + +I needed to add `--no-check-certificate` to the OpenSSL wget line to make it work. +Likely this is because the ca-certificates in Debian 7.4 is fairly old. This does not create a +security issue as the gitian descriptors check integrity of the input archives and refuse to work +if any one is corrupted. + +After downloading the archives, execute the `gbuild` commends to build the dependencies. +This can take a long time, but only has to be done when the dependencies change, for example +to upgrade the used version. + +**Note**: Do not forget to copy the result from `build/out` to `inputs` after every gbuild command! This will save +you a lot of time. + +At any time you can check the package installation and build progress with + +```bash +tail -f var/install.log +tail -f var/build.log +``` + +Building Dogecoin +---------------- + +To build Dogecoin (for Linux and/or Windows) just follow the steps under 'perform +gitian builds' in [doc/release-process.md](release-process.md) in the dogecoin repository. + +Output from `gbuild` will look something like + + Initialized empty Git repository in /home/debian/gitian-builder/inputs/dogecoin/.git/ + remote: Reusing existing pack: 35606, done. + remote: Total 35606 (delta 0), reused 0 (delta 0) + Receiving objects: 100% (35606/35606), 26.52 MiB | 4.28 MiB/s, done. + Resolving deltas: 100% (25724/25724), done. + From https://github.com/dogecoin/dogecoin + ... (new tags, new branch etc) + --- Building for precise i386 --- + Stopping target if it is up + Making a new image copy + stdin: is not a tty + Starting target + Checking if target is up + Preparing build environment + Updating apt-get repository (log in var/install.log) + Installing additional packages (log in var/install.log) + Grabbing package manifest + stdin: is not a tty + Creating build script (var/build-script) + lxc-start: Connection refused - inotify event with no name (mask 32768) + Running build script (log in var/build.log) + +As when building the dependencies, the progress of package installation and building +can be inspected in `var/install.log` and `var/build.log`. + +Building an alternative repository +----------------------------------- + +If you want to do a test build of a pull on github it can be useful to point +the gitian builder at an alternative repository, using the same descriptors +and inputs. + +For example: +```bash +URL=https://github.com/langerhans/dogecoin.git +COMMIT=2014_03_windows_unicode_path +./bin/gbuild --commit dogecoin=${COMMIT} --url dogecoin=${URL} ../dogecoin/contrib/gitian-descriptors/gitian-linux.yml +./bin/gbuild --commit dogecoin=${COMMIT} --url dogecoin=${URL} ../dogecoin/contrib/gitian-descriptors/gitian-win.yml +``` + +Signing externally +------------------- + +If you want to do the PGP signing on another device that's possible too; just define `SIGNER` as mentioned +and follow the steps in the build process as normally. + + gpg: skipped "laanwj": secret key not available + +When you execute `gsign` you will get an error from GPG, which can be ignored. Copy the resulting `.assert` files +in `gitian.sigs` to your signing machine and do + +```bash + gpg --detach-sign ${VERSION}/${SIGNER}/dogecoin-build.assert + gpg --detach-sign ${VERSION}-win/${SIGNER}/dogecoin-build.assert +``` + +This will create the `.sig` files that can be committed together with the `.assert` files to assert your +gitian build. + +Uploading signatures +--------------------- + +After building and signing you can push your signatures (both the `.assert` and +`.assert.sig` files) to the +[dogecoin/gitian.sigs](https://github.com/dogecoin/gitian.sigs/) repository, or +if not possible create a pull request. + diff --git a/doc/gitian-building/create_vm_file_location_size.png b/doc/gitian-building/create_vm_file_location_size.png new file mode 100644 index 000000000..14aef5aba Binary files /dev/null and b/doc/gitian-building/create_vm_file_location_size.png differ diff --git a/doc/gitian-building/create_vm_hard_drive.png b/doc/gitian-building/create_vm_hard_drive.png new file mode 100644 index 000000000..a1706e14f Binary files /dev/null and b/doc/gitian-building/create_vm_hard_drive.png differ diff --git a/doc/gitian-building/create_vm_hard_drive_file_type.png b/doc/gitian-building/create_vm_hard_drive_file_type.png new file mode 100644 index 000000000..251b8ee3e Binary files /dev/null and b/doc/gitian-building/create_vm_hard_drive_file_type.png differ diff --git a/doc/gitian-building/create_vm_memsize.png b/doc/gitian-building/create_vm_memsize.png new file mode 100644 index 000000000..33717867a Binary files /dev/null and b/doc/gitian-building/create_vm_memsize.png differ diff --git a/doc/gitian-building/create_vm_page1.png b/doc/gitian-building/create_vm_page1.png new file mode 100644 index 000000000..edaebc622 Binary files /dev/null and b/doc/gitian-building/create_vm_page1.png differ diff --git a/doc/gitian-building/create_vm_storage_physical_hard_drive.png b/doc/gitian-building/create_vm_storage_physical_hard_drive.png new file mode 100644 index 000000000..987efaa40 Binary files /dev/null and b/doc/gitian-building/create_vm_storage_physical_hard_drive.png differ diff --git a/doc/gitian-building/debian_install_10_configure_clock.png b/doc/gitian-building/debian_install_10_configure_clock.png new file mode 100644 index 000000000..467c79018 Binary files /dev/null and b/doc/gitian-building/debian_install_10_configure_clock.png differ diff --git a/doc/gitian-building/debian_install_11_partition_disks.png b/doc/gitian-building/debian_install_11_partition_disks.png new file mode 100644 index 000000000..18110734d Binary files /dev/null and b/doc/gitian-building/debian_install_11_partition_disks.png differ diff --git a/doc/gitian-building/debian_install_12_choose_disk.png b/doc/gitian-building/debian_install_12_choose_disk.png new file mode 100644 index 000000000..a00d4abf1 Binary files /dev/null and b/doc/gitian-building/debian_install_12_choose_disk.png differ diff --git a/doc/gitian-building/debian_install_13_partition_scheme.png b/doc/gitian-building/debian_install_13_partition_scheme.png new file mode 100644 index 000000000..2f80f19b6 Binary files /dev/null and b/doc/gitian-building/debian_install_13_partition_scheme.png differ diff --git a/doc/gitian-building/debian_install_14_finish.png b/doc/gitian-building/debian_install_14_finish.png new file mode 100644 index 000000000..411d457e9 Binary files /dev/null and b/doc/gitian-building/debian_install_14_finish.png differ diff --git a/doc/gitian-building/debian_install_15_write_changes.png b/doc/gitian-building/debian_install_15_write_changes.png new file mode 100644 index 000000000..f26093982 Binary files /dev/null and b/doc/gitian-building/debian_install_15_write_changes.png differ diff --git a/doc/gitian-building/debian_install_16_choose_a_mirror.png b/doc/gitian-building/debian_install_16_choose_a_mirror.png new file mode 100644 index 000000000..d2c2e9523 Binary files /dev/null and b/doc/gitian-building/debian_install_16_choose_a_mirror.png differ diff --git a/doc/gitian-building/debian_install_17_choose_a_mirror2.png b/doc/gitian-building/debian_install_17_choose_a_mirror2.png new file mode 100644 index 000000000..cef2db078 Binary files /dev/null and b/doc/gitian-building/debian_install_17_choose_a_mirror2.png differ diff --git a/doc/gitian-building/debian_install_18_proxy_settings.png b/doc/gitian-building/debian_install_18_proxy_settings.png new file mode 100644 index 000000000..24ba25c10 Binary files /dev/null and b/doc/gitian-building/debian_install_18_proxy_settings.png differ diff --git a/doc/gitian-building/debian_install_19_software_selection.png b/doc/gitian-building/debian_install_19_software_selection.png new file mode 100644 index 000000000..d462757af Binary files /dev/null and b/doc/gitian-building/debian_install_19_software_selection.png differ diff --git a/doc/gitian-building/debian_install_1_boot_menu.png b/doc/gitian-building/debian_install_1_boot_menu.png new file mode 100644 index 000000000..27fd849b4 Binary files /dev/null and b/doc/gitian-building/debian_install_1_boot_menu.png differ diff --git a/doc/gitian-building/debian_install_20_install_grub.png b/doc/gitian-building/debian_install_20_install_grub.png new file mode 100644 index 000000000..de4f9be0c Binary files /dev/null and b/doc/gitian-building/debian_install_20_install_grub.png differ diff --git a/doc/gitian-building/debian_install_21_finish_installation.png b/doc/gitian-building/debian_install_21_finish_installation.png new file mode 100644 index 000000000..b967c3550 Binary files /dev/null and b/doc/gitian-building/debian_install_21_finish_installation.png differ diff --git a/doc/gitian-building/debian_install_2_select_a_language.png b/doc/gitian-building/debian_install_2_select_a_language.png new file mode 100644 index 000000000..1c9e0bcfc Binary files /dev/null and b/doc/gitian-building/debian_install_2_select_a_language.png differ diff --git a/doc/gitian-building/debian_install_3_select_location.png b/doc/gitian-building/debian_install_3_select_location.png new file mode 100644 index 000000000..005c39565 Binary files /dev/null and b/doc/gitian-building/debian_install_3_select_location.png differ diff --git a/doc/gitian-building/debian_install_4_configure_keyboard.png b/doc/gitian-building/debian_install_4_configure_keyboard.png new file mode 100644 index 000000000..580c8af7c Binary files /dev/null and b/doc/gitian-building/debian_install_4_configure_keyboard.png differ diff --git a/doc/gitian-building/debian_install_5_configure_the_network.png b/doc/gitian-building/debian_install_5_configure_the_network.png new file mode 100644 index 000000000..a7fdffc66 Binary files /dev/null and b/doc/gitian-building/debian_install_5_configure_the_network.png differ diff --git a/doc/gitian-building/debian_install_6_domain_name.png b/doc/gitian-building/debian_install_6_domain_name.png new file mode 100644 index 000000000..7a986d92f Binary files /dev/null and b/doc/gitian-building/debian_install_6_domain_name.png differ diff --git a/doc/gitian-building/debian_install_6a_set_up_root_password.png b/doc/gitian-building/debian_install_6a_set_up_root_password.png new file mode 100644 index 000000000..31bd210f3 Binary files /dev/null and b/doc/gitian-building/debian_install_6a_set_up_root_password.png differ diff --git a/doc/gitian-building/debian_install_7_set_up_user_fullname.png b/doc/gitian-building/debian_install_7_set_up_user_fullname.png new file mode 100644 index 000000000..bffc6ccd7 Binary files /dev/null and b/doc/gitian-building/debian_install_7_set_up_user_fullname.png differ diff --git a/doc/gitian-building/debian_install_8_set_up_username.png b/doc/gitian-building/debian_install_8_set_up_username.png new file mode 100644 index 000000000..9e2750ad4 Binary files /dev/null and b/doc/gitian-building/debian_install_8_set_up_username.png differ diff --git a/doc/gitian-building/debian_install_9_user_password.png b/doc/gitian-building/debian_install_9_user_password.png new file mode 100644 index 000000000..a26d30cba Binary files /dev/null and b/doc/gitian-building/debian_install_9_user_password.png differ diff --git a/doc/gitian-building/network_settings.png b/doc/gitian-building/network_settings.png new file mode 100644 index 000000000..1d9b6428a Binary files /dev/null and b/doc/gitian-building/network_settings.png differ diff --git a/doc/gitian-building/port_forwarding_rules.png b/doc/gitian-building/port_forwarding_rules.png new file mode 100644 index 000000000..e45c9efff Binary files /dev/null and b/doc/gitian-building/port_forwarding_rules.png differ diff --git a/doc/gitian-building/select_startup_disk.png b/doc/gitian-building/select_startup_disk.png new file mode 100644 index 000000000..729b368fd Binary files /dev/null and b/doc/gitian-building/select_startup_disk.png differ diff --git a/doc/release-process.md b/doc/release-process.md index bbdcfaaed..2d356f856 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -8,8 +8,6 @@ Release Process ###update (commit) version in sources - - dogecoin-qt.pro contrib/verifysfbinaries/verify.sh doc/README* share/setup.nsi @@ -39,7 +37,7 @@ Release Process Fetch and build inputs: (first time, or when dependency versions change) mkdir -p inputs; cd inputs/ - wget 'http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.8.tar.gz' -O miniupnpc-1.8.tar.gz + wget 'http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.9.tar.gz' -O miniupnpc-1.9.tar.gz wget 'https://www.openssl.org/source/openssl-1.0.1g.tar.gz' wget 'http://download.oracle.com/berkeley-db/db-5.1.29.NC.tar.gz' wget 'http://zlib.net/zlib-1.2.8.tar.gz' @@ -64,6 +62,21 @@ Release Process ./bin/gbuild ../dogecoin/contrib/gitian-descriptors/protobuf-win.yml mv build/out/protobuf-*.zip inputs/ + The expected SHA256 hashes of the intermediate inputs are: + + 2bde8b4711c763f6a51449ce814d51553650d88603eda0f85a1a2e95e97d83d0 dogecoin-deps-linux32-gitian-r5.zip + f88ca2b78e660622d58ea6cfb524427d6eedb82313124d8b80a48a8211a82dbb dogecoin-deps-linux64-gitian-r5.zip + f29b7d9577417333fb56e023c2977f5726a7c297f320b175a4108cf7cd4c2d29 boost-linux32-1.55.0-gitian-r1.zip + 88232451c4104f7eb16e469ac6474fd1231bd485687253f7b2bdf46c0781d535 boost-linux64-1.55.0-gitian-r1.zip + 60dc2d3b61e9c7d5dbe2f90d5955772ad748a47918ff2d8b74e8db9b1b91c909 boost-win32-1.55.0-gitian-r6.zip + f65fcaf346bc7b73bc8db3a8614f4f6bee2f61fcbe495e9881133a7c2612a167 boost-win64-1.55.0-gitian-r6.zip + b16bc26125f824f38e42b5f76c1134ccd10c1497238943d5e445d10f2d88733f dogecoin-deps-win32-gitian-r12.zip + 701bcb0938f86f8a3a2c2f26e7d680ad1678ade57b2cbae20888cddde4539acf dogecoin-deps-win64-gitian-r12.zip + 963e3e5e85879010a91143c90a711a5d1d5aba992e38672cdf7b54e42c56b2f1 qt-win32-5.2.0-gitian-r3.zip + 751c579830d173ef3e6f194e83d18b92ebef6df03289db13ab77a52b6bc86ef0 qt-win64-5.2.0-gitian-r3.zip + e2e403e1a08869c7eed4d4293bce13d51ec6a63592918b90ae215a0eceb44cb4 protobuf-win32-2.5.0-gitian-r4.zip + a0999037e8b0ef9ade13efd88fee261ba401f5ca910068b7e0cd3262ba667db0 protobuf-win64-2.5.0-gitian-r4.zip + Build dogecoind and dogecoin-qt on Linux32, Linux64, and Win32: ./bin/gbuild --commit dogecoin=v${VERSION} ../dogecoin/contrib/gitian-descriptors/gitian-linux.yml diff --git a/qa/pull-tester/build-tests.sh.in b/qa/pull-tester/build-tests.sh.in index e7db72111..ebf377a48 100755 --- a/qa/pull-tester/build-tests.sh.in +++ b/qa/pull-tester/build-tests.sh.in @@ -74,6 +74,9 @@ make check # Run RPC integration test on Linux: @abs_top_srcdir@/qa/rpc-tests/wallet.sh @abs_top_srcdir@/linux-build/src +@abs_top_srcdir@/qa/rpc-tests/listtransactions.py --srcdir @abs_top_srcdir@/linux-build/src +# Clean up cache/ directory that the python regression tests create +rm -rf cache if [ $RUN_EXPENSIVE_TESTS = 1 ]; then # Run unit tests and blockchain-tester on Windows: diff --git a/qa/rpc-tests/util.py b/qa/rpc-tests/util.py index fa0700f1c..1d0896a3f 100644 --- a/qa/rpc-tests/util.py +++ b/qa/rpc-tests/util.py @@ -65,6 +65,7 @@ def initialize_chain(test_dir): """ if not os.path.isdir(os.path.join("cache", "node0")): + devnull = open("/dev/null", "w+") # Create cache directories, run bitcoinds: for i in range(4): datadir = os.path.join("cache", "node"+str(i)) @@ -79,9 +80,9 @@ def initialize_chain(test_dir): if i > 0: args.append("-connect=127.0.0.1:"+str(START_P2P_PORT)) bitcoind_processes.append(subprocess.Popen(args)) - subprocess.check_output([ "bitcoin-cli", "-datadir="+datadir, - "-rpcwait", "getblockcount"]) - + subprocess.check_call([ "bitcoin-cli", "-datadir="+datadir, + "-rpcwait", "getblockcount"], stdout=devnull) + devnull.close() rpcs = [] for i in range(4): try: @@ -113,12 +114,14 @@ def initialize_chain(test_dir): def start_nodes(num_nodes, dir): # Start bitcoinds, and wait for RPC interface to be up and running: + devnull = open("/dev/null", "w+") for i in range(num_nodes): datadir = os.path.join(dir, "node"+str(i)) args = [ "bitcoind", "-datadir="+datadir ] bitcoind_processes.append(subprocess.Popen(args)) - subprocess.check_output([ "bitcoin-cli", "-datadir="+datadir, - "-rpcwait", "getblockcount"]) + subprocess.check_call([ "bitcoin-cli", "-datadir="+datadir, + "-rpcwait", "getblockcount"], stdout=devnull) + devnull.close() # Create&return JSON-RPC connections rpc_connections = [] for i in range(num_nodes): diff --git a/share/genbuild.sh b/share/genbuild.sh index afa4b4ccb..6890a6eba 100755 --- a/share/genbuild.sh +++ b/share/genbuild.sh @@ -14,13 +14,21 @@ else fi DESC="" +SUFFIX="" LAST_COMMIT_DATE="" if [ -e "$(which git)" -a -d ".git" ]; then # clean 'dirty' status of touched files that haven't been modified git diff >/dev/null 2>/dev/null - # get a string like "v0.6.0-66-g59887e8-dirty" - DESC="$(git describe --dirty 2>/dev/null)" + # if latest commit is tagged and not dirty, then override using the tag name + RAWDESC=$(git describe --abbrev=0 2>/dev/null) + if [ "$(git rev-parse HEAD)" = "$(git rev-list -1 $RAWDESC)" ]; then + git diff-index --quiet HEAD -- && DESC=$RAWDESC + fi + + # otherwise generate suffix from git, i.e. string like "59887e8-dirty" + SUFFIX=$(git rev-parse --short HEAD) + git diff-index --quiet HEAD -- || SUFFIX="$SUFFIX-dirty" # get a string like "2012-04-10 16:27:19 +0200" LAST_COMMIT_DATE="$(git log -n 1 --format="%ci")" @@ -28,6 +36,8 @@ fi if [ -n "$DESC" ]; then NEWINFO="#define BUILD_DESC \"$DESC\"" +elif [ -n "$SUFFIX" ]; then + NEWINFO="#define BUILD_SUFFIX $SUFFIX" else NEWINFO="// No build information available" fi diff --git a/src/Makefile.am b/src/Makefile.am index 748286e27..03e267408 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -142,6 +142,11 @@ libbitcoin_common_a_SOURCES = \ version.cpp \ $(BITCOIN_CORE_H) +if GLIBC_BACK_COMPAT +libbitcoin_common_a_SOURCES += compat/glibc_compat.cpp +libbitcoin_common_a_SOURCES += compat/glibcxx_compat.cpp +endif + libbitcoin_cli_a_SOURCES = \ rpcclient.cpp \ $(BITCOIN_CORE_H) diff --git a/src/base58.h b/src/base58.h index ebe537682..5cd58b242 100644 --- a/src/base58.h +++ b/src/base58.h @@ -27,17 +27,20 @@ #include #include +/* All alphanumeric characters except for "0", "I", "O", and "l" */ static const char* pszBase58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"; -// Encode a byte sequence as a base58-encoded string +/** + * Encode a byte sequence as a base58-encoded string + */ inline std::string EncodeBase58(const unsigned char* pbegin, const unsigned char* pend) { CAutoBN_CTX pctx; CBigNum bn58 = 58; CBigNum bn0 = 0; - // Convert big endian data to little endian - // Extra zero at the end make sure bignum will interpret as a positive number + // Convert big endian data to little endian - the extra zero at the end will + // ensure bignum interprets it as a positive number */ std::vector vchTmp(pend-pbegin+1, 0); reverse_copy(pbegin, pend, vchTmp.begin()); @@ -47,8 +50,8 @@ inline std::string EncodeBase58(const unsigned char* pbegin, const unsigned char // Convert bignum to std::string std::string str; - // Expected size increase from base58 conversion is approximately 137% - // use 138% to be safe + // The expected size increase from base58 conversion is approximately 137%, + // but use 138% to be safe str.reserve((pend - pbegin) * 138 / 100 + 1); CBigNum dv; CBigNum rem; @@ -70,14 +73,18 @@ inline std::string EncodeBase58(const unsigned char* pbegin, const unsigned char return str; } -// Encode a byte vector as a base58-encoded string +/** + * Encode a byte vector as a base58-encoded string + */ inline std::string EncodeBase58(const std::vector& vch) { return EncodeBase58(&vch[0], &vch[0] + vch.size()); } -// Decode a base58-encoded string psz into byte vector vchRet -// returns true if decoding is successful +/** + * Decode a base58-encoded string (psz) into a byte vector (vchRet) + * return true if decoding is successful + */ inline bool DecodeBase58(const char* psz, std::vector& vchRet) { CAutoBN_CTX pctx; @@ -109,7 +116,7 @@ inline bool DecodeBase58(const char* psz, std::vector& vchRet) // Get bignum as little endian data std::vector vchTmp = bn.getvch(); - // Trim off sign byte if present + // Trim off the sign byte if present if (vchTmp.size() >= 2 && vchTmp.end()[-1] == 0 && vchTmp.end()[-2] >= 0x80) vchTmp.erase(vchTmp.end()-1); @@ -124,17 +131,18 @@ inline bool DecodeBase58(const char* psz, std::vector& vchRet) return true; } -// Decode a base58-encoded string str into byte vector vchRet -// returns true if decoding is successful +/** + * Decode a base58-encoded string (str) into a byte vector (vchRet) + * return true if decoding is successful + */ inline bool DecodeBase58(const std::string& str, std::vector& vchRet) { return DecodeBase58(str.c_str(), vchRet); } - - - -// Encode a byte vector to a base58-encoded string, including checksum +/** + * Encode a byte vector into a base58-encoded string, including checksum + */ inline std::string EncodeBase58Check(const std::vector& vchIn) { // add 4-byte hash check to the end @@ -144,8 +152,10 @@ inline std::string EncodeBase58Check(const std::vector& vchIn) return EncodeBase58(vch); } -// Decode a base58-encoded string psz that includes a checksum, into byte vector vchRet -// returns true if decoding is successful +/** + * Decode a base58-encoded string (psz) that includes a checksum into a byte + * vector (vchRet), return true if decoding is successful + */ inline bool DecodeBase58Check(const char* psz, std::vector& vchRet) { if (!DecodeBase58(psz, vchRet)) @@ -155,6 +165,7 @@ inline bool DecodeBase58Check(const char* psz, std::vector& vchRe vchRet.clear(); return false; } + // re-calculate the checksum, insure it matches the included 4-byte checksum uint256 hash = Hash(vchRet.begin(), vchRet.end()-4); if (memcmp(&hash, &vchRet.end()[-4], 4) != 0) { @@ -165,18 +176,18 @@ inline bool DecodeBase58Check(const char* psz, std::vector& vchRe return true; } -// Decode a base58-encoded string str that includes a checksum, into byte vector vchRet -// returns true if decoding is successful +/** + * Decode a base58-encoded string (str) that includes a checksum into a byte + * vector (vchRet), return true if decoding is successful + */ inline bool DecodeBase58Check(const std::string& str, std::vector& vchRet) { return DecodeBase58Check(str.c_str(), vchRet); } - - - - -/** Base class for all base58-encoded data */ +/** + * Base class for all base58-encoded data + */ class CBase58Data { protected: @@ -347,7 +358,9 @@ bool inline CBitcoinAddressVisitor::operator()(const CKeyID &id) const { bool inline CBitcoinAddressVisitor::operator()(const CScriptID &id) const { return addr->Set(id); } bool inline CBitcoinAddressVisitor::operator()(const CNoDestination &id) const { return false; } -/** A base58-encoded secret key */ +/** + * A base58-encoded secret key + */ class CBitcoinSecret : public CBase58Data { public: @@ -393,7 +406,6 @@ public: } }; - template class CBitcoinExtKeyBase : public CBase58Data { public: diff --git a/src/checkpoints.cpp b/src/checkpoints.cpp index dc98b7353..b16a15d18 100644 --- a/src/checkpoints.cpp +++ b/src/checkpoints.cpp @@ -23,7 +23,7 @@ namespace Checkpoints // every system. When reindexing from a fast disk with a slow CPU, it // can be up to 20, while when downloading from a slow network with a // fast multicore CPU, it won't be much higher than 1. - static const double fSigcheckVerificationFactor = 5.0; + static const double SIGCHECK_VERIFICATION_FACTOR = 5.0; struct CCheckpointData { const MapCheckpoints *mapCheckpoints; @@ -103,12 +103,13 @@ namespace Checkpoints } // Guess how far we are in the verification process at the given block index - double GuessVerificationProgress(CBlockIndex *pindex) { + double GuessVerificationProgress(CBlockIndex *pindex, bool fSigchecks) { if (pindex==NULL) return 0.0; int64_t nNow = time(NULL); + double fSigcheckVerificationFactor = fSigchecks ? SIGCHECK_VERIFICATION_FACTOR : 1.0; double fWorkBefore = 0.0; // Amount of work done before pindex double fWorkAfter = 0.0; // Amount of work left after pindex (estimated) // Work is defined as: 1.0 per transaction before the last checkpoint, and diff --git a/src/checkpoints.h b/src/checkpoints.h index 3724c5753..1b4aacee2 100644 --- a/src/checkpoints.h +++ b/src/checkpoints.h @@ -24,7 +24,7 @@ namespace Checkpoints // Returns last CBlockIndex* in mapBlockIndex that is a checkpoint CBlockIndex* GetLastCheckpoint(const std::map& mapBlockIndex); - double GuessVerificationProgress(CBlockIndex *pindex); + double GuessVerificationProgress(CBlockIndex *pindex, bool fSigchecks = true); extern bool fEnabled; } diff --git a/src/compat/glibc_compat.cpp b/src/compat/glibc_compat.cpp new file mode 100644 index 000000000..5b73e6051 --- /dev/null +++ b/src/compat/glibc_compat.cpp @@ -0,0 +1,19 @@ +#include "bitcoin-config.h" +#include +#include + +// Prior to GLIBC_2.14, memcpy was aliased to memmove. +extern "C" void* memmove(void* a, const void* b, size_t c); +extern "C" void* memcpy(void* a, const void* b, size_t c) +{ + return memmove(a, b, c); +} + +extern "C" void __chk_fail (void) __attribute__((__noreturn__)); +extern "C" FDELT_TYPE __fdelt_warn(FDELT_TYPE a) +{ + if (a >= FD_SETSIZE) + __chk_fail (); + return a / __NFDBITS; +} +extern "C" FDELT_TYPE __fdelt_chk(FDELT_TYPE) __attribute__((weak, alias("__fdelt_warn"))); diff --git a/src/compat/glibcxx_compat.cpp b/src/compat/glibcxx_compat.cpp new file mode 100644 index 000000000..e91376f81 --- /dev/null +++ b/src/compat/glibcxx_compat.cpp @@ -0,0 +1,87 @@ +#include +#include +#include +#include + +#ifndef _GLIBCXX_USE_NOEXCEPT + #define _GLIBCXX_USE_NOEXCEPT throw() +#endif + +namespace std { + +const char* bad_exception::what() const throw() +{ + return "std::bad_exception"; +} + +const char* bad_cast::what() const throw() +{ + return "std::bad_cast"; +} + +const char* bad_alloc::what() const throw() +{ + return "std::bad_alloc"; +} + +namespace __detail +{ +struct _List_node_base +{ + void _M_hook(std::__detail::_List_node_base* const __position) throw () __attribute__((used)) + { + _M_next = __position; + _M_prev = __position->_M_prev; + __position->_M_prev->_M_next = this; + __position->_M_prev = this; + } + void _M_unhook() __attribute__((used)) + { + _List_node_base* const __next_node = _M_next; + _List_node_base* const __prev_node = _M_prev; + __prev_node->_M_next = __next_node; + __next_node->_M_prev = __prev_node; + } + _List_node_base* _M_next; + _List_node_base* _M_prev; +}; +} // namespace detail + +template ostream& ostream::_M_insert(bool); +template ostream& ostream::_M_insert(long); +template ostream& ostream::_M_insert(double); +template ostream& ostream::_M_insert(unsigned long); +template ostream& ostream::_M_insert(const void*); +template ostream& __ostream_insert(ostream&, const char*, streamsize); +template istream& istream::_M_extract(long&); +template istream& istream::_M_extract(unsigned short&); + +out_of_range::~out_of_range() _GLIBCXX_USE_NOEXCEPT { } + +// Used with permission. +// See: https://github.com/madlib/madlib/commit/c3db418c0d34d6813608f2137fef1012ce03043d + +void +ctype::_M_widen_init() const { + char __tmp[sizeof(_M_widen)]; + for (unsigned __i = 0; __i < sizeof(_M_widen); ++__i) + __tmp[__i] = __i; + do_widen(__tmp, __tmp + sizeof(__tmp), _M_widen); + + _M_widen_ok = 1; + // Set _M_widen_ok to 2 if memcpy can't be used. + for (unsigned __i = 0; __i < sizeof(_M_widen); ++__i) + if (__tmp[__i] != _M_widen[__i]) { + _M_widen_ok = 2; + break; + } +} + +void __throw_out_of_range_fmt(const char*, ...) __attribute__((__noreturn__)); +void __throw_out_of_range_fmt(const char* err, ...) +{ + // Safe and over-simplified version. Ignore the format and print it as-is. + __throw_out_of_range(err); +} + +}// namespace std diff --git a/src/db.cpp b/src/db.cpp index 521562fe6..eb40f3cc4 100644 --- a/src/db.cpp +++ b/src/db.cpp @@ -42,7 +42,7 @@ void CDBEnv::EnvShutdown() fDbEnvInit = false; int ret = dbenv.close(0); if (ret != 0) - LogPrintf("EnvShutdown exception: %s (%d)\n", DbEnv::strerror(ret), ret); + LogPrintf("CDBEnv::EnvShutdown : Error %d shutting down database environment: %s\n", ret, DbEnv::strerror(ret)); if (!fMockDb) DbEnv(0).remove(path.string().c_str(), 0); } @@ -72,9 +72,9 @@ bool CDBEnv::Open(const boost::filesystem::path& pathIn) path = pathIn; filesystem::path pathLogDir = path / "database"; - filesystem::create_directory(pathLogDir); + TryCreateDirectory(pathLogDir); filesystem::path pathErrorFile = path / "db.log"; - LogPrintf("dbenv.open LogDir=%s ErrorFile=%s\n", pathLogDir.string(), pathErrorFile.string()); + LogPrintf("CDBEnv::Open : LogDir=%s ErrorFile=%s\n", pathLogDir.string(), pathErrorFile.string()); unsigned int nEnvFlags = 0; if (GetBoolArg("-privdb", true)) @@ -101,7 +101,7 @@ bool CDBEnv::Open(const boost::filesystem::path& pathIn) nEnvFlags, S_IRUSR | S_IWUSR); if (ret != 0) - return error("CDB() : error %s (%d) opening database environment", DbEnv::strerror(ret), ret); + return error("CDBEnv::Open : Error %d opening database environment: %s\n", ret, DbEnv::strerror(ret)); fDbEnvInit = true; fMockDb = false; @@ -111,11 +111,11 @@ bool CDBEnv::Open(const boost::filesystem::path& pathIn) void CDBEnv::MakeMock() { if (fDbEnvInit) - throw runtime_error("CDBEnv::MakeMock(): already initialized"); + throw runtime_error("CDBEnv::MakeMock : Already initialized"); boost::this_thread::interruption_point(); - LogPrint("db", "CDBEnv::MakeMock()\n"); + LogPrint("db", "CDBEnv::MakeMock\n"); dbenv.set_cachesize(1, 0, 1); dbenv.set_lg_bsize(10485760*4); @@ -134,7 +134,7 @@ void CDBEnv::MakeMock() DB_PRIVATE, S_IRUSR | S_IWUSR); if (ret > 0) - throw runtime_error(strprintf("CDBEnv::MakeMock(): error %d opening database environment", ret)); + throw runtime_error(strprintf("CDBEnv::MakeMock : Error %d opening database environment.", ret)); fDbEnvInit = true; fMockDb = true; @@ -172,16 +172,16 @@ bool CDBEnv::Salvage(std::string strFile, bool fAggressive, int result = db.verify(strFile.c_str(), NULL, &strDump, flags); if (result == DB_VERIFY_BAD) { - LogPrintf("Error: Salvage found errors, all data may not be recoverable.\n"); + LogPrintf("CDBEnv::Salvage : Database salvage found errors, all data may not be recoverable.\n"); if (!fAggressive) { - LogPrintf("Error: Rerun with aggressive mode to ignore errors and continue.\n"); + LogPrintf("CDBEnv::Salvage : Rerun with aggressive mode to ignore errors and continue.\n"); return false; } } if (result != 0 && result != DB_VERIFY_BAD) { - LogPrintf("ERROR: db salvage failed: %d\n",result); + LogPrintf("CDBEnv::Salvage : Database salvage failed with result %d.\n", result); return false; } @@ -237,7 +237,7 @@ CDB::CDB(const char *pszFile, const char* pszMode) : { LOCK(bitdb.cs_db); if (!bitdb.Open(GetDataDir())) - throw runtime_error("env open failed"); + throw runtime_error("CDB : Failed to open database environment."); strFile = pszFile; ++bitdb.mapFileUseCount[strFile]; @@ -252,7 +252,7 @@ CDB::CDB(const char *pszFile, const char* pszMode) : DbMpoolFile*mpf = pdb->get_mpf(); ret = mpf->set_flags(DB_MPOOL_NOFILE, 1); if (ret != 0) - throw runtime_error(strprintf("CDB() : failed to configure for no temp file backing for database %s", pszFile)); + throw runtime_error(strprintf("CDB : Failed to configure for no temp file backing for database %s", pszFile)); } ret = pdb->open(NULL, // Txn pointer @@ -268,7 +268,7 @@ CDB::CDB(const char *pszFile, const char* pszMode) : pdb = NULL; --bitdb.mapFileUseCount[strFile]; strFile = ""; - throw runtime_error(strprintf("CDB() : can't open database file %s, error %d", pszFile, ret)); + throw runtime_error(strprintf("CDB : Error %d, can't open database %s", ret, pszFile)); } if (fCreate && !Exists(string("version"))) @@ -352,7 +352,7 @@ bool CDB::Rewrite(const string& strFile, const char* pszSkip) bitdb.mapFileUseCount.erase(strFile); bool fSuccess = true; - LogPrintf("Rewriting %s...\n", strFile); + LogPrintf("CDB::Rewrite : Rewriting %s...\n", strFile); string strFileRes = strFile + ".rewrite"; { // surround usage of db with extra {} CDB db(strFile.c_str(), "r"); @@ -366,7 +366,7 @@ bool CDB::Rewrite(const string& strFile, const char* pszSkip) 0); if (ret > 0) { - LogPrintf("Cannot create database file %s\n", strFileRes); + LogPrintf("CDB::Rewrite : Can't create database file %s\n", strFileRes); fSuccess = false; } @@ -422,7 +422,7 @@ bool CDB::Rewrite(const string& strFile, const char* pszSkip) fSuccess = false; } if (!fSuccess) - LogPrintf("Rewriting of %s FAILED!\n", strFileRes); + LogPrintf("CDB::Rewrite : Failed to rewrite database file %s\n", strFileRes); return fSuccess; } } @@ -435,9 +435,8 @@ bool CDB::Rewrite(const string& strFile, const char* pszSkip) void CDBEnv::Flush(bool fShutdown) { int64_t nStart = GetTimeMillis(); - // Flush log data to the actual data file - // on all files that are not in use - LogPrint("db", "Flush(%s)%s\n", fShutdown ? "true" : "false", fDbEnvInit ? "" : " db not started"); + // Flush log data to the actual data file on all files that are not in use + LogPrint("db", "CDBEnv::Flush : Flush(%s)%s\n", fShutdown ? "true" : "false", fDbEnvInit ? "" : " database not started"); if (!fDbEnvInit) return; { @@ -447,23 +446,23 @@ void CDBEnv::Flush(bool fShutdown) { string strFile = (*mi).first; int nRefCount = (*mi).second; - LogPrint("db", "%s refcount=%d\n", strFile, nRefCount); + LogPrint("db", "CDBEnv::Flush : Flushing %s (refcount = %d)...\n", strFile, nRefCount); if (nRefCount == 0) { // Move log data to the dat file CloseDb(strFile); - LogPrint("db", "%s checkpoint\n", strFile); + LogPrint("db", "CDBEnv::Flush : %s checkpoint\n", strFile); dbenv.txn_checkpoint(0, 0, 0); - LogPrint("db", "%s detach\n", strFile); + LogPrint("db", "CDBEnv::Flush : %s detach\n", strFile); if (!fMockDb) dbenv.lsn_reset(strFile.c_str(), 0); - LogPrint("db", "%s closed\n", strFile); + LogPrint("db", "CDBEnv::Flush : %s closed\n", strFile); mapFileUseCount.erase(mi++); } else mi++; } - LogPrint("db", "DBFlush(%s)%s ended %15dms\n", fShutdown ? "true" : "false", fDbEnvInit ? "" : " db not started", GetTimeMillis() - nStart); + LogPrint("db", "CDBEnv::Flush : Flush(%s)%s took %15dms\n", fShutdown ? "true" : "false", fDbEnvInit ? "" : " database not started", GetTimeMillis() - nStart); if (fShutdown) { char** listp; diff --git a/src/dogecoin-cli.cpp b/src/dogecoin-cli.cpp index efba9eb24..18c2b7212 100644 --- a/src/dogecoin-cli.cpp +++ b/src/dogecoin-cli.cpp @@ -27,7 +27,12 @@ static bool AppInitRPC(int argc, char* argv[]) fprintf(stderr, "Error: Specified data directory \"%s\" does not exist.\n", mapArgs["-datadir"].c_str()); return false; } - ReadConfigFile(mapArgs, mapMultiArgs); + try { + ReadConfigFile(mapArgs, mapMultiArgs); + } catch(std::exception &e) { + fprintf(stderr,"Error reading configuration file: %s\n", e.what()); + return false; + } // Check for -testnet or -regtest parameter (TestNet() calls are only valid after this clause) if (!SelectParamsFromCommandLine()) { fprintf(stderr, "Error: Invalid combination of -regtest and -testnet.\n"); @@ -37,9 +42,9 @@ static bool AppInitRPC(int argc, char* argv[]) if (argc<2 || mapArgs.count("-?") || mapArgs.count("--help")) { // First part of help message is specific to RPC client - std::string strUsage = _("Dogecoin RPC client version") + " " + FormatFullVersion() + "\n\n" + + std::string strUsage = _("Dogecoin Core RPC client version") + " " + FormatFullVersion() + "\n\n" + _("Usage:") + "\n" + - " dogecoin-cli [options] [params] " + _("Send command to Dogecoin server") + "\n" + + " dogecoin-cli [options] [params] " + _("Send command to Dogecoin Core") + "\n" + " dogecoin-cli [options] help " + _("List commands") + "\n" + " dogecoin-cli [options] help " + _("Get help for a command") + "\n"; diff --git a/src/dogecoind.cpp b/src/dogecoind.cpp index dea9fc227..9eee562d4 100644 --- a/src/dogecoind.cpp +++ b/src/dogecoind.cpp @@ -70,7 +70,13 @@ bool AppInit(int argc, char* argv[]) fprintf(stderr, "Error: Specified data directory \"%s\" does not exist.\n", mapArgs["-datadir"].c_str()); return false; } - ReadConfigFile(mapArgs, mapMultiArgs); + try + { + ReadConfigFile(mapArgs, mapMultiArgs); + } catch(std::exception &e) { + fprintf(stderr,"Error reading configuration file: %s\n", e.what()); + return false; + } // Check for -testnet or -regtest parameter (TestNet() calls are only valid after this clause) if (!SelectParamsFromCommandLine()) { fprintf(stderr, "Error: Invalid combination of -regtest and -testnet.\n"); @@ -82,9 +88,9 @@ bool AppInit(int argc, char* argv[]) // First part of help message is specific to dogecoind / RPC client std::string strUsage = _("Dogecoin Core Daemon") + " " + _("version") + " " + FormatFullVersion() + "\n\n" + _("Usage:") + "\n" + - " dogecoind [options] " + _("Start Dogecoin server") + "\n" + + " dogecoind [options] " + _("Start Dogecoin Core Daemon") + "\n" + _("Usage (deprecated, use dogecoin-cli):") + "\n" + - " dogecoind [options] [params] " + _("Send command to Dogecoin server") + "\n" + + " dogecoind [options] [params] " + _("Send command to Dogecoin Core") + "\n" + " dogecoind [options] help " + _("List commands") + "\n" + " dogecoind [options] help " + _("Get help for a command") + "\n"; diff --git a/src/init.cpp b/src/init.cpp index 1350f6e5a..5ec2245ce 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -585,7 +585,7 @@ bool AppInit2(boost::thread_group& threadGroup) { if (!ParseMoney(mapArgs["-paytxfee"], nTransactionFee)) return InitError(strprintf(_("Invalid amount for -paytxfee=: '%s'"), mapArgs["-paytxfee"])); - if (nTransactionFee > 25 * COIN) + if (nTransactionFee > nHighTransactionFeeWarning) InitWarning(_("Warning: -paytxfee is set very high! This is the transaction fee you will pay if you send a transaction.")); } diff --git a/src/leveldbwrapper.cpp b/src/leveldbwrapper.cpp index 43c737a59..5b4a9c147 100644 --- a/src/leveldbwrapper.cpp +++ b/src/leveldbwrapper.cpp @@ -51,7 +51,7 @@ CLevelDBWrapper::CLevelDBWrapper(const boost::filesystem::path &path, size_t nCa LogPrintf("Wiping LevelDB in %s\n", path.string()); leveldb::DestroyDB(path.string(), options); } - boost::filesystem::create_directory(path); + TryCreateDirectory(path); LogPrintf("Opening LevelDB in %s\n", path.string()); } leveldb::Status status = leveldb::DB::Open(options, path.string(), &pdb); diff --git a/src/m4/ax_boost_base.m4 b/src/m4/ax_boost_base.m4 index f941b27ec..e025a7e1c 100644 --- a/src/m4/ax_boost_base.m4 +++ b/src/m4/ax_boost_base.m4 @@ -33,7 +33,7 @@ # and this notice are preserved. This file is offered as-is, without any # warranty. -#serial 22 +#serial 23 AC_DEFUN([AX_BOOST_BASE], [ @@ -92,7 +92,10 @@ if test "x$want_boost" = "xyes"; then libsubdirs="lib" ax_arch=`uname -m` case $ax_arch in - x86_64|ppc64|s390x|sparc64|aarch64) + x86_64) + libsubdirs="lib64 libx32 lib lib64" + ;; + ppc64|s390x|sparc64|aarch64) libsubdirs="lib64 lib lib64" ;; esac @@ -103,6 +106,12 @@ if test "x$want_boost" = "xyes"; then AC_REQUIRE([AC_CANONICAL_HOST]) libsubdirs="lib/${host_cpu}-${host_os} $libsubdirs" + case ${host_cpu} in + i?86) + libsubdirs="lib/i386-${host_os} $libsubdirs" + ;; + esac + dnl first we check the system location for boost libraries dnl this location ist chosen if boost libraries are installed with the --layout=system option dnl or if you install boost with RPM diff --git a/src/m4/ax_boost_chrono.m4 b/src/m4/ax_boost_chrono.m4 index 9b3958ec7..318ecea17 100644 --- a/src/m4/ax_boost_chrono.m4 +++ b/src/m4/ax_boost_chrono.m4 @@ -81,6 +81,7 @@ AC_DEFUN([AX_BOOST_CHRONO], LDFLAGS_SAVE=$LDFLAGS if test "x$ax_boost_user_chrono_lib" = "x"; then + ax_lib= for libextension in `ls $BOOSTLIBDIR/libboost_chrono*.so* $BOOSTLIBDIR/libboost_chrono*.dylib* $BOOSTLIBDIR/libboost_chrono*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_chrono.*\)\.so.*$;\1;' -e 's;^lib\(boost_chrono.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_chrono.*\)\.a.*$;\1;'` ; do ax_lib=${libextension} AC_CHECK_LIB($ax_lib, exit, @@ -105,7 +106,7 @@ AC_DEFUN([AX_BOOST_CHRONO], fi if test "x$ax_lib" = "x"; then - AC_MSG_ERROR(Could not find a version of the library!) + AC_MSG_ERROR(Could not find a version of the boost_chrono library!) fi if test "x$link_chrono" = "xno"; then AC_MSG_ERROR(Could not link against $ax_lib !) diff --git a/src/m4/ax_boost_filesystem.m4 b/src/m4/ax_boost_filesystem.m4 index f162163cd..f5c9d5647 100644 --- a/src/m4/ax_boost_filesystem.m4 +++ b/src/m4/ax_boost_filesystem.m4 @@ -80,6 +80,7 @@ AC_DEFUN([AX_BOOST_FILESYSTEM], if test "x$ax_cv_boost_filesystem" = "xyes"; then AC_DEFINE(HAVE_BOOST_FILESYSTEM,,[define if the Boost::Filesystem library is available]) BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` + ax_lib= if test "x$ax_boost_user_filesystem_lib" = "x"; then for libextension in `ls -r $BOOSTLIBDIR/libboost_filesystem* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'` ; do ax_lib=${libextension} @@ -104,7 +105,7 @@ AC_DEFUN([AX_BOOST_FILESYSTEM], fi if test "x$ax_lib" = "x"; then - AC_MSG_ERROR(Could not find a version of the library!) + AC_MSG_ERROR(Could not find a version of the boost_filesystem library!) fi if test "x$link_filesystem" != "xyes"; then AC_MSG_ERROR(Could not link against $ax_lib !) diff --git a/src/m4/ax_boost_program_options.m4 b/src/m4/ax_boost_program_options.m4 index 65a39c8c7..f59144185 100644 --- a/src/m4/ax_boost_program_options.m4 +++ b/src/m4/ax_boost_program_options.m4 @@ -74,6 +74,7 @@ AC_DEFUN([AX_BOOST_PROGRAM_OPTIONS], AC_DEFINE(HAVE_BOOST_PROGRAM_OPTIONS,,[define if the Boost::PROGRAM_OPTIONS library is available]) BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` if test "x$ax_boost_user_program_options_lib" = "x"; then + ax_lib= for libextension in `ls $BOOSTLIBDIR/libboost_program_options*.so* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_program_options.*\)\.so.*$;\1;'` `ls $BOOSTLIBDIR/libboost_program_options*.dylib* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_program_options.*\)\.dylib.*$;\1;'` `ls $BOOSTLIBDIR/libboost_program_options*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_program_options.*\)\.a.*$;\1;'` ; do ax_lib=${libextension} AC_CHECK_LIB($ax_lib, exit, @@ -96,7 +97,7 @@ AC_DEFUN([AX_BOOST_PROGRAM_OPTIONS], done fi if test "x$ax_lib" = "x"; then - AC_MSG_ERROR(Could not find a version of the library!) + AC_MSG_ERROR(Could not find a version of the boost_program_options library!) fi if test "x$link_program_options" != "xyes"; then AC_MSG_ERROR([Could not link against [$ax_lib] !]) diff --git a/src/m4/ax_boost_system.m4 b/src/m4/ax_boost_system.m4 index c4c45559d..9c78280fc 100644 --- a/src/m4/ax_boost_system.m4 +++ b/src/m4/ax_boost_system.m4 @@ -83,6 +83,7 @@ AC_DEFUN([AX_BOOST_SYSTEM], LDFLAGS_SAVE=$LDFLAGS if test "x$ax_boost_user_system_lib" = "x"; then + ax_lib= for libextension in `ls -r $BOOSTLIBDIR/libboost_system* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'` ; do ax_lib=${libextension} AC_CHECK_LIB($ax_lib, exit, @@ -107,7 +108,7 @@ AC_DEFUN([AX_BOOST_SYSTEM], fi if test "x$ax_lib" = "x"; then - AC_MSG_ERROR(Could not find a version of the library!) + AC_MSG_ERROR(Could not find a version of the boost_system library!) fi if test "x$link_system" = "xno"; then AC_MSG_ERROR(Could not link against $ax_lib !) diff --git a/src/m4/ax_boost_thread.m4 b/src/m4/ax_boost_thread.m4 index 79e12cdb4..9f0bd0b23 100644 --- a/src/m4/ax_boost_thread.m4 +++ b/src/m4/ax_boost_thread.m4 @@ -104,6 +104,7 @@ AC_DEFUN([AX_BOOST_THREAD], ;; esac if test "x$ax_boost_user_thread_lib" = "x"; then + ax_lib= for libextension in `ls -r $BOOSTLIBDIR/libboost_thread* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'`; do ax_lib=${libextension} AC_CHECK_LIB($ax_lib, exit, @@ -128,7 +129,7 @@ AC_DEFUN([AX_BOOST_THREAD], fi if test "x$ax_lib" = "x"; then - AC_MSG_ERROR(Could not find a version of the library!) + AC_MSG_ERROR(Could not find a version of the boost_thread library!) fi if test "x$link_thread" = "xno"; then AC_MSG_ERROR(Could not link against $ax_lib !) diff --git a/src/m4/ax_boost_unit_test_framework.m4 b/src/m4/ax_boost_unit_test_framework.m4 index 1115f5512..4efd1e2f1 100644 --- a/src/m4/ax_boost_unit_test_framework.m4 +++ b/src/m4/ax_boost_unit_test_framework.m4 @@ -76,6 +76,7 @@ AC_DEFUN([AX_BOOST_UNIT_TEST_FRAMEWORK], if test "x$ax_boost_user_unit_test_framework_lib" = "x"; then saved_ldflags="${LDFLAGS}" + ax_lib= for monitor_library in `ls $BOOSTLIBDIR/libboost_unit_test_framework*.so* $BOOSTLIBDIR/libboost_unit_test_framework*.dylib* $BOOSTLIBDIR/libboost_unit_test_framework*.a* 2>/dev/null` ; do if test -r $monitor_library ; then libextension=`echo $monitor_library | sed 's,.*/,,' | sed -e 's;^lib\(boost_unit_test_framework.*\)\.so.*$;\1;' -e 's;^lib\(boost_unit_test_framework.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_unit_test_framework.*\)\.a.*$;\1;'` @@ -124,7 +125,7 @@ AC_DEFUN([AX_BOOST_UNIT_TEST_FRAMEWORK], done fi if test "x$ax_lib" = "x"; then - AC_MSG_ERROR(Could not find a version of the library!) + AC_MSG_ERROR(Could not find a version of the boost_unit_test_framework library!) fi if test "x$link_unit_test_framework" != "xyes"; then AC_MSG_ERROR(Could not link against $ax_lib !) diff --git a/src/main.cpp b/src/main.cpp index 6c0848f11..072675fdf 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2238,11 +2238,11 @@ bool AddToBlockIndex(CBlock& block, CValidationState& state, const CDiskBlockPos // Construct new block index object CBlockIndex* pindexNew = new CBlockIndex(block); + assert(pindexNew); { LOCK(cs_nBlockSequenceId); pindexNew->nSequenceId = nBlockSequenceId++; } - assert(pindexNew); map::iterator mi = mapBlockIndex.insert(make_pair(hash, pindexNew)).first; pindexNew->phashBlock = &((*mi).first); map::iterator miPrev = mapBlockIndex.find(block.hashPrevBlock); @@ -3134,7 +3134,7 @@ void PrintBlockTree() // print item CBlock block; ReadBlockFromDisk(block, pindex); - LogPrintf("%d (blk%05u.dat:0x%x) %s tx %" PRIszu"", + LogPrintf("%d (blk%05u.dat:0x%x) %s tx %"PRIszu"\n", pindex->nHeight, pindex->GetBlockPos().nFile, pindex->GetBlockPos().nPos, DateTimeStrFormat("%Y-%m-%d %H:%M:%S", block.GetBlockTime()), diff --git a/src/net.cpp b/src/net.cpp index e62de1044..f53fb2271 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -944,11 +944,7 @@ void ThreadSocketHandler() } else if (nInbound >= nMaxConnections - MAX_OUTBOUND_CONNECTIONS) { - { - LOCK(cs_setservAddNodeAddresses); - if (!setservAddNodeAddresses.count(addr)) - closesocket(hSocket); - } + closesocket(hSocket); } else if (CNode::IsBanned(addr)) { diff --git a/src/netbase.cpp b/src/netbase.cpp index d5b75d6af..2b300e5dd 100644 --- a/src/netbase.cpp +++ b/src/netbase.cpp @@ -293,8 +293,10 @@ bool static Socks5(string strDest, int port, SOCKET& hSocket) case 0x03: { ret = recv(hSocket, pchRet3, 1, 0) != 1; - if (ret) + if (ret) { + closesocket(hSocket); return error("Error reading from proxy"); + } int nRecv = pchRet3[0]; ret = recv(hSocket, pchRet3, nRecv, 0) != nRecv; break; @@ -501,6 +503,7 @@ bool ConnectSocket(const CService &addrDest, SOCKET& hSocketRet, int nTimeout) return false; break; default: + closesocket(hSocket); return false; } @@ -532,7 +535,9 @@ bool ConnectSocketByName(CService &addr, SOCKET& hSocketRet, const char *pszDest switch(nameproxy.second) { default: - case 4: return false; + case 4: + closesocket(hSocket); + return false; case 5: if (!Socks5(strDest, port, hSocket)) return false; diff --git a/src/qt/Makefile.am b/src/qt/Makefile.am index a12e4c171..b7f1197b7 100644 --- a/src/qt/Makefile.am +++ b/src/qt/Makefile.am @@ -212,7 +212,8 @@ BITCOIN_QT_H = \ walletframe.h \ walletmodel.h \ walletmodeltransaction.h \ - walletview.h + walletview.h \ + winshutdownmonitor.h RES_ICONS = \ res/icons/add.png \ @@ -284,10 +285,10 @@ BITCOIN_QT_CPP = \ qvalidatedlineedit.cpp \ qvaluecombobox.cpp \ rpcconsole.cpp \ - signverifymessagedialog.cpp \ splashscreen.cpp \ trafficgraphwidget.cpp \ - utilitydialog.cpp + utilitydialog.cpp \ + winshutdownmonitor.cpp if ENABLE_WALLET BITCOIN_QT_CPP += \ @@ -306,6 +307,7 @@ BITCOIN_QT_CPP += \ recentrequeststablemodel.cpp \ sendcoinsdialog.cpp \ sendcoinsentry.cpp \ + signverifymessagedialog.cpp \ transactiondesc.cpp \ transactiondescdialog.cpp \ transactionfilterproxy.cpp \ diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index 5c33d8f6f..6543455d6 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -15,6 +15,7 @@ #include "optionsmodel.h" #include "splashscreen.h" #include "utilitydialog.h" +#include "winshutdownmonitor.h" #ifdef ENABLE_WALLET #include "paymentserver.h" #include "walletmodel.h" @@ -25,7 +26,9 @@ #include "rpcserver.h" #include "ui_interface.h" #include "util.h" +#ifdef ENABLE_WALLET #include "wallet.h" +#endif #include @@ -187,6 +190,9 @@ public: /// Get process return value int getReturnValue() { return returnValue; } + /// Get window identifier of QMainWindow (BitcoinGUI) + WId getMainWinId() const; + public slots: void initializeResult(int retval); void shutdownResult(int retval); @@ -456,6 +462,14 @@ void BitcoinApplication::handleRunawayException(const QString &message) ::exit(1); } +WId BitcoinApplication::getMainWinId() const +{ + if (!window) + return 0; + + return window->winId(); +} + #ifndef BITCOIN_QT_TEST int main(int argc, char *argv[]) { @@ -519,7 +533,13 @@ int main(int argc, char *argv[]) QObject::tr("Error: Specified data directory \"%1\" does not exist.").arg(QString::fromStdString(mapArgs["-datadir"]))); return 1; } - ReadConfigFile(mapArgs, mapMultiArgs); + try { + ReadConfigFile(mapArgs, mapMultiArgs); + } catch(std::exception &e) { + QMessageBox::critical(0, QObject::tr("Bitcoin"), + QObject::tr("Error: Cannot parse configuration file: %1. Only use key=value syntax.").arg(e.what())); + return false; + } /// 7. Determine network (and switch to network specific options) // - Do not call Params() before this step @@ -564,10 +584,15 @@ int main(int argc, char *argv[]) /// 9. Main GUI initialization // Install global event filter that makes sure that long tooltips can be word-wrapped app.installEventFilter(new GUIUtil::ToolTipToRichTextFilter(TOOLTIP_WRAP_THRESHOLD, &app)); - // Install qDebug() message handler to route to debug.log #if QT_VERSION < 0x050000 + // Install qDebug() message handler to route to debug.log qInstallMsgHandler(DebugMessageHandler); #else +#if defined(Q_OS_WIN) + // Install global event filter for processing Windows session related Windows messages (WM_QUERYENDSESSION and WM_ENDSESSION) + qApp->installNativeEventFilter(new WinShutdownMonitor()); +#endif + // Install qDebug() message handler to route to debug.log qInstallMessageHandler(DebugMessageHandler); #endif // Load GUI settings from QSettings @@ -583,6 +608,9 @@ int main(int argc, char *argv[]) { app.createWindow(isaTestNet); app.requestInitialize(); +#if defined(Q_OS_WIN) && QT_VERSION >= 0x050000 + WinShutdownMonitor::registerShutdownBlockReason(QObject::tr("Bitcoin Core did't yet exit safely..."), (HWND)app.getMainWinId()); +#endif app.exec(); app.requestShutdown(); app.exec(); diff --git a/src/qt/coincontroldialog.cpp b/src/qt/coincontroldialog.cpp index 6a947c58a..2b690d020 100644 --- a/src/qt/coincontroldialog.cpp +++ b/src/qt/coincontroldialog.cpp @@ -97,7 +97,7 @@ CoinControlDialog::CoinControlDialog(QWidget *parent) : connect(ui->radioListMode, SIGNAL(toggled(bool)), this, SLOT(radioListMode(bool))); // click on checkbox - connect(ui->treeWidget, SIGNAL(itemChanged( QTreeWidgetItem*, int)), this, SLOT(viewItemChanged( QTreeWidgetItem*, int))); + connect(ui->treeWidget, SIGNAL(itemChanged(QTreeWidgetItem*, int)), this, SLOT(viewItemChanged(QTreeWidgetItem*, int))); // click on header #if QT_VERSION < 0x050000 @@ -434,7 +434,8 @@ void CoinControlDialog::updateLabelLocked() void CoinControlDialog::updateLabels(WalletModel *model, QDialog* dialog) { - if (!model) return; + if (!model) + return; // nPayAmount qint64 nPayAmount = 0; @@ -640,17 +641,18 @@ void CoinControlDialog::updateLabels(WalletModel *model, QDialog* dialog) void CoinControlDialog::updateView() { + if (!model || !model->getOptionsModel() || !model->getAddressTableModel()) + return; + bool treeMode = ui->radioTreeMode->isChecked(); ui->treeWidget->clear(); ui->treeWidget->setEnabled(false); // performance, otherwise updateLabels would be called for every checked checkbox ui->treeWidget->setAlternatingRowColors(!treeMode); - QFlags flgCheckbox=Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable; - QFlags flgTristate=Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable | Qt::ItemIsTristate; + QFlags flgCheckbox = Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable; + QFlags flgTristate = Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable | Qt::ItemIsTristate; - int nDisplayUnit = BitcoinUnits::DOGE; - if (model && model->getOptionsModel()) - nDisplayUnit = model->getOptionsModel()->getDisplayUnit(); + int nDisplayUnit = model->getOptionsModel()->getDisplayUnit(); map > mapCoins; model->listCoins(mapCoins); @@ -658,11 +660,10 @@ void CoinControlDialog::updateView() BOOST_FOREACH(PAIRTYPE(QString, vector) coins, mapCoins) { QTreeWidgetItem *itemWalletAddress = new QTreeWidgetItem(); + itemWalletAddress->setCheckState(COLUMN_CHECKBOX, Qt::Unchecked); QString sWalletAddress = coins.first; - QString sWalletLabel = ""; - if (model->getAddressTableModel()) - sWalletLabel = model->getAddressTableModel()->labelForAddress(sWalletAddress); - if (sWalletLabel.length() == 0) + QString sWalletLabel = model->getAddressTableModel()->labelForAddress(sWalletAddress); + if (sWalletLabel.isEmpty()) sWalletLabel = tr("(no label)"); if (treeMode) @@ -671,7 +672,7 @@ void CoinControlDialog::updateView() ui->treeWidget->addTopLevelItem(itemWalletAddress); itemWalletAddress->setFlags(flgTristate); - itemWalletAddress->setCheckState(COLUMN_CHECKBOX,Qt::Unchecked); + itemWalletAddress->setCheckState(COLUMN_CHECKBOX, Qt::Unchecked); // label itemWalletAddress->setText(COLUMN_LABEL, sWalletLabel); @@ -722,10 +723,8 @@ void CoinControlDialog::updateView() } else if (!treeMode) { - QString sLabel = ""; - if (model->getAddressTableModel()) - sLabel = model->getAddressTableModel()->labelForAddress(sAddress); - if (sLabel.length() == 0) + QString sLabel = model->getAddressTableModel()->labelForAddress(sAddress); + if (sLabel.isEmpty()) sLabel = tr("(no label)"); itemOutput->setText(COLUMN_LABEL, sLabel); } @@ -766,7 +765,7 @@ void CoinControlDialog::updateView() // set checkbox if (coinControl->IsSelected(txhash, out.i)) - itemOutput->setCheckState(COLUMN_CHECKBOX,Qt::Checked); + itemOutput->setCheckState(COLUMN_CHECKBOX, Qt::Checked); } // amount diff --git a/src/qt/intro.cpp b/src/qt/intro.cpp index 605628958..b3212e5b0 100644 --- a/src/qt/intro.cpp +++ b/src/qt/intro.cpp @@ -178,7 +178,7 @@ void Intro::pickDataDirectory() } dataDir = intro.getDataDirectory(); try { - fs::create_directory(GUIUtil::qstringToBoostPath(dataDir)); + TryCreateDirectory(GUIUtil::qstringToBoostPath(dataDir)); break; } catch(fs::filesystem_error &e) { QMessageBox::critical(0, tr("Dogecoin"), diff --git a/src/qt/splashscreen.cpp b/src/qt/splashscreen.cpp index 0407ebba2..15eebe2d8 100644 --- a/src/qt/splashscreen.cpp +++ b/src/qt/splashscreen.cpp @@ -5,8 +5,12 @@ #include "splashscreen.h" #include "clientversion.h" +#include "init.h" #include "ui_interface.h" #include "util.h" +#ifdef ENABLE_WALLET +#include "wallet.h" +#endif #include #include @@ -111,14 +115,33 @@ static void InitMessage(SplashScreen *splash, const std::string &message) Q_ARG(QColor, QColor(55,55,55))); } +static void ShowProgress(SplashScreen *splash, const std::string &title, int nProgress) +{ + InitMessage(splash, title + strprintf("%d", nProgress) + "%"); +} + +#ifdef ENABLE_WALLET +static void ConnectWallet(SplashScreen *splash, CWallet* wallet) +{ + wallet->ShowProgress.connect(boost::bind(ShowProgress, splash, _1, _2)); +} +#endif + void SplashScreen::subscribeToCoreSignals() { // Connect signals to client uiInterface.InitMessage.connect(boost::bind(InitMessage, this, _1)); +#ifdef ENABLE_WALLET + uiInterface.LoadWallet.connect(boost::bind(ConnectWallet, this, _1)); +#endif } void SplashScreen::unsubscribeFromCoreSignals() { // Disconnect signals from client uiInterface.InitMessage.disconnect(boost::bind(InitMessage, this, _1)); +#ifdef ENABLE_WALLET + if(pwalletMain) + pwalletMain->ShowProgress.disconnect(boost::bind(ShowProgress, this, _1, _2)); +#endif } diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp index db9b99fff..b4dca5382 100644 --- a/src/qt/walletmodel.cpp +++ b/src/qt/walletmodel.cpp @@ -419,8 +419,17 @@ static void NotifyAddressBookChanged(WalletModel *walletmodel, CWallet *wallet, Q_ARG(int, status)); } +// queue notifications to show a non freezing progress dialog e.g. for rescan +static bool fQueueNotifications = false; +static std::vector > vQueueNotifications; static void NotifyTransactionChanged(WalletModel *walletmodel, CWallet *wallet, const uint256 &hash, ChangeType status) { + if (fQueueNotifications) + { + vQueueNotifications.push_back(make_pair(hash, status)); + return; + } + QString strHash = QString::fromStdString(hash.GetHex()); qDebug() << "NotifyTransactionChanged : " + strHash + " status= " + QString::number(status); @@ -429,12 +438,32 @@ static void NotifyTransactionChanged(WalletModel *walletmodel, CWallet *wallet, Q_ARG(int, status)); } +static void ShowProgress(WalletModel *walletmodel, const std::string &title, int nProgress) +{ + // emits signal "showProgress" + QMetaObject::invokeMethod(walletmodel, "showProgress", Qt::QueuedConnection, + Q_ARG(QString, QString::fromStdString(title)), + Q_ARG(int, nProgress)); + + if (nProgress == 0) + fQueueNotifications = true; + + if (nProgress == 100) + { + fQueueNotifications = false; + BOOST_FOREACH(const PAIRTYPE(uint256, ChangeType)& notification, vQueueNotifications) + NotifyTransactionChanged(walletmodel, NULL, notification.first, notification.second); + std::vector >().swap(vQueueNotifications); // clear + } +} + void WalletModel::subscribeToCoreSignals() { // Connect signals to wallet wallet->NotifyStatusChanged.connect(boost::bind(&NotifyKeyStoreStatusChanged, this, _1)); wallet->NotifyAddressBookChanged.connect(boost::bind(NotifyAddressBookChanged, this, _1, _2, _3, _4, _5, _6)); wallet->NotifyTransactionChanged.connect(boost::bind(NotifyTransactionChanged, this, _1, _2, _3)); + wallet->ShowProgress.connect(boost::bind(ShowProgress, this, _1, _2)); } void WalletModel::unsubscribeFromCoreSignals() @@ -443,6 +472,7 @@ void WalletModel::unsubscribeFromCoreSignals() wallet->NotifyStatusChanged.disconnect(boost::bind(&NotifyKeyStoreStatusChanged, this, _1)); wallet->NotifyAddressBookChanged.disconnect(boost::bind(NotifyAddressBookChanged, this, _1, _2, _3, _4, _5, _6)); wallet->NotifyTransactionChanged.disconnect(boost::bind(NotifyTransactionChanged, this, _1, _2, _3)); + wallet->ShowProgress.disconnect(boost::bind(ShowProgress, this, _1, _2)); } // WalletModel::UnlockContext implementation diff --git a/src/qt/walletmodel.h b/src/qt/walletmodel.h index 28a9169e2..ccf590aae 100644 --- a/src/qt/walletmodel.h +++ b/src/qt/walletmodel.h @@ -237,6 +237,9 @@ signals: // Coins sent: from wallet, to recipient, in (serialized) transaction: void coinsSent(CWallet* wallet, SendCoinsRecipient recipient, QByteArray transaction); + // Show progress dialog e.g. for rescan + void showProgress(const QString &title, int nProgress); + public slots: /* Wallet status might have changed */ void updateStatus(); diff --git a/src/qt/walletview.cpp b/src/qt/walletview.cpp index 1a9c7866d..1cef48344 100644 --- a/src/qt/walletview.cpp +++ b/src/qt/walletview.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -127,6 +128,9 @@ void WalletView::setWalletModel(WalletModel *walletModel) // Ask for passphrase if needed connect(walletModel, SIGNAL(requireUnlock()), this, SLOT(unlockWallet())); + + // Show progress dialog + connect(walletModel, SIGNAL(showProgress(QString,int)), this, SLOT(showProgress(QString,int))); } } @@ -277,3 +281,26 @@ void WalletView::usedReceivingAddresses() dlg->setModel(walletModel->getAddressTableModel()); dlg->show(); } + +void WalletView::showProgress(const QString &title, int nProgress) +{ + if (nProgress == 0) + { + progressDialog = new QProgressDialog(title, "", 0, 100); + progressDialog->setWindowModality(Qt::ApplicationModal); + progressDialog->setMinimumDuration(0); + progressDialog->setCancelButton(0); + progressDialog->setAutoClose(false); + progressDialog->setValue(0); + } + else if (nProgress == 100) + { + if (progressDialog) + { + progressDialog->close(); + progressDialog->deleteLater(); + } + } + else if (progressDialog) + progressDialog->setValue(nProgress); +} diff --git a/src/qt/walletview.h b/src/qt/walletview.h index ecfa06ac5..9cfa8d676 100644 --- a/src/qt/walletview.h +++ b/src/qt/walletview.h @@ -18,6 +18,7 @@ class WalletModel; QT_BEGIN_NAMESPACE class QModelIndex; +class QProgressDialog; QT_END_NAMESPACE /* @@ -60,6 +61,8 @@ private: TransactionView *transactionView; + QProgressDialog *progressDialog; + public slots: /** Switch to overview (home) page */ void gotoOverviewPage(); @@ -97,6 +100,9 @@ public slots: /** Re-emit encryption status signal */ void updateEncryptionStatus(); + /** Show progress dialog e.g. for rescan */ + void showProgress(const QString &title, int nProgress); + signals: /** Signal that we want to show the main window */ void showNormalIfMinimized(); diff --git a/src/qt/winshutdownmonitor.cpp b/src/qt/winshutdownmonitor.cpp new file mode 100644 index 000000000..b7526f0ae --- /dev/null +++ b/src/qt/winshutdownmonitor.cpp @@ -0,0 +1,57 @@ +// Copyright (c) 2014 The Bitcoin developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#include "winshutdownmonitor.h" + +#if defined(Q_OS_WIN) && QT_VERSION >= 0x050000 +#include "init.h" + +#include + +#include + +// If we don't want a message to be processed by Qt, return true and set result to +// the value that the window procedure should return. Otherwise return false. +bool WinShutdownMonitor::nativeEventFilter(const QByteArray &eventType, void *pMessage, long *pnResult) +{ + Q_UNUSED(eventType); + + MSG *pMsg = static_cast(pMessage); + + switch(pMsg->message) + { + case WM_QUERYENDSESSION: + { + // Initiate a client shutdown after receiving a WM_QUERYENDSESSION and block + // Windows session end until we have finished client shutdown. + StartShutdown(); + *pnResult = FALSE; + return true; + } + + case WM_ENDSESSION: + { + *pnResult = FALSE; + return true; + } + } + + return false; +} + +void WinShutdownMonitor::registerShutdownBlockReason(const QString& strReason, const HWND& mainWinId) +{ + typedef BOOL (WINAPI *PSHUTDOWNBRCREATE)(HWND, LPCWSTR); + PSHUTDOWNBRCREATE shutdownBRCreate = (PSHUTDOWNBRCREATE)GetProcAddress(GetModuleHandleA("User32.dll"), "ShutdownBlockReasonCreate"); + if (shutdownBRCreate == NULL) { + qDebug() << "registerShutdownBlockReason : GetProcAddress for ShutdownBlockReasonCreate failed"; + return; + } + + if (shutdownBRCreate(mainWinId, strReason.toStdWString().c_str())) + qDebug() << "registerShutdownBlockReason : Successfully registered: " + strReason; + else + qDebug() << "registerShutdownBlockReason : Failed to register: " + strReason; +} +#endif diff --git a/src/qt/winshutdownmonitor.h b/src/qt/winshutdownmonitor.h new file mode 100644 index 000000000..4c76d2c81 --- /dev/null +++ b/src/qt/winshutdownmonitor.h @@ -0,0 +1,29 @@ +// Copyright (c) 2014 The Bitcoin developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef WINSHUTDOWNMONITOR_H +#define WINSHUTDOWNMONITOR_H + +#ifdef WIN32 +#include +#include + +#if QT_VERSION >= 0x050000 +#include // for HWND + +#include + +class WinShutdownMonitor : public QAbstractNativeEventFilter +{ +public: + /** Implements QAbstractNativeEventFilter interface for processing Windows messages */ + bool nativeEventFilter(const QByteArray &eventType, void *pMessage, long *pnResult); + + /** Register the reason for blocking shutdown on Windows to allow clean client exit */ + static void registerShutdownBlockReason(const QString& strReason, const HWND& mainWinId); +}; +#endif +#endif + +#endif // WINSHUTDOWNMONITOR_H diff --git a/src/rpcmisc.cpp b/src/rpcmisc.cpp index ffe5decd6..2675a3226 100644 --- a/src/rpcmisc.cpp +++ b/src/rpcmisc.cpp @@ -255,9 +255,9 @@ Value createmultisig(const Array& params, bool fHelp) "\nExamples:\n" "\nCreate a multisig address from 2 addresses\n" - + HelpExampleCli("createmultisig", "2 \"[\\\"16sSauSf5pF2UkUwvKGq4qjNRzBZYqgEL5\\\",\\\"171sgjn4YtPu27adkKGrdDwzRTxnRkBfKV\\\"]\"") + + + HelpExampleCli("createmultisig", "2 \"[\\\"D9fLaux2pNqp9w4BnU6Rj51PovyzbUaBpk\\\",\\\"DSYgpp3zaDj5wq5Tz1CYEif1QB98zbC2V3\\\"]\"") + "\nAs a json rpc call\n" - + HelpExampleRpc("icreatemultisig", "2, \"[\\\"16sSauSf5pF2UkUwvKGq4qjNRzBZYqgEL5\\\",\\\"171sgjn4YtPu27adkKGrdDwzRTxnRkBfKV\\\"]\"") + + HelpExampleRpc("createmultisig", "2, \"[\\\"D9fLaux2pNqp9w4BnU6Rj51PovyzbUaBpk\\\",\\\"DSYgpp3zaDj5wq5Tz1CYEif1QB98zbC2V3\\\"]\"") ; throw runtime_error(msg); } diff --git a/src/rpcnet.cpp b/src/rpcnet.cpp index a23877f3a..7a3e89e03 100644 --- a/src/rpcnet.cpp +++ b/src/rpcnet.cpp @@ -10,10 +10,6 @@ #include "protocol.h" #include "sync.h" #include "util.h" -#ifdef ENABLE_WALLET -#include "init.h" // for getinfo -#include "wallet.h" // for getinfo -#endif #include #include "json/json_spirit_value.h" diff --git a/src/rpcrawtransaction.cpp b/src/rpcrawtransaction.cpp index 50e4d0b4d..cfb38e9e0 100644 --- a/src/rpcrawtransaction.cpp +++ b/src/rpcrawtransaction.cpp @@ -536,7 +536,7 @@ Value signrawtransaction(const Array& params, bool fHelp) " \"privatekey\" (string) private key in base58-encoding\n" " ,...\n" " ]\n" - "4. \"sighashtype\" (string, optional, default=ALL) The signature has type. Must be one of\n" + "4. \"sighashtype\" (string, optional, default=ALL) The signature hash type. Must be one of\n" " \"ALL\"\n" " \"NONE\"\n" " \"SINGLE\"\n" diff --git a/src/rpcserver.cpp b/src/rpcserver.cpp index 25af596ed..bcc2bf679 100644 --- a/src/rpcserver.cpp +++ b/src/rpcserver.cpp @@ -224,85 +224,95 @@ Value stop(const Array& params, bool fHelp) static const CRPCCommand vRPCCommands[] = { // name actor (function) okSafeMode threadSafe reqWallet // ------------------------ ----------------------- ---------- ---------- --------- + /* Overall control/query calls */ + { "getinfo", &getinfo, true, false, false }, /* uses wallet if enabled */ { "help", &help, true, true, false }, { "stop", &stop, true, true, false }, - { "getblockcount", &getblockcount, true, false, false }, - { "getbestblockhash", &getbestblockhash, true, false, false }, - { "getconnectioncount", &getconnectioncount, true, false, false }, - { "getpeerinfo", &getpeerinfo, true, false, false }, - { "ping", &ping, true, false, false }, + + /* P2P networking */ { "addnode", &addnode, true, true, false }, { "getaddednodeinfo", &getaddednodeinfo, true, true, false }, + { "getconnectioncount", &getconnectioncount, true, false, false }, { "getnettotals", &getnettotals, true, true, false }, - { "getdifficulty", &getdifficulty, true, false, false }, - { "getinfo", &getinfo, true, false, false }, - { "getrawmempool", &getrawmempool, true, false, false }, + { "getpeerinfo", &getpeerinfo, true, false, false }, + { "ping", &ping, true, false, false }, + + /* Block chain and UTXO */ + { "getbestblockhash", &getbestblockhash, true, false, false }, + { "getblockcount", &getblockcount, true, false, false }, { "getblock", &getblock, false, false, false }, { "getblockhash", &getblockhash, false, false, false }, - { "getrawtransaction", &getrawtransaction, false, false, false }, - { "createrawtransaction", &createrawtransaction, false, false, false }, - { "decoderawtransaction", &decoderawtransaction, false, false, false }, - { "decodescript", &decodescript, false, false, false }, - { "signrawtransaction", &signrawtransaction, false, false, false }, - { "sendrawtransaction", &sendrawtransaction, false, false, false }, - { "gettxoutsetinfo", &gettxoutsetinfo, true, false, false }, + { "getdifficulty", &getdifficulty, true, false, false }, + { "getrawmempool", &getrawmempool, true, false, false }, { "gettxout", &gettxout, true, false, false }, + { "gettxoutsetinfo", &gettxoutsetinfo, true, false, false }, { "verifychain", &verifychain, true, false, false }, /* Mining */ - { "getnetworkhashps", &getnetworkhashps, true, false, false }, - { "getmininginfo", &getmininginfo, true, false, false }, { "getblocktemplate", &getblocktemplate, true, false, false }, + { "getmininginfo", &getmininginfo, true, false, false }, + { "getnetworkhashps", &getnetworkhashps, true, false, false }, { "submitblock", &submitblock, false, false, false }, - { "validateaddress", &validateaddress, true, false, false }, + + /* Raw transactions */ + { "createrawtransaction", &createrawtransaction, false, false, false }, + { "decoderawtransaction", &decoderawtransaction, false, false, false }, + { "decodescript", &decodescript, false, false, false }, + { "getrawtransaction", &getrawtransaction, false, false, false }, + { "sendrawtransaction", &sendrawtransaction, false, false, false }, + { "signrawtransaction", &signrawtransaction, false, false, false }, /* uses wallet if enabled */ + + /* Utility functions */ { "createmultisig", &createmultisig, true, true , false }, + { "validateaddress", &validateaddress, true, false, false }, /* uses wallet if enabled */ { "verifymessage", &verifymessage, false, false, false }, #ifdef ENABLE_WALLET /* Wallet */ - { "getnewaddress", &getnewaddress, true, false, true }, + { "addmultisigaddress", &addmultisigaddress, false, false, true }, + { "backupwallet", &backupwallet, true, false, true }, + { "dumpprivkey", &dumpprivkey, true, false, true }, + { "dumpwallet", &dumpwallet, true, false, true }, + { "encryptwallet", &encryptwallet, false, false, true }, { "getaccountaddress", &getaccountaddress, true, false, true }, - { "getrawchangeaddress", &getrawchangeaddress, true, false, true }, - { "setaccount", &setaccount, true, false, true }, { "getaccount", &getaccount, false, false, true }, { "getaddressesbyaccount", &getaddressesbyaccount, true, false, true }, - { "sendtoaddress", &sendtoaddress, false, false, true }, - { "getreceivedbyaddress", &getreceivedbyaddress, false, false, true }, - { "getreceivedbyaccount", &getreceivedbyaccount, false, false, true }, - { "listreceivedbyaddress", &listreceivedbyaddress, false, false, true }, - { "listreceivedbyaccount", &listreceivedbyaccount, false, false, true }, - { "backupwallet", &backupwallet, true, false, true }, - { "keypoolrefill", &keypoolrefill, true, false, true }, - { "walletpassphrase", &walletpassphrase, true, false, true }, - { "walletpassphrasechange", &walletpassphrasechange, false, false, true }, - { "walletlock", &walletlock, true, false, true }, - { "encryptwallet", &encryptwallet, false, false, true }, { "getbalance", &getbalance, false, false, true }, + { "getnewaddress", &getnewaddress, true, false, true }, + { "getrawchangeaddress", &getrawchangeaddress, true, false, true }, + { "getreceivedbyaccount", &getreceivedbyaccount, false, false, true }, + { "getreceivedbyaddress", &getreceivedbyaddress, false, false, true }, + { "gettransaction", &gettransaction, false, false, true }, { "getunconfirmedbalance", &getunconfirmedbalance, false, false, true }, + { "getwalletinfo", &getwalletinfo, true, false, true }, + { "importprivkey", &importprivkey, false, false, true }, + { "importwallet", &importwallet, false, false, true }, + { "keypoolrefill", &keypoolrefill, true, false, true }, + { "listaccounts", &listaccounts, false, false, true }, + { "listaddressgroupings", &listaddressgroupings, false, false, true }, + { "listlockunspent", &listlockunspent, false, false, true }, + { "listreceivedbyaccount", &listreceivedbyaccount, false, false, true }, + { "listreceivedbyaddress", &listreceivedbyaddress, false, false, true }, + { "listsinceblock", &listsinceblock, false, false, true }, + { "listtransactions", &listtransactions, false, false, true }, + { "listunspent", &listunspent, false, false, true }, + { "lockunspent", &lockunspent, false, false, true }, { "move", &movecmd, false, false, true }, { "sendfrom", &sendfrom, false, false, true }, { "sendmany", &sendmany, false, false, true }, - { "addmultisigaddress", &addmultisigaddress, false, false, true }, - { "gettransaction", &gettransaction, false, false, true }, - { "listtransactions", &listtransactions, false, false, true }, - { "listaddressgroupings", &listaddressgroupings, false, false, true }, - { "signmessage", &signmessage, false, false, true }, - { "listaccounts", &listaccounts, false, false, true }, - { "listsinceblock", &listsinceblock, false, false, true }, - { "dumpprivkey", &dumpprivkey, true, false, true }, - { "dumpwallet", &dumpwallet, true, false, true }, - { "importprivkey", &importprivkey, false, false, true }, - { "importwallet", &importwallet, false, false, true }, - { "listunspent", &listunspent, false, false, true }, - { "lockunspent", &lockunspent, false, false, true }, - { "listlockunspent", &listlockunspent, false, false, true }, + { "sendtoaddress", &sendtoaddress, false, false, true }, + { "setaccount", &setaccount, true, false, true }, { "settxfee", &settxfee, false, false, true }, + { "signmessage", &signmessage, false, false, true }, + { "walletlock", &walletlock, true, false, true }, + { "walletpassphrasechange", &walletpassphrasechange, false, false, true }, + { "walletpassphrase", &walletpassphrase, true, false, true }, /* Wallet-enabled mining */ { "getgenerate", &getgenerate, true, false, false }, - { "setgenerate", &setgenerate, true, true, false }, { "gethashespersec", &gethashespersec, true, false, false }, - { "getwork", &getwork, true, false, true }, + { "getwork", &getwork, true, false, true }, + { "setgenerate", &setgenerate, true, true, false }, #endif // ENABLE_WALLET }; diff --git a/src/rpcserver.h b/src/rpcserver.h index 0dd583c8e..ea03c09bf 100644 --- a/src/rpcserver.h +++ b/src/rpcserver.h @@ -163,6 +163,7 @@ extern json_spirit::Value walletlock(const json_spirit::Array& params, bool fHel extern json_spirit::Value encryptwallet(const json_spirit::Array& params, bool fHelp); extern json_spirit::Value validateaddress(const json_spirit::Array& params, bool fHelp); extern json_spirit::Value getinfo(const json_spirit::Array& params, bool fHelp); +extern json_spirit::Value getwalletinfo(const json_spirit::Array& params, bool fHelp); extern json_spirit::Value getrawtransaction(const json_spirit::Array& params, bool fHelp); // in rcprawtransaction.cpp extern json_spirit::Value listunspent(const json_spirit::Array& params, bool fHelp); diff --git a/src/test/Makefile.am b/src/test/Makefile.am index c695002f9..9c513cf20 100644 --- a/src/test/Makefile.am +++ b/src/test/Makefile.am @@ -15,7 +15,8 @@ JSON_TEST_FILES = \ data/base58_keys_invalid.json \ data/script_invalid.json \ data/tx_invalid.json \ - data/tx_valid.json + data/tx_valid.json \ + data/sighash.json RAW_TEST_FILES = data/alertTests.raw diff --git a/src/test/data/sighash.json b/src/test/data/sighash.json new file mode 100644 index 000000000..f49c46fab --- /dev/null +++ b/src/test/data/sighash.json @@ -0,0 +1,503 @@ +[ + ["raw_transaction, script, input_index, hashType, signature_hash (result)"], + ["e3a8c49c046ecf07d0813d5df20ff7cb50f671213c1a78759d3362414702deafbf02dbf5190200000000ffffffffc51be6b5deb5677436d85b81b37ec7e694cbf751837e407af793a09b40a76a59000000000653656a515300ffffffff6b74addc003ce433a3c386fe2dc2c9ab95ea4a261d771f4f360111dda6f9f7ba02000000056a6a53ab52fd556578c67880b479a8ac3465aab20baeed52d964529d30459600596d0690a5a9a311f70000000003516a63ffffffff03d737550000000000056aab63656a23b59f0300000000005b1782030000000008005353ac6a51ac6a00000000", "6a", 3, -138787571, "eb0f4de9612aab22e4ec05d4e7a19fea30fc570959c2e3cbe9cfc861fd72487f"], + ["99cd0bc5048e1b01982736ccdbcbf5d7cbb5df5b9fc229b52f573ac3f84e8ede751bc12195030000000200ab7932083480d3332a0a09f1683ac07e771e9924b7eb07afece185d32b35dc77d8e8fe31880100000000ffffffff62016d432f7fa5450553b2ce8383dc70fbbaa565ec2c1ba516be4e657aa596bc000000000363ac51db4d495e7cf856ddf06d59dedf6cb872d7f0c4aea5fd3babc3df7e64f2df201bd85b11bd020000000551ac536a535f00fe3804347e55050000000009ab52acacab52ab65abe92127040000000003abab52169478010000000008ac516a52ac655100ef0bc2050000000006ac53006a516a793a8cb8", "65656a6a525353", 0, -1908692932, "09a9e6776d4680f2e963d8ae463d9ef8e6899ee0bc3ecb7620c3c4ff0c10e89e"], + ["a5c3a495040e45ee89b5a0509cc77188b8a84160fea5b41d047538a5884a07de72548de150020000000165026a473ebd861371fdef9c51649bbf86e1a2ee6d3ca8da39f469b5e308b64751d23d6b400000000001539f49fa2a5647619abe2133afc61366a98cc23d0f5e77bb6f9f684d66310776a53e29bebd000000000951656552000000abacffffffffa43c5e901fea25a629d5ffc954c0a17cd1fd8b972b9fda08bf806910fafc3ba60200000006636aacab6a51ffffffff0413b9cd0100000000056351ab53659a5ac005000000000452650053daa96d020000000001655fb6400300000000075252536300655100000000", "abacab65abab6352ab", 3, -1716273502, "d7037ad65c9b74da27b7a71e28d0c595a341d2812809c076b2f3415d44fa4d0f"], + ["d9482e44048855d0011976ce74d77e315eb8fce83810cbd1de19b90a9491c9f2f6510d7346000000000752ac636a53ac51ffffffff57c3dae1fda2fda71b55061971cc4f47e0b9651a522cd0c49ab2750a7e3ce6050100000000b76ef859848700e948d1a14f7ae989d22e515251df970aadd0b6bbf4f9fd3a905d00ad8e0200000006535153ac006334f610377ae67317fa576f216a9a36bfecb5cefae768acc08d52244b665b9747f32a4a8d0300000001abffffffff03aa6b080100000000056a635251ab5a0afc0300000000025353fd67a5010000000008ab656aac00536aac00000000", "ac6352ab63ab", 3, -1632825620, "3c51ee106b2c95d1ce722d80f0f048d2ab60838c5d4519c3ff3cdac064365b91"], + ["a5a236210475a9fc16177c4b109df3b92b12463a8fa75c6548312eed2397651b522cc968650100000000bccdf6ed7e61c0e5111cbd56726469c132efd9e4751c574f8a8a87823a858a4228ef887800000000046553abacffffffff5b1bf2a8d720f98e9ea51348656fa0b4676305982faaa9073dca0311aa22bee100000000036552631a871beaabe5ff805aff45007f86761aa0734e73003e35561d607200c96cc0eea1b1f7f60300000007ab65acab520065ffffffff01ca025a040000000006acab526563ab00000000", "63", 1, 995870219, "51531b9322e9e2082a2d63b59b985ef44329af9200b18408ec6fa2394ee7176b"], + ["127fa0340336278930caf6b38e1e13dd2bae06a5e08be7e6e9d9731523951745f6f40e8878020000000100fffffffff464261df6ea6d5de8b5c2dd56d5c0ac595860c5073defb3f1dab3dc517ec57101000000096500526a65ab6565acb6bae35fade56f24cd502fe0ac6288301feb840058873470dde75ab3495fdf425aeeea56010000000653006a635151ffffffff025e5fd60200000000025353783c9601000000000753536aacabac5100000000", "abab", 2, -443481952, "6e3a29c35a20457504e82ac034515206a9e93a5016f50c386fd54d6ea26d9340"], + ["da2729ee016c220f4828b77256f484dc6880daf03fedb923ea4c043c9492bde5e129d0a30300000000056a6a536352ffffffff03867457050000000000e0a70b0400000000026565ad9ae40000000000056a655153abaa2eca28", "acacab53ac00acabab", 0, -974021439, "0f109bc8c9f2ebbf177696380c9e0fafb9bda8ca4c3ce47525b5f3b1f2c91a91"], + ["667aafe10256829fb85d59e5261e0b7bc06415b99849c7264690a85dbd384e7ca606ba9ea9030000000900ab6a6a5353526aabffffffff7632a9f1e98d5667ca6108795dd2cfd87974db612150ae64d9c6bd9dbd9e594203000000026565ffffffff04bf3af505000000000363535167e05f000000000000768734000000000005ab52635253d30e3f0300000000076551ab655152631f2ae508", "53acac6a51ab6a65", 1, 1483992582, "743ea009e2c046438e5f9e0be7af21293bbd0aa47c21e93b87cb958fed606c13"], + ["21c289070383b2f9d22b7aac0bac6e524851edb945b8c53a68929edc621c87382b6539be8c030000000500655265ab59e7c95db7dd657aa91dd34c48899656ae835913598e44e0ab40bd74c9ddcbb316f2b0870100000002655169c9a6efe022571893075da97b31bef964ce935573a7b709bfafe52d0df6ac284083634b010000000453515300ffffffff040c9137040000000001652a3b0d0200000000026a52ec5aa904000000000263acbf6dda010000000009636a63006363ac656a00000000", "525300", 1, 1565224310, "19a467462b2b092162d53ce6f3c79571ac77f34508482a24621a99d74ea62304"], + ["ea865e6a03c83551d3a367f00c93adecf27b5505df71b9ea805035aa0cafbd2c4452120b9e01000000076351ac00ab6a51ffffffff605e4126f5c9f65e203a206802d273630b5e229747037a463d4ba76221a7f4b00300000005ab6365526ad74c67ae394a27c6793b0fc6f8db5dafe5857af60def46ba483bec5db788a7dda802ac060300000009635352630051635253ca2865350499dbcb00000000000552655252659994060400000000060065ab00ab63808c330500000000090000006a51acac5152542e68040000000001acca5714e3", "65ac636a", 2, 762279333, "2ffdd16d76dffff0a65d495693f1fb6f5a0ad2d0b97b0c8dc53f15c04c9d0705"], + ["0e40ece0025e4f4f2ca80b1b8c55f8e0bcc60f10389821d570e0ced7669cbfd6c25530a28b00000000026351ffffffffd0738ad8eba0d7d34ed9e76ad972f68c7bc76d0996c687eb064025ad065dc25800000000090052ab6553ab6a53acffffffff01b7ede3040000000009ab526aac52526551009512b141", "53005300ab5251abab", 0, 1949495003, "9043df8b64b46f4a3fc629b98a2367ffb0fae8ee02fc3962a99c74027c8ffdc2"], + ["e93a60a302628559123ba866778c82d47fa1778c53023aed6bab1f9f02ca9c817d2cf02ce302000000036565abffffffffeea3f2ad3386c467c79fc87abd215f724b6fbcdad78b7500e2842cc6c192eeb1020000000953ab5263acacac006affffffff019d7ec505000000000000000000", "53636a", 0, 604472197, "79a62ee72ef5b9bfb7da0cbca1b7ed1746224507464969098870207275c23b15"], + ["3c4626000249b3c9e7bfa47ab5c5d4196f0ab7b0eb2e5bdacdaa9d002ca40adfa7ac8ef0d90200000000ffffffff7b07f04afbe8e061db5887800f369c86fcebbb8eb2c303e7afe9390140ca20370300000007656565656a536affffffff04314f580200000000086a006a5300acab00fc781e040000000003ababab53e20d0400000000085251535353535351ef563d050000000002acabdb55f91b", "65abab63", 0, 1798092030, "1fcd9ff23c9519e7eb01e5842968deb70cdfd3d96668bc65888df13fc9f26033"], + ["5d39ed92035276f10fb4ca2139705ca44afa7b6f346bd7314bcf06796d12d8c7c0cd75c65c0300000008ac65535163ab636affffffff977603255ed27b4b4ca2ee51349290df4ba031749c716f13a1d41bc2668a9f5c0200000006516a53ac00abffffffff2985ea49bc25332b90daf5ec3c72cba8e8e73c37df791ee024594cf4168a358f030000000100ffffffff04673028000000000004ab53006310b24003000000000363ac534920950200000000055252636aac3091a00100000000096300526aababab6353f1b413d5", "00ab53536a6352", 2, 1302719954, "b131a2295a9adcd042accbcfd0a6dea4b38f226a35bcd61df2293f669f02e543"], + ["2c56b20d03fe92358d7795ff6e08751cfc95e4cfaf715f8db05ab9c96dfc464bbeb56dd7b70000000001acffffffff335d171ece7e3db8efdbcedbf80862df73288033c30c8d6b879922562c1b9ebb00000000086a536a6365536300ffffffffb117b8c304a60e9dbe5e4c1edd08dad922aba5351593ec04844056c5eaf9598d03000000045352ac63ec00993404b5f7770500000000006ed5af040000000005655153ab51712622010000000003ac6a53886c5c04000000000365525200000000", "6a6365abab5363", 1, -149016983, "8e6e5539a1206dc84dce28bd63d27ae5e20978f80a8daa2d9de628a8d987a753"], + ["02fb4e5503bde0f96af2041966890a812fe96ff473b05af8892bfb79a140c9f771ffcb00040000000003ab6aac7de517e273c62618bb9b665d4e7099358e84ca89f4940153ccc6fd00131f996c3e4b4b850200000004636aac516fd35b7df76ab6d1259ef6673d9042af80b9594577acf845a165f8bafc247faa7c6fd8670100000004006a5253ffffffff02830dd1050000000002635356810605000000000000000000", "6a63510000", 2, 798779169, "40db50b022d9036ce998d1a8912288f2e050e45766c7d9db3eae0014c4e96879"], + ["caeab9f202499a69e3ce4a864c319b28e670e326904680c8653c1246d1c020c7041424992e000000000465515200ffffffff28506d07befd0e0500eb2509fe5729b5193df94e8110c19207cf733d3b5bed3403000000055352515265ffffffff04a67aad05000000000163f06e100300000000026a0036af84040000000008516a6aac6565516ad8f80a040000000003ac53534f352e89", "6aab520051", 0, 1809136475, "8da5049376997651ea0842547a898c324e2a95ef7eda04db755d7c8a17c23899"], + ["48b65dc004ebdf965a548e14638cba287c0fea96d7b97d9bca46a5c589cd7f640ca36d3b7501000000086365ab6a6a636552ffffffff9b7a4bbb6c65858c88712e0d4a557179bc6b65bb110db77b5a0bf55b264d777e0000000006655200006563ffffffff47f96f7c6b41693cbc8960d90318b73d13769fdd8a11788871462f7fb8041bb703000000090051ac5200655151acffffffffbfb2c9c12f28e4ea7dd21fe1cfd8f96abdd5874308b6744eb8d7666a3d73e70300000000066a6aab510053ed38cc31011feaa802000000000965516a5251ab6563516cb9c382", "0053ab0053", 3, -2081536660, "950c5b352c2e575d914e0eac12086df2820787f15037d45ec6abf7fe9be9ba41"], + ["25c3136602d611a9fb7e160e359398a56d13703e5901b1879b48352c1b7ef096e1f361fd6c02000000005c6d0177fbc3def8f503bbea65e8e6069c7ec95fd1a0fd76e51ad8abbe8269b32de2070a01000000026551e90d1a6301777f3600000000000000000000", "00", 0, -495212582, "ce6e3144e588c1eb560c5d106946f12e6892c4c6b9dd0717c0d3be4911194eee"], + ["b2cef5a301b1bacf3e4ec0403ad7e8addbe814dc6b248699af966f5385ccf2969af73c517b030000000452655352f95b9222042dcc2503000000000165b7b12503000000000015400d030000000004515152ac8841220200000000003c16d130", "63ac6a", 0, -253634870, "d84c3332b447750a00ce0c5f6d6bdd5a3b022944d7e1defadd94a088eb1fb9cd"], + ["8b93f5f00401f46c5282168cb3c5ab998eee6c960c13e2bab22463191fa5432aa08c187e66010000000163ffffffff8551e5e32dd626924fbed7b32b8716c70d593aacd0cd10dfef2120bcda3899050300000009ab0063516a006aac63fffffffffd797937a0b8dde36037c50bcd8796814375d53de43961f3c2434f4b064df577030000000553655265abffffffffb42352f22f62d288d5c9662b632aa855729cb1d170f0cc57dc2bc273000dc9bf0000000001528cef350a046564740300000000025165be07ab04000000000751635365006553c5c8a303000000000070c6870500000000016500000000", "6351", 3, 40616380, "2a324a9a68cd7323bd7e7a99d65717eac5a93a26ef2db78ea427bf1c5b5c529e"], + ["f190b24b022db4b51d28d1e7d3dfc904f3815bb874abc28f207f74f2b2f1898682c4b5f1b7010000000652ab6a51516a7ae876d61528ac73f52ed7120fc86b91277d81cd058a582312c960ee1fdedef5aab8a3f50100000007ab5165006553631bcc1bd401378dcb0400000000016328b2f77c", "ab51655200ab", 1, 1172605404, "ed09a664d81e27ee8412a36d4f719542c38f0eb2e294f77c2295383b32b661a5"], + ["114e957b041111f1e5c27e7e9c37e391d6f8f006e9d9b5d88067524079e5eb2e8a178fbd8001000000016affffffffd6afcf72da195866853841c808dd33bd5829b8ae14f12789b3c4ccd42d33114e0200000003ac6a63ffffffffb696093f3ed25afa104dad04892abb21fea87c1173f2cc9476b3f51b696c7a440300000005536a6a6500ffffffff72edf10658098bcd121b796b8fc19e2061761f24d893d61e92a676f5ef3965d90000000008630063536a635352ffffffff03b441a004000000000652ab65635100a0f7350400000000090063515153ab6aababcfd093020000000008536351ab52ac636ad0966e4e", "0065ac5363655251ab", 2, -38255456, "a5110decb3440510f5800edf6a715d7848e81657ffae3278820e69ec15e735c3"], + ["2f7e387901990ee0418ea5596e6891947f571da71bc3e45a1305ee819a7c8cec25c6570ad30300000000c7e9745d01cf14990200000000016a00000000", "536a6a6365535363ac", 0, 573180570, "8a7810620dd626532647d4a0362dc5e181d91f93f25996ca6e5f70ab2c487ac7"], + ["f848250e0405d09ab1fddcd1c9e68e2e6de6ab8712f2cf2ec5adcdebc5859e9632d7b7a990020000000665abab00ac52ffffffff90bc2a96668c8fde5537a74789f042df53b28a289df3ffea3217bd607c8c3c83030000000452635252ffffffff19a0aafe175b4b2a3a49450b9224915528f5c4cf1177633123d7aed9369bcf9a0100000009006a53006552516aacffffffff5d87907ef8a622d009f2cbdc205354ea3b8ca4d8a0259af299a58e82702c5b740300000009636a0065520053006affffffff010b3d3f030000000006ab63ab6a6aab00000000", "51ac", 0, -875280397, "2559a670c5608151afb5a77aeb5a07982d40e0890c36be1a2c3f1c1c615e5279"], + ["b7272038044a0c3c4cb3c9189d4103d0607298feaa0b36a32fb35c68e43ab942bf67caa2cd030000000100ffffffff3b8b8ac062ba51507e52b71681baab5b170eca74135a4c463b82f94aec12692500000000009a3bf1dd915c8ad6d3fbd1aa0768019db355203a2739fa942f7186a6acd3729146089d01010000000863acacac630051abffffffffe057ccd3f86fccea6ae8dac2f64fc5ff35a93acf895eb2ab3f9a713d490447070200000006acac516a00534ff24c2f01554cac0200000000016300000000", "", 1, -1309551655, "0f2138df5578c47cc6d766a3935de82a27b875d52f44f580ec731a573d34c0e4"], + ["4f014e9f018239a389d35143093f64abd889a5f3c18264c5f7b236e028c5d054e89f073f6e010000000165ffffffff04f990570000000000086a00ab006351656a994bde050000000004ac6565ab3244d0050000000006abac6500ab5154916401000000000003776481", "5165005153ac", 0, 1063584552, "9f3f7f45fc10c3f03c62d17ce63c34b013ddc48743aafb8a6ecaffac52f9eaa0"], + ["308499a802acafb5364c036796ac745b42f364795311407f546e6c9ca2e11f376b704b60cc00000000026353ffffffff07ab760cb59eca588b4d3ea3a9d0affe641645546ec8d656518da595f2eeedf60200000004656a6565b352b1250436d22b010000000006ab6353ac51635ce09b050000000008acab63ac636a5263e7f2f7000000000003ab51ac78eee90500000000036aac6500000000", "52", 1, -1188518293, "ef5c6731e467d17b45f34e58d383166dc8c360506858a54f04c8e303e1173c67"], + ["fd97c6b601ade9320d16e31d801bd9e3b9527bdf1c6012cb5e1b3c7e2596c7da598e21fb1d030000000452ac526376c32f3701fc7db805000000000265abc7ccb062", "ab5353ac6551006a", 0, 1887002806, "528b7c588c1b41c99e3a50845959528337d9b404a92bb8e7651f37e4db47b52b"], + ["090f2c7801f3b3dce87778460cd5a9e8e34919507bf8e7e75f0f1f6e9b7ed053e37bd2493e02000000075152ab51535165ffffffff0479038f020000000003536a52e514750100000000086aac51ab53ab5163417c01050000000003006a00b027a60400000000030052abf286303c", "63ab6a6563", 0, 463922432, "e19224826215c5cbdbbde85eecef452b473cb18b6b286fda2e505cf4b418c0a5"], + ["82b7a756018d64b12fc81f74655b81edd1c02a631105735274333f07c36bde63e554db35aa0200000005006a525151ffffffff01da121c04000000000353635100000000", "636553ab5353", 0, -641251291, "dfe92adda77abae3a67d518dd995bfc005e0cdd18fb8cf71e021a3eab3a2638d"], + ["aae6092e026ec918a4ded2ace4e670671e68069b6e3d32cee864d382be0501e4094ed703d40200000007656a656a536a6a5dacbf1aa160232204707c8b9e6e284cfba2b32f88ffdbaf5ad62db06897e54c91eae470030000000800ac636552526a519023a97a0347aad8040000000008525153526352525327537f000000000006ab0063ab52007d6093010000000001001d3da2aa", "6aabab", 0, -1338671457, "3c4240a1e7cb5a521620ffc8cb8a2e87f8ed29e81e73583ca118e6a6857b9695"], + ["d61cd19c0459b9e21dd409b8925cd34224fa4cf6c415afa81c55358f76f562afd9f8e883310100000005ac516a6551ffffffffe942988dfb9eaac7a921fa0cf5620b7ad99482f9c856e9a6f56b807f0a5dd4b700000000035165aba886dbfa6da03faffa52942ba8c052ffa47c5e9e1894c1193d054c67d369786791594871000000000353abaca8182f6fab0ea74f651d75984dd5b03ab93876b51b3c022965d53e4f445618bf6c5da6d60300000000a847157403f71f53040000000007acab51acab65ac5646300500000000066a6551ac5365be8e19020000000005635352520025ab5f46", "5151530051", 2, -590849001, "c575b392b02805c6ccc8a2c48c59138b154d4f7348201f827ff8c67b1787a480"], + ["a136e58202c302277c672b54ae263fa471c597dae0a9720f74f5330b4f9766461e44abaa7f0200000006535200ac52636d3d1f464cf19aae2eef4ea260619959782d239479e8c0bda9c5ef512df78c1cf132e8ed0300000003acac63ffffffff04f79784030000000000cf0b710100000000086552ab5263515263baaf6e050000000002ac53ebcc0b0500000000056a636a65510fd0df4c", "ab655352526a52", 1, 1472531727, "3af5fa3c83e43b72ddcd51663b73c7ebd57bf1cf40b35555acb1054aa4ab603f"], + ["2e697bb9027f76187d797578fe1a7c559a18b802b4510690face18809148452441c66f8a940200000002acacc504bf88e0e81b1320b73953ca6da98094b2f66b9cabe92bc23762d9285cdbabafbea30a0000000000ffffffff02aa41c6000000000006ab51ab636a6a4aa108040000000003ac6aab00ebc55f", "ac65ac", 0, -1344838351, "9ea3bf35dc83db250e01e482a71e3f108b2539ad930485fd3e55c3eb2370d795"], + ["b4ced0b501577499de624eb7f2f8f0a23c5f8c4ad4a7f07da55ffacfb1127d86d5f58d91b10100000001aceaf31d4904ab098701000000000153a3594f0300000000055163636aacba2e90050000000002536a7a60790100000000007144cd85", "005351ab5300", 0, 1994754820, "8aef89c2ffcf260f30211241a9765835f55fd68ae15e841a5df0e2c5fe734b46"], + ["ac0452f5033e5f123f4c4d4c904e0f7f48d9c24d33ed2b98332b8976591f2cf9042443ebe7000000000563abac535178238ae75e5b0eaee6e4b5d57d117ef8f702f0cd854f02b5cea348aef0e08730978154ed02000000060063abac53ab15f66222712c259446d60d8d2920d32a950639197829419fe6617e1b0391cce584950c0503000000008ace504c03a2a3d70100000000045252006304bec004000000000600abab52ac52ab4cc50500000000010000000000", "0051515153655263", 0, 2137606666, "412e44b73a8f4911706fed77c7551eb8eeef6bb2446d9b9a46d084539cc20373"], + ["07474d6502838ce18d1e21f78975143b62d95b724d43116bddbf71138e4ea7e8c17a82c54202000000065265655265abffffffffb33d0fd612efcd18e97201eeae829c38e6721a194df8d86ba69d1870441b12fe030000000165ffffffff03911a0b03000000000951acac5351525151520acae9050000000001ab855ce001000000000951ab6a6500ac656a5364bc0514", "acabac63ab63515163", 0, 60528522, "42bad80a2bdf54aa710e7d8348981f61bc5c964940a2ed6a1cdf066d10cef229"], + ["3fa1446502bb923b6d953d3a0e0270d50e2f52e64ff69cc8f27fd7397f49be13974c9b1e83010000000863ab5263ac6563637024acc72a0f5d2e1d2406f3cfadbeac84abd35feaa8db0f4f386ba0ce5c7b81eda92d3f0000000004516300004125bd4604ecc21805000000000463ab6351da69d00300000000004e30eb04000000000563000065ab3130d001000000000152248309c6", "6353ab0053656a00", 0, 1284147782, "912852488de2b75b82112242dd22f1c940ef12a28fddc0d0f0d1243e2861683a"], + ["ce32e8ce0186453a1d58999347ab55931cde0b2b95340d4a44b9cea02884e5b8adcc41917d00000000016347f991040319212404000000000153520b4200000000000965006aac65ababab525fcfd1040000000005acab00acac00000000", "51635353", 0, 45430442, "ebae5ebf640800f9e236c99f2e3b352a8db1e03129ed87bdda08378595072e01"], + ["8c6f3144031850c7e5f21b9af65e6f3fbc6ba7a683ca92c8380ca400b67e6ae218464686680300000007ac6a515200ab63fed587ff5bb5383c02c6b366476111023a97a604aadd1167a6267280f7c7244aa36b9c180000000007ac6563516a53abffffffff0b0421529e598289d22e5bc1b55db5bbf124c44bf685aa5892e1b56705d7d9770100000004ab655363ffffffff01662ad80100000000076a5363ab516565078e9d40", "ab", 1, -1016542485, "6c327e2d36c9fd305f0030760d8c75ac26d8ce4c5d01922556baaaf6a36349d2"], + ["8826a5b5049960918c507737e0752ee63ac7168aee9f59534c7bbf857973c44eb45e811c6500000000026563ffffffffd26f2b8d1c4b0c735e1142ef63cd85bf2da777b0b419e506dff7c5a646fa0659010000000151ffffffff8b43a4996cb1e979420ccb2689dca5cc537e846d80017d85a3b48ef26ffb42c60200000000ffffffff7aa61f7315d22bc84fe69db29fbada5eea3b3febb5176afc17707f18be63ffbe0200000000ffffffff0123329a010000000008536365635253ab0053f155a2", "ac5265", 0, 1677225546, "085435c5f62e8dba046c9d4440a51d0cf71a476788a761d43b7b1fcfa38ae11b"], + ["674438570199e4e9992a7c82c5f9525122d755fa0943eedc9ba8fd809c24c962c5433e76070000000000ffffffff03c7a97100000000000352ab5202f8eb0000000000086a630063526a52abc38fe3010000000005acab51635300000000", "5252656a006a520051", 0, 336219604, "78c8b60dd8a8876b16f16ceda31ec7bb4c74a5571799e22f45816d0583201f8a"], + ["602e52dd0149b57b9d85716af14a637d78f3e84c70ff4a0ba68f3db4473a57adf864f14e030000000000ffffffff041a3b97010000000000dc4ea0040000000007655252abac6565201542040000000009abab6563636500ac6322aef3000000000006ac5200526563280bd0cc", "ab00520063ac65ac", 0, -357926874, "cdb613d2c35dc144a70e863d224b9c42bc77836441d67834f008bd8d17777183"], + ["455bc63b03555216c7da32c1f0fe8fb7a0153ec7703a1cbd8b2579a115573acdfbb4915ff5010000000853acac6a63ab52005708fa8075d048ea6830c7623cd468f694724a8517300e6015a2a820e0fd789e9aa567f2030000000153b1b19348ff575027f76a44cc075a6d6f72576ca4c829c47dd781a8fc0d13e6b6cead80130200000006635265acacacffffffff01b02fbb01000000000700ab52ac5351ab00000000", "0065536a6a5352", 0, 1779766600, "3524b6db7e121d5706d149f74b71560a2e887dd940fd3858c445564908e7a95a"], + ["000cd772023f638ff6fc364d96bd4f033644f0e434a3ae3646e69964d82b62319cd9e5935301000000066aab53ac5152ca5b3b283dc5197e389bcd7e0c81a42ce8e2307f980b40ce20e4f18c776bc592b7d9666a000000000753006a5265636adbe30fa30457fc550200000000016a2907210000000000076a5151ab65ab65ae3fd7000000000008525252ab65ab005278453e0400000000006c176d89", "65abac65630063", 1, 1511191968, "8687ae938ee38ee81886819c3127cc6b0156e9c8459cf15570bb7edc42ceaec2"], + ["fdb446ed032c8cc2a111b297b4c97dd2222d3d1f087f081d79e22c71cf459891068ef303e30000000008005163536aacab53ffffffff984cf79f3714f2ecac155c0d8b856f9ab7f546c667f77c6ef193afb9f6f8de8f02000000070000516a6a6aacffffffff307b823b30a367fed084c22778286c7be0b2173079f6cc88beb63bc52153ccb3030000000953655363ab6352ac51ffffffff019ad93903000000000963abac53ac6551516500000000", "6a6551ac", 0, 625181198, "a9c2bc7a30dadc6cb678ef5de37ab350c7fb6500735589c8e55deb5e7043f0d8"], + ["ecddeed703b90c2208a1c64a8b9c8a741ab120d649e6bf4c3b94fedfb506fc8e6d80c206d40000000002516542084f4b71059923c810c5f0e5b80ae96347bc6a488c025c4df96dc47a0a2a67ca37cbb502000000056a526aac65ffffffff1525afb248924e2680293f04b326639901a1c205cb7ae018edb71e707652f5040000000000d9ce60650423d7260400000000001ab50503000000000865acab5253ac5353dc37d30200000000045300526a0fa6a7040000000006636aac536aac00000000", "6a53", 0, -179464695, "5571f232f5cade267c6187cf14c44c20c167892a24b100c752953993fff22be4"], + ["bde9b26302dde9dd38f970b9cc54abe8fb6118775b21d176973688fec1744662a840557a4d0000000006abac63636a52ffffffff8749a4f9568ceee1e2442c492a89d529e5e3a3453915850335736caafe324568000000000765635151ab5251ffffffff03928803000000000005636563515253e3ac0000000000066565ab5253acc18d7b01000000000652005163ac53cf80320c", "", 0, 2052161515, "7601b5ca0ce9e058b5e2c29263e8f42128b7faaf3111ae12aa223f655cfad42f"], + ["a30b933d01fefeb7c6c6a43d97d7aa4bfd3d7b80c539c44f67736487d7147208413fd29ab702000000002d416d79048e68c203000000000050b08d01000000000865006a006aab536332760a01000000000700535265ac6a65ee1a44050000000009ac6563acac0053ab5100000000", "6a636a005352ac53", 0, 13383775, "789ed372f4eb2deb7893b7747d1b4d6e6ab0ed0e8b11051cf15ef7b2ef5903ca"], + ["3a64124e041d2c139f0c9444241a2e53eda1e2888b04cb09f839f6dd278e05d17494ad58020000000007656363510065ab11c0aa6fcb4687be716ae5af7cdfa98940cab58fd8ee0133d1621a340d201a50da4b44530000000004ab535251ffffffff7e1a982df947290025bdfd5f8473c7e8000999bc507c07035a13339061db6f3a0000000009636a51656aacac6a5130e04ef3319a75450de61ef3d1e2869cfa45b4191b6b78134df7eae3342080a8a30b824400000000096a51510000ab63656affffffff01ed1ac50300000000010000000000", "", 3, 1899973329, "7a2668c27ad1894b731ea7c5c8ae4f9a9232e98b68c0f59863166fea9b43201f"], + ["d26b774a03fe852705f286af740f20b0d1fe36005d85ffbc9b78e0d2fb8d698fa850dca0840200000004ac5365acbeec63f2038bc99bfac4d788eda02b16cbd219b2ec433a7f83d972a201e54bc8784cd4c70000000004ab6a005230bc1a794f9245d75cb3a507e9a54dbc4056f499bd4587f255d13859ed7fc6406d5fd77f00000000045363656a0d74beec01c375f8030000000000333ed707", "ac", 0, -2039101317, "0409726a4bbed9672447a68b222e9f8f3441b308fc321658b4ad60eb161d0a9a"], + ["b35020ea03c524b72102ad52ed8d4131ab64c6b73a82426e16629d1ba4df50125bf6abdbcb0200000008ab655351520065acffffffff9987942ead47de9e64f3fa6762ff2431cd85ea8c7efb019240ac1db6b8ed2d0003000000085152ab5251650065998a1e6104edee3ff78ad126d91fe45c73e83596ee29307028fe2eaf763fef3217006b10010000000863ab6a65ac5263aca0215ceb04577d8003000000000765ab65ab00ac65de5579010000000004abac535121840a0500000000070063536a005200284759000000000004ab6365511732add6", "6363ac", 2, -1513887009, "b8aec3c522fe4b1fa2a45d01c633fa528539677fa656cfa572c1b58e65ce8b0a"], + ["b2df8da704d8d75bd426327c1c3230322d9f9a4416ee1973eba35c64778b560033060d38040100000009005265630000525352ffffffffe296fd8480623d260fcce5679ac00b5533089e5d3447445d2d2802e7a5b3dae30100000003526300ffffffff39b6b33c6af261099a01e954dd9a1276f8d6db61b93be889bcb548fff2e1358f0100000008ab00ac0053ab52521f2048dd5eea926148cc05983a2aa94579893151df94bf31165d15dbffb2eaad021eee3e0100000007636552ab6aac5374ff483604a40c2b0500000000086aacab63ac005152e6b063040000000007ac6a53520052006486ef0200000000075352525265525329bc39050000000009635152ac6a63636365d561cd2e", "6353ab", 3, -1562850857, "02ab9e784f1ad908216cdb7cf7e93abee1786e30cd0bd8d1d214e118473ac70a"], + ["777f4e030298b1eb67674c1be2d6c967b07200c3e337badbe431af633ba5860e4d93d0a3f60100000006006300ac63537831cdda39527cc4a4f0b6239b476263e5a0b29cd3e34490682740e6782dd0d00cd1f19c0100000002acabffffffff02e9a22a030000000000326f560500000000030053ab00000000", "ac51", 0, -1056534230, "be5f0943a940aed7fc73dc800305983ad2f94bdc13ff280d62e56b6761f07942"], + ["8426796701aaf7e7f0030cc04b2044f87b819bcd04c103779cc52ad77368330cbdc37329950200000009515165526552abab63ffffffff04ea6821050000000004ab525300f3c5aa0300000000025263ff623f050000000003536a65495db8020000000004ab6a526587901445", "ab526a6a656363", 0, -1904120058, "f0c8d9c43c528438483c28caacac9b895d2f7f03d1f50bd88348ab72b8e98e69"], + ["d858cd2203383d98cd4069480fcd9953b5f090dbbbca0dafa5302e452df936d7c58462091d030000000016bf3195cbdcc418ed88eea193928c2c60704e22ee62762ff494f0e96d8e2da13ae6ca3a020000000953536a6a516a530053b6ca64d4da0d9a318c278f0f095dc97fefb4fda642e806e2ae81bda19d897481de472a1b0000000003ac5152ce42613f01a2c58d0200000000056a0000005100000000", "63ab63ac0000", 2, 1707889199, "9423472e8a494a9f5cc47563a77f390aede574a23f8cdeaa5ddb759c894fdbdd"], + ["79bd6bce010cebce657c731a2019a853d62f6a89a9e76159da762e6036fbbed063f3cd14d300000000025151ffffffff04fb1cf4030000000001accb9d8f030000000009656365ab656a63515216c27c010000000006526aac6551ab9e0776040000000005655252ab63637e60d1", "5152ab6a6a", 0, 35156667, "778d3b075b2a7c27b153fba90f6efe426caf472179fc645399fec30addcedf3a"], + ["972de7d804b6638e14dfa4f34193add99004b6718b792a7a4978d108cb9526c835284b6d940000000009635152635263005365aeeea8edacc67cd7a797d6425583383cfce714e8af425496fbd657d20d10f79f633fa3580200000000ffffffff13ac9585bfbcb3310620fff6a245e4fed451d882d13b61dd8dca1f3e6573c55d0100000002516387b19ecbdc36ea00c3473e2d97e9e966f57e9cbd00fc623dcd8210529b74a29a6000a9d903000000090000acab63ac535163efdc2378019b01660300000000046a00ab5102e09457", "ab53ac5100", 1, 1558660677, "f67f88113a79568ec629d092d5f315caa2ca1777db2d0957a6fe1d0a2d3c508f"], + ["e60a1b9c030c2510751fb6b1d9b8a94d63edd9d5adfeb638b8508d8315e874147d1f9d007d02000000056aacab65510e44a8fe9fe9515225782d09fd52177b96ff84facbabe4f1bca0850e2d6d4ead8b40bcef01000000096a5200ac00656352ac9fc0600c7d0fcbc4b8a71a1fce125704e84198823db770ccfbe28eb502d869f46fb2dbe50200000002ab53ffffffff0414789001000000000753abac65acacab914f3c050000000002ac511adeac03000000000363ac6a2af04a0400000000076a655363ac52abfdb6e477", "5251", 2, 2071552343, "30b7bdfc7269bdedbdda438e05ee27ca58b6ecd7d5bdc84c25fa0dd9da3947cf"], + ["c6759d6e029a3cbfdbbdaa3a80509fff6241698b171d806c591079df80f753adaaa99d7f8d010000000765006365ab6a6a1c60c103c8ed00bc18b2092d93547cbec24b3d895d74f739b2218e1091674fe273fac3360200000005acab5163aca42a334a0437892804000000000451516a53d09b2d050000000003abab512d908402000000000600ac00ab5365848e2f0000000000066aab6565655100000000", "ab65", 1, -1060016741, "6b5c5af14054376d8477fb03469ffa40f42fe412d3944b34f86c5b952a4e69d1"], + ["5e4b163a04c0e31c0c4a7e8c30423e40adfee68823f3294aaab94e9ee7ae3b6147a2014d660200000009ac5152516a52006aacbd5abcfd2dd5c2870cee5ef05afa61acd6fd58bfdfd08e6787b94d15fbeef45993a7335d020000000165ffffffff47351205e68a5e70d3cbdf0f0828fe1ea43dcfebf9bfe3d9383fb642c13050aa0100000007520051526551531ec29fdf72c8e73eae2cb76d93aff244642d552bd0d9e64cc7644781f1f5bb2841afd4f80100000001abffffffff0273a5000000000000005bb82c03000000000451ab6a51e3d33f9a", "00ac65ac6a53ac53", 2, 1801894423, "0ef4d96ad09167bfa7d8aef2f674568d04366a8306879b2ec73ccd41d1f2ecaf"], + ["0fde927702e8c84e2097ffac7ec3371dc36fdeb051103a1b4606a37281519af4e39289833c0200000005536563536a9e762b762094f61140efb32e1c2738e4e468d6f8cb514031feafe0e66d4da4fd20cebdd30100000006ab6a51536500356e0fda01d07cb60500000000076a51ab00ab650000000000", "65515153656a", 0, 125671589, "c303b867f3c94839c389f8506087df866a0a4a762cc0865df3d0fd3589b19292"], + ["8ea5055404b266345a303819bd65e77f2ffae875363442ac9ea031b5d86d40f92c4a15f6520200000000fffffffff6a61612c3804ae106ed5284269256b413a38b27c7b5b0adb3e9f71d529755d8030000000165ffffffffc03d2ac3abca2db7692336631af62d0b93000d60a7b1da2e231ad84b21485b760000000005516a635151edc763a3d021746c78dc1b8cee2183d661a95ca8c5c4c1e58678ce2d87110c600491e7cd0100000002ac6a869974eb034d6e850500000000055165005351a78178020000000004ab005100bd461a0100000000055100006a5200000000", "656565516a6aab", 0, 718034473, "520b8a26205db88065ebd88ea20b735222682df13386d5d857153939780cc162"], + ["0c923aa90294149216312e1be2068df103cc9e1a9370b1186f459813fbc1d1356bdeabf6f502000000036a5100fffffffffe2e00fbfb3a6da9dbde8159a31ea75a7cced13fd394598e8f76ab56471218e001000000095351ac516363abab6a865cc40a023f590e03000000000400636551399b290100000000096563516552ab63526500000000", "ab00ac6a636a", 0, -1041836660, "532eb79b784fe906780279143ebe2d2a64218b8b9432aa19afd76bac9258ad44"], + ["64585f2a0451633ac3545b6f0d2f4a7efc044f230bfa47558f9d598cf7a5fea45d9eaef5ac0300000000026ee00134cf0315450eb6df59b3884a96e9b8c5021336c22c8a1c0ec828944f5473a47f0300000009acab5253526a53636affffffff1764c24974a09e71f173f41937bb34af4c0e3d43451fc5810c6e5db00a17a9610200000009ac52636a526a005165ffffffff032c5d8774d7865d758d2f8088932f4f4d8d0f76921550f1c791e8f99a5b30840300000004536563521761609b043fd2f8000000000000b6c2710400000000070053abab525300109917000000000006ac5365006a52950bd704000000000853ac516a5265abab00000000", "5152ab65abacac", 2, 1202713065, "03d36e46f18863f4fb4a7e6f94af3ef3a50db9b91f41804e75e7bccb3421483b"], + ["f4267b5404470385c1b0a373eb7404a34d5ad2d6886bea45fb0972b5691f91f5fc106a88c6010000000552ac5353acffffffffbfe4d6314af2cf20c521c31fea271711ccd13219c170c917887e23e818bdeba600000000086a6a636353abab00d5d6e6b4ae7ff8c07fc73d172758a76f9f7fae8c1870205e8365f6b276ed292d2821ed340100000000c6caa13620c7a9f424218999f707e0b7bd6d5ecc914220baac06f26cc307a06fe6cc3f6201000000095363526551abab53abe928e8b0019de6780400000000076a65530000005300000000", "655265ab65006565", 2, -120558327, "f8d20d848992b8818c3c7960922d2157135069f54019763eb3ad49d5d3858539"], + ["5eff06cb034bce6c94a8bc62790d04880063d442bf4c368d7fc69493bd658373301af85a7a0300000003ab0063ffffffff1c8ca682236fd9feb15eaef9250f5e7073d310504bc87c97f7500eae37c6327a0300000009ab53ab526551516565ffffffffd72cdff2cc27304a51407c0d72b5033d826368597e8e73b1a6c8a7541dd33930030000000265ab5aa6f670022b8f5904000000000551acab6a52c94b7a030000000007ab5351ac6a00ac6cbfe3ee", "63006a0051ac526a63", 0, 1605585967, "e709855fe623f77a64bc0236d65578610bc4e72a4d32587ecbdb9f411d86a885"], + ["23b4b751024b5aba656301c5a94191cca3794f09ae4de307d07628219c85e9675350f8bb590000000000ffffffffb65c742ae4799e6e6d17b7ca4873fd969283f2d823731066986be2ce155f58ae0100000003636a53ffffffff0234bfda0100000000016544799c030000000003ab00abc6eaf988", "6a65", 0, -213630841, "3712a2d87068e93a71cb6b8b9c243ebd8779fd9a6767846691c29f927372521c"], + ["d3b54b7802dd9ed0259011bed3b85db2f44abacc1fe8bae6a845629fe21f90327587450272030000000090987f660c5bf42f9db5319f5f8f9cedbac2655696c4bb47631182277c23413e896fd92e0000000001acffffffff01a27bd6040000000008656353abab51635200000000", "0065", 0, 1401698578, "408a9ccea8155fb83cdac2fdd128a6f283b31400cc35ac8c1225c31961f63d3c"], + ["2e158a2b03eecfd0e62444fa3a3de5a88a269f0753c843cd17f283a001267faaed610a4da000000000056a65526a514fc14c63a437235487f96cf7461b18fc31690e7ae27927898729d6f8a5a6dddbcc22ab1000000000085100ac5252ac65ab27beea66561e0c51dfa9af536643e77171de7bf1a0593b5ca9908c861ca4540f75c81c8d02000000003d07b8f20155f3780500000000066a526365ac5100000000", "6a6a51", 2, -1884544938, "49519ea285394968ef9b675e3aa69c9cdcd3082bb91eddd385a1fdb6724473de"], + ["e20ce4420163e48cd0d50db2523471f0fdc82f8b19f6d7fc63524c9677fbedf5bc977e6dac0300000007655100ac536551ffffffff048e906c000000000005abab52ab63c2b2e4010000000000d551db040000000001ac6045e80100000000016a4dc2a502", "ab53", 0, -918082509, "dec8e05ffa806649dcab090502cb7851d4bad2cea2b97cfadc7bac7f31af5991"], + ["fe79366802a80919606e916e2112819284311c82e11a53a8d56ae34dc8841e060740ee82610000000001acaec2ae103aa182bc8c9dcbc143d84fdbc8d6f020d524295fc6f333f2b54ebf3ca7285fcb02000000056552525200ffffffff01f75eb6030000000005acab52ab5300000000", "ac6aac63", 1, -743916946, "7661b687cbd66adda63ebb5e2654912eddc2ddf5e268322d6114394e14b89e64"], + ["d54f866b015d73c5fb10d46a0622f5b57555547c34e61c7ebf440d61c3f2243bd0f57f373c000000000752516553636365ffffffff01a4802a000000000006ac516aabacab00000000", "656a53", 0, 181614854, "443a002ec4d0728932d2a4a9a446f9c25e733f9d4fdb584a00b181617216274e"], + ["6cd6ef2d037026a192aa585b137f0e3cce89be40832099ca7e9f53d909de5dcfa16fa6789300000000075363abac0053003848143f5944d8030689d753c4695aa0ea96b34daebdf95510d3806b4c28fe29d1be02e00000000003636a63ffffffffab80dc5d153e3eb2bd41ccf486113574910350f53e2d8119d12f6a4cb20528e4030000000152945ee04303a22dc60200000000046365ac5184d0150200000000025263e4033c010000000003ab6a5121bc3b12", "636563", 1, 259596197, "11f7129b15a6b71e1e1aac028e92787f0666f0676e62282306cf2b4943dcbed3"], + ["2681b78b04d967d83b1700e7c8e227ad59600ac04229a6127d3f64e1b7eb17142a0d06834903000000076352656a51535208e438603bfa940846e288561596e232c68447c2470e9b2e0ace6ec765f47f48cec7ed5b0300000009ab65526a53abac51acffffffff01c11b347fe16e7970bcfe418b7abfa2eef3d176680f4365c3e4ef552307f3f103000000006d1eebce1f4f4645d0cbccecf32a37c8f931aef67b3f148d69f1ec6f959d22054c6c3fc303000000045352ab52da96a3fe021a2280040000000002abac7aeac102000000000351abacc7ee08a5", "52635165005165", 2, 193702587, "bdcafa05b7f6250e93cb300745ea7b34b76d1d54d4c364ee3257532ca72969c8"], + ["86e1cc500332562f636ba1d50e91f05a319cd04dc3e53bbe92090c41ac998c28e68f1d462603000000020065ffffffff99204f517e873bf546ef0c96730f4da3de07433e1d04d74918d1ebace11cdeff000000000353ab52f3d80d8e280717ccc8e2754190790783618af4c9b06c2c4cf0342442ce3415b848c621300200000009ab63ab516a516aab00ffffffff032b006c0200000000016aa7c1950000000000066a5165ac5353358f780200000000046500ac65379fd2b0", "6363530052", 2, -1263177268, "8a98e79f40cf39e7f0dd57e25b07ecc045350622d0167b7085c8e7d3c36578a9"], + ["0fec044f04bd448f4f640f7102f7999bfd422ce53f4b93907d4441c36a5e452f776dab03af03000000066553acac6353ffffffffe8fbc22a53cc8049ce3dfa7293f81a716ed8c3ddb286d0a28c0935c7827e3f8101000000086a00520051ab63517b1bd9f010f26af73d11405fda74f1ae67d2ed6312029a15451534e1be714f36478dd6710000000002ac65cdc228361ab281dfc9a55a75daade611369e5e46a01755e17989fb93bacdcc9882a4b096030000000865536a63656aac53c73450c104c71a8e050000000001aba124e203000000000152f0a85e030000000007abac0065ab53654dd2a4040000000007ab53655163ab6a00000000", "53ab5253", 1, -764664008, "6050c536d3d599d41eb2ca1dee2e4f5bd958c95fec1420e9b326be8369bfd37c"], + ["c8704c05023efe61fa0b24f3f570afa247ad73f4eeb8336d2ebbe5fe9f039849cc215a081c02000000007aaceb74afd6f565d7074b851d2178313c7ab0798898f5b14b1fda3f005a44972a1288fd0100000008525252ac63656aacffffffff03e3f04a05000000000663526552656a5b38c4050000000002ab00cd3eb301000000000600ac635151537995335e", "6352", 0, -918271550, "f61aa1762011cb090b5eaf22b6faa2449518a24384ba9205fe1df9e37c097b66"], + ["22386d2a012410368006f6b9feb3712c0a49996798d0a64aca6a6ee355db857a5a93c1fe940100000001536778352b04f40f5a010000000003ab526a5ff7e3020000000003ac5353a7bfe002000000000263638118fc00000000000465acabac00000000", "acab65006553535152", 0, 699752080, "d2da211677108f3fecc3478978547c9e96eda1c36510c9b8c3859084f798c417"], + ["d02a263c0222338e9dea36bb3f9e78c23eb36169a4ef2a39e994bdd8adee6562a4d8ea9fc003000000056a6552acac9f964fc434003f0eb8c84b4fb8dabb20c5d4ece9196ddb110f1336e7024bfa00390476c000000000056a5153ab00e6c3993b0410252602000000000252657028a4040000000009ab5263ac526a6a636571c1ad01000000000365acabb1ded30100000000026a00cd55183f", "526a63", 1, -1182198347, "f013d878a04dc785ef3cc9401f7550c3f5a73c2736eeea10aa63f3a8880a4ef2"], + ["469db126043cece211c739cd1a2cc41deef9a26464162754b323b3c495c3900d2b46688eca010000000152bd6e42ce995d059f0cbd42dec6376dfd1d5d3bbb1d95cc9c5def04318cb20daea9a5d53e0000000004526553acffd3686a6b0dad08c473cad33f20866ccf3eccc4445f383d629068bc90e09026029ec1ce000000000252520ca015303debbb172194987a8b147f9a5663a0191152907ac75d77023a5928fbfd058c6502000000026a6affffffff04c76e7602000000000952655263530000ab52e7522005000000000951acab65ab0065630006286c020000000004526352635c43490000000000076a6565ab6500ac00000000", "516553", 3, 1146029695, "6176f4ae55db438e218165791d4f2b54c33354b6eddbaec1954f36b2e301283c"], + ["5f50a4fb03ac8b34db4dd784fa0ea02836ad3bb3d89bb9119fdffebff07754504e1310a51a000000000453510000ffffffff247d5edc5d57ae639d68e067d79316d16fcd46a4454fdbb5c6ee9d1a14475be3000000000553006a6aabc9eeec87155825fa2148f796fb84780f12eec41a4af1f43f8827cd60d6534e71878d2b1b030000000851655153536a52529446e54a014860b6020000000004005252658572e0b9", "516351", 2, 941562463, "6ed25dc551f600b2df063edc29d8cc604100744c587bd3ca4b2e81de593711f1"], + ["0f8090830378e7345f733a5c53584b0b755f2976ea3340a5bc44c1d2c245213f6e849b1b13020000000863ac51ab530053abffffffff3db8db6ada585ad217cd5874daf037897a07050dabe39c41c96811e792c0f679000000000865006a6aab636a526dce569f3580ac3b2049c5bc9873ae98c17565a2d5f804f262381daed40e29886beaf006030000000152ffffffff01e63ca20400000000015126bcf183", "acacabab510065ab", 0, 927575188, "03aa96c84671720ae5631f9fba5baa31baf3d4355bc76be5ec012ffe250fc738"], + ["be532832040b2422444a8ce124dd9bf3cd9d0786cbc6e90b01ec3c31a7cb547800b16d2a630100000004ac006a63ffffffffc331dce3acd7e710cfa36c3810f78195d336274788f7f62e9e2622b2bfb588e800000000035363ac2a2dfa619296a9516d98b048e3d70652d30ec4fc52e93171b15bf85665674eb4527dfeaf0300000001abffffffff4313bb00c27a3ec63062ce81aa2f7d48f9c8fffb7f65631e2b67569c5368960602000000056a52ac6553ffffffff03660176040000000009525353656a650063538cae1800000000000553ac516a6ae0ff6c0400000000030063ac00000000", "6352ab52656a5300", 3, -1976541318, "14ce45ecd7a8d4d6b6520f34ab05e2be52a988634a2e62c32babb944e52e6951"], + ["e3eb55f50317b680593ef71278c3629044a9c676775fdca97072bc043022bd87fc3157b74d0300000002ac6af679a2d1bf782503f92b23757bfbde047810b761c72c6c7bf478b4e1ae05970321e7ac1b0100000005536aabab51ffffffff78039e4ecb761ef3b6ae8aebd33181fb6bd6542926e8ce8e29cd47a33298598002000000075253636aab65acffffffff03593cea0000000000056a6aac5300d4c54e0400000000055351536aab54142f0200000000086351acac6551535200000000", "63", 0, -1701478047, "2ece6d4afba2b3c1f6ec35fb726b8e268d32fa6bd7a033ecced83c6fc3f565c5"], + ["b2d9bd8b045bcd202e8b167e19cf684c98a46771a6ef56643fdca652365897d61cd904d47a0100000004630065650628d5dd372824970dc6737ce221d5ca1f39a7194043fd833a0fab54965a7581f1457b120000000001ac45d03926d63223d0cdccc6e74083b1059b3e9b13ca30353e7fd60522aa0ab51f599d2c3400000000086a515265ac6565513cb195ebbdddcaf1195f9ca9a556ffdfd92f93ae967001377a464976f5333574a80530290100000009acacab6500636a0051ffffffff03f0faed0300000000096a63636a52ab6351abdbb15903000000000753636565535252f4b20902000000000351ab5200000000", "ab526aab00006a", 1, -1360999032, "4a6c0a8e68693c57a744f31d885225db0929c04ff7f63166667e0d923e56b323"], + ["dac6a86703741c743d86d30c4683e549ba30f2f390bb7526f3b181c96c9e3417442a132e49000000000463005300ffffffffb9e54c40c2fb9cb46e70f50198479715b05501ed197eeffd970f3d715a2de50f0300000006ab52ac63ab65d3233952e13361aeace3b02e54e7cda327343bf14ca12f755fb1c53d382bd81449fd3091010000000852536a5263636565ffffffff0112f2e805000000000000000000", "63ab", 1, -2047862808, "e3c4c0a7da6d19ec67cc770eb87f23e6bf764b3fee6e23110f17205c2769288a"], + ["d3c6d0920298ea908d197092e618b2332dffb20cb03986691269b2b8c3e5df19172496257a020000000952ab656a52ab535365ffffffff5fb8494ceab24f504202c3e3dd92d012bb260ea1ed48fd4d42f86b500c4156e00000000006ab5163ab00ab8cc05b0803b45d0a030000000006ab6a656553abb5986301000000000152e3f2eb050000000008636a5100ab65ac52617b16d4", "516a", 0, 2070222956, "984e8bcec34b954a94077b84c86631d1f7df300975fa3a53ada385337fe5739f"], + ["a03dc3ac02bc99c0766ebfe057b54f13c619d1c67dcd5378fbd5c6c0588162ea29eda861c803000000036a6552ea244ce4a323a44a7e2218219ab75cde8bf66956cce9f499925db16666c126a1d1648017030000000151e127628a03ed6c9a030000000006630063525163ec37d4040000000002535273f8d70000000000065263ab51ab5200000000", "00516a6565656aab", 1, 2019192024, "2461311b51c0f1f1c324774b6faed7f6306c630bfc9baa62548fce9a1fa5e911"], + ["37c8332002575fef24711ff142923903535250c7295cbbc6e4f31a8041fd3b00e73be11804000000000300ab632ecf09ae1d11033798848cf4206541d4fab20a0d90e9da8c46dee83eab7e7720290e64ed03000000026a52ffffffff034167b9030000000003ac6563093a04020000000007535352ab5300ac0fb8c4040000000005acac5153ac00000000", "51006563", 0, 122323697, "e7bdbb1d76ad6815e667a5283b571613c1c9779d2b4ce7802805c1a48c25afca"], + ["09ae765d0352f9e40708fba533a1c20c4a9ea1a9d9d4818dbc6ae1855dafa8c9fc0e378fb60100000003ac6500c4adf77214e0f963a091496f51909ebc9b2b456353451eb331cf04cffa4b2f4313e0aa460100000008006a6363ac0000536449817ffc8f1afd2afe24f8d36fd0a627d627d0aea1101973c156f4926fbba7aeafd2c4000000000853636a0000acab00ffffffff0358234c05000000000565ac52ab6abc5c7d020000000003525200068a0f03000000000352636500000000", "636a5153ac530052", 0, -1673891642, "9f252ad0ac61f11009bf2890af0814d01d189358e9cc199b274f28d0de7627c9"], + ["91c15c1904e082f6461f0cccee00a23d89661f5bcd9c43164a4df0cbfe65224bf1f8db283e03000000026363ffffffff1b25d71264e3f83cb8f829b893af1514746cf13fd5e2a8f7fb4829a16038d02e000000000651005365ac65baf8fe41c2ce3edec82cd808334981d9e084104899b3ef410e3ff980b8b484fc5f0dd9db0200000003535100d5da0736bad4f19606fc9b7e8b13b1a9416e360bb284b6043e4ebd57a0773f962e5c261b010000000085f0a24101f24c580300000000076551ab65ab006500000000", "536563ac636a6563", 1, -1539950339, "d06590096397a56b48296baab2216d39e21f6d56fe1247a438000dd07ae3eda2"], + ["c2981dc904f4a9f3bbaa499ff48aeb016593e66e3e2ddea123ee14259b37cd60fc5aa0f778020000000252ab96900b6f0a64f34e2ee3eeefa4e25a2d7e146a98688ca4f846cb841a6138b78744f9783303000000066a636a6a656affffffff4ce48b3885f0aa382a1430c080665f1a8add22ae05fdbfbb8d502f9595555a810000000005abab536a52ffffffffcc47a9f62a72a8bb38ee74d38c1c69f4b4a08c5ae7e4c2c14c4a09eb47a356170200000003650051ffffffff04b343110400000000086563ac63000063000aa1af02000000000865ab63510053ac6a3ad2680500000000004b8f8a050000000009656a6565536565ac6500000000", "abac", 2, -2045231246, "6d1e4abf75fedb654d1fe40ffc0d882330761c145118dc0d973bbc36104045f2"], + ["e05ce97101a843c02eb12b278a81aed88c10dfca5836fae1b870514e1d1a537127e7e05fd90300000008526a5265ac6a52005d46b03503fb3d55050000000002ac651519e800000000000651655100ac631839c20500000000066553535100633d1efdc5", "", 0, 1741914049, "ec3ecaa60a312caf51b1f8c3d69c1fb89f46a5329acdced80861eeb411105a7e"], + ["0e32b49903463eb9f43214b4eca15784d799d95189ba5f98b06cc6a138f95e12002381f81f0300000006630052acab529d546eedadc1143efad74302eaa0e2149f3dd6cd06d256c197e1ad32a38158ac112794ea0300000000fffffffff60e7ff7cf38da0a17df644bd4b8de96f3398da0536b68c463d4c6dd77ca3a8b020000000004ec24f2042c6da20300000000055253516a5305f7da02000000000563636a0053026d7c030000000004ac00ab63f1de230500000000056a52ab6a5200000000", "5265", 2, 544536303, "41de608c049828332ac4d7c0c2bf46545e9b945819ae34d90839a2fdbbac22d1"], + ["6afd4b0b043346f8ddeb5a12ee94f9a952b22a7a610e2e65dafde60d7b4c96734d1af8ba890200000008ac51515365ab65ab4611d996a9ec8cd275c234a0f4a460e3ace4b55b598e0813722e3f4608a93f126873da910000000006000052636563ffffffff98af03dc89dd6bafaf0f825228b8d514e508c8cec7113299488f3f737492c18c0000000004ac535200f6bb84d9e6c024c96683d5613e48cb7396b6b7f99fa55ff4643d82eae14ffb24a5fa939601000000065263526565522225a110037b5bcc000000000003636a51c8ab0f03000000000163f9434500000000000863536563ab53636300000000", "51", 0, -1386647579, "a9b3954d8781278c10c43f81f7205ca90f90c402d9ca892153f2ccfa46c12fd6"], + ["d4ad456f0143a7efc7b3bcfb52c82c405130a19bd224e5df62c7977314af0f84ec9d6c7a82000000000865515163ab5353ab5617d35903c6bbd0010000000004526aab52efc662030000000006ab6a635253ab105a570300000000086a516351ab6a006af320cd53", "6a52acab63ab51", 0, -1730762574, "dac79417c7ee6cb6e7b27459952f7b739641bd492aba82207e5a690c937c0426"], + ["86160161038b612e9701b30964fc5adcc853f4d4561de3565f3a89bd050cb292d0197ddb7703000000076552656a51ab6a5d74dd029538589a86a96149f3ad14d11e31697f32265d76c60aec7269157d434e9e5f02030000000100eefa370e4ac7b2b41dccf288910b1d72234a6f8bde910b03d506d1cfc342932baa2052c6010000000300526a9c2b9a7b021dacba03000000000500516351005c9e8d000000000007ab65536500526300000000", "6aac", 0, -210004965, "b6725e4ef556ac3154d9c3467c989b5df3a711dfe6480ea793a973e54fb18151"], + ["5d240ee802fc446b3062599debb6c774b41ab51df171fd220bcf4f6cbe19fc482112053671020000000451abac6353326a9c2934f31bfd298ff29ea4bc440a12b52be5e5b244f5827066b2dc4ed3ffcfa3a20000000009ac53526a6300516353ffffffff0113971f04000000000352abacb0749101", "6a63", 0, -791726348, "0952e5da02e6229b988cb166457367390e6a097156c1f6b19c1116fec92fec1c"], + ["31882d6b04646f35711ab13181012c814429fab47f769ef13ef88b101301ead933061e7aa401000000026565f7bb2a275691242717fa88e61f531844263266cc29379d6dd1b438df0014fe1a0fc2d58d03000000075365ac6300ababb4c224e0f3d34be093e0f9ca38d9b6728e7025cda985051f7ee2a63ab5382259259902b100000000016affffffffc42c7426db2736b83dd5ba1e3587d81390b6ade164e522142038371521f107f702000000026563be5bde9804f648f50500000000025353bafa92010000000002655255953402000000000952515100ab655200ab2d9e92010000000000fcd185bf", "005352635351ab53", 0, 1657177177, "bf743a87c706c3a1a7e69c2f43325c99b248e1dc236756c0938e1535aefeb4fd"], + ["1ec0b749041909210a30157f1459673b14b31bae82cdde08ea2e7f965709c4f1e15ede47f1020000000100ffffffffece139238e98ee09117c00fcf8f890808589cec2996f7f83aeb61c5eb45ee31a02000000086aacabac63000053ffffffff415c58bf7b4c0585a41b482777160372fb5444d21b9220f75aa2df28608af70c030000000100ffffffff4c9a0997dcb7220b38a24e7f5e6a82abe24bbb0d7bbbbb6369059cc02607d24d01000000090053ab6a65ac515151ffffffff011bea570400000000076553ab5353005331a0fec9", "6565ac0063536a6353", 3, 1830208645, "3006ad9edae7194f3aae0ca4bd3f8b574ee55d1117279a66748e9fa3483f06ff"], + ["a23c247f01759bdb6acd7e1ebaa64ae72677b535f2febc8f01a62f01708ed4fdc4f83af69402000000026aacffffffff03c3b5bd000000000002006a87b910040000000003510053c854340300000000056a516351536384d154", "ac65", 0, 866063865, "841c31accea33b3507bee1f218925dafe9e456a472c1b86a6906527497228308"], + ["997e22a301dd2b76b4eefe6dc617d4e178bf8090eae77045e21c05dc401d578f6c564ae52702000000046aac5365ffffffff043c420e0000000000055152ab51511206b1020000000004ab5363528220a505000000000352acab377b1b00000000000765ac6a535265ab00000000", "6500ac00", 0, 290413624, "e9e32ed181548d20d31c92758d1fa13fdff5aaf4df1d1aa35a2faec5ec664f77"], + ["fe4ba75b0230c3dfd3ec0653fe01344f25c34399717bf44bb67bd04a5845880ff437af3ba10300000002636affffffff7e105fcdba1bca29ad981a53ccefe66ef201f60b4635281e8de4ac283004035101000000095351ac6a00ab516aac845ee87503c14b39020000000002005352775c03000000000663526a65ac523adbb503000000000252ac9b5be94d", "53acab525165", 1, 1286598948, "6357b445739076236f684e67b6f498f420fb88aae513ba09b915611a9ebd1201"], + ["473b60c803ef48a4ae56e3760f5dfbaf26f20e0cfdd10e0fda17357941a3863dc7cb2acb9c0200000006516a63650053fd3cbaa624ac27408fa842863cff13bcc55b3b65b69de24d0eec36049a73be38990a506901000000066aac52635351ffffffff9b7db57f2c2eebd9394df52f8f63deae41f6962b001fa90212265aea34cf9a5303000000085265525300ab6300ffffffff0266f6c30500000000090052ab6a51ac51516a03a1b8000000000008ab6565535263635300000000", "655252006552005351", 0, -526993225, "208beff56bcaefbd5f4d4cca7d151e4c12a5d7578fbfe06a1e3f8cddd31832fc"], + ["98fcfe55027b07d466da0f27f33efb2d40974dce4e1217ec3fd67a26302819952c7acbf37403000000050063ab51ab54e51d02d03bb8f74a0730dd8ae8d74daea072aaef93ced6b08a437afd9634ef455493dd02000000095352ac6a53ac515252f90c1a0b01fb777b0000000000086a65acac6aab636300000000", "abab650065536a6a", 1, -2135240294, "f1b2ee60b75777122a5882fff804e8bd7f1f0c968bd86fbfd00aafc08beec405"], + ["48b7ea7203f526947b21c2e5a6963a8bbd00d4310029e05bf4c60c2d078bca502df65c9bb30200000000ffffffff46944d62cd240e9afd4a3f813ae99fcbd1a36b82124d07129b7345d261b423400100000008abacacac5252006affffffff62d69efd643962f0afc6a829250fba75ff52226aa403a31199203bc7aee231f603000000020051c9e331f80391f8cf000000000003000051c5478e0500000000076aac5100006a51ffe9e6050000000001002c2ea745", "5163ab6a", 2, 1170477884, "b03aab6a42ab9decba24382cefe820756f48c2cf5c2f46bca92cbf5a14250315"], + ["cd8f921303c4dad4d613b4717e4203f5415d34c3f023385be041f7e893df639a0714f7def801000000030000ac38af1baf7c78816931b1ad12b7ecc1ccd7ed926407006c9a0815a937d42cc5b955063bf600000000035365acffffffffcd49f2d6d389b8b7ae9faea3f545d617aebb35adcfb0ea7b5d884dec17561f2900000000025300ffffffff040c95c5020000000003ab63650a253d020000000002526a07eac1050000000004acab0000e8bc2f000000000006ac536a65516300000000", "536552", 0, -362333300, "80157713c0658e7d044f591e3a3b77a5854612976e04e023d765129e1cc1b9ac"], + ["5235d5bc0224e4214eca668591e6b4e637c02cd00381a2093b335a5bd21bcc6d4c4042bd830100000000ffffffff49a0d8f1335d6c4372007c27eb202e6f97fccff27ffce60cc15f281ba87129b702000000026a5200aa80d30179cb60030000000009ab5151006aab006363e7020ec3", "51ac00ac6551ac", 1, -2015215108, "a8d3c0c7459924626fdbcd7506b0aa2557d49e193bd8bfad4fb839791a68715f"], + ["0bd905380419bc9563efc4afe96488a624a8d40eb64f8b4e36211ebf2abf37ca8e37707fe9020000000163ffffffffa55173abf341f02a3bdb47ec05c92eab89a9c7c176235feeafdaa3f58dd2d8d40200000001639f4f293062bd8be3aa1a0f9e4d2fe03a9e40577aebd3487dd2b451d956539a52cb1544910300000003635163fffffffffb2171b4c1aa2a145e5309c8f49225ef698825376e504e179fd491c19fd75b5e0300000009ab63515352005153acf79bab23044ae95f020000000009516a52ac52525363659c0603030000000007006552ab6a51ac5eb2840200000000005446d301000000000000000000", "", 0, -1524657328, "8b392de270505d82dfb2e76fe89e458f6b3dd5aff61a98252709fdc394072dde"], + ["19997df10441a73a5a7c9292a2b837d48d183c6103a6c2e289187db0d59a9e2babfe64113e030000000651ac5200ac63ffffffffb66f54da91c5a137564ebc9316a38f8766a59d26353d6a00dbd5370a57c75a55030000000165ffffffff016ae6b888a01a4585d11f3c0d72ea85cf2de2ad9c1865c13678286d094ed0ef02000000066500ac530052ffffffff71a47710d759ccb3dc1888136e20df5b0a968eca492d5896a838825decac0a4302000000050052ab5151ffffffff02718c13030000000003ab53635e593d01000000000800ac52ac00636aab00000000", "", 0, -231419500, "18e0f1cb0335252593a63de6caf4ccaebfee791035c5cb1e9324da5a199840a9"], + ["6c83d8a704e3ef888fd28e7736257ee4f401ae3cbc68f6bc9aeab1f42dd86c81caa4f6fa65020000000163fffffffff172ef0f81da0dbd8480fbc28425fc8180907afed7a682fa5eaad1625cb3e9c201000000025200abd006373645701be4db376482b6ba4f22a1bcaa810201794bda854f366a517c6304169b0200000008acabab65ab65656affffffff9e428b5a20a87c29551b4553246e9a6ac2726dd13c1217b0dcdb34522e970b950200000005ababac6a00ffffffff042cabb6040000000005ac65650063e21e47020000000000c187e80500000000066500acac5200a681cc0000000000035351ab4578e68f", "6a", 2, 1562480704, "c3d836c99e46d804082624c6ffd9fcba4f45f7482d037de3454589adaa5d7db7"], + ["80066e6c04b89dd7dfe0155cd2beb79ceee8f2c71fea250b811919853b2e917345c7f8f1990100000000ffffffffe11046ceb24f7275a84e78d5441db83fe981ffac0de511763be9c3a4d62fb7f2020000000865ab006a51655163989d73149c8fda1759bc7f48a238ccde3a8db412a08a8b264d57bd6925c831a6851f8063020000000200ab01f0c588219b8d9e0d46dd5ccb6067806af02ebd98b37db392cb2d82fa2225735c8d0f0b010000000651ac51655165ffffffff04158d0e020000000007ac630065ac005200cbe50000000000066365ac53ac656e3046050000000005abac6aacace6f61c000000000008ac525100630051657d182e66", "ac5252ac", 0, -564377265, "14eb7c01fd880383d269c9b6ed85ae5ea5f6d945388a67d9d153ca3ff69ae5ad"], + ["4310244e03ebd8d318d23fb9f3c8adb88b53723cf8909e7fd81c83bb77b6c802e30621760e0000000001abffffffff1f577889f829684f757add1337641f2afe8a3dcd07f939e18f764f170ebb26020300000003ab5253d49a4d59541a9ed549022d26d4b27b135864d758838ef5b3dd9a6bbc635e1720ab104aa50300000002ac00ffffffff04a66b16040000000001acc222750200000000085253535252525151aa707c01000000000152c859080100000000015100000000", "52ac51ab53", 1, -937029773, "cba820ddeebeaa6b73d7befa46753f80882c02cdf4ab96ec92f4337d75131059"], + ["81b8b41402eee4b5261d3bfef6dc5a4d7dcfee4d533534f896fda7e690974f8de47c9612c30000000005536a53535239b80c4b0921076ce05056826706025b183dc2ccbf82df06dd28879532187794b37f07b4030000000200ab977c631202740d3a020000000004ac656a53bea602050000000009526300ac6565536a53878080fb", "ab53acac516a6a", 0, 127602936, "5c17060bd51eb2ed5da38def687ef873e4dcd8864a557d6efd6c1faaaa63eb31"], + ["77326668023dd1813873639e047cd8663837e144c24e87869ee8ff01da65dbacd2a9fd1254030000000153ffffffff7d2696bcb711a175c9bb3980d4201942222ecc5c5683580ea91748bde085dc5b00000000090065ac6365ab656365ffffffff0471004c0200000000066a6551ac5351a49137010000000008656365656aab00ac358a5d030000000006abac53ac515338a97801000000000852ab6363006565acb9abf105", "526a5363", 0, -16648922, "2d7474e6bcd2de402afcb135cc60757a5e4e91faa06fed7381285ceda54732ed"], + ["afde7be2021724ec52809e2a2c537320a4add24a3cb5168cf93294373d44499588c652c17d03000000040063abac3910ad5c169562a887a00d188a2ef1fe32db3c1015a4e5beb3b783b0ff4f2e52057517640200000005ab51ab51ab4483d1340363dc49040000000001633b0347050000000002abac85b1bc010000000001ac00000000", "635165656a00acac6a", 1, 1480789114, "8b252fd20e7d80984baf31faf01664ff99df920bb39fb384b1ecebfc7711c7e1"], + ["a34443a30319c37d6029f99e7663c7a470e50d50b9baa6ae11df340c771ce53e0d99c1a8e50300000008000065ac535252acffffffff2fec1e391a65ab41008f822513cca74dba79ee01eaca5444e0c752a18d5460a100000000046a6a5353ffffffff5e39f3722981132f6a927a77390b3601f2a23c13fe4180e017ed17398f5ff1960100000003ab5152ed8a595d0325097505000000000963ab65006563ab535109dcbd01000000000030d9da010000000005516a51535200000000", "abacab5151516aac53", 2, 67870304, "2f6fea4f57ddcec774dcf6d2dd44da6d8b360242b5351d61625284444c49a537"], + ["247bd7ad01ef5f71f9b32bfe947ea38e5a3403303c261fc997e8e73db447f483151ad12e9d030000000852ab536a51ab5165b1fcb98902dceada04000000000363ac65c3293203000000000365655200000000", "abac", 0, 1483435430, "ad0c83d63a3ff1776916c1215ee976806719b58e888cab042408a3c95e3be11f"], + ["c23f087704864659fb58dd342b7d8865a88706844a64114c5eb4eae270b2dab3cd4ad8dd730000000009656a63526563ab535292efcf854ccbe1f087538fb6454d4193c177bb4a8c55bf203a141b8d9c4a5779378306a202000000065165526a6aab9dd5204220ea16d2f2477ee02905ee83b942ac64db7d091f054a56d063304e29a7d59b4d020000000200abb106db90071e3aecf2489357eeed01c3db3b19c9914f3ff9c2eb1da4a234ee0630036986010000000700ab53006553acffffffff013293ba030000000008ac656aab5300656abe833085", "ac5252abab63535263", 3, 755186809, "9307553129cd116f49531f102241a9354abc72a32efe35dc9dcd073cf1b9e945"], + ["83a8f5b801dfa7d4ea67af73275ea652fabc70e23fc96aa3827fe49e08e6bc7c223a058db1020000000151ffffffff0143001f020000000006516365ac53acba929765", "656a", 0, -756837497, "d1d716b7d77a05698f09a3ff0628d21060068b32f49ebfe72b3f8c673472d1a5"], + ["83e97b02021550532f9c3761c47d5080704fa6f007805c6c885f0ad6403a868261c6a718ce01000000076aacac635165abffffffffcd9c4bc7506b228d432ae8a80bc2e8aa350d9a86773ff3c3d445f065ffea983c0300000006acab52ac510069e5fb6c01c929b104000000000663515200ab5292504870", "6aab006500536aac63", 0, 1849529674, "59dd6365f32f85bab86cd48a1fc33c51ef240b78fdea114cf2cdbc96a29c1a34"], + ["78cffbe7015bf2602274e0995553b432c48690503504779ad09bb20d0578cd8d9c88e0738c030000000452516353ce635819029ceb29010000000009ac656a5100ac51536327cbee0500000000046553636500000000", "6a65ac", 0, -1960619182, "2ebaab3801c963f5b48ce6424eac65a51a6463d58bff3f2e990725006233db3e"], + ["f64983cf02314fc8fb86744809f29e7e843fd1da7a681d692ef9547d5383662570dc36be530200000003ac5265ffffffff90dfe2f5a68010bcf71f68497dc1de774c3aff5afbe17956bcc17dddfcbec0620300000006636a00ab005226835af4025c8a0c0300000000076a53acacac53537b706e04000000000951ac5100635100635300000000", "", 1, -537348900, "18ca003b49e729f14ce723714d268480f81fcc989ac0d8863f40c3810a9452d9"], + ["567eb9eb03fbe5e8cc74a050df0ef569e9e513e130d34bb9b5dc52dfcde8088d0af470b2fa0000000002516affffffff92f33ae896cc0cc33bacbd9973d2951f69f6f71284c38e6d8705d83462ea8313030000000663516551516affffffff90cd9ee758ba9f7c9759b1a6ca9955d44657aba49d701ed7765333379e4150060100000005535363ab65072802f103dfbafd0200000000095353636aab536a6552852b910300000000035263ac6ff117050000000002635300000000", "005252525363ac53ac", 2, -504192381, "ab431d1ce70b104eb31838372e9784bed2d3ab535e012dbb3687bb75c5859a99"], + ["a5466c06019f0a751a966e5ef2a8e621610eabc18c51c826818c5f5ff78ab81df7d93f49a80100000004006a5200ffffffff02149c310200000000025352eb593200000000000000000000", "6352656363ac63", 0, 1686947016, "2593b7a7005b7a31c82cc7e638ca936798beb69d80a860410ab203b82a375b6f"], + ["0ab2f1cd0204857c8ad6bd72cac33ae6955721cb230ba65da16d5068d8ab48567812b2f823020000000165bf232268f70914e03633f2658b1d5e1e8a56c95f14bab87a6e79162554c43f628c177e5f0200000002536affffffff03e11f910300000000076552516a00ac65814de2050000000005ab65acac658bc0e905000000000252ac00000000", "51536563ac", 1, -810756047, "d756a5ea54b248b8d778a15a59198e0e47ade180cd8bc2e2c3334dee74057bbf"], + ["7ea257230325fbb5155da4467ceb27a01b5f1020000131d2009f060a764d3ed91477e05c460000000002ac65260915c935c6941652ccacec1b41c99048cf4a23a93684da031b183565dea3a8d26afeb70100000004000000ac1eb4dba78f59b5ff021a53ccff989bb361cd902219a067bf910e9b43818db9132eebeed401000000070000ac65ab650025573095034f5c22010000000001ab7324a303000000000152069c96010000000003525300d3478658", "53005351536a5353", 2, -1850088693, "20a186f198d112bc8a4815971cd90024a95b251d529ee7a8ffd972a234d6c3c9"], + ["f77df898042733132e447549ba378892ae4b7726c873317547e8bffaf4769532e04d54d41f0100000008536a00005351ac53805be68d22970fb72e7821fe387f8124698da35c732367cd45bbc4ab04d8e6339705b3b40200000001acfbce6147b4c82a6d00df85398a4a10d1d5192cfe9be4ac6fea2d35c632be2a37227a668c0300000005536a65ab65ffffffff81c58d9bdca7c2ae29797f6d3e56cf50e7c2010a75a67f7eb2e4e7ffdaf4e8ed00000000016a18beed13040edefe010000000005ab5263006a7c88eb0000000000009e1b21020000000007005365ac6a52ac4cac9a0200000000046a6a536a00000000", "51", 2, 641783348, "48390696c4e0f13983bbcfea2f1818e3713ade7d27cff6c803bec9c181415715"], + ["d30f39e102d4c341379a39943f9203229549275c3e82f853f893f3a3ff2dc07254e87630b4020000000652ac6551ab532deb3b955431b6e241a648a19fdf57ad6a21cd2dbd900b9d832b5ebf99725ae53979b6cd0100000005ac00536a6a33d7cd77019b699201000000000665655153526500000000", "0000ab52655265636a", 0, 349924594, "a984fc372c481734b334217312b66e339a5f25555a3dcdd66bb53098872894be"], + ["a212c0c3017b886f46106282239c3723e6b47c1d51ded999aae83db4cf230862ffe4dfd710010000000451ac52537fe201590134b0e20200000000065152655163004df88c2f", "6352ab6563ab655265", 0, -1240857885, "92168e863c07b6b8020bc26ea237d1ef672b04a957cc0e153c9132995bc21b5d"], + ["70bb0ca502e14ce2a1db88bb364493f1fc5e68e14f215ea341b25422dd313381398960504f000000000863536353ac5352654231612ab0d7a83395bdd0d76119d241c3a7d2f0a5f0b1efa34ff282007d8082a9181ef10300000002ac655684ef2a043e62640300000000015267149c0500000000056300005363ef59ae0000000000001e83b3050000000001515df7a110", "65", 1, 945485660, "3a37c7cb8a6d8e9a69b558108fb716ed33ec6f2cdae16534ad8558d3fba5a836"], + ["8acf7bf1042aa31952fac45ed3b24bec0feefe60c1964d7ef7ac6c0e9ca18a1806dfee697303000000040000ac63985118d1f271f7e694976b97ce7364cbe333239125ea8730f6ac749b3fd39d6ae459d6690200000007ab63656aab00514f1a1cba688434624e973ff1aaa5754c497f58884fdd3c4b3eb3061dcb8566803bc83bed010000000265aca1499591228cf02e1fc7241af211b21a696ef3cd63c11a35c9cb5e73501ed0f68e53077b0300000000ffffffff0255ab0a010000000009ab536365526a5365ac75cd31000000000009ac5200655265ac636500000000", "6500acac6a6a6aac", 2, 1644798996, "9704cec852097d9cbb8db1d1aaf8acb7bd8cd27b46ae518901c5ec69ad934c58"], + ["c6f195d3046ee126c51e36fb692653686d2bd4af543b294d54425cc70a4e2f2c762365ca17000000000163ab4e27e631906283c51d499f8fbd6dd6fd19400742151530c5dddbd0ef8e0eb6af01e3790100000007516a00636a6300f02850a407ac8218735343ba9e500026840f23eeafd5fb7b4f54e6215ba24b10b3651cb600000000020065ffffffff78e52be97b0c50fd1705222fbc2c7b7077f4da51fcabfc68e231f88acba3f8500200000006ac00006563abffffffff02768a6805000000000200ac24771f0200000000035351005c8e40aa", "ab53ab51", 1, 665647540, "5142403ae9101a50e41b99183917f5ab2351e1084db9dbb42b4666f7cf4be494"], + ["8a024ddd0344d2305935cfc770301186256dc5e4d7c7aa5abf583b87eff84d427d7200ce4a00000000066365005251525e5bf32d0b95aabad88fd9cedd83edc66aa09f802e65b1913b90fe78ebf9426478f0274302000000086a5352abab6aac63bdc64a9bd57740195756449870a19288a6084e7dafdc02168ec2465a9c2db7ce490546890000000001acffffffff02b0a20e010000000000f2003e0400000000096a6aab006a526a6aab00000000", "5153526500", 0, -728462456, "888d66bce9997e2e43b4f424759446266a977b3e7efc171c5c8edda40b79aee9"], + ["2cd42a7e0297ad3ac6fed46d4ff74a3c1009bbdddf68d75ab22115eb4e57a2c35b0000ed800300000006ab65536a63632596cce2dd0fcaec4f25b9ecec32c1284378043a7b32238f84dbdb3f3566e44847f7cbed000000000453516565ffffffff04d57e280500000000025251899b130500000000016a147581040000000006630052535151cc513c03000000000700656552ac6a00dfc412d1", "526aab5363ab516a", 1, -1902652323, "93ca7a084e02da1dafcb6676d00c53e56821892aea0712415d018da0cb6e8162"], + ["e00b06570235f5a41c42590ab417d7eb1fa4ea93a2f7aa2494daa4641224511b1e1af0c4fc03000000036a6563b5fcf262634aabcbe2a48fe5b8145d72cb3c138fdc7f49bab883b2ca8ac3f6e16cf933c80100000000ffffffff0166d17a050000000007abac536aac536a00000000", "00", 0, -1172607444, "0123e78c84c2888d12f0f6ee0f38ca01ad52a304f0453c04dce4acfebd973b0d"], + ["b6af122501fae3def63823ad7a322c17c30310c9844bda0463dd7d629f0cb802e1d4132d710000000009ac53ac536aac53ab5188610fa601c4109802000000000000000000", "ac51ab6a5252ac6a52", 0, -495736195, "434d09643330a9fc9fe4db00a8cf4b290531d6321213d3723ec6ef2561f8db49"], + ["d41732ce030f5b912e23fcdf40a0c40971396f0d67cc5d53ecb78af14fe514aa611bd05d4a0100000000ffffffff68484e0e876e26d5794a89d360b8c912e57fbe6c1ce69b9e9c458391350b9e2e03000000095351ac005251ac00656ffc546957632ee1bc536e61ffaee71ee069e0615a1ec52a7f2ba42b41cdfdc5991984e40100000006ac6563526a51ffffffff01dc834a030000000001650c271d75", "0063", 0, -1649073549, "eb163b66e1f728aab11668cdbeb3376b7981496d5ec005b11ab7f6fb4e244006"], + ["ebc9926e04aa2444b5c7dfbb078ad0d741d66f182ac1964bd04a7934908fafb6eaac97c04e0300000004005252000fe3d96866b4733f3756bdccd86cc55a2f9193f48a0f2392c7d8658a2ac5dae243c8486a0100000001abffffffff92545c0387996fb47056d67965617f45cf5cf50b8325b624102e24db1887cb2c0100000004ab515253b4ebc91c79640b07b38db76c416652db8671f0484bd737af7c89032eed5c2e99dd79027e0300000009656a6a6363516551acffffffff04badefc00000000000763656a0065ac528fe3ad000000000008ac65510052516351c6784602000000000463656500f42b150400000000056aab6500520a68ee66", "63acab51ac", 2, 1868751267, "eda4cbcbe3e6692f61816f65ba7fad1c81a7a355147182c6aed9a6b0e7840978"], + ["981cb40302abbc60e004443cbdc4d852011a181bc953df039a925a6db7137b2c779b9769a60200000006ac656a65ac0078803e844d237acb70570f212fb1ac3bf1e512f7efb12cb3fd517ecc08c9bb172233c5ca000000000400510051fefc7a45024bdf2f050000000007515352525253abfc9dd2020000000000522c5b85", "656aab536552", 1, -696592228, "a893e6c7b1f1de2b4c923a2959a0669766a6a23501831d116bbe441f2de76a1f"], + ["50b230970220b0ae8c0ae83154df3e61d9a5fa2c0321fdf608bae458a6c5b4cd7788f92acc00000000010002ffc955a0e03b519a5411100ae697b56c0811d22e5f0808e5d217ce353a74db7706bbfc0100000008ac52525300525251ffffffff0335edc9020000000000617dc904000000000652acab6365527f727901000000000765525252525365c18aa2cf", "5153acac636a", 0, -1588717976, "7ffd1bd49f8ea441f5266b8803c9ffc6c48aa26fc3c9e99528297e308e8cc94d"], + ["0e86ef7b0427c03221d9a6a5bad499ebe10996d10373d41e5f5ed299f50d78cb770bbf5aa30000000007abab6a6a525163ffffffff044e489ef1951cff9c932fef731aeb5444df58d7bdf60244b43d68fab56b00ce010000000600abac6a0063ffffffffe5f7465b2d4874c4cf1d5d4eb5c71191b515e43b3d59f0497b995f0774cd7f1f0100000009510051635153ab5265c4fdb1d5c690726b99548de91e64891591b918b9f2848baf9e875d2cd37312be5252de2202000000026553ffffffff033f66210400000000095252acab00005153515f65b7040000000005ab51636363d03723010000000007ac5100abab005100000000", "6a516a51acabab", 1, 2130428804, "fbfde170e6cdfe8ca1825d30d161f73633c468e62298168bbde0b81810e44fca"], + ["75fc6e9e04c8be50aba3e0a60ce71f1cbb7e26c956bbf6bacafd33cc60fefaefef68cd9230010000000952655100ac00006aab839bd3b5c6bd001f3b77df66df909f3fe59324eecc3eb8a05186d32b0f372825aad54f700300000004ab5353ac4bc31782e0b077bd8d46e115ad93be1d72c1bdd029241ce705d586cbf7b112b15e42483103000000070053acac6351acffffffffdb1f08814ed248ebe71d3635ac5f0e29294c80c0add4a4fa97b1914b55f40ea20100000009ac5265656a53525165808747b20185f752040000000002656500000000", "ab53", 2, 166337136, "6e9b64b3f116cfb7f6bbcf08f2689118cdbb696d50f091e27baef8c911b2ffb8"], + ["06d1eee302947c42c09a3cbdf3836dbe3c310fc31563fe288c310c271cf64843f08484b2c0030000000553ac63ac00ffffffffe65fea0d9e6d762861d8077c68eb634191847d69e28ce8a739b16f103ce717a40300000006abab53ac6353ffffffff026b9dc903000000000017de1800000000000551ab51006a5c1fc3c4", "6552acac52ab5352ac", 1, -2147146882, "7ac358c794bd04caabacec83da7ae700e1b3b71305b210b33704ae6e28fa581e"], + ["bef50c73035f164bef1085ba83e3e2b0a6fd31a203a09fe5cb6256b31b2cda967cc1c9ce190300000006ab000051ab005efd75befbefa4ea12200c561a4b9923bc56c6f2e6f18e2c52f20c7aadeea4fd9e396203020000000863515300ab52656affffffff61b5a0af9021dbe327a21c27b149107a5b1f7f8b3c283d898c01a930738405ee010000000963006a6553ab53acacb568a88e04ef9432030000000007006aacacacab5306236a02000000000163afb36c0500000000086552ac5151656a51cf5c170000000000000051d6fb", "53acac53", 0, 235024937, "511a1b470487b9ad7dfbba309e8b7d345e078e2b77f7c998259e3eb90c8e2b86"], + ["d9517d2a01fd96a85582149bd4c7afc362b51160ce53fcfc7eae226cc88e7a415b4cfdb13b02000000066352516aabacffffffff02c81e490500000000046a6aabac86afca0000000000030053ab00000000", "00ab0063ab006a65ab", 0, 531156938, "7a8373a7ce8e0119105ee61fa7289cca6cafbf7b242811945a800cb9d1881668"], + ["4bbcb4910420342ac5d501a0c96748658cc1ab438c0ee8d13f1d38d079b8b3b4ac95e726400200000009510053ab5200acac00579fb097f96d4d3b9157e0491f2642156b1393f5fc45d3575dc76a73c3091cf36e73f09901000000095300ab5252acac63ac486dcb68218d9d9aef57d3b04b56d2689b5733e7f4659fc31719737a0238696cf844a86603000000086a6aac526a516a00ffffffffb3c4b1abd5bb931ef4e4f811632f119f62cca649feeaea8967abb6964a5c01690000000004ab6a00ab9e93c51602bbc84201000000000000f65e0400000000046a00005300000000", "ac", 3, -457768943, "b8e5e0cec8fbe6e8738311c107b686c2d1b5fb98c89b97c1271902c2a49c4993"], + ["f39cd4dd033beba1cbd3f05f0bec7b59121e11c34d33245ff6b2b6bde944f69e9b40b31260000000000452006352ffffffff1594206dea4ec6533e77e0a552d4671b61e48ee47cb923a2145a0ca3224a27440100000008ac53635100656a657e0157169a067478c6b1cca94cb06175d7d5ac927bbc32a7933890fde570f5245a9d935a030000000253ac1f60f76704c625e50300000000036a51635aae0d05000000000352ac632d1ce6010000000001ab84904d0300000000025200c407affb", "6a656a6a6553abac", 0, -1074696571, "1e641cee60cbb5df15ae8426e7d9f852a6bf0b7ccfc786e9dd4d9720fd578c2f"], + ["e3a128a80247a5b0f441af2618cfeeeddf248a6466417869c76fd747ec9417ec032b9dfd80000000000163ffffffffb4181f3cd484e1198f97599f154102457db35b2fda9b359156f5cb00fb1f606602000000036500ab59a026ba046486b002000000000014dfc40400000000066552ac65abac8a0be704000000000651ab52ababac1e09c6030000000004005351ac17a9aac8", "ab000053006a6a6352", 1, 1089478126, "ba008aa73ce86abd486223a3e60de84b7d500660802018238bb8d78998c095c7"], + ["3b7015db02108a2e659ddfdc31de336c5ad60447254c3b83e26de669dd6c352e1d143652f0030000000251ababe1c959421c45fdc6b8f7656cf0a858508940cbdb23a3a15eaf1693368a07670db9137503000000036a516550b9401604dbc88a010000000000a0b10a030000000002006301e69205000000000551516363ac627bf6020000000008ab5153636a65536300000000", "", 1, 495914768, "76744576c02754bca436978d07921ab221dd15cb8e3d463c0c7d9c5e3209447f"], + ["ddcfca6a044a9c4793235d42b7ad2644e235e03bc9d25435ae80d3febf8080463b11aad2f5010000000663ac53530053ffffffffc1dd13bb774136a317f51a893bc4baf9b345fa7619438d4f8808770bf85b813000000000086553526a52636300f28ec9b146192bd216aaee9c845cdbb3744b0fc8476e9f533a6756b2748c5a53f20d42400100000006510052656a6affffffffb311f6a17f1e9ed08c78ef7d8e9a0abefac49921ff19eafb1c23d87ceec9957b0300000005ab536a5153ffffffff02031cfb020000000006515252536565fbf49b050000000002650000000000", "6aab51655252ac", 2, -1551272205, "31ef6b9fc8c37e25b642300be74dbc222510ba8bac3614a54fff370cd8fe6222"], + ["edcd6fb3032037815d167d0762e91fff823e442217a0a0c02df542d4fed4df2d0dc59b7f8301000000096a00536363536a52520427db23188546f80271c43a4c3e93a139bb4442dd9cf165bf82ad37f4cdc9d7ecf17dd4000000000452635252bd872e479d283d1844bf86454168e3c687392d55c584a83f075d1e9eca61705d42d688fe0300000005acac5252accb0aeff1041e93d70300000000066a63ac63abac133ffb040000000002acacb80de50000000000096a53ac525153006a654ce8fc020000000002abac00000000", "6a536a", 0, 1496112435, "434d1c76fb689b69325996c1ef470ce0c841c0d95c8447e59113fc77ddeef0ee"], + ["4fc6c9a3019a62c59134409cbc71cb5e295bd310d2bab9185ee5ad571364753e085082c475010000000152ffffffff04025486040000000003655251d5c90501000000000452006aacf065150200000000055251abac6ae1fb24000000000007ab5200516aac0000000000", "63", 0, 490050437, "b0442e810253cce8a9065cb96f3134878ff5d008c0f19da07c5f28fe1edb3975"], + ["964cb21001ac890ebbabaad64e8c5395325655dbde4c58b0d1c36545d0619ff3f25a20000301000000026353bff17d2c04aae40e010000000000dc4b1802000000000751ac52ab00acac040c9504000000000563acab65ab673e0c00000000000565ab5365537f08db99", "6500ab5265", 0, 1760289536, "f7d1bb9dd6f5f6982bd7005ed6202fbddcbb817139c88c5dcf79da0eb5c468c3"], + ["92eb30e80368a2516c2503aec2e69c9513f6903953729767ac66dc5059132036e9e45794b10200000004656a6a52e45e0b2638edd527f6871ef3215a27339c1e44a9ad3cf9b0d55bdb8cb21638e4a9eed87e01000000046365acabef2ef9defe7c1da8fb78020d5b8929dc9bd8db130cacc6ac07a829cea02b5463ab064f2e0100000007ac6a6500ab53ac72392f31034506d1020000000009ab5151536500ac63abb4bae5040000000007ab6563656a6a00908d0a02000000000352ab6a00000000", "5251", 2, 459484055, "aae7905f128aec1b789b04f08a881fa74b4afe4138f0c0d90e30a8e91fcbd7d0"], + ["c58355b004d2145c4a7c4a7bde4c4a7c7df96fef6bd331dff6ece9ab324023f1f86b79f4250000000004005151ac75617015ae9a5c31730f1e2f76a09cc6756d07bbbbca9ca8991d06128988ec7b9b945d150000000004ac516aabffffffff878e63cff85254646bd9a00f4790320c9e1a34648e4472b3e001cd6c8c577d900100000008ac00ab00ac005300b4a66261998f4e45246e34f14c5bfc89f6d5d19c2594c2d84a959c461cbc857d5b1426210200000005515151ab63ffffffff01cb756d010000000002abac00000000", "526a", 1, 1271517815, "5f59b2f6230301e28c731fc9a9fc45397ac15a8eb999c1f34615fadce4c60e76"], + ["08299f8e0268205473146411cd694eb0942fe978876516216b27c856de56b3ca9a751857210000000000ffffffff7a3032192a04bc1f5abfed2177911e74c8e24070f4ea1e8c12901c437944f57400000000075200ab52acac529764f17e03397c99010000000009516a63acac6aacac637ad76a000000000007abac51536563ac26947e0000000000015200000000", "", 1, 1437815428, "e7125e4fb5e854b5718504e87fa795c5d8f75fcc08eff4b965318f7f276bf472"], + ["f8a82dcd04c7d2fbe6e8d1e4c2f9ce99f3e45210290e12a396d0fcf8441d62c7d3efd73b4d0300000001acffffffff627824507a63d5c3f1d83789c85a5dfea4a2584662e1f043585dc57364498bfd0200000003ab5265ffffffff06547f4c10c70c6cb9914aba67c833edf83fb34212f2627ff5edef1c8a8aa93b020000000651abab5252007a3158046d3f8853487e8e8ce11c3ebf3d511818e610f63a00d0a1855b4296f59fea6e180100000002acacc0c8d9ad044c408302000000000465ab0052b3c6d5000000000000b43ccb02000000000963ab51ab5151ac6a65ff3d510200000000016300000000", "ab6aab536363", 1, 1083697987, "99d3864be2df00db2ef470346e9992833ffdfdce1929fe277cb06b036896dd18"], + ["550b7fc50459d858a8128963b9b188abd32a73389bd5f3d055e5662ca1838099668d19729300000000030052abfc17b1d3ebb8b8af02f177afdff5728d872ef2780ef0ba50bf60bd8fa6b4f135f57140c902000000096a526500636a000063ffffffffbf0271843c8c83679a11d2bf3328a4e1746b40a01830da1b0817f3921829cd140100000001acffffffffed94324cc499b7d4505b9a43e7da707a42dd1ad99ae7923f5a59528bd9e53d8e010000000565ab6565abcf5271fd02e445cf050000000008ab6aab53ac635300001c760000000000026551b1d38c56", "6a00", 0, 808351614, "5c1d2b4d15a0adb1105e3e3d8f9d9f4a3e83aadd3ebd99a034c68e3070803526"], + ["3c190e0104311b26f4f3d81413942bc8246a9ca7c8cdaaa4247103cd7cbf89f120e5e4b77d0300000008005152ab5353ac6affffffff5d128288069672de1d542f975738064dff951a1d0490e106298243bf71fcfa2602000000040053abacffffffffcc83e387747be1ecfa7e172238212c68f0356607ba32cb4ea5388a8181bff98e0000000003acac51ffffffff59ed65132c456a5242191b7f49435b35480f69c8d7858e009a8cd1901ec1f8fa010000000165ffffffff021d6887010000000002acac14b2a00200000000026563a79d0563", "516a51", 2, -1574365388, "883754201b53f73eb2ad4cc792cbec678e5571159a97e98a551bd9504f32f6ed"], + ["532663790105a443eb2722268b8ee1a58c5a41c94845d0a2bd5c6428e58cc8783e29adc94b010000000763526352636563ffffffff02cb5be9040000000008536a6551536aac6a1630f1000000000002636a00000000", "", 0, 1229452413, "80a21837fd2d2972002f6c8b2250690020d4b8c33ed209c74fcfa2a90e707e7c"], + ["204722ad0269b6ea6d429f34825ed167e076522d40c70873c4286707d3f526dc8ab548124a02000000009695ce76c73204e84ddee4f8716a42542186de8ce095a619c0669ca3a2b350c998d9ea9d01000000036563abffffffff0302aa3204000000000353ab53f38a00020000000007acac52536551006c81c1050000000000bc38adb4", "ac6a6aacab53", 0, -1645115737, "2681c50d30b10ccd109e6d816a44a97d4372f433ea95915c577d50f654e35e1f"], + ["82dce2de01f0f70222a92d35473c97cca3a06ef248e1c147fe44b8447baadbb74e4bf2808f0100000000ffffffff011a0c5801000000000953536a00515351ab65848576d2", "", 0, -1003089181, "98b7af3fed5f8b1c7e0f279f521b094bc245b220349dc8062c3037e1d6d74b03"], + ["22e322c604bd09b488132b7a8ce3bf8b065e16a2eb25f2ab1c6425e655440c4903c9384c9b02000000056500ab53acffffffff97a677792a2f578568ae4181a30cc8426f467c63a4a57f8bc9941969b0cee6b5030000000765006a5165ab65ffffffffb38f7e5c8986eb9b67290bcb1b052853326c414d32be4d41a83c9648ca0bc4530100000005005251ab63ffffffffced338c08e8ee02556788ac99612c4f3556065772cae61489de678a664af5bc00100000002536affffffff047890d700000000000153e3cbcb02000000000900abac5163656500535333e10200000000096365ac636565ac6a5394446304000000000700ab5365ac516a6bf3bf47", "ab51", 0, -958380932, "21bd3a6dd35fc49883747962b74af457847a65486dd89e396b1205bf25d3f1f0"], + ["88f6f07104c41c139ac58229704fe319486d3d42af88be1251b7d482aee41559ccc1e03924020000000553636a000050fe6084b45eb0af540c8f4c8a776e96ff7d18f561aa944feef56c6f488bf96c647aed96020000000152ffffffff11b0e85035e9cadb2c93df72539f6915833488658501d5924e719cee9998eafa010000000351abacffffffff6f064a00180a47680adf37429b1c65f36e2de9248c86de890ed3752d6b6edf0b0000000008acac65516a6a6a51ffffffff020354ac040000000008656a005353ab535328aeb8020000000005000051536a00000000", "51635353acac005100", 0, 260003540, "fb8684f5796b332e4aea1cd8c4749e60d6eb61495de2a3d9d76ff35d11482253"], + ["6b745bb4031200a4817ffebded655c332a8958f501f7dcd81f0a774f9f086b90bafab7bf52030000000853acacab6a6a655135cc423317b402062bbb1eefc65668c742c7d099ab6c0104b8bb86b2e981e0331be1d97003000000008ae09842f7d7d0106e80d76c906398897ae6d5d4de59af6b598c93b01df1948caccf34810300000001ab280704b901991242030000000006006a00ab526a00000000", "", 1, 1511627831, "aed567c822031f2138a2a3404fac40a0eeb3753fe080b7432e782d64ca6cd180"], + ["fd1c81e6011fd0c7444d61e6044f27a11b627d19574fcbd829df298758e3aab01ab1ea40e10100000000a2bfaa1104401269050000000000353ff5000000000002525355834b0200000000025252ab61120000000000016a00000000", "", 0, 765760647, "bbbe927cab7929738864cc654778d437948d7844afbfd8124565b1ad28063f56"], + ["ceeee90904a86e6a3ad0b99b7efd6063fea7a496130bec8b6f7b87774217d746c4101c975402000000036351631bbb567eaacb11f788dd82297dc75a6e7ff078270f897e674194c09fed70f3562c402a230000000008ac6a5263636363ab6616d962f49677d9ee10b122d53b7e2a80e780614e1f672d3491d29f444a1b37ec7471d500000000065252acac000003099b81a66f8cdb6905fc7ea1e3f61376973bd5db213d49e59f6c6372e35c207f2678f2010000000465535300ffffffff0131274f0400000000016300000000", "535200", 1, -937873087, "b4b847c477a5b646897233b8f25089eee407747158f8b521b0e9dd9b33910047"], + ["91f79999041155455ddba57f3999d5a1445d8c728df3a25add32211ceb9538ed94abffe5e2020000000353ab53ffffffffa7a8cc85499ff1ab940bb160b09178484c937ecfec9e1d723b241afb9c7adf000100000005ab516552ab6ee155139b6d902f481160db5503476ac85cd43ee1cb28ff2d941b0fe9c6355429737e6100000000066300abab6552cad5fb7769ae81f0632ad402743adae108b32a6971d87b84a35801893c26eb0b52abb06702000000095200ab526563ab6a63ffffffff03e2e19c020000000005ab00650051704c0205000000000900acac51ac51ac00abfab48c0400000000056a0063535112351ef6", "00ac5365ab6552", 0, -482138264, "399337dabb387bd1fca77e9cdc66cbc63aa6f728ce75a2ad388b2fdd4867fb41"], + ["12c546b00244305f1286c558e4243b6ab3255bffd2a7e535b22523b674062f401972a55c0f02000000066aab6a656a53fc92da53b2c348fdd1ac31d5384bf9a199e8593085fd228918015eed543c42399891b0fc02000000045152526affffffff0125ea3e000000000007515251acab6aac2640d0be", "5352", 1, -650813791, "00e7c9dbe766a268a8b137bdda997805db896b826672dc86a3a8752f66e4651b"], + ["b059cc21012dae5a75c56e3745736f36a8653d88bbefabb5a67b4d80f08ecb5d3c51efd0680300000002515307bfe8c00303cab6020000000001ab69c4b403000000000363ac001d1cfc0100000000036a656500000000", "5352abacac51ac", 0, 342936123, "565db01b220392549978711bddf4ac408dbaa04f9c3b6eec3193d80bbef7d788"], + ["4ef692d5028205d89e7bac7b10588d72abf28441d0b96812336aac71603f527e2b7c823bb6010000000451656a6affffffffd7d169ea4ab421f4b21695be1741e6788c8d5b24ae03d6e32cfbae3b38b2ebc90300000000ffffffff01f1f38e02000000000465535253709cfeee", "65650053636563006a", 1, 1615119859, "a636cd6125d6970c011e658d278720aa13448e9f36677760ac52ffbddcd3b9e3"], + ["2e8d247e02912eada3cf00ff1278163cdfd8cf063a515e6fd7c2828d3fe181a9024a25c6cb00000000086aacab515353ac006ef17ab75eb51528848964c89b743dcaaddbdd0cdecd48cdea0d241629250cde22620b950100000006ac63acacac00bbe23ee3019d5c8105000000000552ac6aac5100000000", "ab530065636352", 1, 583819542, "7b78fa13904f08f16407d0fb9393b3264f8fb059ca0f9d94ca2db8468fdab434"], + ["de3c6f35012b47fac1ac7cded9864ab52ac88cf068485f79634ddaca79027027e69a8a1497010000000151ffffffff02b36f70040000000003ab6300e99d50000000000002005200000000", "5352ac6552ab53", 0, 653187858, "f599422a85d9ac14b8c0745093fc12ed96dfd1b7c072a51ab22ceeedbdc598a6"], + ["e01c7b5604c8d28720ceae04eb1293a3003a48743062f30fe98f2924fe7837053027549d430300000007acab6353536565dcb5bfd0a4269d856b1616e50fcbf927a2d8b12a2c4ebe04fbcb4ea199460f27bf817dca03000000056a6aac63518f9c1cfd4171a0ebc37a111c99e48e03a744e11a3ca7deac7584b1158bc0da71e5f3b2c70000000005ac5153acabffffffff8333f2e86f6c500a12a41678de452a1176f964e87c79e85038f14935f772c40c0200000004ab5353abffffffff04f51f9b0000000000008c8432010000000002ac63b067860000000000066365ababac6a6ffb7d00000000000000000000", "ab6563ab516aac00", 0, -2119488633, "5736fed4454201344a7bd72f31737bb0ee19f9c67f6ea56194a684e24c83f8b3"], + ["270df0d702cbb51e64c028cb6202aad1ea3519e59876811455894323b3bed4f119009da7170000000004ab520000ffffffff93320a58c554e7b8f53e6169a58ba88a9ef05bf50ea9edb291e69bc11798a5450200000001ab6f1f89840201dcfa04000000000453535263fc4335030000000007ac65656a5353ab00000000", "65", 0, -1119599519, "b5c2e4750540ed547314737d4c588835a5fd3e944dcd90ebc606a4c5b16b6bb9"], + ["ead2fafc02b02fc4c7544d8e3d9ac8ba5d4776b78a0b1a69c4a5410e840524030fbb0a636d0100000008516351ac526aab52ffffffff07da552c6c9a34ed42d5cb4e285cc0d615d8250750e30f6571167f888d69fa7102000000095151655365ab6552abffffffff0142a28a0200000000035363516b738c5b", "6a5163", 1, 1956166093, "0313cec31d80397547ba407b71ea4b65cd5cbc274fffb9c63886dcd0ae421e80"], + ["cbff6b22026c5899da896414bb7f7fa8b63bd9c4453540034a485349608506c8050eca31dc03000000045365006a4f7cc2d685909af9d92c755b2e4cb1f217f1624e144ac1478287532b1216e081a04d4a97010000000251655bc7a92a031792bf040000000006ab63636a5352d3ed160000000000046a6a52526cf3a10000000000003c863d7a", "6a5251ab", 1, -1335114996, "5314aa58d4b1b730a3598c2bd123f333799da31d0d2cd80077dbf136f964e78b"], + ["a4aea1f603d7635d4173ae865a793e98c8832e2a02030c3ad589dd8e2f0c87f573a846389d0300000008ac006aab0065535167473425be8921f02ca42bdfd3cd22c483150db5feb9d5fbf0c36a46bbf20d356cb7633d0200000003ab6a53ffffffff5fdaddafd957bfdd606add2235d70e0484388cc9851a372adcc6001c12fc2ba1020000000951abab0065acac52acffffffff02651754050000000002520022fd5504000000000552ab65526500000000", "635165ababab6a6a6a", 2, 1642630273, "d511aa85b32d4a28bd22c542091a8cbd6340a0d014880840d4be9fe040f28a3d"], + ["765ae2740203c2c5a7d5a3b2ba65e67a9edf63d1502d4dc967f4b9d3d38192aa6760025d5e0300000006acab0053656564375e138bec58b40e68520dd7df6d20b7a1cc55458f3dbfab3556d41623e5951d79e4a80300000002ab51998a7e0003594a480200000000080000536565656351a26471020000000004ac00acac20f35b03000000000000000000", "5352ab65ab5200", 1, 91528625, "58a6a4ab2a602b7ad3e7f8cc39a97bc3b44373adfee85308285c12790e4bfad3"], + ["e9aab50c0104caa8ca2c6c6f1fea82ee46781c4dfb3eb4a7a7ed49b63eb24e9f49d1c0a45700000000036a51651bffb57a045a19ac0500000000066aabac635153d319e10000000000066a63acacab51861509030000000001abebd06505000000000663526a63636a1e5f6048", "51ac6363515351ac", 0, 426643381, "ca59ca20755d5f77a5288c3741a701b545d06556058cb32b32f5cc767e707eb7"], + ["5fc98da3032078b83ffa5149887922ab3562711b1342769c5ea63f0b29e841dc7b18bfea0003000000016365cc98855faa01a23585ec2f113ff7c1edeb2178f9e76b1ce1f718a0db390b93ae2415400300000000ffffffffe1ab124c5c6f54a426efd8f2fcbcf1ad7a946b5978609ff7dedaeea05f2ff0d40300000000ffffffff01ad7b13030000000003656300af75998f", "00536551656aac", 2, -576348942, "91809c597637145e83509af7533ab11642592053d65ec5f42778961e6af64476"], + ["71d3fd9102864614f36bc375bd9f3b0d6e414e01015ac8e0d54dae0d6c0dc2c12b42d8dff5000000000151ffffffff413039cf7f5bea0a6d487e62f2869bbf428ec2f0da7f3a19ad2254225616aa1e0100000003ac63acffffffff018fc8ce02000000000800ac635251ac0000f19bb8ce", "53ac", 0, -931317300, "8ae75977ecc7460ef37fe532fc490faee8bbb0efd655382efeab091b068a0c15"], + ["dfb3c2bf03e57bc82001afc66f31d07e41af400d0ee60f99f3277eae088ab6bafda3d6309401000000020000fddcd7ad9e037fec4a3ba695d7f8564a8008cff0114478a76bbba15feaa8d5e2c2d1839700000000056a52ab5153ffffffffa5f7f3893039925a266b2fdf86228d94e4cd1a054df63d049271d12773b28d160000000008ac6363ab65ac53ab2095767d01e17151000000000004630053511ce72cde", "", 2, -859172694, "4376b5a7c7362df90ca1cb212836fdb574d99ac6b45700beeffe6e7b8c73c307"], + ["7757945a015adf92ddcaddb69b3e48b176f3905a655aca82d6da207869e2a3a670be194153010000000165ffffffff031546360500000000005bda8c000000000008005351530065656aeb6f9a05000000000565ac006363469841cc", "", 0, -91691503, "5f5788222f35ada2684a821d2d3015517ee7775728b17b6eb13bc57b149e9fd7"], + ["4cea887f0226f272fa2dfc2767a36fdb77800a29b66c4684332c32527ee9f99d882244ee200200000002ac6a5a795b404a80c334b74181f084d081f8fd733510c7bb7b5381d4b1dba9da97e2fb9b4e38000000000400535251ffffffff01064b8e050000000007ab0063abac515200000000", "ac536a51656a525163", 1, -318644127, "a07ead5b86165699e7b97a209d968f72e01f44193bb669816352d518f1b080f8"], + ["744324b4046805e59f44b82bcfe60cd8364cf46b60386351d12fcdbf1db0c1243da0284d440000000006636365536551ffffffff62e9b3b604858dfd6af289207c4915bc0f33ae96da0431bae3423238e8c6fa8701000000026351a89bce2b9109594fffd7be3b49af99ade8cb247b78d5e5afadc2a6ece76830d917dfc9330000000004ac6a53acae85ff97784cafd5d81358191cf20bb048ac187542d074f179afd79f10d58ea9916b21db0200000000ffffffff03a0ebea030000000007636aab516363631eddd3020000000005536365ac51ad45830000000000036a51ac00000000", "0000ab6aac", 1, 2036247934, "cf0b0f0559d2f38673bd7eb80da3564ceb8de4cac5bdf47b6578362d96183e91"], + ["29d126d604724506f3e547deeec8e64b5421f8d75169a9f2fa915ae991f1628b6d3ac35fa30300000004535353abfffffffff921d6e9d462fd339e7124a64e5bee33c0b8fd9350a412f72daf5dee3049e75e030000000263abffffffff8761c898d7582253daed133073d408cd21d13b68a52f9f13ef9f940421e720ce01000000000bb1bcdfb531e0ef5f7c79ccd27cc585a8a1f1d741b691097c493066945dd0339c43a61d0000000005535263516affffffff0495f4d7010000000001ab0a69db0300000000085100515351ab00515ede6e030000000003630053441ee6050000000002630000000000", "ac", 2, -519274523, "c310dc523c1765219ac945befb7b2ff5017247664b52bd95c5e8d6d71a60bfd5"], + ["01ea420d0375ecf17257e2425631c9bffbf74dc0c8dd67d946b33baad7b768e9aeb208df69000000000451655263b2eb9c8a135b906981c6864273f206326976a9705a5966823ac3bff2609668a84721812a03000000050063536500ffffffff69293217394f0f115c66e29604a39e11c94eaf750b33af1bba35afe59dea2450030000000852ab6a52abac6aabffffffff0438e1fb0100000000086aab53ab51536353c4501b020000000000739f7801000000000553ab51650040604300000000000352515200000000", "ab52acab", 0, -952647150, "6f713c95ebbf17ffc29bce0d60a218c6ff0f932f2476c2d3ed873f742178a9c5"], + ["905e10300372aa366bd51166e4edb4d167c972edd7a7dd1a2880b74893fb81625f1cd238130000000005ac52ab656363d1fe988a4f591e37299438da12db915e3032836e202607bf6fd3b9ce713ba0c36ac6db0300000006acab5163ac522329e1580d19456ae78378206575a1cc81fd8aed0cce18bcc88d4a0409b10cf67b46c80c000000000151ffffffff0369f236020000000006525200acac00120c1e010000000001532a48bd010000000000e5124f83", "6365636a", 1, -485174786, "a0fd34908a18468536d6e08c55c5fd791070dd3685c33aa84ea2a971dbe9457a"], + ["25bd604001fb47eeec6cc6826ebc22dc93b5d2d04d70aaf4beff8f69cdaaf300620d6b68080100000005acab00515113a8779d03693b48000000000002536ade6adb02000000000953ab6a63536aab65522d18ff000000000009acacac535152ab510000000000", "", 0, 1789593639, "d56814697a6be8c3f5a316497ab231acc5f671d5c4f564525bd9fcdc81fca31e"], + ["df14a66d04ef2429622d334584be0cf8d7b1d2f9dac6502402391334e995966e8c789b4cf00100000005ac6a6563acb42d79f2d04601057eafef7ee2c73e472e93f502d62844137b5263e29f878e4024a08eef0000000002ac53bbb00aef9cca3c8f54c783b94bc0c49e114079de3bb21b40502d6aea506eacb886ce8617020000000600006351ac63c478c6d4e93a3c8edf22a878ac52343ccec020fe125161ba93a1152cb1aca7c6c4f2ae5b0300000009656352ab0051005265ffffffff0480e9700100000000080000ab52ac52656341dd3502000000000765ac51ab636500e4c27f050000000001633cc753010000000004636551632dc00393", "6a51526a", 2, 237890431, "6aebde897abff45efb284d59f44483a3e6462b153544eaca33ebda69bb8649f3"], + ["3b1d080f023c449485b9cd04812bec2856b59a3f0b564747e2268fc8ba9ae48e163c1c34b1010000000565526a5253ffffffff0973e39f600ebb1ecce5d25bbf09fd5709388c9f57b9e963da2948f1d655245e01000000016affffffff04d34f930100000000096553536a51ac655252296dcb00000000000963516a65535365536a4726c9010000000006ac0063516553ffa5110200000000045265ac65fae4d03c", "ab6363", 1, 1884015925, "9ae0730ec57517fb4c65dabd5eb55017a1b9168b1ba12d418d4c0c2fef668893"], + ["00993a37037c6424c0cb6b848e9c3bbebbe0808b8dc10dc3087512d1d799fd0f1fe72d4751020000000551526565abffffffffcf3f224f01ac5409b5cc7a756a768f5f62576178b2c4b710f937bb77545a709b03000000050063526363ffffffff20a7ce5465703e1c921d909ae394ebca54e898b90308b26f04b4b8dd687d6c5700000000080063520063ac5265e37f796702b8b05500000000000263aca70486020000000004655251651a634638", "536a00acab00ac5300", 1, -1026455844, "2a404128dc95fbb068d70a60ed3b9e9fe9088971d6a522e12e0051ae95e76e85"], + ["db9757040363b98940ce442452a0f2c1f2b45e0b6759de84aaa65757201511862fae810cd502000000076a6a536365ac6affffffffa34f6b31100b932087d454de3ea40572a6597b31b7e333d18cb341287d2ddc0a000000000153d3da8a5a22fb413b5e34a5624c0c7efa1090d19e7240a8582939f63f6d6fc13e01fa9e270100000003ac6565ffffffff0207e519050000000008656363ac52ab636adffe4000000000000752ab655300ab5150360989", "5163536a", 0, -4814386, "c1cf9a3ccfd82f922862908aa3da708adbb7c4bf6a8bae4b67cd9b304ff8dae8"], + ["3e123e5f01d9781256d89e7ff44b4379bfefcd0600681364f466fedb54cad4b8e2b6d9f91703000000035253004d4e0f8c03bafa2a050000000007ac51ab650000abcfbaba0000000000035163acf7e07c000000000002ac6300000000", "5153", 0, -1817883385, "bda257921df1006965f87334c376b8439410bdbc75bc93736a754af5e6a48bac"], + ["01f3427d03c0404a1e185476de0878c912a6aba322527116e7e19dd68a31a2fa2d83e45b050300000000ffffffff600b616af9ace90358c428e0cc57cebd31dd27201b61efdfe58947d99f69641a0200000003526a65ffffffff5ee582098211779d04c3461f58bf601cb7ad3453bae1a72ff083b1ac0ff92a670300000005ac53ab526affffffff0499c0ec0300000000086a6a535251526563e9d3e400000000000465ababac4d69920500000000056551ab51ab871f6a040000000008ab65ac52006aac5300000000", "ac6a52636aac526552", 2, -2031844324, "009abe0d5edb8e1d033ad819e9e80ae559c86b7e9087c4d9bc34a3fc529829f8"], + ["7d3c43ff026ccd7fbd88ae8638bf409e3abd73757c45b4bd3a3153ad8b92863f511d712d5901000000086352006363ac53ac877524cf4a2b2b82103fdac68d92b7f16d13530a4ce8c5e368b782d56bd01c2ec8ff66570200000006536363ac0052ffffffff021bff560400000000066565636a5251510b8e020000000009ac6a52ac656a5153ab5c807e83", "", 0, 205778060, "19a2d63e183695aa057610b3c881711e61f399de7c41918d1a09cba1b20c460e"], + ["edb2743901c3d3e47076dead5c334dd47864d65c57ca5327c3c43fd33a72ec02fe239de9bd0200000003ab6363dc8a4a80049750c5050000000001abebb68d0400000000070052ac51ac5300b6113d030000000006ab5163655100f4735d050000000002abace3c07cbb", "525163ac636353", 0, 207848452, "f3b6ca6a3edb51942d83ce5ed784461c3b215fc2d24230cbd152bae5f94d89fb"], + ["9eae2e0303110996593232d0db5898ee735b100f69c90880c83daebcee4a9a6f7a05dc8c690300000001ac954f32238f3ea8f421c7b971b5017a20b747b226865ae771406f6cd88993b60fd2d1feff020000000253abc712343b170ff42c136856d167cea89dfd3a30a3353e57aa1cc2e81f12713c5086b355920300000003516551ffffffff02e9453f0200000000086500ab0063006a0028281a050000000001656d3efea5", "ac636a51", 1, 1089798185, "174c21867828d588b6ad8267d4e49859056ff93230888f8486a107f4b803672a"], + ["c756758d04f0af4793cdfcf334f6a38e2a130e09ddd721446bdfd452e28d88f6b796e7357300000000075353526a00656a825e75dbf844e050130620215b27a811cdd66d108665347675a87e28bfae7f0269c6bc3201000000056a6363006548b80cd46806f606271fe0694099d1de30a04a57bfe9c0d64ce88b0565875b1a77cc80590300000001ab0f1870a5625e5252d7bebaaa9820fdd60414ff44204a0995e18bba8e960cab3118bea2330100000009636363ac6a65520000ffffffff040d9b7b00000000000752636aac63656ab02fdb010000000001ab586b89010000000000cdd980030000000002ab5200000000", "00", 2, 1374359060, "61a8404c04ea5a23b0a8762044de90742dcfe17002f7e07a0baeb6893591decf"], + ["654939a203e26204f0c6bfa374303c62dc70e0bc5ba62c6527538c4d547ce966147cd4e25a020000000563abab5300eb9fcabfe0d29408d6c02b431e03d65db20ff0ba158ad151ab4cd05ca961dc37c5c3a2c103000000095253ac00ab52abac53ffffffffa17867ffd384936305ea2e25749e127216faeeac93fdaefb976e55e6dfa0d0d30100000002ab526a5d3f98025177db000000000005636552ab65f7fd390100000000065265515151523c0e4b4d", "", 1, 1861576004, "89b90871798efb16eb5ac2cad727c5b60ea32aa49813bda0753d60db3ab67f6e"], + ["f1b408d501ae6c367a86106b56530d49b64529e4fedce6b7f1c9eeae5eb50ada7097eb6fe802000000016affffffff033fa04f02000000000251002e02b80100000000095253ab6a52ab52abac052f64010000000006ac6a51536aac00000000", "53655253", 0, -1463639958, "6d64e0e0f7c6c7d4c5c359c9eaf9b5d069fa76a51d1d65b0d08e3454c47cf885"], + ["cdafbcfe03410760a1f6c95fbbda6444deeb7f4167a56497f15f3df889c5079facf9c3e21f020000000253acfe3a26ff23b5b0461760f8cb68ced4347681cd7ed659491be5225bac8b8540c116ebd1fd030000000463ab00acc663d4dffc95d7c4ba08632c731e07e07ff316d8e09f8004c8acf5cb7b931da1ebd7c67602000000020065ffffffff01fadccd020000000008655163ac6551ab538079dd98", "acabab6500656565", 2, 320950654, "ec9e4b0ebbd0fd593ecc3bde6f8ef4269dfa398bd06768d88816455d939f27ee"], + ["fec67a5104be981eab850c54cc673f0123bd85d253d1516c2925837804b1d3c68bfa3212a60000000000ffffffffd486864cf28d051bcecf2c2cdaca9b05cc3eb31678bd8ce742ab6b7fec46beb80100000007ab6363ac6353527c1aad24b6fda3cacde19b293ebd6dee0106b6999fc0d6eae2a035d26fa4948e08eab57b010000000951520063656a516351472979a0ae22b9dc57212c37f1fc6cfd019281d78469a2c2066be84f2f0be3c62e9c6e0d0000000009ab5153ab63ab51ab52ffffffff01f6d49e0000000000090051ab00ac6300006aef0f1b80", "52005200", 3, -2082778667, "9d56ddac2f8a08bd9b1c809ffd6f6da0bd34e1aece7a0dc240f82983f64a3ff9"], + ["12a542ff03364540f459ad660d6b4fe78e5e5d64574bfbb414d07c79bcc80ae421c3e8e9b40100000004ab5251ab0a0e903950a9a457e6e5b647da32e8631c6ef01bb8ce9bdabd48a3da9932427f47ab019d0300000000ffffffff5949e7e91743df62373122b225af97bb755f12b648756ead3b5ad178f66deb7b0100000000a8bba176045f111c00000000000800ab51ac6aac00abef93140000000000056553636553577c5a05000000000011659a0000000000060065655163ac00000000", "", 2, 1795284855, "5d75cc1c4c6166c1500cbe3e5a4aa5102e1557267e987d587f2fbc8a42fe119b"], + ["c6f7008c04467ac31e841bfd5822650a408b6e95764dc22ff1d348e1e6cc4b555a578b6b800000000009ab51ac515152516353ffffffffe81cbe5c4bda73c333054f67a031698768f112395cabbb89a193fcd7d5bc648b00000000076a65abab536565ffffffff950f45d91934f07c380f3c8436e46d53a9c08b8928c8519f5ef3b254ecb35a33000000000600ab5263ab652dacb7dad3e137cad747fd51c950876d74704ff7fa9d544fd2eac789769ae8951966bebf020000000852656352ab51ab526cd4f1ac043810b20400000000085152ac5351005351fcec740500000000046551006abf1c8e020000000008ac6a6551ac6563ac678207050000000007ab6a526aac51ab00000000", "65525352516a", 3, 439996387, "95fdc67720108b5ee988e62fdb4dedd90548c9e746272c6e80d7dea9b8206718"], + ["151fc7f303b2435b2e8302b4007c6a5f80030d213c9efb72aff3a2c0b13edc21bdbc6f775d030000000165ffffffff7754194c6620210e1900c941c0868598f077aee971886de338c97fe0212bf91b0200000000ffffffff59acc5ed6ae097487d75a55dd65637122a631ef68475522110433311a585beb10100000008ac6aac6565526300ffffffff03d321580500000000086a5252ab516553000f448c020000000000d8b1de01000000000751ac0052005165437baa67", "", 1, 842503808, "3b91b143faa3b7737ada5bda8daa6778023b36bf2d4810ae2659f6741be48564"], + ["d7001ae302abb199fc7f9928f8b2eeb104530d47559bcab3016bbad12d2fd9110079c2b471010000000251002dab786147b3b8ff1a3506a131de3668cad07be62cd5ee6bfe7301773a3d5e67a75952940000000007005300ac536363ffffffff0493fa7f00000000000463636aac0550a6000000000008ab00ac6563520063a8e31d050000000008636a536365ac536ad3e37c05000000000553000063537a528897", "abac536a6a6552", 1, 2092131897, "d515af9630e6c6d2f13d61428f7e9431d68044e8ab56d1ca45ba217126fecde0"], + ["b05a96d6012d12895a9ed315baced5c8e2d6d4cd310e5f881d9b090450d39c9802a25623850200000003526365ffffffff02ccbfc805000000000265001bbb910300000000065153656353ab00000000", "5251", 0, -1628125507, "2de05d6124134790b401190e58aa4cfd0398264de9a7cdf0e99a02d04d77ac58"], + ["6c08ee0401fbcc6f459a6d5105b1341c6719a48282bf474d676d246f586afdd15d9b0d15b1020000000763ac5252ac6a51ffffffff01c61a7a0400000000056a00656500b1f5f18a", "53ab", 0, -1169807168, "0be089cdb5e9607dde41299c1b582b88359fd01112b10b895e1a6a0d420188ae"], + ["f6b7d04001108a692efe60bac3787dd87176c8046016e9aeecafc12e1fe46fb46773aae5910100000005005353ac536e1feacf0408cea8050000000004515363ac423471020000000008535351635351536a1b14610000000000095253abab53535165ac9215e500000000000000000000", "", 0, 2024241278, "8ac5d2dd63222e30536bf90151fcd07f45fb5ea7b51d149e22d5a946e0ee0264"], + ["e09bf5ea04ef77249c705e1644a28fe2b59f0052e62d01aea703fe7e4ba85a6adfe10c8cf0020000000900ac655153ab5151acffffffffb8b9ef11ed9575463e685dd8828185cf8be569330dd1df6dc6282f9e528be05f0100000003ac6a0054a23aa3e23471f87f1016253864ccb0993c8316bd3796909bd875d709d0ae96a6d66841010000000153ffffffffd2e4dff11ac74d6fdde9bf460ce1d91bad7760c991658ce7e57e6a8cbc28853202000000076353655153ab53ffffffff013aae370100000000016a3df28915", "656a630063630063ab", 1, -1303249495, "e3d7afb0ba49b86ea715b4b3cd93090c6fc8423755500aec6ecf729a31900401"], + ["373faf5e0265eceec8e0ebac268f0b9bbd8bf40c4199ca20287767f2ac9e81a543a70a281702000000026565ffffffff88481db25a7fb46bb24abf107ff79cc370916fd1b40c0b3246972f4b97606a8b0000000008abab655363526552ffffffff04d66a43020000000008ab6a5100516a51ac8adad3010000000008abab5253acacab5288d91303000000000363ab521125ce00000000000552ab52516a00000000", "6aab", 1, 546871591, "c3aa05cfb91b697fe2fc8695e951071e9c94f9c7e0a81231697199d240676ed0"], + ["153d361d03dddeb2e209e5ebe37b3709dc4246a8e0317b960e1cb445ae81c04c59b5ce2c00010000000153ffffffff0470794401408c8ba5cacf08b50c4b829fed7f2a92c148b00bcb69df708baf590200000006515253ac00acffffffffdde3492499641a46ed72e71056e8a0da59a916fecbe87c5b741f5ac619e82fd502000000025265ffffffff02d415f7000000000001accc733001000000000853ac6300ab5352522cbf2f4b", "6a", 0, -1426950682, "f4ec8bbb5e4645f1299f84858e32a29cc702d61ada99e391cbf05d5c8f327fd0"], + ["c8200caa01a80f0f1142767e5de066b624792743c16b953036863abebc65b5bf918fe7b2270100000005acac63516affffffff02b28c4a03000000000865ab006551ab516564ceec01000000000152df5755a1", "6551acacab005251", 0, -175186904, "697bbcbcfaa52d01b0fe0495e94acf1ea0e59988cadee9146cbfc128a937530d"], + ["1c85194c047c63f4ea2b66ebf88f1ce41588ae6e72624af83972708e8836bb172f0da1d0d303000000076a63ab51515100ffffffff88c8f2623761324a540cfe305680bcfb9ee2b6e6a48dacb7b7e97e445fbb00980100000005655351005221a002d7902a662bc92975c62f1daec5ee7b49e3c1ca9d2270646127bffd4ee7a5b67708020000000400ab0051ffffffff304cf06bd6fb81af0c646e38bd2eee1d71d1e9fad74460b9a7037e9703fff1490100000005516a6a52008e85ae57044569bc0500000000066a6a516a63510d9010000000000008ab6a526a6565635385bb32000000000009635353006a0000ac532e5c500400000000076a635365635253d31fe8e5", "65ab", 2, 1438347057, "cf4be9a75703f0c73619740976a736b8b7390b622bcdf443d214aa97981f3cb1"], + ["393d85950456dbac1d773c1d0e259ca0b87e3d27e7213454be91e980f615a1dda8bc15077702000000066aac00006300ffffffffb30225ee8521a644ac127deb0dd042f995fd473d633ffeab780667489866460703000000055152ab53ac604d32967babb5cb1e969c33d3ecc9f5ba2f2cc9d93411879c5d15daa860c967481ab557010000000600ab6a63ac00ba8323a8fa98f6581d5613b87e38ed1a15479e1f461a6530a8a879938d69fbe5dfc303ec0000000002516341aa32b9037af7e20100000000025265c4ac5902000000000400530053b594af0300000000066a63ac65536a00000000", "", 2, 1149957703, "32958de6cc144a65ecb64c850e694dc58f012f834a479667bcab95fcd9cf06d6"], + ["cd22ab9904e7ade87990852fb58cadd3406f8667b3de532633c69e3de4e613453d0e9c5d9000000000086563516a6553ac003fe5d23a12373f91af3a25a38e0304fe6211e8ca8cc9386e5d68d0af8e76e793f619975e02000000016affffffff9d7ba68c690eb992f5f441b7377bf0ecf024cc83d431ebdb0fe9dfc64216be52010000000017ced473eca95e9790e48b919341144a13665f48a7964f4780aac679fb0933689417f269020000000091edeb1e018b314b0500000000086a510065636a535300000000", "", 2, -174570998, "9d111f4a463261d066860748158c61ee7d3b6937da1252aeb323e9abd02bbf30"], + ["01356a7801664e1d83d5ec90430c32988a9b62943c0ab45eaed0c549f7cd7b00df94fbb66f000000000965ac63ac6a52006a536f11273b0222878702000000000553000053ac29b1b502000000000363acab00000000", "51ab6300655251ac", 0, 858172200, "572153dde9165f0a306948f85e94d554e5134387b564c39d5c070635d943bcca"], + ["afa5d186017a951b34d7f69db78064328b63adee5f847af8c6e40f33d7ac31b386975bfe850200000002ababffffffff04f567dd04000000000752516563000063b0f8b900000000000045ad32050000000000a4249e050000000004ab53006300000000", "acac63536a00ab65", 0, 2064791099, "75c678307f90b061754dec405082a0831f6e100292170344f686d61688fcc102"], + ["edea49db0334ce2fcd733d49a783402348a1df90f29c8b59e9905bb48f7a98bf250109939a0300000009536a6565526a51535378b5aae5dbd1cb2abe0f49cf0567e4a8cae8a54b8b5b94b62c133d73000badd94d6eadb8020000000263acffffffff9f60a863f36772f7d3c0834d56bac19faa377238216fd955b5ee872db0ccc5100100000000ffffffff01d4708002000000000851ab6a535163ac6a9fd84334", "53006aab0053ac", 2, -323884096, "f5cda8854f415059296f907225b51aeb3aa1ec19e354b5b1633ae1e1d974b48c"], + ["7bbea58d047da9f238a6a44d23eb1dd4cb464da9e66e2c07b432425c9c2e63f30ff55684e20000000000ffffffff9a8d09c2a47259f36644b1bca0cf6131f1fbbd9b1a1ddce5594b569502b8e9510100000001aca3123f5eb538c3758cfb40400d3b47ab5c8cddecb0729f3f9595ff434a89f2e14d59e8c10300000000ffffffffc1b26813b10bd192338c9969d5778b676440d9bd949df88fc8e249107daec772000000000763525165ab5200eb32b4bb02836257040000000004ab52ac53f5b4af040000000009516a51ab52ac52516500000000", "", 1, -1627036728, "1a3e79bf2e33b6c4a54cf12b0b45b31d6a65c72684144c82885c2b40b4a182ea"], + ["cc8bdc6c013045594d0b8f21b231dbe4f6643d5a5af4a6231e7ff4decb8b2dd93e7fc349d30200000008ab00535100536552f4fa1afc033265bf0200000000085165655352ac6a51f9840705000000000851ab6aac536aab512e421a040000000007ac52ab5300656a00000000", "ac", 0, -1504342751, "f74c764e6dd5d6e760c638fe8e475356b6cbab59fc00d0e2a89142d499951a57"], + ["9572ad1d02bd33b0fb010862bbf67e12cdcc69c290651ef22cbd080944029fe2dbd3a272ea02000000055253ac6a6344ecb23a254d0a785215fb94b28a66937df9e079cab40679f076e3ac165acc5967296cb90100000006515152635263eac74b35035c695b05000000000452516a539ef225010000000004515263abb7815c000000000002ab530afe65da", "65", 0, 122591437, "5a8ae32be5eafb33186bdbde9d4904c1bfd03d5dffa0217c5491f226c5c91321"], + ["15162030024ecb1b17b273c224ef70eaf0ef041a8364e499027fe53af2375d772de8ed6056030000000652535152006affffffff1a442992d6775aca6aa6153f515b66ac95a324a7c3fecad9b13c851801f561b20000000006ab5200ab6365ffffffff03494106030000000001abfaf2660300000000025165a8543a010000000008acac5100536365ac00000000", "53ac6a", 1, -1657821911, "c5ad0e9e66c607627161dd0ef544ef8ef9e0b60c4a14e92818683d8725e671cb"], + ["c7d5d47601f79382cef093316c00a1d58af6dcc99f1952a8316afc5b49f6d6ef0aeb3ed075020000000063bda78202369420030000000005515163abace9ead1050000000002525200000000", "6563516aac65acab65", 0, -1496989436, "7528fead227fc59ec574bd4e5db51b970148903923cf93ee30e897ba8ee7c863"], + ["78390d6b02ff42e2b1ea6319e30541d409d94f979d460c8d610907a6320f492c10c007b3510300000004536a63acffffffffd9edf29bdb913f3a8c2e342c3e3346a8c949bd192e6a1068e17976e95da557a40300000000fd37aa2402fecf310100000000056a655200653c3ffa030000000003ab53ac00000000", "", 1, -275620225, "e9cffc68342d76bcd794739ab0fd25d28d7e8a9380b3ec556ff50f24b2f945eb"], + ["f5b551e7035074d05ede0a0abfd167224bd18e03949cd3db133125414c4f196bfe08e675cb010000000800ab52530052ac65233b1184d464723947fa6291680db6c6b7eca861316a84b9e0b7730d00b9271924bcea8f030000000100ffffffff050843691e7b14b1f8c0f95c8f17c4550c6c38496c4ec72d93404f470c3b18ef020000000753525300acac65dbb78d5201dd9f50020000000009ab536363536a53ab6500000000", "52526363656a", 0, -745366625, "5f7532b7240b63efb38e7c3bf69de98348d80c739ed120f547002ebae18dfb46"], + ["d7abe9f1025273014c62da1ec487294d71b6199f0b5965af3e933201c2376ccd1204c79f220100000002ac53ffffffff7181ef6029f9a59ef1407e79c6f565d67f418f9a74ff409c9486f8f596fbadc5010000000763635265650051ffffffff01e5c841050000000007536a51ab6a63ac00000000", "", 1, 1887813910, "423d5d081235f692d894fd0a916215a3c3b20637d47655d249b9ac52760cf9c4"], + ["badb088703be024dcf2cd6318436e45b0ac48c7a84e67b4b783b80e907b09f5df227d736f40300000004ab515163ffffffff45926ca2036ac71d8f87a7d10ae92b0ea36fc5fcecdbd07df1eca317ba2a1bc902000000026351ffffffff129e8fd19443c7d97711bf490cead6d535a88a9d6013bd8a583d1e16b3ae4c34020000000252abffffffff0420a6d804000000000265ab5012a3040000000008656363acacabac63e8d0930100000000006f236d0000000000056aab5351ac00000000", "65ab53", 0, 1144416057, "0bf7dc18c60a5a48dc3a69f6582a0372a070cde6aec8f269ce188fd4d865cea7"], + ["860c5c38029ecca396101a6890a60169f5055683c0cdb4e83b870df900e029dde91710a0420000000004ac5265ac4ccd364ab3ed7b6f48f1a456e8714abec181bff5a74ae63d224dfda1b87a1793ca950aef03000000026aac53dda305032e1bd305000000000365ac51a4e6f002000000000900ac6a516551006aabacc44403000000000965ab0053ac6aacab529e7643e2", "ac5251", 1, -1342906278, "45bbbdcab638aa8b0a7a3349aff0172e2dfafb64894c6d27e849438a785f3076"], + ["75d0f720026a9042b220d8b08264a8d16b4a4e656e7ed1fa22d4c3932fdb3ffce48eba14ce010000000300526affffffff7c1d48d79ba6a87966fb16d2be0a3c7b9e40439d95f41fdf8405a535d93e9cf600000000086365ab0065636565ffffffff01677ffb01000000000853ac63ac635252ab00000000", "516a65636a", 1, -1670469361, "1f385a3f1bea508f1ca5baf7fafd9354fe4ce56a4d137cc1cec2a4758d72fc03"], + ["ef6a999b0383fee7de813eac04218a6b53469bb67197a915063e625269def35ec238c65f1603000000086aabac0052526a52ffffffffb8a37b715f50cfc83cc2c0b9daca245ebf212756d40e1dfe09a6892f8363b02a0000000006ac6a655152657bc3e6428a52c47fe88ee8c01bbfba7628de337bf1ce3f1d78d8aa7209c1c2c926f30a2801000000020051ffffffff04c340e60300000000055153abababd88b2702000000000665526552515182fdfd0400000000025163a0c09a030000000002635300000000", "000000", 0, -1499563635, "d49c07813f4abf1ec55e1f896e8f474781ef45a9a5b765fb0bcde569f997722c"], + ["752e6d1803114171b7e9b6fcaace6dd0755601562c55d6c4e79946e30585b62b5b04e56a8d020000000452ababab7dc6a00faf6538bbce7849daa3bf3a516b1a3e008c454f17c3f3cebe1feef5d91067687102000000025263ffffffff521566bbfccba5ae34c95fe6f350e48412eec67cb1f7cf64d0515442207a7bfe0300000005acab006351ffffffff042885a20500000000076a0053ab0000acd3a0da04000000000465636553e341f6030000000002536ac7ee4b0000000000025151c2c356e5", "525151535251ab", 1, 607750513, "34e042651d694c0b09f9db36d0cc1c2ee5401b6f7d183f6bee7b3843d90f7129"], + ["7280e967042538fd138c1c8c42fc03dc8ecbf6c1612e94096d9fb9dffff7a5db0a1b54917202000000025265b55f7487a4c6460727cce75f62ffc6ba68c52a46bd7099da29ad31e594f8d00fa25aac050100000000ffffffffff83797c0773c6cb99609ea92253581b39f41091d164f3fe7ce7df05ce9061400200000003635253ffffffffbf862cfd10ad20523356980dba9e40aad15dcaeb86317850f65d185f74009d2a0300000000ffffffff0399ecd30400000000045263536a7cede0040000000001517a8f370400000000065252000052ac00000000", "ab6a5351abab006a65", 1, -705913962, "3c3448103a10bc8be635c98e16145f29904288a21de0f947af08f74bc96dc948"], + ["b99282a2017dbc552e07ee619037774ed94e2b001d83700a51309850f7914a9f43623dc5bf0100000004ab656aacffffffff04b59dfb000000000006ac51530051654f3ae80100000000096500006352abab00ab0f73b10100000000046a00526a5e3ed605000000000353abac00000000", "00ab6a6aac65", 0, 758527476, "14d2cfc9170fd365b4f8a85c351f0d7f8f7c8fa5182b6ecff42ebd8989a76f2f"], + ["f8c4c209019039d90ea5b7a96f75d6b217b133333e747432497798fcac848c51d0a7b648610100000000ffffffff03ff39e3000000000002536321388b030000000003006a007bcad1020000000007636a51ab65536ad9092ae2", "", 0, 1051410154, "8a98345dfa429c6b894c614b501a84bf1730b85488178ffa6db2a12435ca2870"], + ["d380e7d002b44f8a23bb4c5748b7eb4fdb008c95a3c98cea1f1fa7c2d43a9c92968f702e3500000000001b607b8a66a3829f7fe1ec87eff8396ea24306105ecb7df70b4e8b41f633800021016e0a0000000002acacffffffff031e064c010000000008acacac00ac6aac531078f401000000000025b12100000000000300636500000000", "5100ab535351", 1, 1127877664, "9dc890654fbd9b5db29271c445311019da9857bc4d4bd8597e10554256a945b9"], + ["12852fbb01289d625967751fb76144c5f17a2b3cf283f94f409b163a2637c9bd2555e7f66a020000000251636838970d01b667bf020000000009525200655253536a6300000000", "6aab", 0, -654959207, "fd67866582a3363d5d77910197846a804ff2ca631bdd9c06741d6305e7f8edda"], + ["f8bcd0300193a74797cd4dd36071f8e55be357a07588998e1cee1835c1f49bf4fbe84a7d360100000002abaca7e3a55c01d3a0fa030000000006ab53536a526312d1f221", "516a", 0, 1005759862, "73d5e0b462c015fd2ca78de8e9772f650eda8564cc1fd67b0d4bfe5e8104aa76"], + ["2bc952f40460add520bf667791d9adeb5d2ee7dd563c5d1525a35bedb44cdfb636430537c90000000009ab636a535153acab53ffffffffac964566fabeb2e0d186c01a90cb002a3791cda6800921724ace170f440db8b90100000000ffffffffd4cabf5b6dc0efec43fa0803d5945df8e1e2bb13aecbac78e455ba2cc1c0c03a00000000046aac636549f340141f52eaf1b67ac4f3a0fd4cddc77bacd34b648f3f2dd9d2412d20bb861fd7923b020000000352ac5394b65d8a035ae41802000000000863656a00515251524811f3010000000002ab531f39b4050000000008635151ab63abac529b928832", "53ac63", 0, -1910803500, "3c2cf09638d1177bf05c0537cabbccf14665234e3cc329232311533ff04767df"], + ["15240436032a9dd3049a9ed0c412d0059735abbc636e4f65c1c8cc46f4835a3e6180ea8e6202000000046a6a63abffffffff27d7dec94f508f043bbd9e2361872f8072f89268f591d7048e41c6b4ece890210200000005abac6a6300edbbd9b527cb54248828271927ced8c5f9be0516ab9db322e2431ad6c508bff2cba7e3f10000000008ab00abac6353ababffffffff0493be5a0200000000096353510052536363ab774616000000000008655163536a65ac52bc18c30500000000025265d55f1d0500000000075200516a52630000000000", "53006a636a52", 0, 1868774907, "b8a2fca4619997ffc4e0d4da971398af3865f934f6406c3bd606759ef2cd386e"], + ["cc9fc3bb01b2802be8d4b1552579667fcef4d31edc02fbe203fd4433423f2035cbbe1029d70100000006510000abac635732cfc204c861570300000000075153630052ac006dd0cd02000000000863ac6aab65510063759e59050000000008656a6a51ab530051deabac0500000000056a656553522dc72ae0", "52006a65525253ab65", 0, -751948737, "dbe8d81e119b77f1c567391fead881e39f86704427db3c46430a34f02a5ee822"], + ["b6be28d9019453fac14d5fdaa081bc48330ec2991e0f9daef4962be0a71d1dbb64694ee9fa010000000353536abc2fa63301e3a4fd030000000006656a65006aabd951dbb6", "6365", 0, 278368987, "b7970d31c3d1a90bf23f4984a1829e3b313e776985e8af837aff1f8263f54e50"], + ["f051cac904111c36da27f132d5daf55e7c8e063247455fc74a6dc23bbf2072f0f5e7e182ed010000000252acffffffff94fca3ec5530def5d571913ba7373b760c738ac447715366114b7f7bf555d42e030000000163a9f49eaa0628a54f729c3be2e8fc152db5ded03479a7117fb2b48a54dceec64ce4e2d19803000000046aab52ab3048af18683464d5bf31fcbd09cafd88a319e2fca5d9c0825d59140266421fa41d7e0719030000000765656a51516aabffffffff034c8be70500000000010073b2c7000000000005ac65ac5352a1c7990100000000086500ac6a655151ac8f367ac1", "ab655163ac6365", 3, -805357696, "bb0c9469bece0f55dba9ca41d605b8302d19cddebaf10ec1f7d1d040d726b35d"], + ["8b13df2003486d8da9fa3ccfc487b7a54d0fdf9382a148acabbb353cada86b27b6b0e3573103000000046a635252b829c79c5f80aa5c505bc349ace5a77f9eb01f22c8014afa2441aedc63f49f20c6695bdd0000000000ffffffffe2765a77b0615283d0fdbb8b2bd5f9029e2e681fb8a584850c9695b283b07422010000000151e24905ac035e8adb000000000003ababacec74db000000000002636afef5fc02000000000951ac6aab53ab6aab529ffad537", "5251ac6553ab6a006a", 0, -860781016, "f71da1829fd4520fc4021e3579addc67f29345a84122b0ccf8f50b7c737b9414"], + ["39e4ada60378f2e82a7779778dfdd707469c1e1ef64f58219cbf05282e6f7d5d187e6637e7030000000563ac536aacc1a494112a7961dcbacfb8a1cb44c3e3314866fead3fb5ae7ec610fcfff24edc6f613095010000000165ffffffff389a50e080eacbdf3f2445481af217ee39dc18b659523e6d07fbdb0419d747260200000003526a656f47d72001ca3316040000000005535265656a00000000", "acac53", 2, -159736974, "80301c0476e082fd32b770ba10d509f5fa27e5b59f4cac2fa9ab635e8f4a41e1"], + ["93b7a4cb03ef3889f1d2a45e4b040d153c5e7d8dcd385cddda0b04f15d8a70952ce95ca1e9010000000551656a53ab55711e8456ef1d1ace0b160053838599455c4df75f1778d2e05f1ce4c5887d29361802e40100000009ab0053630051526a52ffffffff55d611c10bac07ed9cb2d52698845e8433a56561590530a7bec5354d529a0e810300000005656a51ab63d3f491e903ddc2ef0200000000065300630063534f595c0300000000005362650400000000070065ab63526353e928794f", "6a6a6a526aacab6363", 0, -1544356096, "1c78dfef603749770930c3a9d6be71c9fbc82261ed4f3eadece984a6b1b192ab"], + ["a06116a003c9a9792eff75c13f6e88c34230d45c3be1cf1f39678472d88716662aedf8e21202000000036300acffffffff1d2d25a37459f96a79d096b7556e9179ec3c97ee42eb0615b231a8a3b15f8e550200000000ffffffff5d9bdb2a8551d4f8f056f0fbdec305f2ee76015bd775fa2a035b25ba8312ff0c0000000006656565ab00510f8c5a1f01639f1b05000000000300525200000000", "ac53636a6353ac5300", 0, -1688102228, "0a4a6c914473277db62486807e028481058fbaeabf84b36935a50cda7338affd"], + ["ca60de4a04dd53e41b2cc84fb6916c476bf64b93b3252a078e40e535c5abbbe99668c2add20100000004656a65acd9e33367aab7d80c051be07a0768a567c4035d047e82338044ff65cb74eb9222835e23d00200000009ac006a6a5252536352b7dc7e856e33d61c9bd0c2c1e7f2f2b46b75643a6cb3ee682ff8543a468c9d6c646c36fc0200000009636a6352656a5265009f2e3bd3f7564e1589f56b5bc308836993bce5cf18ddf094870406078e75542fda8f00540100000007636a5253656a531a2dcb36013287ba0400000000016500000000", "6551006300", 0, 2000314547, "c9ef575ad830254dc03149309adb8a3225db8c539ad625633e7b5799432cb41f"], + ["435da3ac024649eda60e4cd7e5b96f0f3b6dee23bd6468bbe785e977530d495b134de9874800000000026a53f28c2c42d468a1199971b27da34feb9ede54d98021c727dce05b2e3c51a98056f596bbf803000000086352006551acac630166e470027676df040000000000d3e7db0000000000040000ab5100000000", "acabac00", 1, -1065024339, "f07b28692e9f73536408a3370d8ea7d5c40fe359af0c48dba517fd9d05d28f49"], + ["a5aef39601f67b6c308b01773a0cffd945baa6810ec078ae9845f4f086816d56149b21d1170000000008ab63abacab655253ffffffff03a2d33d000000000008ac636a6363ab516a6d9c3b02000000000563ab00ac51e8420602000000000951abac000051636aab00000000", "", 0, 426033018, "e2e840e04c28e811ac3653f0b938a65ef0a0ab3e3d1952c2dfc82de98bc5af2e"], + ["3f2f68d602d970449a8c38b360d106d22e16cda18d8a57c4d9804667030bc90b666a73555902000000025300ffffffff2bc074260249a6b8fc12ab2a1170876a63baa484be577ed06bd01e298cb18ca70100000003516aab71a3699f01af8b97050000000006655200ac6a6a00000000", "6a65", 1, -1230078019, "059918bec8954fe958b5e5495ad6922e4738f1c22a13a51d8347af7fc3061c87"], + ["147071f2025d39fcd04a07f63c68f90b117344f0c48188b7c004b84c083856b98dc49639d10300000008656a6551520065ac2f89916fe527d4b3e7b3c578a63ac1b5864e97a9943b7c4c4226ba0061f587ea795e04ea0100000000a72492b40454dd1003000000000953acab63510065526a39ab92020000000009525265636a00516a52bce0ca020000000007656a635351535103fae50000000000085163ab6352ac656a00000000", "6551ac53ac6563ac", 0, -849331243, "93d9d1781b8d92b35524bd8354f7fde245349b2c8ba14812f08069af80de558d"], + ["f1799ad00407c57a77c9f7d670fe1a45e4172829816ec289a1c9e686d40ae0bbd5e004f3e70000000009536a5100515352636affffffffa810a5d9be9ef9f98de16d2eefa5baa07fad376f06650c61b7beb261dbfe07fe00000000095351acac6a00526a6affffffffdac1919c9b93a09c3bb4f60c92dbf1be66bf1db898ea468e28d009db2b9fec0201000000055265ab5252fffffffff48f4479b54b9f8a0dee25f80cd480830f90d8ce53aba6324c98d982ee32cb5f02000000070063536a005352ffffffff01e42f4405000000000663ab5352535153865893", "6a00", 2, -560806132, "505edc571980d9665c1ce14ec094948cd8a238eab87bd031964ab4298eeaa828"], + ["fd881b9d02a7fd46f4fa3ba8ec62a56c7d59760039af477f1f7989c4700ebd6c1961a0cf8b000000000363ab657e75b91bb95c02156f6fe5888eec3a29eb1e3ec5e649f88c4b8912caf8f425b7e030efcd010000000028eb3676031954c7020000000008656aab5200525152389c8c0400000000045265006a1ba433030000000007ac63526a53655121beed7a", "5351", 1, 1665698768, "dc508fec6450549ff82b193240bece15ec288ab762d3a43cd8dcc94a23e2d9b2"], + ["9440da1c032d34725d2d5acaa2e75ea7b1f89e3752acc04d1d958d29b80f125a1eea669a930100000000313ea34bfa398aae6a0c317b0f64e07d04b2155ea54eca452998f7b03a0ce11f1f224a7702000000075251535363ac6ab06f6e949500b3454891492ffcd5bae4bd7054d306891090a17ded558e56006fb426725c03000000007e743734025bcaa2010000000000d74fdf020000000006acac536565531be15012", "ac53656aac5152526a", 1, -1920603221, "55205a6abe6f41c9c1b37593d07670078b799f35888095d4e0c25629bebcccfc"], + ["d8181f2401c739784f8e2d5757b10a80d385866f88504c04198148e40cbf8648f822c7a927000000000452656aabd4968e3903c6e84d030000000007655153ac006aab5611ef00000000000563526a5351ed5e71030000000000bc7ebb2d", "ac6a65", 0, 488259184, "b5880dc2f4dc2f3432b768cdeafa839e042cd857b59b37df10d4aa1950c0bd3c"], + ["e00fdf2503619b76a1aea968494b132490333ba5d5f635f395388c6f94faa1e55c92b74d3e0100000006ab6a53526553a86f197eed1970507488285edb5b6bb76f4bdf427020eaba31fca3000910aac443fe7e410000000002acab260a20fd5a0899d976ea90f57e1dbd3ba0e7018c8ec15aa21ee70ce1dd58e530cf2e03d30300000004ac6a6351ffffffff03e3f2ad040000000005ac526352ababeb6301000000000453515100aadfe3010000000005005153526a00000000", "00ac6353ab", 2, -964111504, "94b3d7263e5a8989a836b2af0439e88ea757af760d90b7fc8820f3b2a82f0cfc"], + ["0e071627017bc066d9ff2d2e68d8c469a3db68c0d5d50461074c526d32611564a9091639470000000000ffffffff03e8f22e0000000000075153ac6a5300ab4c797f030000000005005253ac53e33ba30500000000007a51e40e", "63ac", 0, -522403567, "44f3b65ed59fab408fb97e62babf872142cd9426404089ff154cc8a878461eb1"], + ["315201f8030922e03216f552f965b8abc023fa08774777d56cf5a3a859f413a5ee28bde50c030000000100ffffffffcfe456447de2c0549a217a4442a96f689733ff10a8a66a46d1bbd76e278219d90200000001aba15e0c8a2be8c4d35091845da739dc8e399d41950c617ee35f71d4025466f5ddb4a3d699020000000953ac00536aac5265512ad391b00104969d0400000000085251006a516563ab7011b023", "006365abac", 1, -56345527, "9da3b4bc8d973ee3e490c7e70724544a4c9e8fb89b035ff87db99577926c9132"], + ["2d91b721043c39afdce7ff9c3f2ff42cf07ac66aadd66ea3b77d66545237af6bdc3facd8be000000000363ab00ffffffff72efec3b78511256a0d12ce58c3f2edb1d4bce29a208b7261950cfdca84d535b01000000070051acac535265d11714bebd6f4cdad793216bb5757211ebb8143a8a6282908ab869715402e599875452d100000000010090db03f28e947855b8650b79cab55f73e92a5af90b4e09b8b4efc9be5ee12885247426780100000006acab636a6a65600b5cbc0245047f040000000001520f7009050000000008515200516563655300000000", "ac", 0, -1306016150, "eaecc0427b7e36f55b246cd7694d7084de974ab6078578ff1de47b9a3679a27a"], + ["5c1a43ef03eb1b13cd13ebc8a2fb71d5a8f68283c411d9d15ef53ca008e97083df44c1ab2503000000056a6563656affffffff5ad817dff9db7d9db22afd39995bdc0bb5cbaacd5986ddd82193361c95ad2105030000000600535363abab30397093a598c9677fc1b5572cbaea7b9d3310c8d03af4a0474be8ab91b02ae41e7aab2500000000066a656363650097bd38eb037f5ab2030000000006516a5365abacfb4fe6010000000006ac5363ac6a001375af050000000004acac516a00000000", "ac", 0, -926389277, "40bba7ffccf8750c9c250f0f86220b1138529c6ff429ffd0b59d1bf66c01c1a3"], + ["5726fd440150845562541b3f65bc01bd98c3784f663394d8c345cd31ac88ced866a7dfb59801000000026563ffffffff043df1db0300000000076a006a656a536374c36c0300000000066a6a52526a0099ea46020000000006ab516565abac12b04705000000000751ab516aac6a515e9870bc", "00ac00ac51536a", 0, 81968796, "2a6ddf221af61b34f388439d9fd7eb3fee2d4b08c860bce06e09a891fcf19844"], + ["5f2583370433123b368d14c78344076adb2283252589f8c03ec3656c1b729ae3023bf489af0100000005006353ac63ffffffff5dad5b5b826d63dbc38e0e443be8cae73d5fa6b95bfa1b6ac4381b3828af9a0a0100000006acac656a5265ffffffffed082eedd2c785f34ede0dd96412791f75024fea543e8a6797f3534c6e3ada6e0200000009516a635363ab6aacaca3bfade903fd87b7ee39775a85b8624770b41ae2ee131293d81ef20471553f041af9f8960000000008516aac636aab525329728137031457690300000000046aac65002a6326010000000008526553ab6a51acab68b50500000000000552acac53638c9d3948", "ac6a", 2, -464729619, "b99b1d23dc9bcc32b5160f6f2abd280423b9756a322c24d2e7935b2a3d71b4d9"], + ["9e79cbbe01953406baad18fe4e25f8a5175ef5303b645f5c9c76018b1a8fc8f8c1c20ca0ec02000000035365acffffffff035bce5402000000000253ac0a3ab600000000000152d9906402000000000351526a28ba3090", "000000", 0, 25073651, "0c60b44424464d46b91bed511b4275eefea30679524d8589b9da99dce33ef0cf"], + ["194ee2db0364d6216a6c099ca5abab3454a029c82b99a433b8a9fc04e98e2e01283fd95efe0300000005636a535365ffffffff068c55a6e06d627fadc4e0ae61a6af556a5b935db38865cf799eb2148bc530a50100000007ac000051005300ffffffff511ee0eced8c18d9974bb6a9ce031e90192fcacf063da357be291bb3b26d290100000000096a52ac6a51ac005251bbf20a7503172f0301000000000863ac525253ab5253a0af87030000000008ac006352006a00ab7c772605000000000000000000", "6500", 2, -953428503, "e01adc6515115e40bf9f6b88a53217d1b465372301a65ddecd7ef1648eef76b7"], + ["e6572b9601f0a9f2a1ec02d17b73a6343543d9291d0b3dc11a2bec843356c8e23390dcf34500000000036aac521ce81e450114821904000000000563ac6552659e129d03", "516565", 0, -434207820, "6bf69b482bf57e2724c45df3dee3d90586b44c205c7f1b71aa7c9b92a2a0d3c0"], + ["28e6bbb7014aed577d120a0af472d239fc75079f719e478e88d2ddc083d1cc8385d6938ac8010000000165eb4979f4030185300300000000015277358605000000000553ac6a53000eed0301000000000563525353519859f2df", "", 0, -296064923, "dacae49fe9a6e4699a0d5ef24cb52dfe015e2f516b0237c8ea51db2acd14c430"], + ["defdb9a0037e9c4ec2f3bb6658d67a0c50eece28022e065318bb6bab4f45ea1c391fc1e5ed000000000063d2ad89b6a17c1ba7704365a313dcb88ab35e4d96f29647075b66d9c80220525f4d2e80000000000265529ad207eea79165dde0f9d675168edfcda3149301eaa724854b26d8c2b9fd9244764850530000000001530834d1d202d7869a050000000009ac655151516a6a5200df8d00000000000001ac4a64cb9d", "acac65", 1, -1640238031, "20c43b002acc4841ec4375430a8b06105e51ee571bbd0b947ff72356b4e54e0f"], + ["d3747c140112979e7ff11be5e230922b07bc4c41f232df9fc8ccea99dbeb03ff5f435d06000000000004005165abffffffff01d916d903000000000752526553ac656ab9e05785", "", 0, -938779913, "fb4eb5dc4390908135afbd8525b71afde81e4e8eb36d18a0ce73ecc37af28a38"], + ["519834960128be0faa0c83cdd6fe550662c166ba16d1fd6e7ff64958ba99bc10d5ca658ff40300000000ffffffff0395f1130000000000086300526351ab6aab80483104000000000851ac6551ab63ac6a2ec40b03000000000265ab00000000", "", 0, -840253219, "b5dd7fa836a36a6df01a5d0334c43def989cc9581bcad84e54b1a2511736632e"], + ["c5fc82d601e49b5913fabd6cc8aaec1e22b17c192365672dcbdb9c0c70ab3cf06f61c160370200000009536a63ab00ac53ac65ffffffff027baba1020000000006530063ac53ab788cb602000000000852ac5163ab51525100000000", "6a6363ac", 0, -2041964984, "a1850704d03cf5339589dde674e23588ae919151d3770fdacbf05389c3c1e4db"], + ["9bf5530d03b0333a141d5e4e2a9d30b949e003ebc6f401d380ba72a74460e9b55a265f9e6803000000086a63526a53ac636affffffff3242d6e5ef72811ad8e5ae4258946e36f7c4501461cfd1a1d2996dd7e2986d1e03000000046a655151ffffffff05b7f0fb68f9c7df44ee98f2362d24e9d66ebf9f2e4fbdac4f3007d5f2a7aeb70300000000ffffffff03a7002600000000000453006a6a0abc480500000000025263f81757010000000005515351abab00000000", "636a", 2, -1301126621, "744f447804b0eb67febe7bbd5027ae6fc7494a91224f9f24af63fe7d65d993da"], + ["9518c51302998cba855fe879e3cfa5057d5155c91f9be2cc61151d25089b07e11c7b40d77501000000066a52ab6aab51ffffffff9b95191f193fa38da07d74e34711997882a4b169d8cebff75211675188aa5775020000000653656500abab31e00a4b02a4a6b2050000000007ab51acacab6365df286305000000000463656553df90ce40", "", 0, -1882766620, "8086a471a2f3d3013632bbdb2d979ec6bdf459d71c4f4acbf3a6f85947748963"], + ["da8ce72402551fd36c22696d86052f999be0c9bfb89ff94a38f07dd0eb660650adb4b6b7300000000004ababab52ffffffff79d17a7fc9c4e6427f1233a87b0cefd37079e5b5de5e827e484f659d1e2161ac01000000086363006a6a6aabacf245c3d902715a9e000000000006005253ab006a1f61bb020000000007ac655163ac65536bcdd2c5", "", 1, -220283946, "ff06a254b81b11f4cba3f79ee57619047c9eabbae07a37dce21a48111d3d37b1"], + ["60dae3fd03927937e28cd98052e0bb1e3c879a705ba59a67a3aa67b9c705d4f3fad630eeca020000000600ac6363526affffffff2c1dab9469c141023a920a31d8dace5a81b3843833bfb5093ef9e0a3592b85050100000003ab6a6affffffff211c4fefa32e46456289a1eaa9d4f04db078f821578452a617995961b783425403000000056a5265ac638b51a07202ef6264050000000008ab5263536a6a0052c5a3340400000000050063ac5353f64f7c5a", "", 0, 1139148708, "5b2061f1753301274ea5d34715c630cf54009b578b3769dff9fb58064c043578"], + ["0fc0a8fc044d8d6a368ad6c3c6d52ec028df5c1533d2d29846ff057d8f646ed103d62ffa580100000000ffffffffa60be02c30b12756c4f10b9b385df76427c9d1215473bddd5d578e70f77c7bd70000000008516a635263656351ffffffff3c6e834c50121318a26bc69f14b22431728f53db30becda22dd150a0d0d26a6c010000000553ab52525345b68a0bc10182e08f4c28fe78654a6a0adc2bdbe841a7440057bec91f1dfdc9beec108d000000000563656352525dddb03d040d744b020000000000d8ebec000000000000c66ac00400000000040000ac6a746b0103000000000465656365b0d8ad1e", "655151", 0, 764051495, "c3876bc8080ab5adf0264e04ffdafb8a3a090f6512df189830b9a86832182092"], + ["70b9d26f04888f4cd8da18766998af8d2d173d6a2b870442bc405ace78b87806018905accf0000000009516a51526aabac5253effc2f1467c9266114bc00668cc45b36ac4e51d7f30ea062f6cd35d28888fd2060498a6703000000096a00acacac520051abffffffff13094a9cf8ea967efe9bef58632c8053beb1e9108d5bc3496506f6957ab626d10000000008005152006a63006365c522246774675596625424806d6f26b7ec9ad6100cf150094c759f96eed89b435b6509000000000551006a5251ffffffff04f13d4705000000000700656551abac52090f0e0100000000025363dff023010000000008ab52ac00ab53ab652661f2030000000002510000000000", "0000ac650065", 3, 1379673750, "4899d36d51c3e045c00a0c02ad3a9a8316687e351d8566abda487580b7074b40"], + ["9152155103811bfaf7a1fbbe606c2b85b3a4e72e9ace04b7aca73aa145351dadd5733a2e170000000008ab52ac6a0052535123717d66d25c3eeadbcc06c80ae62dc35ce5dc76d9b36dfbae6ca73a8401ddb05e89412c01000000076363ac5253006574476bd1638a259b61a8ed68c22fa2dc5da69f8bc3e3762bde672f9671c5248192b6e412010000000165ffffffff01ec2031020000000007650065005153632ebb39db", "6351ab00acab525251", 2, -1152498436, "df54103168856362c08e666caa7d0eb38a345ce1997e68375486549c2de8da87"], + ["b43e875a04aafcd6a40141f34b668dfab2dad10c83c57b24bbb8660df3c3965be35e22e8d8030000000853635363526a656affffffff783774357ec79f79eedb4f9b130cb1e8e0c57405fae91010d7a93c6ef2f644330000000000ffffffffe90aedad713483798148942f3615627991df6b186a0d5f9607d56ebbd113afeb020000000453515100f6529884a4c67cf51ec8edc6e08ce9f578c64e01ad4e849f5e20c618fe30b1d13dd9a3e1000000000651abac6a5363ffffffff025b2cb901000000000653ac6365635325cbf803000000000552acab650000000000", "00526365", 1, 100913625, "413ba0b018024bb5e5fd9d2ab0fc9e9f956d35a282cc31a4797f081d12339f70"], + ["78b3412e04a7aa41313f8bee23966e3e490855b594d662e9328af25a644a5f8a473bcc8f330200000006ac6563acac65da2dc0180dbf535a91fc0704a7803e690720026d64fba32fca4e7e08d3324dcfbec1fea703000000066365ab63acacffffffff7e076b5c500fa67d7d5b1ce0613707e9763f58f2b611f82be87b38ecc979c55d0100000004636300abb44b39d672f6137a667851dfa38498c0eadf19b36f5ba868947233b374ba1f8bb51a2b370000000008ac6351ac006363650de2c032026f5d0805000000000300656addff6c010000000009acac526a5351abab0000000000", "", 2, -1495749207, "f90adce99df686836258430270f5de4ee012ce11d973b941414a7409a0d16e79"], + ["3166c71c0116bf73ab69e8882d007121768851948a9b1d408911d2677b10853f543410d5a60200000003ab51003f3afa0f03269dd0020000000003ab005126ccc1020000000004ab6a5265aceb2500000000000900ac63ac5363ac515200000000", "ac52ab", 0, 609284789, "54c8948c27efc2e6f5f4b580ec078e3ffcc4137371919a8df3d6d108cae5780c"], + ["eb770810013f1d9dd7a5d4d0aa0e7c80a4f24fbc697795af9006c1c5e162b490d3c5f3da6b00000000075152ab006a00abdd0807bd01b00169000000000004ac63006a5aa99f47", "abab00ac63", 0, 1540963416, "0b9e18561418295eda0c1f824c7dfceafcb801eebb08a4d5eb9d270f2abb6037"], + ["f461d833048b768fd2e485ff4d5e3e02bf8bf4e65740a46a4ae929d4af6ec848be6916d30701000000065151655152abffffffffc78b8e856e5d139f7433f118727310dbcc3fbc673855212e6d3ea802c018cf15020000000951006a63ac5163ac00d0a0175a53478a3c274440112de7db9a70974529c9ef3c58148b81380ad5c55fc89e3eaa020000000100fffffffff09f1ffc5e4a1b18d84b4cebdbb88ee33833d6121ce4f0e1e09a88689a649857010000000300635153a957e101218bf10500000000015300000000", "5252ac52", 2, 617680009, "f54fe3d35896caf6d4daf0439d5688df8cd759ff370a87cb972e31ab68101017"], + ["bb00e28402e2877d5ab0befeafe94d59e8596fafaa3dea21432009170e54e241742c0d8f2801000000036a535394e03e22a6e4824fed9d5d265ec7342d534234e3fb12c95958e64af50fc97272a1e90fa90100000004ab516552ffffffff04b8223c020000000003abab001680fc01000000000965656500526352636adfbcf1040000000001ab84b6f0050000000002ab00a69e410b", "5152ac5263", 1, -1515997088, "9c25b69f57987b9b2325fba8685492067753fcd8cd527bf954c9dcaed497c834"], + ["ab61882301460816f4be5cf99b5188b05b6f32fe1656580f1a3b611f24a8ef44365389b96400000000015358223bc10258c8f101000000000452ac6563c45d1403000000000753006a536363ac6d3a0546", "005352", 0, -1664585848, "97eec23e32328ece1af0c8c31ee572f2d23745e4bbe3cdb81671aef5fe898c41"], + ["41a5343e04911edc3300b5b8a4ba53ab1d4c50edf60b856ea7ccba90e45b55a89eabfce9750200000003656a5344c22988062626da7b092911eb8cdb42438c496327570aff4424cee2b657696295cb09810000000006525300006a6ac29b93c4b952a89c18e346a26eab12da04d7f3f8a96051be446473c8e7d5a164d164314201000000085263636365ac6a534699005d50498be4ff35aa8cfa20bd988cf4f27c4d982e0dadafec4264fadbd082e4b6e60200000000970c87f401334acf010000000005ab5153516559254237", "536a", 2, 334777545, "92f420c0653f551bcfa0f4eed1f221159fba7d9e7667f5758cdc2a40d467287d"], + ["cdf5759a032a4cc2dbb1d0186b21850563a85b65e2f98109554d34a05bf9da80c9a8653662030000000565ac00516af56396124698dd7ed50ad605717ee70c9478ca54e8e72298206cf2a5a9cb0b9042fb60a00200000002ab00ffffffffe12f9dbdc8da5a8ad13deb83121a08866656772f7f0e11bad308bba71833c41b0300000002ab5121b510f004e42871000000000008530051535265636a30778200000000000953005252ac51ac6a0014ca8003000000000363ac6512328104000000000851acab5163abac6300000000", "5151", 0, -1836115564, "833549270ee9509c34f049fc55ddafd8af374a7af7e71ec464df41bdaacf1f6d"], + ["39337fde04af925a0b7e11f3036ddfa773a0c65fcf5658853de31f38da1cdf27fe603f1848020000000965006365ab51ab5300ffffffff3308cc5fd638a3e933a096370f2dd48b130d7111fa6421827e76235acdeeb0ca0200000002abac96e7a9b6a50cd8ff234f4e1338d4fc36ec99eb1c4b2478b74421c3b5813ec7beb827a03d020000000565ac6a006a54a7ce57a7a4ed4786018f7aefe7925f574668e330f140f9df00c65aff96be989d06ef0a0200000004ab00650089bbb14a014735f40500000000036aac5200000000", "520051ab5353", 1, -1616079411, "5d59a0244b760f9a661914ca358f569535bf664da2a7527ca62f68483ee4185d"], + ["ddd3ea2e015fa1197f041d95240c3a059fc6c4f46979170d845cb49e2e99f8e75f36039d2a0300000006ac52ab5351abc435daac02344eeb050000000004ac5152657dc38400000000000700ab5200ab6aabe23f0bd5", "65516a63", 0, 10254423, "7f5e3be731f8e009e8ddf0cbef070be08808867d6165f4790c2c54ed2a315034"], + ["7a8b11c4037452dc958374a9c3ec146ad37b153c9b2affcf6e3005f854ba1f4be1dc2cc870030000000552536aac00fffffffff4203f2ae174c23004dd7426463fe640a85df4569cefc7b277769662a1d357f40200000005ab00535163ffffffff67d65a47b5e9b17d776725c01d61b2b0b31b3c22b57ce9ca75b3bcb8b55d7a7a0200000005ac526500ac20a1910f036d78f105000000000353ab0030a5db0100000000096a6352005263525251fa64ae01000000000551510065ab00000000", "", 1, -2012237877, "0344d3b4d76aed497143d821b703fcd20a6cc8f1545e9563bd3a8198995b4c1f"], + ["615ea533046d1f240fda18fb815b77ab202652a576dceb48d15713b0ecd0ee3ae2e22c0b830000000003000053f9f7382d4904b3712328f1ac7a411b3455c121e32d2a81b7374fab0b33e4405deaf83e180300000005ab5265005305f90d31d2a926af83ed8d43dc0d2ce56ebc8d51823a55d9dbc962c06ad87e43c1a0459e00000000076aabab00655300cb096d6bcc7dfb4c696e95d065fc2c690f2c4ff1b3d409d6051680091fb4631a2fbf38b90100000001acffffffff04d07c46050000000003ab5251a3d43c030000000005ac6a65ac53537478050000000004526aacabc2bc7e0000000000076365520000526aaafe4e25", "6565ac510052636a", 0, 1090851535, "80f64fb2d2df66e61b1a36c2267f2a05f5fba5439176ef7ba9352914742f9c49"], + ["3f8be3e00283f84ae2cf1ee33426d4cb8e3dd91e375e0468c314ff91376eb87a78fa9d62820100000009ac53656a6500656a65400296ce7f6b4bb646ec0b4ed0e6d85cd89b1cdc0ec6d58b4bb8b8e9432b36c9172a656200000000026a65ffffffff041488b40300000000065363006551abc0acac040000000001ac22585c00000000000500acac52abeb76890000000000046a516a63772facf8", "536363635353", 0, -1650371595, "d42ccf7f5659b6e71a42f40e73068748929acb941b41bce6e451f59132543bf7"], + ["b12df95a038cdcef53ae910afe9c76be9b15ac4db71323092bfff2e7d2af7d9350703a83960100000007acab51526aacabfffffffff8e76854a8792c5a91d2e5741373b96239079ebcd76deec2e137e6eee30cbda50000000003ab65510ca5909b6b0e5d41a0fc33b77802f483c397545ac9a598e585139bf41d6ffb43b4b7d34d0200000008ab5263ac51abab53111a30160187287d0400000000036563ab00000000", "6aac", 0, 819650700, "3aecdd75a504c792fc777d5ee54a141d41a3f975301c9a43eb569b257e5c9b50"], + ["5eabe46b04f66c71299971c11d054badd76f1f78a90fd860d76d28669b4a3cdd6504ad48bf03000000096a65656a00516a5100ffffffff171773a673423d60292f95f2cbcb6f59e3edcd00654f30bc43f1495c43c0a51701000000096563ac0000ab516353b8491c1ab4b59acb988b1e344389bc6d60a916d6c8358ba64f4212a4832a5778ce67873b010000000351ac5133f4d69a847a1e9369d91207efb6bf4c0421a47438ed542c406f63e74e15e7882d9bcbf70000000003ac53516a0cef4a0369f9c004000000000753636552ac00acb01bdc04000000000353ab0047cb66040000000004acacac6500000000", "65ab5351", 0, 2128688414, "cf59fcbe2f006f96be848dae4fc14dec8a40bbdbd3c7d1c92e6079a5d6bee613"], + ["a7062cfe014009df490e77cd56ed384126f734850206b4bfcf3205ab8dabd6a8416e96cd5a010000000553636a006affffffff03b5563a0400000000096a6563abab6a63ac6580ada601000000000553ab5351652bed9e00000000000352ab6500000000", "6a535200", 0, -658861432, "5a6a96695f8fc7198ae7406a5bd6038b57a995d65b6a9978c119af1fff19ed15"], + ["33a5573203665461cf9e108781f2542c9c135d1000840ad75c269c93254719fee7e5263fae030000000800525165ac6a51abffffffffdcb5fe70adac6206adb5e27bd934af78d140d3ab4c48d1595164ecf0754ee7cc02000000076aacab5200ac00ffffffff0b6df1a42d5687020908bc8a5a131b3a6ef25ceeee1cf21a015e75f31c53067702000000086a516363535353abe70e6ca2045d61c3010000000001abe8fa27040000000001ac7524750000000000020065b70abd040000000002ac5397e09afe", "6a", 1, 1436677007, "271df075eaad4c17419abd4b079767df8a4a90638871f7e317d90f00b36b7c93"], + ["39d6dc73039d1358ac3665a4c5108bf41799d8f75e99b1056b405355239c71fb2b7445822a02000000045163ac6afcff150e3471920f78fbf35194dfe3fcb46caf78a43ece357c7895d56d6198da899d973f0300000009abab63535300abac51ffffffff77c5aa602eaac75c5673a9cb39f5c2203bbf899a8af1543a7182f3d579a2a8d00300000007006a6353ac0065ffffffff01e98e0a01000000000076e8f386", "65ab", 1, 2121342681, "6e5597456e03c1ce6f4bd2d7bec7d01712c302601abf6ee8d65f2ed76e4daaf4"], + ["44bfb4d903cc90fe3aa28e2b5b26d0f7a0a3b0e89ef4c5ea276056218899eb9789ddb0030c030000000853ab6551ab536300ffffffff8a73317b00bb7b07d206e38c33f690951d0b43142f6a82dc685e531f22f1db45010000000763655253636563ffffffff91cb1c1e426241092412b44131fbb7769af6a421167a42e92f55d5c2b36fa1d20100000007635200ab65ab65ffffffff049466fc020000000009006a51515253526a63b6f8100000000000096565635263ab006aac18c4ce000000000009abac6a6a65ac53ac65001acb0200000000080053ab6a5300ac6ad1aed514", "abab6552", 0, -340316192, "d6402bf7f893d47b0a00581b0baee6c3b8079731586d142351aa77af990e8b9a"], + ["77893cf20423f13f30c957255367b39d54a26729259dea1567f03faedc31d1e77a82951d1e0300000006656365656563428e3135017fe7a9ce86e9dd18a73ba64bfda289ecf670cb60419a34d913d934ca5b40bd0200000003acab51b68804d64381310781536f119e30b95f4ce7fa2a69171f07c9fe53efbe6c6324c74dede80300000005636aac5251888414c2f5ff5495d62e05a3f943ea654c54a8352072cd37e8b0fb967c9ee96eac5aa2a102000000056a6363abab3452192402f50ffb0400000000085100ac516a0000537b0d7601000000000665516a656a6500000000", "63", 1, 580326537, "930be7e0b9516951a612be2c249693cf00fe3754e4652baa8de6982a3235951d"], + ["e40151c4046081924ccd85a2ce3f3f2835dff293df622da669d636024c784a129a35b109f00200000006536a65635100ffffffff548ba39bb9311a6869d3f386625b9d2a088c7c940088c7d97e93978fe02a0f67020000000800525352636a6351ffffffff21eac8d4473ecddcd6ff41042962eb2847deeb1b04004ef25161ce65db21e776000000000751abab53526a65ffffffff73c1fa4b1930a9b2ca389e436fe466788c85e9a06f875fe4e94cc308eca279f6010000000563656a6aabffffffff023b6b2e02000000000100c29f19030000000008530000000000acac00000000", "006551536a526551", 0, 579532041, "ca2df94b5aea84a329e74c481a3812da73105f4375614297a7cfa0b49b0d1169"], + ["6552972c02a0de25093442bb6ee4f820e5db76d96c3eec63b789f57418508ed96a16d712210000000008abacacac6565ab652413f8443365da6eb77f6992b375d142f8b08f09b39af7b85a7905addf8dc0a2dfab7118010000000152ffffffff0356b47f050000000008ac536a6aac656a638f747a010000000007ac65ab516a656a5504b4020000000007515151ab6353abbd849dfa", "65", 1, -1344835045, "b783f71c0b648cfdb090079aa18d5167426ac3fa2e2d2bbc7d81a91df834953d"], + ["1324dc53022fed90af83ae4f901126233fa1ed3b56ca4f8cc63fa52ba2dc7d754728cb2ba50100000008525200655100ac51fffffffff8558106a5af5cc84d0727d19439823d890eeaf3977089a1193f990f380f109703000000015287985b1701b7271002000000000363635200000000", "515265ac005363", 0, 480458450, "db860f8bd07a2f61d89ad6abccd1756aab9270ec9986927e2a7bf293df4cf6f2"], + ["04309ed304e74a66d3479f863ab53f21e166e695bed625a4034277c8f4b25bf651d054e31e01000000026551ffffffff8b5b85c5b88d1f6d83b30ddf152810037528a0e2f5ea329135768770f4a4b8910100000009ab65636a636565656a92864a9cb8fa1a685156b6d725afd77dcff2eef6842638028ac01e0545bbc4330957122200000000036300abc5ac48fac144e565dbfa93df62eb0bd4e9a799ac8e5d05925b487b2eb3732f2294086fe30100000001abffffffff0426cb04030000000008636a53ab53635253b71f2703000000000753ababac52abac149e35050000000009535363536aab53ab513ee3780500000000055100536aab00000000", "6552ac52ac6a", 2, 1436290362, "02872696befeee3d08a369df970e390d373a7fc9a351ad4e9c2d3dfaa32237d4"], + ["24695ffd02071ca595f25f66eb6ce12e5b47116fd43744c24461d2c1af8a748b933f0c4c4301000000016398c41e722c0d7e661b02c7981d89f21a8fefa74080c6c7d823316a695526bcac542bcba60300000009ac656551636a5300acf7bb31e3015ad48a040000000002ac5200000000", "", 1, 711454088, "c5d8bafcb33f636d56ba58061143f9cc0f3b03ef238e49727435e15f688fc59d"], + ["379acd62034bf12c96bc222f48c6740ad31130b84e2ca0819eb81e00c3d801d50cb33a0a2f030000000600ac63ab5100ffffffff13c63ac6b60342c1fa6f4056ad9454d198b522f248a6251064d98ff6ba7a33990000000004acac656affffffffd7cd2d72cf8892314f30eeaa306d183ffbf1c5a941caefaa9c0a289ef1d467dc010000000400515363ffffffff03990e44050000000003636aab25dfd004000000000951ac51005200ac5252e0f58e00000000000165039022fd", "6aac", 1, 1898723369, "bd52858aa343f4333d458de2aa7efd1c1992961cd02dbda39740146590c26529"], + ["dd5d288203f94ff8e88749f02b59442c9ebe04c8e30bf13659c87eb66e5e1b1b12d48423640200000005636300ab6325f36e57d00d4c53119cfbac964eef56a60ff12874ebd83162c2408dc6d0bb3b2e7ddb4d000000000056e9e50f7a59e975e14db485486f55eeca81e4d54d66b9c5ccbe2ee5989b235e1bc75b31020000000665006a6a51abd46c326f02f4f93c0400000000005223f3050000000006ac006551000000000000", "00516a51536a", 2, 2083993813, "fdfa1c5854bb5f3eadff1a169d67ff819b773b376fdda8ffd6e0d19c1bb87e19"], + ["5a748d3302f93f40c54163b9c9e67b27f877ec1b42222fde1deac047e82845db52c58280c000000000056300ac00638e9f692ee1d9f5563ac2f59c0a04b3f0bf4237f0a690271cc80b5bf8e4454adbeb4bd5c7010000000851ac63515265ab52e98c87f304052d75040000000002656540cf280100000000016357a2460200000000046363abace1432b00000000000853acab63ac5153003b598717", "5200536353636352", 0, 954669619, "8756f44845d4871e0980cd1db0afd1e3c0f6eed81408ccedee258831e6c456ea"], + ["d4acee7a0347acb47d9e47f1da4da42e5eb7ceff6972b87c74a10b315db18edb59e94b33b400000000046351ac63ffffffffc455d5ee0038adbd7a9f00fdd5ba28cce369f183ec80a67516e524649d73ce9c0000000003ac52ac9057ef5137367d2904317ae480e653396048f8a4de0e7472f59e288520ff7a946fcc7fe9020000000763ab65635200521de4b10b041de48f0500000000002026af030000000005ac63ac530086088903000000000765656a636aab6a6883be02000000000000000000", "00ab", 0, -1972867429, "fef168a325eb3adeb628c4c7626185a57d8cd3b81d574aaa5401e6c17770e1af"], + ["8a7d09210449e4034f90ec55b42cbde69d552f05eedd72be75ec2ef08aa08b42e7e6ad49470300000004536a5263e1e0bf9888416913388c2a576583bdd567ceff0c3bd7af2cf99aa3e481f5d219a3a6705203000000046a53ab6affffffff9d8f2b5f242739e7d3503d02594c5199adb50dcc138265ce9faffa280b31f7ab0300000001acffffffff5adc02a0ae900a461f12ff1d07e6da5743795ea9b248d3a0c1cbff954b8c3abf01000000040051ab639b978d8001e8aa4c010000000001634864a5e3", "63acac", 0, 180859782, "e9000b8bf1ae0c5f2cff6b470a3aae04b2fe99b4ace5b8ad4682dc8401930ba0"], + ["f96f987001792eb280288baa850664c134603bf51082837711de6e5a0b77b08224941db094030000000600ac6aac630051f658a80230bf3d0300000000005f3cf3030000000007ac65515151515100000000", "6565525363", 0, 672222878, "14abd81e5c8fce67ac450a1bb63b60c1632320cf4554f295ea865ccaf57dfe45"], + ["22761fcf04b95fe315dd41ada3a13bacbffdc59c10e745ddf580186cd9688351d7b0b5c2f00000000008abac5100abacababed326d6d94cc48f3e7f2bfea9bfdf135d81c4628124f9eff0a94fd81f464a43ec6192646030000000100d31b2982698dfc80dc6c6d0da85fa3093293e22e1764eb7bdc62813eddff3dd3b5009c6a0000000008535252ac006a5263ffffffffc5465c29f9d4cda4740bcca2bd1dcc1baa19e5bc51302eeb87513e8b17fbd813000000000353ac530df01073030c03f504000000000700ac636553ac51b65f35030000000005000065636a3f7b44040000000005516a52526a485e039f", "526553", 0, 1137336213, "9d304e6aaef7c2511e234c33c7406997d0c893ceee2a399c7c549b62e4e49a37"], + ["b739acdc0155024760cba2663ab239ae08e64e33fb3b99ce06e31ef671476b0e2227d767020300000003526aab62c6266a03c5dc6000000000000400006a51c4ca6d030000000001659bcfb3010000000006ac656563ac5300000000", "656a5200acab", 0, -1017048038, "207764b4a67808bbf1c770b83a9c52bb3e2770eee6a1314e8286ec85f8b916e7"], + ["99a2005d021feeb40123546c5d47c84a9daf53518ae28545ebc40f6923ee75b80ac39d8d360100000007005265515263515a3620b187fd1885c007de01fc9bd976ef682d81573d87ec4131a3d10b21929f9511c66002000000076352005263005231d1b36f046af40205000000000963abac52ac65635165eb90190200000000015230485f03000000000152b755010400000000045263526500000000", "656a", 1, -1699902695, "7755c95464858f4036f8c3cf42d666ce2891b6398cf216ba87918cd412b5d2f9"], + ["1b5e2643045c1c93228d062185305ae7a01785692bd2bb88b057a308c12c17ec8f7ef6edb7030000000763ac516363ac6affffffffd774f99537dc019b0c0b4910f95947324d1a65621b8207586a4c9bab12133aff0200000001ab8760905ba5e2979bf57f3e6a12de8c52c7212dc671ccb8a492becfabbe174193a5e2cd960100000002ab63ffffffffce6d68b70d8d441749204cdcd8d0a60997816d0bbb7f491506390b6818a38c87010000000100ffffffff01c7a9bf020000000000581b8bc3", "", 0, -1165869684, "4d7ac570f904a1f53ff7f3afb6aaa4b3685d4c56cc05dbe5d0468f9d3a684b42"], + ["93f5eca104365e35caec1a99511ddd25fec4892c51628d38b40f3eae552b4710695fe15a82000000000365ab51ffffffffdf4a72b171d3da62481a0b3a0f1bd35d13ad64ff51df0f586c9ad749228e476903000000055153ac006349096b9982afb44abe25a4a14834637c3a039769d52b92fec3de01cb2c6067890044b8c302000000065365ac53abacffffffff4c1df8eba52b7a5620f7ca0ccc0ae78e3d5ac1af4a26fd191042e47c6d4b11cb0000000008516a6a6351abac53ffffffff046eddb3050000000005abab65ab51c93275000000000008655352006aab00003c42510200000000055200655163eb3e690200000000015200000000", "65", 2, -1912864644, "7de0cbf33ed6a6c81161ce84b6936351a435c51fcdff589ae2a268258cd00359"], + ["83ace2f501a06d9e2bf3f133b7364efd5140fe5ce8804e36b0c464dcd7b53085e5e62e9f7d0300000003635165ffffffff0288a13602000000000753536a65635363999197030000000002ac53076fbf25", "6552ab51516a0065", 0, -161426522, "6fc76bd61b045e0676b326a8d9276f6db108a7127e6029d5d9513fa485cdacc1"], + ["4257c20f037723434582f14f788aec16ebb34aeaf0969b93e16a37b52e7f81f04ffc170bb40300000003ac00ab4699bd01a8e45c1b5c9f705cba152e7c7ec291d62c0d03c8e2fccb988dca67aee6b8856f00000000086551acac52006a51c4e2c40555b4f61474ece7247197907cbe87cb26f7840cd857c62e3cbbe00a64285ce55e020000000153d40e63f001743f8301000000000565656a516544cea525", "515265636300", 1, 1165183266, "e6696fd2571f7c6f9120a74c0e5234f9c147883258932ba4426a65fc29292ca3"], + ["4d99d41702a92172ea1ca3c51ff60b6b718d8940d34503ae523733bd3645ef8c169cebd4a601000000056365ac5100ffffffff2a1040521af48919903a57fe00d1404a0c60ee5f733588795120907e354c635f03000000025153ffffffff040eb99304000000000863ac6a6563ab51637d6d86040000000006006a6365abac21bb640200000000008f3d560000000000095165abab6aab636552c1e39033", "5363", 1, 222790266, "22044a562cb091321700e6abf7561fc898f2cec61b1c3f9a594023fc47156b69"], + ["b78e9d89043ad8cb43c50254314eb2a32fce3448d569d476c8e45dd311d113a2693ec7084e01000000086a5300ac6a51ac630b5524aafb7bb3ab9551eaa8764f5c05171f0f14b2e8f5817070b66019308b7fc9992c63020000000553ab65536378048672745564dda90b207b816d6b5829ba0d04303592966eabb569d58ef826df5748d70100000002526a7ae507b5391af17fac1f81246cce4135421d4ada9a4d9695998266ef8ede462eff93a119030000000751ac52636553000e84686202ff6b0604000000000363526a3bad38000000000005ab0052ac654610e9e7", "6a00656a00ab5200", 1, 594120114, "443533971704939056d3155d0b3d5c0f8feb1955b59dba30860c0b849ecc9b55"], + ["748a1a4904863cc9a53203c95e0218844df27a2a5d9f6ba8b99f85b899290e0cbb3b44867903000000008fc10de4e6c4fb9ca392da6245c6b618334c69b11f23bbe67c46dd4f646c540755327e81020000000453ac6551188fef04068cdca724a6c6365d86b9dae1b6d1c5f49db02f5f17bf53e71b2cc860ab6bda0100000009ac516a515351635152ffffffffac22d59c9afdf73a3d8b2e2237b588baf836d7d98099539ed2f73366282989080300000004525265ab559e7cf704119e02010000000002006a9a0cdb000000000008ac65abab6a63516363586c05000000000965acab53acabac63520999630100000000056300acac632f8c52a7", "53", 2, 444065044, "f94373c9b329d17530113cce486c2d18ad307e256f01f8fbc78a4825d6279e05"], + ["fa14719f044e676de00b67e91626b74fa47926c934a7ffae82ce4b3780a2b20211a5299b5d03000000004fa87153bdf2bfd4251a659e603b4b3c2bb94a18b3c63ff01c2fb43ae382319442a26fa40200000007515165536300532355cc973c261f08aa6a06e42a1f723b7e5e253cb222ac589241ac0cb6cd07339d7e95e60200000002636a0fb3db851417ced13532e8f9f73351d8874e1ba571cfdb7072438e83c65cc7548a4571c5010000000500acab52650e551bfe01063ccf040000000007abab52ab6a6a650cadd7e6", "", 3, 505831391, "cc304a285b59748bc6574cb1f68b0c8169a5f2e4d248f5e9764a60d37a448f6a"], + ["fa7759b5028739a9988e8d46a0d694485530c0d42d892be36291ee0527f81b2a7dd996464b00000000026365ffffffffdb02d470befb220f7e5df4f6299a3f7c493910339ed2962ef5bb784c2ef55c950000000006520051ac53656c1f65ec02c49add030000000001ab61186205000000000963520000516aab63003437588d", "63abac53ab63656a53", 0, -1890050573, "e606139bf0a2720d7762d42cdafb02eed53935675f4514c90436627e962f2f3c"], + ["582f3dd3034672aff30d5fade125dea0d21b2510e33f44fdd989c47a58319f7e49cfdab75b0300000008536a6a0051536351f307e9e8a13849f138a890a99e79a423f875e7795f83acc564e8b0cc7d01e9534e08ac220000000006536a51536a651275ae6ae58c89bc9a2b496919f51a7b69a059d7c3461602ce1c3359aa8897912b48c0de0200000006abab52ab65ab17b60c1603a8af96020000000005655200ab6aa3400f010000000002656a6aa4d2010000000005ac5263ab6300000000", "ab00656a", 1, -1010163023, "c62b02f5bee1b02814183f280cb6cb8e8d67c93b3dc6267b9a0a584f69b69c9f"], + ["1abc3291019c047a03a83b5f709e448ac2cf74a689e5090b62a391ef89e58a3e58b5dc55590000000004ac636563b55407630375d02e04000000000165df0486020000000004ab6351524733a201000000000800636aac6a5253527107f603", "", 0, -127306773, "27089d2d4bd9d8214d7ba7e942c5809c083d5a74ee76738826a674f8c9bfa259"], + ["c56d13ef0156ae601b05470e02fbbc7b286868651923f7ab1125052ccc2d4c7bebe319f9ae00000000036a5163ffffffff049cad08000000000002516582f90a0200000000036a515297b29b05000000000653acac535200cd578d00000000000251ab68e260ae", "52ab5265", 0, 1600073764, "c3a581bec9c750bb1bf9d2ea1e6d9ae6fa3d35c694dda3ceaed55230061a51d2"], + ["0bdd451a04c52cebf186809a6e8bbff00d6877aae23cae1a04c6fff3d18fb0c3b1fa2667bd0300000000d074642993ab905ad97d409b612aa8a3d77453e49650d2bdf238d3985dbcdab73b5d21440200000003536aacc7fc19b464d435a9860962c543a07bfc5cb4eb4e85eb30a13bfb459d922250ab6fa40f2003000000090000656aab526a6a00ffffffff84f561b63878e118543bf8b2d30c16ca67e5b479cd0e3770112adf1be7c9e40a0100000006acab52536a6affffffff04f7b5d9040000000005ab65526a520cd6c605000000000952ac6a5353656300aba6e77a0100000000026aaca500f104000000000000000000", "", 2, 1196126431, "549331b43e2973d4841822fbef7da6b3bb9b3418b3c4e59006b2dde1a9dd1ea2"], + ["8c1a2903017e5521322aa74aa0da7a3fb94e37eed3952bdc2c22dd20b57d60d7a9519d77220000000002636affffffff0483693d040000000006ab5100636a00d200b503000000000952535151536a530053ac0f540000000000046a6500ab0cafa2020000000008656551acacacab5100000000", "ab6500", 0, 1804399151, "92737610e264c94baa9489e714f3dbe042e8819e716412db2910ff1c380b2585"], + ["57632bdb0115b8af79238908b65f3a83ed2e882d16b459332e9de6c63c9fb33ce4a7dedf230000000002006affffffff01635eee010000000002ab52d64c0204", "656aac", 0, 935871364, "4c61ed181cf3d61d1abe65b39939063a7cd453faa90312603a1f959fba09ad06"], + ["c9434a13041796b53ef29c981d2581b1105874873bbed6053a886bc46eead1d693087f096e01000000045252ac00ffffffff7eb68e7bbd5c628ad11087534c4b47b84e41671e2df2258e0b8ccde56b56a5b90000000009ac65006a535351526afcb9ef20bc01160ee9530bf2952cb66a66b786d79b3bea920f271138d5d3d04688dbfbaf010000000151ffffffffb4a2c53ee8c0f4d25f497bc1976d25566403c24f35a7cfef08667dc1bd95a8a60300000003526351ffffffff0493e73b0100000000036a51654911cf01000000000765530063006a5322d86901000000000551536565537de5ed04000000000263516abb8ba5", "6353", 0, 1404352924, "38c25e452b1e31fd3ed08cebb55b1fb6d5c4934feb414bb7914f7f3d0a65d2e9"], + ["6f7a06c40322c039882deb36eccf22ef2f30d247979e00e5f075d6d67a140bdf85d7adcee700000000055263510053ffffffffc552bf793d78454fd1e80984129ae029f19b64d5724325c66a4ded4023662cff01000000036a5153ffffffff7730514f1218e8c98e362b109185e9d08cbcedc184fb63a3fd8c5a5074b61ae602000000056353ac5353b14209d00250c22d04000000000565526365535c27cf030000000006636a0000ac6a00000000", "536352ac63536563", 2, -2042533830, "daa7e83addc6a3966e9114fc04c8a15ac671dcc02a76010e769ae47d69b8693b"], + ["601faa0c04cedd6ad714aa5b150ce37c0d9addce5a1ffe1a05ceb5122347e75f347a4605f1000000000663ac6aacab63ffffffff49a282b02e69a83a8e94e4b9eff7bd9ca5fff06b8b94c9a4e12131f6327688a3020000000853ac656a65ab6365ffffffffafb98bf15a1a2909047eebef19e899a7636ed419a7e229036c63189f4325b9c1010000000753ac526a515363e3a67b188bd7c9d851e5040ff591b0e9417a0872ce576dcfbd3b889b56b0c3ca04fd7add020000000253abffffffff014668bb01000000000853525165525363521080c675", "525353525365", 1, -1340960666, "8f0762c15d52045591bc5776ed61d4ae19930bc228d80c4ea2638a9bf4181605"], + ["107ec99301d8b15685ad1f4213925734611a603f8ebf0b3d8ad7ef262a48b1239db5ae81d202000000025165ffffffff023b770a050000000006ac536a53ab6a91b8c705000000000552535251ac3295309f", "63006365", 0, 1294644542, "0f8b0c10ab3e7308609720718cacd3a134916cf7cb4f88d40b55456eabbbf517"], + ["57a345dd03b38e0062a4419d0404728932b282b60a7413f76c98528c4007f232a40bc16be00300000002ab6aacf50b1cd04de8722fbfec31475b39e1c86a7799820c66b0124b3d1a5bb61a8f61a3956c0300000000ffffffffdde7dd280dbf370ebe7fe1c5427d75ca1ae660d33474b33c2c6016886dd0b78c000000000965006aac6a5163ababacb66e8502ca8e1e0500000000066a53ac535263235e2a0400000000056a5151ac6300000000", "5153ac52", 1, 1887342309, "42e8c30a815633eed32450eea4227e0518f40555172d1263cea24a18ca5b1dd0"], + ["3a2c726204ef2220f89272c8abc292c678617e1599e713eca8ec2f122460cd29d88b159f810300000002ac51ffffffff6df0c9f84ba322553b155cef98c120ea0a75ccadda1272faa7debb356dd670150300000003abab6a38fc786a4d2574265bbca4d68f4d60bc7e167d46c2382a7a7e6e0fe347ed10c4d5310bce000000000763abab65ac5352ce82b4f364e78ae205d415a9810344f6c7eafa1b561a9a9c4b5713d310636aba429b8d7003000000045163ac63b5a1e99203eafb5b0300000000026351f49ba5040000000003acab527bb30f0200000000056a6563ab524dcbd646", "ab63ab656a", 2, -1064297221, "204d892f3c0e36360f64cc2aba01ad3c9bbb77d4ee7de57072048c540421bb81"], + ["cb1af64c04b8edfc76fd932da8cb8c5f342d3675e276e6fca638be72d57831406399717dbe000000000863515251acab6353c68ff876474e6e9f19e17ba259ed1f2b6bdf21f12e74487df76a7ec181cd3ff23e32d48602000000066552ac00abacffffffff153648d00c48227ece4ebc819d35409983c478ee5609c5e7a9d51b74ec91d64b0000000000ffffffffbc82514310e7af56060fce6334df4df4726f5f2ad166751a1ee260523eb4756d020000000965535300536352ac0055c0de3f03da02ff0400000000095200acab635352ac6a27d3560500000000086a51ab5252ab6353fbaea8040000000005ac6365ac6a2621c691", "ac63ac", 1, 1238901333, "9d9625f63c34803b19d84a6369bb1ed1b43612c6f0ebe2e058de1b0fcdba3e67"], + ["3305ffab04442ebe6e6198c04e073768bfcb760a5ffe402682adaef14a4480516429df3c3a0000000000ffffffff8dd4052dd27680ad2af54146c6425c9e3e8c7d8c965a33251e6fc1c7e991060001000000095251656365005353659fa7b24ffbd72d00f9613278d875d6f72648af5196a5c9525c3c5dd44aa4435978a475fb030000000763525300635265ffffffffb3da165a557b0d09a570ac1368e93b7a5f9025c7b4d0ee13a554e3f3e1e6423d030000000865ac5365636aacabffffffff0293cbbf0000000000045100635232c59a0500000000095152ab6a65ab65ac00e22f0d82", "abac53006a51acab", 3, -972646710, "6781d6ba6d0bb23d701b11bd00f607fef63c3be6a5a91fbdc5748f11ed6d1e5f"], + ["075072c5028cba7c8b0b2fa40e99669a8dfd057864fa9f2669d1e8dd189565023245d405990300000000c80d4081658f4102dbacdadbe697aca9eb564ebb99c3dcee6b71458a5d7fd6488517b1bf0000000006656a6a6aabac7f5db18501d5bdac020000000006abac6a63ac5200000000", "acab53ac5352", 1, 1289081846, "8260c0575132f3a274d5efd61b664220d88012cf4865e95398033b48b7e30c4e"], + ["b6ac696403229a98fae7983f6b2e041a3901f72ec85cfe8a17eb4a5882d1cbc1d3995523dd030000000600515251ab656ab3c0cccfa2bf34dbbc0d0444dec4e6fb36a9d57ffee6e5c86fb4a2a1c4d15dec93d0160200000005ac005363523e4f335e94d3bd9e9bb3a311afb19e19791f771508bdbd0cdca386a384285e56e5a7191700000000096a65acab53636a63ab53659def03802e9b030000000006516a63ac6a65366f6a02000000000152edf92a0300000000065363656300acf6a0fb7c", "", 0, 1987260600, "8abbc7479d48bce838c93773f0f81b72a477c518efe62bd7a9270b04f5d98417"], + ["427540f704a0739c1c595c929cc97401fc20158ba2f1cf7cd86e79c7cc16001518d56188a30200000000859ad0d2bf42b9c98f934bd0f51af0138d8af57226c172fa9eb7c0cac954462c55ce8dad03000000096500acab5200005200fffffffff5530d5f1096386c9cc4e86dd5c0f188813dfeb31d207f853a524998394ab5930100000008525353515100ab51ffffffff23b71a75f7f565079848c7683894f6a32e6132ecb91b9f12c4f2dc0b1962da290000000006630063650051ffffffff027e1b5c02000000000151a343bf0300000000015174931da6", "6a510065536a656aab", 1, 996913884, "5f2fdd6ab9053137b7fff66ef6a5b00623137da9c3db3a50a136c12f9a76772f"], + ["230c93340123e96f6c18fe2f6e79a892b04521b609488e598e43be929ad2b7d1d43670f89602000000026552ffffffff01ec368a040000000004abacab6300000000", "515252", 0, 142165419, "53ab596fa9419f45edf78feba8afe9a0e8629a3454b741e674c531bb7a97cd0f"], + ["c816c81501a7df9f7eca13008462fa47ce7025628e066d5ba277f7ab6ae129d29128a56c480300000002ab65c4ebf8f901d9e453020000000002635301fe99ff", "510000636365ac6351", 0, 1317387707, "fa0be602b7cfbe24776e79fb7a1d8df125a419ab41cdf01a3b1246f98df6ece2"], + ["806b460d0484ea2519bfac798c78f7ca21b41f27161b8a3352e705215c17a3ec9cb9e5aee70300000000ffffffff8a0c8d5065ce81c9d6387cc60415fb17a169be789be3e2019756b6928bb85e7b020000000465ac65009ce00956cb50a39c97a850f71354c5660121adf1704529580029995f5b59b2176817623f0300000006abac52525265ffffffffc09ab5213ebad35e98d42c6840b0e55089bc31a98d5c8e779c5cbd75c3911e2e020000000252538f460e7d023ed8ac050000000001524ea6380200000000060000ac52ac52f712e6f3", "ac5165656500acab", 3, 1896445119, "2830ac2419206d699bc9921fb2778e8a0695cfc5788dc70346b9dc64451cc84b"], + ["dab80f9d01d9e73fd4dd89208121f4c8b702b9e2ad1ce02820d3561eea71327b26f6668248020000000400515253ffffffff036e736d04000000000853ac5351635163ace169d8030000000004656365632ea8c405000000000763516352ac520000000000", "636aac526363515151", 0, 461158976, "2093662af3bf30840d9458bc52dd6fad5990c630154023a89973343120968c0b"], + ["65d9b48b01cf0a7913f57c4f1210847522d84e10b711a50ef744eae17a4da6c2ec498bd6d90300000000ffffffff025123830000000000086a6a63abacab520023ea850100000000076565510053525100000000", "6aab5352", 0, -1823150798, "8d45d5f0d9eb40e961136b3856a89df008aff6848544366bee2c366dcc3b3ab1"], + ["439b899a031d6bfc08a6bfc5c0b39f2b1af12fe47cb593cc53091c898a3919add98c6f74b10200000000ffffffff9f129b0af0ebf36154727cf1005b35e0e5b873df45ce004f80050e7801976abb00000000020052dcb3a5525cb48e525b2f489ea518706d6d03915d3e73c6b46ae7144ac91a34feb11956750000000005515265ababe68d09f1016c1cda0200000000016a44896416", "6a6a", 0, -1119478754, "84672d2f267e59602fde8a5af1159d1b1aef7a188cea8ac7e3ea00db77cfb202"], + ["cfa98969010c66f2b712843a20afdf7a6c929f80abc5899575eb1968c8a583325c871d49f801000000026a5179de7dfc01dca9ca0300000000090063630000636a63ab00000000", "6363", 0, 2137589313, "90b69085c766e1d4651822e9b3c5483b9f010fd018b45feb1c5a6959b61b6a04"], + ["97c98a1b0246280b2b04dda1c9d31450296a56ae63a5c5ad2c9b5f198801a7b6186ceb175c020000000351acab0522007e933268eac3537c9fa3a5da923909b02012a27431ed157d1226c91e6bef79f600010000000652abac6553abffffffff04528d3704000000000652536a6aabac2c41ad0000000000035265abb5f76e050000000000a6ab5c0000000000065265ab5300ab86231b48", "", 0, -842038239, "815e814a8332934c1488abc24f6653e0a6cbce670044616477d39260ff478cef"], + ["8809c86501b4823959af95b08dd51d59a878508d7f9063edc8308d43ecbdf7bf0833cf2b4e030000000353ac65ffffffff0306261b0000000000025152518b2a03000000000033f6e9010000000007ab51006553656a00000000", "5363ac6363ac", 0, 1991090017, "ef77691a76c21778ee6c050b39e55cd21a45f25c12ad1775306bff59141bf799"], + ["4a994202043309d1bebe3527751785b33818a3083d4cccbadeeddd53c85f560aff10bc1c2c0300000005acac5351639ab60640a4da87476bde0bb48fd480e589ed60a018fc3f46aa1efe3e46a423fabbbc5c77020000000765656a526553acffffffffa5a300a62c7f6c10fb28101b3b51a1634e3e43b9d4e967c32aeb465724eb803000000000020053ffffffff06c81bbe969cb85b0a9c7653676aed68446e6b3c4b682a5151e5328355029ca70100000001639a0cb4280376e7110300000000025200936a0900000000000007e6dc000000000002655117c9c942", "ab65006363", 3, 1468928636, "2fdcef844a3ff30e1231978ae882eb04341e90f98093de3313eb7b0c492fe8b4"], + ["0ace8d5b03a42e5fc6f6899634c1c4adc79a9d93fec5c653aace364bcc601940d08dc076010200000009000063ab0065635253ffffffffacbffd9e750806be9bb43f74da55bdd0dcb886c51d8180dad51513783fc4e68403000000056500515263ffffffff9b283cbc9360cdd4b40c4ae841f0b6436bd354cb98124307862e815bbef30250010000000163fbc104b10184cb2b0500000000030051631392223b", "", 1, 1899729173, "5c3ffb3d7c6633d02f6a16a75adb5774522e1c8e2662e38a960980cc8b846a8f"], + ["5d2517d3017472f63677ef12d4b79b462cc00ec3b3520c19ddd2b79554cd405b61c04dcd740000000003ab536a659a21a301a17ff3020000000003ab6aac00000000", "", 0, 1555820275, "66312f192ede0189995b6422fbf2b930b799b072ae6ed1a48ec3233cb540f285"], + ["d604b25c01c6322830fb9d9dc52508fc8a13b0b61fb2a1efdbfbe7a9a7a92b4989ba8192c0010000000400006363ffffffff02a80e8a010000000002ac51fc3d8504000000000000000000", "655263ac0065", 0, -911481810, "f9ba46483c893f210dc3562c38dab650051a27c370f9609df35d2cf7f643cdec"], + ["8f5e97ca047822b4ff20c164f7a5519d60357a315b3c88de0cb91e9e937c4e847765722b2c0000000006ac6365656a51ffffffff10ef136c9b94428d61054d3ebbfa27e1eacdfb64e53b265f6b569d818624bd220000000002ac52aeb326760157c1b1d2040bfdca239b1b45ed25e16a533a5d2b1d3cde85382875e397b4680100000006ac530053526afcb81c53c0f93462cf63c0dc175698bbcbf1a130a2a557f04b14420387a50ff217439bfb000000000500ac535353ffffffff03831be2010000000008536a536351ab6aac7577c8040000000004525352ac86ec9405000000000000000000", "ac535363ab5251", 3, 604118863, "2c982ae35f4c00b3c1e113a7a2bb636c92ccf46d989d80431ce91ae7410a558a"], + ["55038372031421bb1e2cb320ac29c3368bb8d5a43e2b041a062594c58926d7d776b6e9f2d70200000009536aacab006a5300531ab753d40ee493eb99b2d8eeee92844b34fc9914b8e9c6ae1bb5f938e3fb77d59944653b03000000045352516affffffff5e6f47005990fcf5dc8ff3ea672c9fa54c692189ff4defd5cef18693e13403b70000000007acabab006a6a00f3cf4f7703ccb69b0000000000085351655252ac655339a761010000000005ac00535365137230010000000005ac00abacab3ac2b157", "6353515251ab", 2, -30938362, "69698692b8947d687edcc6b80938c302a82ce3f245077845bb54ef114c0c9652"], + ["3544450301138eca722d3f622d7c57e38029882542c0e76ddb29e8f405c49e4935e0d6c88b02000000075252006a005351ffffffff01bd14aa03000000000563525263aca0e552b3", "5252", 0, 1745234263, "ddbf07aa58499405198da8b3cce74a5d746fe5e00940fae22ea19c60ebc989c1"], + ["236276e802d239624009f01184a093bb98fbebca2308e046059055f2a5eca07920ecd60cce010000000563ac526aabffffffffc33feba9a647f41090d14307c8216a0e38b821025f94a3576fce8011ffa09cc801000000076365006aabac653647cb92047635d4010000000003655151e3dd16010000000007526aac53636353cb84030400000000095165536551ac6553ab0a9f1b0400000000066a65ac51655151775f1d", "6aab536aabab536a", 0, -2083221463, "e9632b3ff6f4d0639878acf06cad411f55e66b0955275841177e7a9b8004a74f"], + ["70bd508d03ed8abc916411dd58a7a114c9241ec943924a5586a9a682800b411a84527e6c9e00000000076500ac526a5352d3828f091fca46870a664904142401402f97aa7e316c246696c36847747af2f6985ed822010000000751ac51abab5353c5f526ccac06ba59112f1da8a97739f7dfd37c3d3604ab330b3d3d9688eada2e9eaf3b0102000000026552d22a5af002fe87e600000000000251536222ac05000000000000000000", "ac635200005263", 1, -1995812507, "edd52a3aab7ddb7ca1cf127df9daf67e0d2128f0821e9f1d9a74e5526238b808"], + ["e26dc29304dcb7ce19563a0dc13f81cc8f4c316abca4c2e37a47b73eb84a17905c0d2c415e020000000451abab632ee3e33f1087c2a72422e4874d4a244e74eeab882f64a9bef4b58abd771ea10251138d180000000001ac83abdf3662fc201ef957ff95377716c1e8c517e74b443a7c61360ce7a5dfd86d5817572b010000000553636a63ac20893bc48a6adf5a392a670c8522309c6eb7f25c2717a19dceceae3fdec7c7cbb6823eb00300000009acabac536551ac516affffffff04caee13050000000007ab0053655263ac0982e40100000000086500635351ac6a65e2b83704000000000663ab526563ac6a8ed00000000000036365524907ea7a", "6300ac516a", 0, 268189456, "b1e5551a6a3775261670df5d7e3940e094060ef03a52705d9d5592040956646f"], + ["e5a5ff850473c404662aaff424b987d032bd70b3b6579699cd9fce6742056f8b290900302b00000000076a65515200005299eab300224493c8c7daade0f678a0dc7ef10fe4f59737ebcf2ad43ad46ddaff02214a000000000000692ee491935dbe923dd65ed9ee7291153ba91813f2a7d27eb3ab42a176c1c486a64cd6ff01000000095251526a515251526a7a97575c9679274699e5ed576c21359bc9f035bbc4debefe6378d144d03156219f0288320100000002656affffffff04ade236030000000007650063ac52ac636301340200000000086aab6a6353ab6a6ad08c1404000000000600ac5253ab6afb5e9d040000000006ac52ac630063b621169a", "5165650000", 2, -2066057054, "7fed1ebd9059c1fc780ef50787214166ed2cf4e201f0972c9e64d4dac3c60247"], + ["e98bd0da032a6079ce7a8049edfc0baaf63297b400d15c674c30cd8a81ba784de3ff7d20a302000000076a00ac656a5252ffffffff3976a82b70ac39bef2632571428f70a968a1143adccb1b89243726b030725bcb00000000045263526affffffffe477681917ccfc5bbd7b3be4cb3fa5d0a3b613845fd56c785ed019467e155ff70000000004656553abffffffff0103ddda05000000000665536a6a52522800021b", "6aacac5352006a6aab", 1, -1096746305, "6928ea40302ec5155b18a45a385c2ef982f364d27093b419351fe7b8c158eaf0"], + ["a5f3db8401ff0d4854771af4e5b35cca4dda0efe8f877dda6f8641cf25f124bbfe5692bb620000000001ab18b7bfcf0253440802000000000463abab656fd3e3050000000003655252821e064e", "6a005163ac63", 0, -1438517321, "156dd0ee6f48d7e153bade0dca08f834662f2348e8683a571d796486a38765a4"], + ["64cda1a202a38337e3cab3e43629f785f280570278b8dbd6166e9a872ecf354ae6cf28a9c8010000000010e8afcc193f9fa2a73dab4430343a5d025a05de9e5586f5802f9ab74c053f82969433fb0000000006526a51520063ffffffff038853b102000000000163ec7918010000000001529ccd620100000000046a5363539d46c244", "", 0, -1569344037, "2457df535beca4f123855d2bb1151b0505a8306a2de0b6bb2c4ae8ee417457d7"], + ["a913b1d403f9cefc4fc2a10984f840b402924632171b9b8284b927402f14a97ede556301e70200000009ac6a000052ac6552ac8dee45f49faaeef2c9d37c2305e3ba1ae61998c235389a07566576c039ee9fcfdcafecfe020000000551530053537c8112534eb5c9fffdb48b525ac94c45dbab1b3ffcbc7f57e1933da4c412c33d268eb3b100000000076a535351526500ffffffff014e647e02000000000452ab650006e8047a", "636565ab51ab6352ac", 2, 370500092, "c9a49286196adf822f925d441b0b5c96ba085564e0fecfcccf637c19c21e1fa2"], + ["6e3dba400216e444f6b386f47f2ab67892033d62d78bc5d45a89acf63ee962bcd3a958c01c01000000055251650052f1b5f7f45592ba7d4afdbeea88842585d29a1d4f0d58a96d0581d20e4c0184f6698ff7f30100000005650053ac51ffffffff02af23370400000000020051c1045a020000000009ab65ac636a6a53656a00000000", "abab0051", 0, 1099331724, "40ce02f2f1b2f39f19f340c81eacbd803872b74874f8ea8ec39d89e57402a851"], + ["802680570342187b36aa5225e804e10da24fcf5be10ce92d61dc67c91ba0caf471f01eaab60300000000ffffffff155f59c0c6e5d7842dbd125a6279374cd14a7a0d0373d8b604f59270c5e3430b020000000952ac656a65ac0065ac77da4beafe71718c494596eec86604144a1257bcad925a7f27d135ba4427945265b7712e0100000007526352535152abffffffff015d8109000000000006abab5352535263d3c203", "65005353ac", 2, 1772588701, "37f74e4be65d3ae1b842b2d1350f1b20d7d7efba221ec961b575ab6bea20f6c8"], + ["48dff6cd0111072dae3b9b2aa14ca2bd4c9646ffe74b8ac646e623aa3a473f9ebd0df43c27000000000700acac00525352ffffffff0349d7da040000000000ef9028040000000004516aab53cab1d6010000000000a5816278", "510052", 0, -1052925385, "d64455e8923f771c3992177ebb3cacb4e9984cc2a0e9b1a450d218d5b381e099"], + ["373570c9044e65384f5aaf1d188d418dcfb564cbc877ea88d1a373d2d2f0f0dd766491211d020000000451516a63f0dfeac6cc6eb30e6eb312662820df115b2b2457377ad3a3342374c88fb198f92767c47a020000000352536a6f66865630c5686731bad656367c5e57931f89c6edc91899ba12f1b3feeb9c32a3aee1840100000009656353005151ac63517f51a2e1587c58d2ce419bf31e8d4376e731116897e46fa3df9cd16571e20bc424499480020000000451650053ffffffff04bcbafb000000000000a052f3040000000008ab6aac65acabab00b4851301000000000953516aab515100ac00192ba602000000000000000000", "ab6a63516a", 3, 894093023, "4275e589d576eeb07fd2da23314716eae7603fbe7a5963aa8cd18bebd33fa4fb"], + ["efe2648f045f8b06cb069796ebccc563f21b5164028a55f9c78a1ada89035f5ba71e3167310100000003526a51161898ddff8308559a1534504698c99493d49489563f482e6839df8261390582847842dc030000000152ffffffffa9265440cc2e93f66cf8e4244ea97b9d11344e9c2561d140284877c21544df0c02000000065263ac5263531732b574e77ea2cdb4619d8bcfc586da1671d73684c08b48e1e226c4db9548bc916d6026010000000400ab6300ffffffff02d55efe0100000000026a51d73002010000000008ac6a6a516363516500000000", "6a51ab", 3, -1799378758, "d6fff82d3418883a02e1f3a3ce6ee54b45370f04514684bf8764fa0336d23de8"], + ["5bdf8d4b0473ae8efdb85934284a1b916f9532da97d45f1802134c09ca8996657cc5b362f1000000000765535100526a63ad941164d99cb2516f1b35112fa3b1442912806903764471faf1740241e902a4b266e4d2020000000653ac6565ac53e7acfede79dac2cc622e095b89a89cbbfe9a127a73f1d89cd536842e15d5b052643986ac0200000001001c2528581975813e6760e519663dac36590104aa3d6c099636055e0fd08ccbc4f014a2d10300000008655352ab63005351ffffffff02a573960500000000036a65656879810000000000006e27aa60", "ac635300ab536500", 1, -1698385699, "d79ad39936eaca5ef34b8ed682586e4ae3376f18bc327c19a4c5604bc4d8884d"], + ["e6a0cdeb01a0ea48359ec63af3055e21511814bfc009a6f325e0bac227d5667f8ce80aeb28020000000500516aac51b628103401266fb505000000000763005151ab6a53dc1331c0", "51ac630052ab6563", 0, 994493573, "1b4453ed7952a25b2f1b352af26dbbf3b9e0d66db1fbc96d5a85c62e97a9487d"], + ["ec8167d3032a6eca2f5c5c9bef4ed5ed71cab39583046635448f5ce98c70cfac93abc9b2490000000000ffffffff084971b1bcd8b617b37ed7d9877c40ceb5a8ff7155d15d5fb1dea61518d94d0f0300000000ffffffffdb713dfadf1a9b27266150f6f1b94ce057060d94c30af00606636e0f966c85cf0100000003ab0065ffffffff025835430100000000075253ab510051aba482f500000000000000000000", "6aab0065ab00530000", 0, -1394285180, "9f5d33a032cdfa885dcf8ace1cbcbc3cf5df22d9762492dc11d76a3454feb895"], + ["0c9150d30198605293dc70bbf96b9a153de703297ac7798e0a301485c5e1cfbff5f98723960000000008ab000065ab6aab004ec44fa303f42325000000000004abab6a534a3a32000000000008536aac6a526365aba213ed020000000003ab53630f492a1f", "65525163", 0, -461231573, "1d196565d790bc59eb69d34b946b12dfb6265fc65f5fbf684ac586b26e8fc89d"], + ["131abdf90481b89f2dd0e39cba5daa29900e0ae42be5e2027288ec509c4dc0192352dd749e030000000900655153655163006affffffff0fb65a8095330f5cb296bb90ef9c15822cacf5824db283a3eb4b3ee87ac7267701000000046a516352911c43b26243662622266d5099364b1fbaea58af34aa59a76b41a3c2e687065142716a78020000000152fffffffffdc9fb5a7ca9d5b069c04af6be9e8df4c2689fa5102a22b7b437a2d03b9e73480200000006ab63536563abc0e62a73042a349e030000000008516352ac6551ab65c0f67a030000000008510053ab5163acab4c211d05000000000800ab51ab5200526a0e84fb000000000002006a00000000", "abac", 2, 647406272, "b63c7c6af03b90c6a03ca7b1bced6df7608438c457d0485dc6b6ef9025ba9361"], + ["2c74b95f030b409b30cc0990eba28573c91e441fb6e6b284364b50cdd76f732c68fcf34cbd0100000007ac006a6a6aac659248c9e56181af5813641eae135a58d764c1110d6fc5cbdd98785a21f219b5b478b84775000000000100ffffffff59f221e468734b3b9a5a47c4e17e5b961fdf15fb2c4ceb9aa529a1326f8086de00000000086a6a6a53ab0053528da6bc3e032f6e7d0400000000066a53006a006344cb770200000000035253ab89b2a3040000000005ac6565acac00000000", "ab51", 2, -1692983897, "d11e05cd3603ed40bf0e6abd41808f5b1c170d999729dc6b1958c12fbb40e05a"], + ["bfc4c8af03b3e473765864cf6521d7a3886e33636944a57b79fa93fe8237178650cbeda87602000000005f4306cb8c370f0ea3dbd1f5f7255cb72a6b7e1aca9e6be19f30e4081a882e63235599e301000000086aac536352acacabf3179636c27b2185d27fa67f6dd53b895ea00972afd5926337a9f31de926d47e4125888700000000066563636565abffffffff045dd35e020000000007ab5152abab515289a172030000000006526a51536a51099a5e0400000000095363ac52ac005163654cfe96000000000009ab6a6365510063acac00000000", "", 1, 841982267, "3156d9c47f7f8a99a4a8e30ac53f190dc06033202ab6d6b502b705becfb1d649"], + ["11cc2459024baff5b7678c5b99aa9a1dac588bc51aef247139c4f6bfed0d66245b31de7656030000000553516aab512b5ecd30f3ad35d511072090fe1878099a5905fbdced5b948dd029c58eefc5cd008d8c150000000000ffffffff0446098000000000000600526aab5153aa2416040000000008656a5163abac65acc8052d050000000000ac5e550400000000000c6af03f", "6563", 0, 1741174344, "64893f985aee91fdf8dcaca0c035d96afa0a83abff184fd8c67418a19c61a8cc"], + ["4effcafb02b52608371d1285f06378c2d84cb828a5b338dad4801d190cd918bba3a39c6acd010000000352ab5117fe7c94970140a2de25fd64f15f06691b55ce37ea66d8f0eb94eae6bf53be0d0d8d18a701000000066563ac656351ffffffff026a2ff503000000000100a55ff50300000000085165005351650065fb0632df", "abac526551636a516a", 1, 2100658710, "e56e0ef014d9a76947d6f0ae1f8f892148725924ac4abfa5ded788bc18e6c646"], + ["e1bc53e9034977268532ab28a4d6c1c2b1eb0f774260b335fdcc65d141a533fe936216b71703000000066aac005152abdcc5eb6a82eef8e60b3eee1cba241ecde2a26c26b1e0701a2f0cb5552918b603468ebccb030000000665ac6563ab53ffffffff5b7be4294cef0e568a34900eceba92c2dea0270c8f6a1d9627cc8a76d728d476000000000563ab6a00009b93d35e031f54d0040000000007ab526aac656552eb90f801000000000077cd6e020000000006636300abac5300000000", "53515163ab650000", 1, -1098967261, "ddc07ab6b1d2c06940f0ecd9915586ee3d26a015846a2961b84d4cd5038cf39b"], + ["999d82c501ddbf7b77df57f396d102687c5b39f2fe6f00ef1b2451778d0c897f45be28b7d1000000000965acac53acab51ab6aba02c594041948af040000000004ac65526376c78702000000000263639f82f304000000000763ab6a5151516ade3a360200000000096351ab52656a53630000000000", "6553536a6565526a51", 0, -648454531, "7ab90026cc179ab64299c628f153b2b20b76c049ec277c07eb5bc17febceb509"], + ["d0d0951a04b233929fe85a36a15d087347a9ed5b026cc2db4cba476f0c524e1c999e3291b903000000075263ac0000ac65fffffffff399a75d9e91771d890dac49863b517eeccc06c27dc231b9c7ffc23c180fb60702000000090063006300ac0051ab67163ade96b5e14b510b5c9e32dc70002dbd06fcf37ddfce28692160a1f0c3f792a21c4a00000000055200650053b534c8b2e529d1732bc8409c32f971af3cb2a0f89e6cf8d7397b4b3244145d6d24226f730200000001ac9556f010031a8647050000000009ac53abab636a516aab72e1e0040000000006ac0052ac65ab9bb1970100000000036a630000000000", "ab516aac65abab6363", 0, -1700085374, "614acc72c3e6a1d512139df57b2344e1b59376c11a0eeffdb2d1769caf175b46"], + ["3a8e305e03e7c8ba6b0ba4e3ffb33921daca01123c85c7e2ac14b435a12be6a9e5918e9c330000000009ab65ab65ab52ab63ab8c36b27c391e7115a804d38f78dd50b8ab7e7c6abfacfe977ff68d2f7c0929184e71f7040200000003ac6563ffffffffc0aebe9ea0326bbb4ae4d210e35f164e9fb1af5f19b4f7fa5460f28938dce43103000000096a536552655151ab5230affb4c033c3aa405000000000153249b5905000000000067a440010000000005ab00635252765b3cfe", "ab6a006552ac5151", 1, -1800563378, "f7f18245f33444565fd11dc71af106b42ec056bccd40937c4b4c2ba406370424"], + ["7d1b7fe202d3a84ee832e007b00245ace0edd8466cbc793b6e892574b0bceb7a93ff940f2e0000000000ffffffff52113abbd8cd1679b0d2c9e1e31faa1eea6690412258b495628f1a92e5ee57e801000000046aac6a00bda1a3ef037a462a01000000000077419e010000000004ac52535201fa0402000000000765abab51516a6500000000", "6a63", 1, 1871129339, "4dcfa2f5df7e24877db16ee00b4dd7ef103fe4892e40f64228597bbb665ba908"], + ["72e35fb504a86e99f6ad7e790b165d9d5327cbc8fa9b02e8f7215b3b48cdfd408ac61fae960000000008635263656552526ab8daecf367bf778852df0f0be6788c4e62c88d274fea1ea1c03685c613d1a3096a672d040200000005acacacab6aed42ad51ef28a1e780e3db3646243906478fb9f436fafc5bdf8a526b5e318aace5599501010000000165fffffffff179a39a44f95478f06ecbb2fe59ea665b08afc489ab7e3c239fb7f92f3381870100000006516a656a5151ffffffff04edb8990200000000026a6339ca8604000000000352ab6a50a64d030000000000fe478103000000000400acab639af7f36b", "005100ac53ab6300ac", 1, 1163377420, "81005ec3f783087640684dba7c91d251548706fcd261833e4cf7777446d37c3f"], + ["cf8215930395d98b1f914615e79f4415057f6851b1cf28b149d3b192d713187684f1f2d7c80100000009ab6a53ac6a52650063d0c225afc4433965bdf6b8cffd46dbf94b1d67cda8f882477e2678a1b69fcd44a7ff55aa000000000652005253ababbd088e7f43c3a95573eccafe3f434c5d1bc101d3a2233bdd3827f11b11c14651e7806fad000000000451515353ffffffff02cc24760300000000096aac6300ab53636aaba8746f020000000006536a5165006500000000", "", 2, 879019981, "ba5a4d3355742994542a2e578fc1e7b097bacf8baf2825ba996fec54eba6c009"], + ["f098239c0379e10c7cbdf14d33bdaeb734f0060325d91968b28153a700f141a346d760a46c01000000046a525100ffffffff07cad2d5ab3a7821319e92e5e5a3a11454153f3981731e6bf7e1bd06c6d04c1300000000036a006a806a5ad2ea1026e07d93ff045d5c6c4892d38b5b68a36e7f7ab2ad8b7a2bab0581734a170100000007ab636a5352656affffffff02864775020000000001510a562b0500000000002437f7b6", "", 2, 1027475038, "fb12e9514acb4e86a9fa8e9ec3aec35bc4f35a4d9d595ea48298ddae38e76f0a"], + ["557bb45e03ce6a45f0d24b09a6ec7ab2eb02f3d0bbc4c5a3190c03949047631c84a687725a0300000003ab5251ffffffff9eea31614b38fff1fb0e1ac35686ec157928ae8bacc020b7a03a5588ba4901930100000005ac6a63ab65ffffffff3ad2df7d7320d4fd2893396c94ce5163131d1b75f5a54e864b047fbcd9bffe3803000000096a6aac51ab6aab5300ffffffff0473cce2050000000000fa3ad404000000000152ff603100000000000252ac8695c801000000000000000000", "6aacac51ac635100", 0, -816055048, "c190ca7cb045843f67a558ce9601a6fefcedf54ef6a5a126792d79806dcf563e"], + ["7772b39d0374df41338f19779262be16e04c8c580616e6135f0e3967e5768bbf321af5b537000000000452526553b17bf7174beb15ec4e0a941183c4277637b4846dcd5da6d2e5743e206f9a9ba9c6a6835c0000000004536a006affffffff6795cdf95a9985362b736672b3048c7e3c8e06f5cbfa0201bb6bc76c20dfb3130000000003535363ffffffff018a71610300000000086aac52ac635165ac00000000", "63", 1, -2069136685, "5c3b0690d282489644d9286ac94c54f43363772fdc2e2a3c6ff720ceb376307f"], + ["39e2504302ef3b92242592859fdb3004b30b5c2864092e29bd4d091ed38584680dea09594c00000000095351ac52ab51516a65471778f9b69efd835f2f054d825a30af65406a17be5795d0c47d00092af53cb83573462c0000000005ac630065001a66640003e2f61f010000000000a5b6dd050000000006abab52ab00acab43070400000000096500ab6352ab52ab6500000000", "00520052", 1, -1906917183, "664abe8335444d5daee6310dcc1af404ce663384d85bb7ca4df06539fae1c32f"], + ["ec762f62026031ea0afbe6105b5a2a3ed990445ab0fdfcffdb64049721f609b9394e086b58010000000663ac53abab6a16922537a3d7e5ff33d01f4bbd404db2aff00ef6dc4af718c77ddb0d08687dc92bb9d598030000000100ffffffff02a9bc2a030000000000e34ced0000000000076a636aac5252533c85d0be", "52635252acabac53", 1, 547206019, "fd2bfbad20f3daed45198b47f627d342dcfa4bb659545cfa83cd67a4159f10e5"], + ["12fca70b036245fbf09e82ff5c604a00ad9d1d0a6b4f3c25523396130125bab6c8acbb52670000000004ac65526aadb4279db424ae183c9a7beb144a0ed2a203ed851d59691e7c352d7fecb95ab834545b0d0100000000ffffffffa9112ea62bba57e19bf28951609df99ea8bd58528b0ab9afeceb6aff4f1fb5d901000000066363ab516565c5ff7271042547c70400000000016afcf9dc030000000008ab6553ab52655253bb611701000000000100d623f903000000000653ab5352acabd8a3a13a", "51", 1, -1510124184, "27bab2aba85ad29dfd159f471c834e0b7a0bf891c0be2153fd5315fe081b0481"], + ["ca1a8c2301801c04b8d2a16edc73f70d582f4912cc74d61a24e3c7d7f6ad7b14553ccda91b00000000026552ffffffff0150a698050000000001002229746a", "5353ac6551", 0, -476921820, "e743c719e6310747b9d45dbb1afed9b85d46b5f510adde95c1c3d07fa89c1b78"], + ["429aa461042dc29c0e07d4bba5919f676543b215acba44d628a8e68064ac00f201a0871580000000000965ab510000acac6a00520e8da3bf9dc57e7947e2bf078631aaa0f23942f27980f47901685b6adb86c6676103600100000007525300ab6a656323de7feaa14d24a878c0a084d15b95ad60dd6750c8cc64f1b063011ea1db492b1b78e76a010000000100b2399bd67cf0e150812487de887d8bee8784be7079fa98abb90219314264005d6988ee9603000000055353006500ffffffff0470bda20500000000066aac6552ab5317f5630200000000045163006a6feab200000000000400526553965aed040000000000fda0c871", "5100", 3, 1150195827, "18b7681818ea167328210691d3216582726441b7905556a1fbc774e181ed1f48"], + ["cd690b86048f8dbefc18dfe0842f9382939b0044334b31995838eda6b84fd8b58359e006650000000001abffffffff3a290e21b0b75b9c98ff9a5d1dd3bf41a85c3dd52ceeba97e67dbf8206d2b1920200000005000000ab6affffffff6a2c8094afd2d01f0e9fdc6bb42cf5a8fdcce4fa0e8ad423011b1d0238078240020000000365656a2949ada13e49d14e02be3ba3b9f370b04008548d3656d373e279b0556f7636c8c505920a0000000005abab535200ffffffff034c23c802000000000852536551ab650000f112b7050000000005526a515151d597030100000000036aacacafe15f97", "53", 2, 2032599388, "2a4e8b1f477d9d904c25763ef7fd69808b20ed2ae6f462f5f8e6b3308580ac95"], + ["68f1e52504b0803f7e78877098df5c56a7064614be08a943f4c1cc0192f064d800a78083e50100000005530052005326b3582cbb78c14758c6a611f22076e4b651d236e6eb25aec352aeebb63d837deeff508100000000066553ab5265009876b2323efd713d991ae4b2923b09220eb68ad8287b60ea84cca7eb29667c5378c9a2400300000007635165636aabacffffffff6266de580356e26695d12d900738801c44a2ee865f5b71b17000b166272e08b101000000046563ab521f51f77504c842a2030000000005ac6365ac00ff71ea000000000009650065005365535263de7f52030000000009ab0065ac6a6553536a9562f90400000000065353526a005300000000", "6a63ab6363656a", 1, -373779219, "ec866a0928fb320231c98ca7005fb88830b3e3938b44dc0876e50711c941daf1"], + ["d4a48a48039ad9e8bfc28dbef67c4f11f63a91478c042131ab104383c8d34e256b15925a7b0000000002ab63ffffffffff44d0f47ca93a01a2ece8a8f54e027a39ef7561882a520488e8349734efff680000000007ab536351ac6a6a28fa8e4ea8292e34a68f0836b86aec6ceac3fd18ebdb16c18ef6b0b877b66201514750b90300000004abacab51726fbf48029e31d50400000000000cb5a8040000000002abac5be0509f", "53ac65ac", 0, -1505936645, "8b246f5543e9bbd8059fcf1eab1a9c45c19b04dc35b15d872f00679e89846c6c"], + ["2f8ac9400239fa76f2e3e74cfba98256dd7d465e98840b16c3e88740c9e2538d6c08802c5c010000000965abac0053ab0000acffffffff350dcb9d7d0e93a2db2c8e8fe66bfbe47898482e520e1a56e55528097de642300000000000ffffffff03d8d248020000000004ab53655348fa4e040000000001acc1b06b0500000000026300e4e1d2ee", "00ac6a53", 0, -179724854, "60f604928203ea29b0718308edd8fe772e4da02457a80194ee78298747fbf407"], + ["4757dc460381e4838ef5d3824f201a930004909824164fb4ee09d88c5c97047197d64e2ec7030000000151ffffffff6d67d2061d40b8d44a91384e0396050fd99b7f78f2494513b942cc19f3227b0e00000000090063526552ab636a65ffffffff8a73f8e33df20c6c6528889e362360389a20456481f5013e50ffd98e1d29469500000000066a6565ac0065ffffffff03ac26bd0200000000015389f2aa010000000003536565f00aae0000000000066352656552518bee6cd2", "6a526a65", 2, 229490931, "bbef5dc4cfca7cab709f02a473f38614e1c53bbcf812607948e4c7406dd0c3e0"], + ["a9dc413101ac66f30e1a4a8b470787a89928dd7f46bb06e0c22d17818b1d5b542034ed855e000000000651ab53ab00000ab44a0004e646b9000000000009ac515263ac6552abac71e39a020000000005ab63515252ab86700100000000000efc22030000000008536aac6363526551b19ce782", "5253515100656a52", 0, 1093398039, "b0f55270a70083688b6b741922814ebd381f280b228c2d68d2bdacbb33fbfcdb"], + ["d961213c03b956e344cc13c19bc8256ddd194bde4f3b9340ade2a6282816bf569e7244ca400200000000ffffffff9dac5dc8ece5290e16bbe039cb27cf3ec6a5471ed9d87e2cd95bb016b81987d003000000016556edf1954c57b377b8ea9b4d7dbbc77b3026e29e0ddf5aac28c0c4a065fc96ee1981dfeb0100000008ac536a6aacac636affffffff0434c268000000000001ac9cf4c5020000000008abac635153006353c6f4580000000000086a5152ab5351536a5331a605000000000952ab5165655251000000000000", "656565005153", 2, 732797312, "512a851563dabf0b97956e0c1d93f83cd583be8638b58ab8c3cf5750110e2221"], + ["36544d5c04e875caa86c395e68039b25694400eb4e9838ff63fb0242290fa6c5ef7483463b0000000005656353ac52f62b9baa706a6adc73fbc6804745d756ce57d6e972aa7e20ecd711e8cbfe83539dee9575010000000565ac63ab65d56b3844ed6406e75555695056988288fbe63d0b28f18c488fa03c08cd13c59942b7e195020000000600515263ab65ffffffffc84b19258a4465af8fccbdea1c54636ac3bf8767fa98430dada0dee0dd11bc26030000000565ab65ab51313349fa01eb0e55050000000004006553ab060e8ca7", "6aab6553", 2, -1661184931, "90734de9f49d99b3d239159c81bc54649235bc90e50aed91d84ceea053f84d22"], + ["9c1f338e0362151164a16bb28924b8c60854c4e1ec1de33638c53c71cadbd70d5e07603bfa010000000453acac539bef811a4223d97ba748f84a109b785dff0fee38c4835a3acb6f2dfbace13163bff11a4d0100000004ac5165006df04d3227d8f401aa0324de3455f83fec9a41311d70bf672957285817bef39a96d98d020000000002acabffffffff018d71600000000000085253516aac6a00658539e280", "ac5151636552", 2, -925930438, "92dae65729341a155cd34d8c2bcbceaffd7e6f92c45709ea6f49bb991556e300"], + ["c89d3717010ff81ae508a99beba62172e4363138e816f5e9f1d830140c6bef9d5ab985af490000000008526a51516a63ac00ffffffff010db5e00100000000036a65650208d15c", "53536500656a52ac52", 0, 842283111, "220f94b93e6b6e93989f33674c58b1181a85536132ec92268ae57002b82752b4"], + ["5d4a7d3204052ed72562777baa6c313532891aeaa7fb852334878605fc0e1f0596c2c6ea3102000000065252ab516351b14b4f1bdfe2e4e69ae2f5960b641c989994157572b5aff0254cc0f9cc6d73f22840a237020000000165fffffffff6292a91256c7f02c5472e4bb49fc33e257fe91e872260355765ca52fe7497e50300000006526a00516a63ffffffff5838299efea1e9fb2002d6c10ec35aa1843e83d367972c27f70ea655ec37cc1a00000000086aac53acac516365ac33f49301ddc80d050000000005ab0052005200000000", "6a5165ac5253", 0, -1330094534, "b1fec4729e80e56ce76b906def2e45ea9b566e811d62b7cde58b331f569e6665"], + ["8a39d291044a30fd96fb7bd8df9f0a24dca31b3fac4504d866b52846f7727d5146a46b4f020100000004acac5352ffffffff502a63742cf509ea315c6389be1a99811d4394c2de6ee88b546ec1e4651b419e020000000652536352536a876b1a5b4c98b4b0f1f773ae37202f04432218679e20c61c314022e439a1a65cb8ba9c9a0200000004515352acfffffffff5d9ecacd351c72032329c8caaee01299960f96f69adb45bae21222cef471e71030000000200658cb318ab03c4d825000000000004515353634e65240000000000070052ab656aac51b2917a02000000000363ac6a5cc17eee", "5152005365", 3, 17463076, "b9976af0bb98a2c278368cfe3e88f5d9ab9c3cc5eb39c460c2951219d55c5599"], + ["2128f9ad02ce25c3b9dedc04b285760c04645ddd84efdee575cfeade266630c6d04ec99ec00300000007636a0063acac0000b6cfe6ea1bbbd637f0279392e6f0add821269b2927fa4ea3d8758e29a80c59b3a1416e030000000663000051005221a0b71102ba75130400000000045151ab00a9e7490000000000046552630000000000", "51ac526300005263", 0, 1046892268, "27a46b57aa3ec67f322baa53b6faaa4b2fbf9af5e0f3c190a3c2d36fc7ec32e9"], + ["d2ab276a018cbb2311502fe9f1e97cd13368d0a1fa8a885751ce0090d9675fd8f14988d3e501000000075153ab6553ab51ffffffff049b0da6040000000006ac516a636a5103181c050000000004516a00006b440d0500000000025352b48df401000000000751ab00ab5263651bd70915", "", 0, 450081869, "f240317f2a8d1c369cf09a1d152fddf7f3bc102647568a4cbfddd67e4e74ffc1"], + ["76be9341010f2f0ba98fdbaf4c1fcc431e5ff1b0a680210a2383a9ea21c45ad02246f6e8c90300000006acac6a630051ffffffff01452aee030000000005ac5251535200000000", "5263ac51ab63", 0, -523519442, "463514ff0a21882b1ccefeb0436579db0a2da749ed44604f8dec71d0ebcd7474"], + ["f880067a0145f7670638d1e61e62b495dd42c4a0928493ac7c13e873414c1edd8ae9d4d800020000000500526aab51ffffffff0346b9cf02000000000752acab53ac636a296ee3010000000006526552656552eef301010000000003ac53ab00000000", "65abababac5100ac53", 0, -1209167827, "710afae6c80974955bdd58b6802aa76a320c3d4acc12ad4d47636f6118928fba"], + ["44f201a601ce3700eb259276016554c5cf76e427babbf42ae652f65f834965d02ad48b98880000000005525163005117518d5c02f8e8bf01000000000600ac5153ab65d81d820000000000056563536a5124c4c099", "535300536365ab6551", 0, 414028295, "b2c88ef3a804475fd87649c5b8764f908085762ced720197eedb28860d5eef1a"], + ["017270ae02d4b61eba021d0ea764a1766f97e6854f031d3eee2266b57afa71ac80eada1ce901000000036a65ac21de6e3a05ab4b5de9a9ce77fb30a5bf6a66586981d5eed396f54e0cc0ddf12eb4f761eb02000000066a526352ac651b20e6ba03e1304a00000000000352ab652e3293050000000007abacac006a6a00151ee20200000000096a6a526a63655253abc65bc052", "535253ac006500ac", 1, -555556817, "b9cf4b8c2bc932c29caa0fdced69b2c8fe20350ef2971eb443cd90c2971f27be"], + ["08484f12015fde6a782ebe952c79949eaadcef8d4688cd854183dae4d8fe2837b8cdf55a8b020000000900536aac6365ab6352ffffffff0192a36e050000000001ac00000000", "6aab63", 0, 1250751194, "92c4f55708d8a2d099c04e0cecde2f35385279fc620a13f2aeb2deee7686e44b"], + ["94d6af47013b14c07d6b3b2bb34a5b6273c35cd7780ecf1c7928f93444b4d5d68201565c7602000000056aab525251ffffffff0141f0cd02000000000300516af0826398", "abab53636a005153", 0, 768174418, "827e59c8d78159cf970111135c173cb6c7350e19d7555c7d1dfbfcef1771379a"], + ["9b76db4a03a9e95313ccb1bc0c01fce0f06e64829b382af48f2d1fabea1cd21fb82458b93b01000000066a6353535351ceef7c24a6c64202aa03c4d1101cfd281180870076c10b1f81c3c68480450da366320ade0300000005630051ab63f1f2fc2962fc41aa654c56a8e3935dddb4d0a91d1ba378bee7f579aba7392482b03b0cff01000000046300ac51ffffffff0459b6b40000000000086565536a65ac51525e3d61030000000001525fce5c0500000000026aaceca4100100000000065200acabab5100000000", "52acacacabacab", 2, 1445263100, "627cf1b1149905c6f9118a1c56d0cf56f1c985c674eaeeab2f0a8468114e6f62"], + ["0908592502e63a39c92a671fec1a1307df8fd84e36abc7e445b0303ee053e72c3abb03bbb8010000000452ab0000ffffffff110e3d7d1f5b6c3cc8d22a1d22ad088d18d3373b41c3881adf745f211224a87d020000000463636563e215beb6010f3c8c05000000000951526a00655263536af367ad45", "51ac", 1, 1810817318, "05f38b81e7b2f3c066575832b8a1e3bf5f7fbad6e9e5c6f6790cc5f909ff8a01"], + ["ada47d9504c3d20d6646216b0bc955c3554dc2a566e811a268963ddca88ba4ae3607067cea01000000095252ac5353ac535352ffffffffd4f97d7d0901ef809b7341417409e5d8a0087d299a468aa29c5fb238cd8135d1000000000651636aab6a65ffffffff98c6e30143cdb27b68d28e419e7f5607f59d5eac8f353818e8e1a36470f365450100000009abab00000051526500ffffffff21d8a8722a629f236b1118669954a04f372d13d8973cc89da0f05f5ea1bb9b2b020000000765ab0000636a6523fb898e014cfa02040000000005ab6563535300000000", "655353635200", 0, -1353544194, "f3b9e821ce17ad5421386a1c24a6d06f8ac3fdba7e211a64d334d026fb3044a8"], + ["11d55eea027db199bcd17ad67b4910666a60b548debd82256a2a0108ca1951be516a14cefb0100000002ab00ae47cb4e1e4c6b1d4d17563ad094046625d555254927190fffb35b44e0d9f6622f1cf0ff0000000009536a630065536a51520d8067a402558a870300000000076551ac52ab536a51f70e01000000000300535100000000", "6a", 1, 303561679, "c394a612be52c7bbccd6dc145534a6b7b3ddcbdea4bf15f9aacb922fadaa3bf5"], + ["ffe1386803b89a30604c45c72b6cbcfd335d54bd1ced6c184e0e9df7f624a52ccff596d9ac03000000096a53526a52ab6552639a5434a8b27eaa5242ba01023eaa89fa2c6e80b425e36d618476b2526cccbeeffeac859e00000000075253ac5151ab6affffffff23b2c5a9de982f80f9a6b4ca9a30db1525626337edff123a836220562e33da180100000002ab6a992f2f0504cd350c0000000000006d4563030000000008510065536353acabedc86d050000000007ab63ac6a515152cfe79502000000000000000000", "636553006a6a6a", 2, -823000614, "2b7366e8284b789e62c6f79e01bcc8039af1976a49ebea6f853a17a90c821e3c"], + ["195c6f8803e6fb609b60a38fc2edc4a62f6323ebb4c6b4d1ac6e5a833da2602e2f65c7cbdb0100000004630052abffffffff9dac8b1466dfde08d9639d4042c1e2626bab1993d4386d900f5fe293f934f1860000000000ffffffffb7a1fa94b5f91c4f6d1441e0e16c8960408b39b5527c9df5a98b4e410744544b0100000001ac70c96084023c94520100000000036a65ab0066b3020000000005ab6363515300000000", "ab0052", 0, 1260618296, "d0204ec91f25179c829ce7e200504c023ef2dd3095a0c91780f6dce69919343a"], + ["86f3f91903b0273d60793297f58c4977f5a2810c759717a470a379fc6d3876e2796c0fbf1503000000086a6552abab536365b8c2fc7a60a55ecf409711c6351fb1b59a64ef3a0db18ffa99d76642326f15a55652a10c0000000001abffffffff643b83d5ab81ef216dc75d0faa826d8470221cb99c8af5e98ca6a5dd1550b470010000000400ac6565e22f70f101aeee7b030000000008ab005300526aacab00a14918", "6a", 1, -1146076997, "aadcabe16ed1687c1f98d61c938c986bac6a944be5145176578858b0f32a92c2"], + ["9546fa0801e31a301fee8d01ed1aac151958e35dc1c19ff686e128179e608dd2aacc6f4328010000000163efd72a42020113840100000000066a00ac00ab51a7096903000000000565005151acc7ecfd62", "5300ac52", 0, 920611084, "871f39683c8b37267ceb0756ead6623c0ab98aff799943a3c9f581d1faa4da59"], + ["02accae2034abc6d7db953839bb9368a0d24fc240a4e7ce9282739d1ebb67edf3e5e904c81020000000951000053ac63510053ffffffffb9ac84ff7954ca80a53ca503296e3755ae1eeeb594dcb3cc6870c9dbb311869a030000000952006a52ac5252ac6affffffff5248be2fc85c9f61d4e86dfe5d66e9cdd83d1ec91ae44bb18f82e8a234d96216000000000800536500510051ac4d877b160490bad103000000000665ab636365634c6b750300000000066a6a53ab536365ccc003000000000263ac32630b00000000000953650052abab5263528876474b", "526a63ac6a6352ac", 0, -149875146, "7dde8ac286ddc8778c35558c319c9289da0b205edda6f76be638234e6a83bb0b"], + ["9de2338802612d7f70f41ed4f4503dbdf1477bdf2c01301a24b0927d4f79e8f9cea4649e400300000001511a7019c54d9a4df14ba9ce252392dd5e2ae94d4747a11492e1d9cd7d298eb719a710194e03000000016a18939f1501ae86980500000000025163263439b2", "00ab63", 0, 306019019, "b98fcc952ee92313a298c23ebebc42fedc701ec13cbb4daf72d53174288bd15c"], + ["f89e580501421003b1e1f57f6c70500b5fc8c621adef3c7f766370bb04fcbdc52d5e94a1f10200000006ab000053ab528161cd0704fa4d3b0500000000009da832030000000002515254550005000000000151e948d1020000000004ac63516300000000", "6aab", 0, 1621904960, "81658aba2873346edcf98bfdb9ac3e9f61266517471bc527345ac877384dce8b"], + ["12e1dfe9031b8118a9c95a2951ad583963be464674204a4deb5b58ce08cc2def70c0d580780200000004acab6aabffffffffc942ade555da68112f334a5b61a777c4e6d8da9905e46c751959dd9f5efc5ae90300000003ab6365ffffffff8c447ced5bb2e9d5e0d7b2c41ab676fe9c4386d1690ab5202b19268eb15e1e2c030000000900ac516a515365525275cbf62101b1283505000000000000000000", "ab5151ac00515252", 1, -1317716045, "200986d5729507bb794f721425772c77dadaf8f630504d04686c7c5677157186"], + ["80584584018f898ff7bd97afc04e18a7ccbf13b91ff1ba328aba744f3b7677e99bd7bec12501000000025300ffffffff017f98ac0200000000076352635252005100000000", "636a53636500", 0, 31736648, "2e42c761c39e2c2b5776feb0f05de4a26298d32a12cd7f583324caa46fbc887d"], + ["3660326a03dabf4a0d575d9d3c52d72aa6e13887d0d8b0378c27127daf215ada3cd06569a202000000086a5351ac5153006a63c8d0094496c7ea58d9fe8b7103a094b3f593790d151e9de5c17fb50523a1d2f1c9c3fd0000000000ffffffff281219a1e4aa8e129444fa036c6bceda9e8cb55829abab679225f123c4b160f403000000035152ab33efb0d8012ed64b0400000000035152ac00000000", "63ac51ac6351ac53", 0, -1616685428, "bb7b2d86e8af0994b288d1a10db55f3c8691620e315d163fb693c59becb45dde"], + ["8d247e4f039a387f22d35e0f468cc8c36693f1bb56608dae7a3e0a5a18d9e8f90aaab488ca0100000006656a536a6a6a40f06e69fe10947d5fa9d1efafda45cc18a75b6e13dfb844d5fdb7b3396e2f1e20e66526020000000453526352ffffffff78f2d790af39d75b5a9be05e806cbbe32314c8712f038dd72374958357eedce8000000000651636a525100ffffffff044853cf040000000009536500acab6553ab51d8c8830000000000096a65ab516363ab5253047ae50400000000036552ab4d849d0300000000056500acac51c5dbb46b", "abab656a6aac005151", 0, 88711608, "b08acd3a41668f983df865e0c012d931723f6b6db57e9d7440a99d5a8e717cdd"], + ["ba9e78ed037266ce132005633fd99b8d0c928ecd044d90ffd96e635991125da8380462c7920200000002ab633c5e3850daf4a862b82566132106699285b194bf480e87dd8c33450bc042716732b8755b00000000066353acac6aab9b236659d389ef43cf1f6429f1b274fa4781d9a4e650f6529d69c936c32ad63c961ef2b1030000000200634e7741ef037ab830020000000005ab006a6500b42ad1020000000008ac006365536363acad11e50300000000016500000000", "", 2, -726677808, "34fc098507817617010ebc5eff4540ffa3f5ef75ddc6bf21617ac0a11ea2e1f7"], + ["c02cde4703f319b578c3b631402cd64dfdd26f0ce0ee9b887d6b2cb132e39cf58d11d5e7fc0100000000cc44b7ca13892b9b0116c64f24402a7eeeb87c6dda13793a7e6a4bc02e71411cae77874e000000000300656a3a231f6a928734e11c356ccc3a377bc1a22acbb5a395b882a040b2d6fe4e35bfe56c3d2401000000020051fabd23b50261016a0500000000070000ac53636563311336030000000002520000000000", "ac0051530051", 1, 1581088363, "8bd88f6637ab964cf8cd1058250f2e7f7a91b565d754b200f21853d3672d3952"], + ["7a8657db02cecaebd4f534f1fe165cb1923532a120ec56b11f5dbc79efbe68a738d44170e703000000066351636aac639c953adfa9146b6b46b757116c52b5de7690a8a745f058bc30b8224a4e9246ea1e8831b402000000056aab51acab3491f7bc0343eac90200000000085363abac65655351369cd60200000000055263636351eeff81000000000007636aabab6a53ab00000000", "5152635251ab", 0, 151674896, "43f96ec6e85c6e6d716a8ce4e91640444320689d03468042367027c9cfe71361"], + ["94318b170441f246ec47d4335aad274540624811a4f1268cdb7f01cb00e2b90a652c18a9c10100000007525352ac655351ffffffffe36cdee41fc0c3f4effbbc1bc576bd1477ba552417e13c86c5d6a7114dae369603000000004579d4711b65775b290b4b0d47bfb2c1f65798166354c46f957668927daac3adaa27c60e0300000001530a95bb1d64862eaa458518b52830f1935b8c3c7c6ee04a1cc67d7f1b22366fb47d502f2a03000000050000ac63653cd0a84801989878010000000009ac6a6aab526553526ae1d2b1e1", "ab6a65ac65", 3, 1072101786, "358e2d4ad39c7e30f28c3cd5553ae416a28e9b1f55c247a93fa2b2b012b62a2f"], + ["ce7537fa0351db210c6447fc9002a779f5e45b4a07d8843d4ace8931d8bfffa60a5df35043030000000452ac51abfd25febb5ed9332ed7466c1a23f4d4dd00804e4aaf607d40d87ea046337c9a60e09342a80200000008ac53536a65ac6500ffffffff39ed35c5dc3f5d05f6277c5e3517d3d5c9d2702975ec3cad7888c829b1a757f9000000000863536a0063ac00abffffffff01f1de1a0200000000066a6300656a5129875dca", "63536aac5153", 2, 1970969116, "7c2bf5218051b7d046ff07ae0925a52c827d98318323160cb38f4f89b4ed35db"], + ["64819e9003a4c5b92df7f0174a1d93d6f9d7fd97059e7ce343fedce6f664a467e76e8d406d0300000001000085e32cf500524539d2229d68e9ec8a9e55160ac2f1b98709af9b5be9f14e438e8783550200000004ab655363547921fb6245741c12289180f4522a42237b5045d2f3342e0f64d7982d27524e4959f3190200000003516a51ffffffff040711880000000000076a6a53ab6365525d7dfc010000000005006565006a2dadf00500000000035252510cb8ae00000000000851abac5151ac53ace8c8b87a", "6a6aac63ab510053", 1, 671766321, "1a733669a23c834d04a89b34ff42e081e4e472ee2268e16e742c65f00770f088"], + ["f647624d016ebc93efe0c4edeb4ed99d4512944702c92ffaf27a498d09c9bfa5e1aa3dbf0401000000086a6a00536363525144b8d077015f65d0040000000005ac5252635228647b6b", "00ac51ac", 0, 637341690, "981e5613ded02bca59aa5e81201c946b0db278b4bdb3960d83ea1cc06b1901ee"], + ["f3596e8c02090780c55927bac4e0c5780da38796d2b2352506ea871db11a241f0b9c249c1f010000000463ac5200b0556890581cbb4aefd9ce1a8450eabe144c6056594e8d91d9762316c28df05cdedf8b9f02000000026552ffffffff04807a46040000000005acab6551ab071ed10100000000055300ac52630d67130200000000036551639953670500000000015200000000", "", 1, 926896618, "c04e304b4ec23c3f96e9f9518692fb02877f1df938f8d8d54ee19b8658d3caf1"], + ["d6240963046d64ed943278e270e7d92172071a96916a3acf7f3e2d3fd81f7425f47fb44f8b0100000004650052abffffffff590dd4b2b51bb7610cd4c6f1d86262d5b0ddd25e2e63a38aed74efa1bbc5e9f0020000000551abac6a003ad89721d29bc04d57eebbcfa34054dbdeec267e91d0784d42dc50cdc00deaf944e737b300000000096363636a6a635300accce17fb34c75c6d6c00062c8ae8ff9aab13818c616e4fbe363a5f8910e9cd24c6bbaf3d80000000003ab530020b1061901df2ea0050000000005ac515165ab7866ce4e", "516a00636500", 2, 1826234463, "f89d422a7f36554ffb0bdbeb4eddc16bc4d88ddc0069a13ec15eb7dd2a6b1368"], + ["bc1515320367aa979abeef99287f0f5f1e5dfe4fdbfcb00c6115620919b8cf4b1752f679b70300000002636aa159de9b2985b46f0ed4feffb5ae77d051fe59f98c2b406efa7cdc5b0a83c49837358d010000000009536a0051000065656ae94ff2a6f4f715ca84feba7c16231cbdb30ab2628af29eb3d2b0c716264a0ac59c6f431e01000000076aac536a00ac657abf158b0279b36902000000000653636a5153537fc3590500000000030051ab7775264f", "abacab6353", 1, 390564792, "7886ed3796f8fa6e8113444c25901c541a9f3f4b0b7928cc6dd68f62e4029ea9"], + ["5cfb7c9201d0ee8b42c6b26df77824719b8d33dea5cf2944f18eaede5d737bbe6a8bbebe92000000000951ab6aabac6a52ac51ffffffff015bf79001000000000000000000", "005200", 0, 1197810993, "a29c3226961a3d3a3252ca94cc403797626494093ec002723fbd52b9b92971e8"], + ["6d08f7740146b24683b6fa6932d19bfb4827747bae062dfca7978f8f9b525ae4bb1f7d044f020000000700ab6363536565ffffffff0489910103000000000018c0640200000000030051539284ce020000000009630053ab53535365ac063ad7020000000005656551000000000000", "5163", 0, 1529025775, "9afccd7757e53225305d41de4eef751038137e8225fcf72994432a8538947ca1"], + ["bcf0b1fb01eaac4ea098111d4663e260dace15046ca2c26dbdb03f90fe691ff1477c466bb0000000000200acffffffff02c24602010000000007536353536352510e5a4f03000000000852ac656a52520065bfe3f1a7", "52006a", 0, 928113781, "b7dad010c264f603315d234eb4fa0c23605df8f3dc65039ffa22f3509a573ee4"], + ["b5adc4ba04c8994bb0bd1bab6d75ed6c9a2b4daad057c26a689cb80586acc495c3ee0de94f030000000253abffffffff4278e91c99684e245751ed2a82aa060c502efdf98f38b34ca3f89a5b65532bd7020000000452656a00ffffffffeab22589a4d2fac9a0000f3d7f48dd856dfe32cf7926c9c51d68234e8e8f87030300000004ac63006a30f3a24de98d0bbb6a9bce54bd0618c4161f7d25ec816a4946031f9e32f37691795fc67900000000066a636563ac63ffffffff01f2af950000000000010000000000", "52535252530051", 1, 1909434390, "63cf446a7b987611640613c25745a03c85667c6acb809703ebb6669a8b619e1b"], + ["419911360447da8741044aa6b5e9fb0a1ba8ff0ef41cb196d1d4b05e180cfc75d3cfae4c1d01000000080053ab00656563511199d2aa25cb9a651034abde0a283e31d8c36536f3fb65bca7368651bba4848b5bad00eb0000000002ac53ffffffff95c3b0fb0fc4d3c43225b4f755a865e00f5052136707a539596f1f7fd49e04ef00000000085153536a6552635366f21d64e6ef6a9604dc7472b38c72570db67bf43f56a3061171597f9ec1025c8b92257101000000036a526abcec8694039cb97f05000000000451000051728b3104000000000252ab5683c8040000000003acacac00000000", "5300515263acab", 2, 301802306, "1692708b1c8c61f0e7d47a5607b99a5e84d65c912f076483caaf966adc488012"], + ["5416d4b803a11e91dc061d2d402155e7e563f527d514cba9023af5875ef2bd331f5b498b51000000000751ac53000051abffffffff5ca8210542eb0435153d0da4ad99d2052052d96890daeccaed44e509ea1a6d190000000002acacd8b320b5977d81944cb39698bdaf5b0a36a101ff902b676f3255cf583176b46eaf9e55d5000000000163709871b4041421ea01000000000900ab52abacabac5151dc2f340000000000076553ac656563000ec8c60100000000016374488d0200000000045300abab00000000", "6a6a515351", 1, -623746025, "9f43194bbdeb7443d5f0014c37bfe59c835760a5be2a1c0152efab41a8f9c3ac"], + ["7ff11db401c8c9377e106a304284d68d2d460a61b3540e3227fe6ea32d5ea08e1a5e208e5501000000085163526a53ab5153ffffffff013a120301000000000000000000", "ab0065650063ab", 0, 1876364498, "1d7ce3739742f436a81f687c65f0925c13d7f6657ddce0730aee99f7dfabbc50"], + ["2890b33501f6831c935773b0458d025e8a00ccf8759d5e69f9618d9ffd9568dd3a44afe6e70200000000b9271a0402454cc7050000000003abacabd4dd44030000000008ab006553ab52ac6a3122c1ac", "", 0, 345832207, "6d0db3105c166368224fa73f55500094228d23acbef439816f741d47d3bab88c"], + ["83eb401201663973346c03d7928e81e8ceb6f26904da5517d44b7c1d31648886e695f643dd00000000096a53ab00ac5352ac00ffffffff038a87f8010000000003536352a5295d01000000000251004ac196040000000008525165ab5151ab633d3a6c53", "656a6a", 0, 1080042896, "e41ff637da2f9c906b925dea32b5af7fb8a2adb6bd8e12d77d2c413f8f868ade"], + ["86933dde035eff71f070349af5260928b9cb98be8a48d343f9b28fbeea022a13d69be0420b0300000004516a6a53ceb6a53309975a01b88e285f14bcca9e50cb195c9871edc7b2943c908b7b184d60d7356e0100000000ffffffffff52c4308249b2d32b2e21f7cf4ac5ed5536cc12e87eb3d1e1b48e6df5583486010000000151dffa89d102d1a2b205000000000300abac987f4e0300000000056a51ac526a8966e847", "ac536365", 1, 728977214, "caef7b560c841464d7bff8a8b4b6eef461c253ecfd85a689ff12ffa72e00f9b9"], + ["ccfd91a303510e3649c4bdef83c81b6987513831d880fddb0d7b8516828a56d0d733bb36270200000008516a526551635151dd4f5bb626b1c613c1aba67e7a27a25c559529fcb7c3303fec1fe361337ded1cad654b900000000003ac63006433424c06a9ed9b898b7d86154e00b87151d6e249c0f3fe2be0fc4da1b8e4f961756644000000000152ffffffff02f9b5c402000000000965ab520063ab6500004f2c5c04000000000651acab6553521568fe9e", "ab51ac51526a5251", 1, 975843534, "0cebb37ba5c354db4815aa63b39605ba8a576aa3d91b694d5c2493de08736bc3"], + ["25ae52af0317526cccc6aecc8e535febc3faaa3d198663809c6685093b1b77c889c8bdc63b0200000000d9d029ba7e0bea3a25de17e7753a1c822327d59713afcbad04496e4685f06d31ae316f6401000000085152525351536352852dbc8aab5ea5d710d9947c63e34bf5b9ea9f7bb13ac811b1d023c971981925653f91690200000008635152536a6a0000ffffffff03f396a7050000000003ab6a537166e9000000000006ab65ac656a6339b8ba0200000000026a65dd577e42", "65006aac", 1, 254843586, "144d801aa759fc6a301a4f75569807470023ff1c1b1d9fb67ad64a135d8e1554"], + ["4563b03d0429b34b1c6c339790e50d0d1a5651abe8e5143b1d153a52f0da51dbc6547c640900000000075152acac6a51abffffffff97535c9ffd2015873d234bfea53c4616c1e80ea5ca6bd82e51985e36d62897c2000000000753006a00ac5253798a3685a797e6fe1bfa849a0bf5802bb742f4f84f65f004cc05878d7c1e307f13a2ee850200000005005200ab659305d1e53b0c9ab730c02083fad7bc376d0a13649663dd58bcca0a9698d481da6c22c5cd0200000009006a510000ac526aacffffffff035decc90100000000060063656565aca0cb03010000000002516a50e772050000000007ac6a526552636acf5e9bfb", "", 3, 1877343691, "9b664f0654eb1d6ddd152d83cdc2f6128f1eb20b4f811cc75a345f5e895ccfd8"], + ["8ba25aec04305ff5be53e1695b0ccbafa40eb73e2eb06727d64eea6fcfd8dadfc5193e29a10200000005515100636affffffffa2a5a10c19bbfda2bd18fb7981ab62a75269a8f376b9bde64c2953862ca6a56e000000000600636a6565acffffffff1e2242343e035bb9c0f13cbbf639e7f9ab5e820ba7da5895fa2fe4730265100f0000000005ab65516352ffffffffc6b39bc818bb9e7cf5e7f33d748ca40b82fc3c5f558c50d90178158b4bb4ebc7030000000363ab6546640703034b4c08040000000004ab00005233f281030000000004005352ab9582ee030000000007ac65ab526563659caf6b76", "", 2, 549167981, "a40a2eb837c03f8245ccb21fd6e3e9be804769be4b09693e0888a08a6558b16e"], + ["5e38687503aa9d4aba99918faed9a4ecd2845d0893d7b7682856038f9daf35022e9e86a7020200000005ac6352006a99a6ee6972cf7266995f4faf7e2696e85faac8396ac30e909c1e001680ea79cbb8c9a65403000000096aac53656351ab5363fffffffff000fceee77b7f33c29c193023de6a55d0e314436e395170bf3fdc580dec547700000000095352536aab0053ab6affffffff04579041000000000005526a63ab51aaf7c9000000000003536a53b396670300000000035300acfa234c05000000000153d14c561c", "6a6a53", 0, 1849901773, "aa81291f45556883b7f859eea7a6e59428673256b80146494cf69e4a374937d9"], + ["a3d805ce016e22a8c67ee310d17b49ccacfaee4b27fadfb32be00296266096acba9e87b91a02000000009b0c09f2016fa8b0020000000001ac1513720d", "6aacac", 0, -107131905, "42c2b3a844ac739a06bae0fafe013087a357305a6af13b731ef8cbd617459687"], + ["8afbf862030f86df7663be5b5f646fd018f8b9daa06b931aa5e8cda3344a292b14328f93c5000000000753510000000065ffffffff4db92fae93e2466e1d4477ddabffa022867f460bd5bebc1987d06b74154d742601000000086a6553ab6563acabffffffff48d8cbdb7d17dc3b1d71bb0556d36f0eb3c561df9cab20e0bd756f3f4b2641e800000000026a6373ff510d012fc8bd02000000000463635365e7c201f2", "acac516aacab", 2, 813382247, "f673ead5e1b6ced983d88d9a5b7574cc42ae53f35fffebae2b58bb1fddaf0a06"], + ["8b632baf02a4935a23e26ca9c15dac934d3833f40fcce8f8616f4afdfb3bae8748d9096b810200000000ffffffffe3b4d8ddfe44da11dbf8bbcf327efb14705a58471f63789cd48e3dce9a94182d00000000030065007e6713d002d60ecf000000000007525265abacab65673c4f010000000006ac6a6565520000000000", "535265ac5152", 0, -1122871432, "9fd2a2b3fcfb5448883298c18e7acc4629cb5987d61874032d1915ca1e39c270"], + ["d6ff42e904b846bb83d47b862f6a80a785328a86c89b300c76c8f31e6cb49cabebf6c3cf38030000000463526553d96b29bb1324952ff27c03071e7c4e5e5de761f4a589dd62685b51625a8f1e6a2f31967e02000000026a00ffffffffe2f2be0a438f284e80939637df19b657501da335916fc32f0820ec73a56e54b2000000000552abab6a6a000af748ba7ce8ca554881b5dc8b125c9051416640b7d57f4518fad0c20cb9fa0460021703000000076500ac6552ac00ffffffff04c6a0860500000000003f467d0500000000085151ac00655252652f7a04050000000008ab6aacab006563ab4dbc3705000000000665535265515200000000", "53515165ab5252", 1, 748768323, "ce1798aa03a5d438bdfca3598a636acb4f93dba167a86bae6bdb6a95658087ed"], + ["0fe2e74904c6a553c06b78732a1225d47f4fab449461d1c18d49ed1917fc33bdf35b6c096601000000086aabacac0052516ab7644984614d7be309e554141f864a3c7b137b9d9e28f594607e1f336e0fa1da2fda60340200000004ab516a519398631a92dd057332851d3130a994efb339baf6540d7dd89eb98a531524c3e659beb5ff0200000009006a65ac6553000065ffffffff7497eb326be55642bd4d15ae5acdf63522dc82ac204dc6dbf885d3ea8790146502000000086a536a6363535351ffffffff01547f1e0300000000015200000000", "006a63", 0, 991612258, "ded2707b8d2c682eeff887bd2a5c4d1ca0a0201fbec0f754d9f9d0aa487799bc"], + ["451613e6022c65fb487819cb840c84e0c9a7203ead2f87b8102361f6c1e4a612455b277b15010000000853ac51ab65655151ffffffff563baecad52173f47227680ee57d84796369d59c7f77cfc8f8204a4396b79ca300000000020000ffffffff012fce2d010000000008ab0065ac63acabacc4eb26c7", "510065ac", 0, 992679521, "e7373c57e072b9286f0c0dc8c65bb641054585210faad1ec88dc6488123366bd"], + ["407790810296e2bf2e0b4f0d3ea82dcccb2ee7350e844df4b811e419b44c9a4c5b09391799030000000353ab6a1276386ab57205150ad9b25b944aea2480fde231dd70ec96adaf6bc4ef45680e748077e8030000000153ffffffff0313abdb02000000000100d21a550300000000066a6a6a6a6a51e895a6020000000009525100acab5100ac51be7b0c4e", "6a00516a6300", 0, 1262869601, "5714b1372d64be2f11e56a1cc000cb766a8ecf8d385c5a32ced0777c6fbc4426"], + ["5243def8046c06ca6d93f5d55df07c8fc6244ac31d6df80ac9353423e5e8e9738958ec11730100000005ac6aabab63ffffffff946c6ba3484bc0436f0765f6f51ebd188684f4b23de2e39b568454a94c5c94d403000000036aac51ffffffff4b377945a7e188d76e0a7d4d6b6759ee910fd7f35bee1d3902efc17ebb36c985030000000253521411ebf79b07cb72549200208f5354d91246aeb39622060b2639f1f95d7a16e9e856d3a20000000006536365635365ffffffff029a4b74020000000008ac53acac6565acab8ed9360500000000065363abab630000000000", "acabab5163ab6a", 3, -1070762681, "d0579ba78038af20f78ee3826b543937fd516da21b9fef2168a4c286da28c821"], + ["adcab6e903e0668c739b7fdda8260709e12f7b22fc4ad7f6ca849f2d45b87a73054b028d3900000000045263ac6a99fdf958fcc051f8a6ea766b536bba17353fb2f771cec5a8ae7d74a2f4c41e4337af7ed800000000001b25a3ee6f308297fa3c6733fd7e6621dd320ef62a86f10376710a521bf373b1a028d9760300000003006a65ffffffff03cf67e9050000000006ac5353510063bf163a01000000000763510000ab00ab659c5c050000000006ab52536a65ab00000000", "ac65535265526a5253", 2, -1635762858, "082dc73fa30c20f9488b6c8e157925b2895cc85a07e168e6eb43966293e74da0"], + ["75f5f5280369d2b72cba641ba24bd34bc124fd70ad6340755f9283601ab7ff119d855f869301000000066a53636a65acfdaa55a91f014c4fca9f26ee10c4ba0cbbe5032d400de143029bb609ba5709f209d2c7600300000003006353ffffffff701c4bbeb2c54d37fc2f27a46936dc25c4394605f2091d057e0ff37f122bda2b0000000001ac3c8a5b0403e4824f020000000000846155050000000004ab52ac6517d0320000000000026a0016cccd54", "0065ac51", 0, -702879326, "ec8aaa1cfde80330e9d193f9ed0bdb4a8f6213ea997ad4f3c0624f42d12793de"], + ["5a8fa47304ec0a45d2680023a3187fc3f0fa76fb8d1b7871fa026f7138ac24a9db6b35aca1000000000563006500ac9b81718c1b8b085964f5cac6f27f438c3a316f20fbbbf2ce75d00c9a60e112f0aacd52de030000000153ffffffff07a3112f35c9503ea61d524d2b36d593614f74d6746fef20541b7d37bd76f3af0300000004635163531f0d54d4c804c9cf7490143ec1e669e651bf8b0f8e816a5db4715c35983d6695b942b6660100000008635165636aac5153ffffffff03cb65ac020000000005ab00ab5163bb8ae40400000000076a00ab5363ac00f43226000000000005535363000000000000", "0051ac", 1, -1709895138, "4282b1ab2c7cfa5e43fc5f7a830a66d927938c86e9b7744c5c2091a319004ab1"], + ["1f6ddbce01d66db2f9ebca4f7af1024caa4c9621141e66a9edf888389643ab38075e871ada02000000095263ab6a52ac635163ffffffff01a56841010000000000f58e9750", "6a52", 0, -1351764059, "c25153198b7aa6f0c18cbbe3acf09bfedbb7e4e8f3e58c9995a933c74245cdef"], + ["9b379b0903e6ff8b835a972a5340538b12d1f24f91fa6dbc0be80d5f91a49b9d8b2fda20410300000004acac005276b036e8db96fe88b54d6d9808f86a1edc39fcb47312757de9f9cbbadc74f7f333d1a0f20300000005ab52520051b7668917f57b9e2c09ec3208869f9ee5049a20e1c3b16fab44fc611eaece4368878aa2c80100000004636500ac8fc0e4c4017aaa63020000000007ab65006352ab5100000000", "51ac5100536a", 1, -1687383089, "db67b4ce42a83d13dae29d80a5d828340f6d0dbccfb71c3a44e0ea42a1cc79ac"], + ["d3131c0904fb396ad9051554cb4e50d26793f543c2a7be3a24e0fff7953fed0082a831e1170000000000c5992f27d21fab74bb9d47c8414a41620295dccadcb48809f98f708c6b1828e4c33c3c11030000000453ab6552715e312694b554b20b9a246bb087b7f667944d3622ff9f7d090b62223f7b14606cad20b00200000006ab00ab51536affffffff44a7c0246f4bcac9dff09609a053bc3be712d4210c7be3450e571df0563d94d90100000000ffffffff0327e06d0000000000056a00ac65637cef5702000000000153671ce30500000000045153650024100203", "00", 3, -1882209930, "0ca2c7e82443611548675d43bee44570059ffffbb7b785d6a42837c13da6019f"], + ["1f8ed51502746e6fa9dc1665112a1b144892f640c5c3ccd8885c68ecc572c1d633d589b96300000000026a6a9ce9ebf9f99e12d1d80a870d85f6d35abb4c54ecc82cf0153b869a9e4988a352e19d2d44010000000452530065ffffffff017d5f2f010000000009ab51ab00636300acaba5f9917c", "53526351ac5352", 1, -1508586144, "16efb660ca2b95042e7f7f5028e320b49acc16b6a17d3f2e20b7aab0f8926fd5"], + ["89f4758b049c9b5837566a6103a6b29b79d1890a5510b8a62476a7090ff27dc7b558c226f50300000007005163abac5165ffffffff427d35a75d9ab5286ba32b35bcadcf47f52c692f0b21c7ca6c130bff888709e9000000000851ab516a00ac51654ab76ba078dc4ef32e76ad3843fa563076df899ba46c432f6f1744c501147a072e1513580200000009006a6365636a006aabf8d349fbe324c5d681042ebb8c254e3e7557a760f38e6a74dd19a7413c7bc2fd5eb73fc70200000004acac5165ffffffff0339d9c60000000000065363006a656338ca5c030000000003515253516479040000000004ab6a005100000000", "5165", 3, 421125310, "464d08b632d6af319b80d5adfc1e374ed7f6d5f76345afd11ddb1cb0629220c5"], + ["90ef393004d00ae2c4d36a3cdbc50afa0558e991126e37e4050cc5ae5e1406aad6a8ac3b60020000000151ffffffffb2ee2592d1edc5856241048401382a94b226ee79c39fbe99302f63ea856c4556010000000900636353536353ab52ffffffff4bd2af9b8eeda7e7d901b91497dc9bf34ec4282a36d84e7d2711088f515c605a0200000008ac00acac6aacac6affffffff5743ba04ee0794a7ca99ddfdbb5fe39a5fefc1d4c85dd0c61892959c86ff83b40100000001ab9443449802d4d28e0500000000075363ac6a520053834ec205000000000365650000000000", "ab00ac", 0, 1967767470, "21bb52bbecd9e0418fd1a5fec8dc5633a778754e7a2a3f236eb254a780158727"], + ["a1dd1b8b047f8aa61871bbb37b0f5295eeaa62d49444882f3af58030ad547c983136c9588c010000000763acac6a516551ffffffff82bbcdfddf280717fba13467fa51d050623103c3d373eaee1de9f39fa7ce1d380100000008ab51ab00636351abfb92f61f89d83723e5d9e4bbf00b6ffb64121483542b9291ab916f31bc294de6bf781e040100000004acab0052ffffffffcd831a41f9d04c3454975733807932945398a68793887570e4c9f47e41e16d6f0000000000ffffffff024b830c040000000006abacacac52514540a50500000000086a5363005351ac0000000000", "51635163ac6352", 0, -406334105, "4475501c7680af28e19f06a1273915081552da13e9a2a6a2640eb7540ad225e1"], + ["7a05b96604e785f71eb7e93a1badba2b735ba8bc6628daa2abcfaefe097078d3b3ff8468a90200000009526aac6a6a53000065216d0048ee85020fd7e59110c47eaa556b1ae65c5d8328b4775831ac7bff237b00d4cc750200000003ab5152ffffffff389cf43969260bb2292cdedeed926d141b88b5655f837db4d4d3caf9a030ea89010000000465536552ffffffff020072a4abcbbccbe729bf214bd904675cc7ee3b69036a416885e7afed1e0db901000000086a526351ac515353d336b42b04f8d1840400000000036a65635ef40d0000000000085163655100ab516a969b32020000000009ac6351ab5152525200e02f830100000000026aab0423a23e", "5251", 1, -620988342, "0b763d25783ca8b0ce88c2d0bd022c6a29bc00b63313d83f9ec94a5679fc372b"], + ["3c36d0e003883874c02a90df85ea2243f78799247e3083ff73135d951b1b372f178b2b7eb603000000095263526551ab516352ffffffffd6471ff77f8d7f443ba0fe97f6f31307eed6aca3a165e32e6cdcc24bc4f262fa0000000006000065abacac4143288a75ec229d4dc2d388b1f7c13d431a6f50ba6094f2261612c5a3883c0dae39011e0100000001516b8c5874024c590905000000000653656a535251ea9b680000000000025263fd6397e7", "000000", 2, -574831416, "347267d9bf162c69e328c017f47fcb5bed22003a9f8b5ff4bf38fd36871203ed"], + ["22e9bcb90363e44a22d31545d3e8b10c5861563aef79f6a34983e8003af72aa85c83a2728c030000000463000000e2f4863eaaff2da5bb5778f6eff03b8f2b2c79b33409f9e7faddd8ad789564668124b5dd020000000352536a6604ca926ed51af2ef0a574e57b4645cae52bc62d2624a1f44fd61600e3642fb96aa08f70100000008636a525100ab536affffffff02d1f46b040000000003516a5215b1240400000000045163526369e0761a", "", 1, -509399590, "0771acc9b6e813daa9872971b23823cb86a4db95b8fa01f2172f4614dd5e4795"], + ["4f48278703854db3181c794bb7e33a3ef686d54e29022dfe6f2a73b9e0705c14f234655a5503000000055351006a65ffffffff60c1f0c5f0add5a66a096befc6a03f6c2b8371dc4c7f276d138134cd746fb47102000000026a63048964ca63936b903aec72fe6c6265dc7f0c3f004de434eb2e00081f46fa08fafdc5f3c801000000076a53ab51536365ffffffff02522a2e00000000000853515200005153abbfaf12000000000000456d7dbe", "53", 2, 1826477632, "2b49e5bc94a74961717adc9bf18a82c36974a1d341fe8ad61ca7f9dbdd4fbe4b"], + ["198f58d8022c0e5ba19baa2079dc3139e3757498a91bed86bfc77291586ea7391de04c1dfd020000000265529b7065770cf6d412a336debd887379dc09d2b6cd3d9a79e450f757beedc74105eb4678780200000007006a536353acabffffffff02955b8f0200000000076a6aacac656aac356d38020000000003006aacf7ced80f", "6a6352ab52006a6a53", 0, 29164949, "cd290cddea1f0b599b9f451841ada5073d84008dfae5d4b53f290d40570790a0"], + ["5904431a01ab7dfa2f8235c7a323833e02791de6c9066a4ff6003dc3911626bfe4c73cbe300200000009006a00516563ac53acffffffff011ed159030000000008536aac65635263519155fc13", "0053", 0, -695804032, "5a6138495588d2c83082ba32962889edb21ccfab5575be8a620dd174b36bb1f2"], + ["1e724b680419473a8a42527f922c01ca8a58fef7b70b5d45a286ad4468d176db251a4167ba0000000006ac52526aabacffffffff32a869ec8bd64c26b993f463eb3ed998a096d88d39df1e08a1412c0d831c778803000000066aac656500006de7c82e84e8dc2ca0a46bf2bc0b1e6f3be17e7709b7b53ddf40252a9eb082c799f7849500000000060065acac63651c5db09134d813632cee9fdcc62ac89bfb6e7c97032182450ae8a2569def093236e9962d0200000008650063acab51ac51ffffffff03c8b69a0400000000076a0063ab6353ab2debb901000000000463515300fc7c8c0200000000045351ac63ab9ac1d1", "65ac", 1, 284557248, "5b69efd4dd0d34979ae22d43f48852e24d935c1675449e624763d00bbbde3609"], + ["5c7d866e0386f11da5ac8b9302e0d12f6115d2470f2186429789b163ddd3e084daa1266b4e0300000001637df8f583dc2c6335570789d2299ee8d667d1d466bf89103d51cf84fcd7e8cb5ff8a4cd3c0300000005536a6a6a52ffffffff437066b8e386a9780b4a25b7257957d691cc0f16091b6b3a0ff72f37ddb807b2010000000263ace288034b04e1b915030000000002ab6a5a99a403000000000463536363de0ab70200000000036551acc1482f010000000001abe4e2e9ae", "ac", 0, 1679757941, "19baf2a57cfd7a444ab0b4dabe5de5a30dd60f4d9ae2c25493b7147d0b23ee6e"], + ["32cd17050198328f6a8e47ad1edfd26179bc3faec8dcc003f4074594bb90ee196c4bb3cc6603000000086a006aab00005300ffffffff04b2a527050000000006ac52635163ab370fcc020000000003515100bf38a1020000000003ab52517082c6040000000002636a00000000", "536a63ac65", 0, -126574044, "dc2ff2b4e90ed530408e067bcc0ae528188ec718d0dfdbe05a2c6da12fd96a46"], + ["e64f6c4f0296a2c8556eb55647a5f4a05f5d647c34094a4df88b0dc3e5faff58dd0494aa1c010000000263526593b3b09985a953157b4db28ab33233c6d7c0179a3deddaf968b9ef17d9322b5db763970000000001530a8489e90271e6fa030000000007ac6a65635363abb20c1205000000000152fd9f58ee", "ac0065ac52ac", 0, -1865376376, "8e749e2171d03e4dbc3210b4f88b6bff4c02666a4f4c0c7c1968546aebbbc945"], + ["477dc3b302be6746bc17f7d44bba0c360acf85a05061156234a5f83df9dd1204cfdbdb7411010000000351acabaa401a670ae6cba838fb5c20181b8b1e6961ad220c321829da66149e6db2a6980b81554d0200000000ffffffff01700919030000000003abab0000000000", "ab51", 0, 1048448812, "004568d902d4fb1661fb76daf455050dea592f1146aa2dee2cebea2da782f331"], + ["5eadcb3c027829f40cebd5869eba60852736345b0e22187d462eb68828bb72d9e07bfb57df02000000056a6353ac6ad33f375f7315f48f27a19b34b6925a1e6103385269eb3adfadf2dfe590a4fec5fe1ad860020000000965ac5353655251ac00d5af4c2b015a3d20050000000006ac6553006351fb2b716b", "6aac", 1, -965254654, "468cd995279ac79c9a86374a7879461603ca47d5c4b341125adf5d8b88415f4c"], + ["9bc8c171040b006f9acd94f44086d006204771c92dbedfe2cda86eb87a44df427de3719e0f03000000076a650065acabac9b90cddd12a6d4ffb8e9909c0523ad5571606b05b94ab941bb90b8458fb47f5ee24a0607020000000751ab6a65515163ffffffffd901da7d6f392da1279af6badb5bbaa9238d772336a906c8f0b45f3b800b5c18020000000400636a65ffffffff6edd0fd5022b9227a75062b1cccadec581e380790041da76b2fc3375aa2cc8b101000000066551636a6565782a764102787e87020000000005abacac53510212c305000000000465656a6300000000", "ab5100ac526a006a65", 3, -444767306, "d7de300bf660420cd977b13a4a5077414c8fefccb11afba97b20fa7e5acf7590"], + ["e4651f2d015a410cd80ce40888cec0e9253dd60601d30dd7fc9e3e1062dd11be84c86e5391020000000900525363ac5200ac521312bf9001bfbd78020000000009acac52ac6551ab635100000000", "ac656551530065", 0, 918032454, "57c1abdfaaec64f6fb7fd5b8577a5ca08f5e490e263dbd4e10384cac8245ace2"], + ["e24b82c104c5a22fbcb5d18d42b07f3b05fb4265d9bc07bc3a8624ba1fd8ced5ce49e094730200000000ffffffff07d6a4ad55a2bc42ebca45da7887a159405aaa1a0b08b20f9c45f2d0618fc66903000000046aabababffffffff07e4ebb4631edeb9e4229b13636c09437e982a0bd52f1cb1928c97fd122732e70100000002ac51ffffffff042e233fe3e442dd19c2e74d193ef83712b49591235e18b204cd9324f895170a010000000963535253ac526aab52ffffffff01944432030000000007656a6551635353339e8a39", "5200526300", 1, -279491109, "b1770d83c1e6ab93382fd9448b3a8824229b7e89456aa49cf967957f7c4e3c3a"], + ["8262a4cb030354717307965cac1c56c9bd140b77dfa17d1753bdc279a1157fac455225b15402000000086aab51acab6500acffffffff702b7f756a177c2bd690cdb4cc06e958696e9e49ce66714db165c6e4a00c7b06020000000038fee5106ad304b65f65ff3a7fbd6f917ca5e91b87c25082924891fd912ea92053405ce60100000006656353ac63510f213f510459f5600200000000056500ab52ab154047040000000004ac63006338154f0500000000055263ab53522f843a05000000000352abab9b23ecb4", "65acac6a00", 2, 256501958, "48ccd730b388aea23cdb0b2bf36999445e125fa124092d838cb6b52264f838b1"], + ["819b71b603b98665b591422a39068b771f9dff3a24e2c8d0cfd713ccfa4f08ecb02c9cf2c701000000055165656a6accbbee53d66efbeaf58728a6efe2a1fae508652cd67d430a9d777600200390c36cef41060000000009ac5100acac6a63ab654c7b2d9b467aa0447a22947c748c018df55f9b407451c186f48352fea6ad3cfbe36f7e810300000006535252ac6a65ffffffff0221e9ce03000000000653acab526a53fbe21e03000000000851006563ab6a005200000000", "656a", 1, -369650049, "11c356529e955c0133acfc45ac158b574c3bef3d2131c9babf3b1e604d9f5500"], + ["eefbdd13044ad171aa0907900883e0858b315c083ef666b1dc11dcfd53f5335fe0e3d1b77e0100000001acd24df7341de0f98aec3e87805d03e8d96434d5e9a7dec5f1a300654dac353c4a1ec0f5f0030000000953abab6551636a5200f97287efbba68afd5f33d94d7b5400bd6731113d0bcd3a6b9e2f0cab2bdeaf466b52085302000000010071fb6cbbf81cfbcecf301ecec1f1f9c45c0b2bbd7e5fc2acd8f5081d5b451dbb0563641403000000025363e6348c49023235b2030000000001ab55b26900000000000852655152ab53535214ac24f3", "51", 2, -234395607, "2f6f07f7c6dfa002b2df1f96e5fd838ac4cc106b4c3a42882ba81ab0b0a7cc19"], + ["c96a0960049b5f83d8eda5951cb09427935471eff9c0dae404422edf320ff291f1e517be090200000009516353636563656a65e6af85e5fb057359bf8d95f7c1106609ac52ecf1f41a38dc856650608da6e420b1d575050200000003516363ffffffffd78c214dbe2a153192d3d8dfb329d7f82edd87ef949c90605d63ebad95b596920300000009535200515151ac6563ffffffffab6b1fd7665d3616604d58031d17c5b2fe0670809bf2d31b50ba5924622c380601000000095352acabac65ab5100ffffffff03956bc8050000000001ab5d3d9f000000000002006a35ba2d020000000006ab52526a51ac4facad38", "", 3, 141565323, "b0ab44fbdc5ece7aa2c774eac389d6c5b4452e4170e5aa2d70a233d86b479b55"], + ["e213eefe048fcfda3934dd4f58dfd43210af6072dd25a92f94bd863ff52d3a31fb10c8842f0300000003655152ffffffffc1114101b6051156bd281fc05a9844e6c681d6e4c32d55a81296b0abdb567482030000000651ab6aab6aabffffffff7e8519519acbd42500a0ca802669cd16a510d294c22ed7dec979955af146d9d402000000096563535165ab6a536affffffff2cf42c8332b3451dcda9a91889fc1e4d0a91ef09bed5cf596585080beb7778dc010000000153ffffffff01bc06610000000000096a5152635251ab65ac00000000", "65", 2, -591773087, "6ef688c6b7a9c76a647f8e591d249e748592948cf684f6339a87b25e54c768d2"], + ["2c06203f02cda77349f964333a1ba8e82ac28995429ca5a2e3f463491a8b40539aa4354174020000000265acda59171e9f681fba73036b85dbc46236ff22bd03a8e6fe71096cb6fe913898d05660304e020000000353ab52ffffffff01184490040000000001512096d039", "53", 1, 1648733089, "4b702620ac3e57f5d72c7c29f0dd8e6be26bc7914c5d2f86efcfd3856d2f09fa"], + ["981c9d7d0407828508e0c50c2a01a317946139d3587f9f829e82e80d29039e777cd04b89f8010000000965ac53ab53ab525100ffffffff27050d3b6c4ecdb774ae791902c47a7778ed51900e13ca313558f002d7d1b0770100000004ac63510081c23504a7077bec3231ad2da4250b87a76682d8c8e3abc3c4daef7c42834b90bbf4417900000000086aac6a0063656a65fffffffff17f6fff67a321361a62515b1b388d3e97fafdd4084b9d220a2ab5c9e7947b420200000004535365ac694af0ba0336542e0400000000096a6563636500ab5353fbcc8405000000000600006aac526aa644980000000000035265ac0222aee0", "ac53ab6a6a6aac6563", 2, -269281807, "6954f50c07ddbb446c9165bcb4261824489400b0084ca92124dc0d5451148453"], + ["567006cb017cecb04ee9e2cdf8812a27538172e7b7679bdb151f035f27afbecc9ba1325d250300000008516a6a53ab52ab65ffffffff0219626e000000000002ab6ace27ec0400000000076aab51ababac52410b3235", "ab63", 0, 2105794009, "f209d147dc3762a61bcce5a1317ded46ac795678409d3872e82bea3ca86ad98a"], + ["4d942bcf011bd361917ea0bb386c9eb2cc755448e99d0c2cd571be5556b4aec0f48bc5e24f0000000003656a00ffffffff03994ef2020000000000011aca030000000008ab6a535263656a526ee2ee00000000000763ab6a636a6a5300000000", "", 0, -218108718, "fcf76ddfa0b73dc99b8a9e81fb42e64845b634e3344d9e8bb2cef80624012c8f"], + ["dc0b5d9d01815fc1a0e892028e4ed2ed633c80419f5ba90de17cf9118e66dab59909c60aff000000000765acabac63536affffffff019d48ee040000000001ab00000000", "5152", 0, 18980549, "d4c3afdce0f34eee8c0920a0230ef2f62629b2b675e2b121615e47470cd4f1e9"] +] diff --git a/src/test/sighash_tests.cpp b/src/test/sighash_tests.cpp index 04b93fb10..9985ad692 100644 --- a/src/test/sighash_tests.cpp +++ b/src/test/sighash_tests.cpp @@ -3,9 +3,20 @@ // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include +#include #include "main.h" #include "util.h" +#include "serialize.h" +#include "version.h" +#include "data/sighash.json.h" + +#include "json/json_spirit_reader_template.h" +#include "json/json_spirit_utils.h" +#include "json/json_spirit_writer_template.h" + +using namespace json_spirit; +extern Array read_json(const std::string& jsondata); extern uint256 SignatureHash(const CScript &scriptCode, const CTransaction& txTo, unsigned int nIn, int nHashType); @@ -107,18 +118,88 @@ BOOST_AUTO_TEST_SUITE(sighash_tests) BOOST_AUTO_TEST_CASE(sighash_test) { seed_insecure_rand(false); + + #if defined(PRINT_SIGHASH_JSON) + std::cout << "[\n"; + std::cout << "\t[\"raw_transaction, script, input_index, hashType, signature_hash (result)\"],\n"; + #endif + int nRandomTests = 50000; - for (int i=0; i<50000; i++) { + #if defined(PRINT_SIGHASH_JSON) + nRandomTests = 500; + #endif + for (int i=0; i> tx; + + CValidationState state; + BOOST_CHECK_MESSAGE(CheckTransaction(tx, state), strTest); + BOOST_CHECK(state.IsValid()); + + CScript scriptCode = CScript(); + std::vector raw = ParseHex(raw_script); + scriptCode.insert(scriptCode.end(), raw.begin(), raw.end()); + + sh = SignatureHash(scriptCode, tx, nIn, nHashType); + + BOOST_CHECK_MESSAGE(sh.GetHex() == sigHashHex, strTest); + } +} BOOST_AUTO_TEST_SUITE_END() diff --git a/src/ui_interface.h b/src/ui_interface.h index 677d097fa..7b655ac95 100644 --- a/src/ui_interface.h +++ b/src/ui_interface.h @@ -91,6 +91,9 @@ public: * @note called with lock cs_mapAlerts held. */ boost::signals2::signal NotifyAlertChanged; + + /** A wallet has been loaded. */ + boost::signals2::signal LoadWallet; }; extern CClientUIInterface uiInterface; diff --git a/src/util.cpp b/src/util.cpp index 31110f799..b551a4104 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -979,7 +979,7 @@ boost::filesystem::path GetDefaultDataDir() #ifdef MAC_OSX // Mac pathRet /= "Library/Application Support"; - fs::create_directory(pathRet); + TryCreateDirectory(pathRet); return pathRet / "Dogecoin"; #else // Unix @@ -1093,6 +1093,23 @@ bool RenameOver(boost::filesystem::path src, boost::filesystem::path dest) #endif /* WIN32 */ } + +// Ignores exceptions thrown by boost's create_directory if the requested directory exists. +// Specifically handles case where path p exists, but it wasn't possible for the user to write to the parent directory. +bool TryCreateDirectory(const boost::filesystem::path& p) +{ + try + { + return boost::filesystem::create_directory(p); + } catch (boost::filesystem::filesystem_error) { + if (!boost::filesystem::exists(p) || !boost::filesystem::is_directory(p)) + throw; + } + + // create_directory didn't create the directory, it had to have existed already + return false; +} + void FileCommit(FILE *fileout) { fflush(fileout); // harmless if redundantly called diff --git a/src/util.h b/src/util.h index da5ff97a9..cb2bb614f 100644 --- a/src/util.h +++ b/src/util.h @@ -193,6 +193,7 @@ bool TruncateFile(FILE *file, unsigned int length); int RaiseFileDescriptorLimit(int nMinFD); void AllocateFileRange(FILE *file, unsigned int offset, unsigned int length); bool RenameOver(boost::filesystem::path src, boost::filesystem::path dest); +bool TryCreateDirectory(const boost::filesystem::path& p); boost::filesystem::path GetDefaultDataDir(); const boost::filesystem::path &GetDataDir(bool fNetSpecific = true); boost::filesystem::path GetConfigFile(); diff --git a/src/version.cpp b/src/version.cpp index 5c8c29d23..be13b9152 100644 --- a/src/version.cpp +++ b/src/version.cpp @@ -41,6 +41,9 @@ const std::string CLIENT_NAME("Shibetoshi"); # define GIT_COMMIT_DATE "$Format:%cD$" #endif +#define BUILD_DESC_WITH_SUFFIX(maj,min,rev,build,suffix) \ + "v" DO_STRINGIZE(maj) "." DO_STRINGIZE(min) "." DO_STRINGIZE(rev) "." DO_STRINGIZE(build) "-" DO_STRINGIZE(suffix) + #define BUILD_DESC_FROM_COMMIT(maj,min,rev,build,commit) \ "v" DO_STRINGIZE(maj) "." DO_STRINGIZE(min) "." DO_STRINGIZE(rev) "." DO_STRINGIZE(build) "-g" commit @@ -48,7 +51,9 @@ const std::string CLIENT_NAME("Shibetoshi"); "v" DO_STRINGIZE(maj) "." DO_STRINGIZE(min) "." DO_STRINGIZE(rev) "." DO_STRINGIZE(build) "-unk" #ifndef BUILD_DESC -# ifdef GIT_COMMIT_ID +# ifdef BUILD_SUFFIX +# define BUILD_DESC BUILD_DESC_WITH_SUFFIX(CLIENT_VERSION_MAJOR, CLIENT_VERSION_MINOR, CLIENT_VERSION_REVISION, CLIENT_VERSION_BUILD, BUILD_SUFFIX) +# elif defined(GIT_COMMIT_ID) # define BUILD_DESC BUILD_DESC_FROM_COMMIT(CLIENT_VERSION_MAJOR, CLIENT_VERSION_MINOR, CLIENT_VERSION_REVISION, CLIENT_VERSION_BUILD, GIT_COMMIT_ID) # else # define BUILD_DESC BUILD_DESC_FROM_UNKNOWN(CLIENT_VERSION_MAJOR, CLIENT_VERSION_MINOR, CLIENT_VERSION_REVISION, CLIENT_VERSION_BUILD) diff --git a/src/wallet.cpp b/src/wallet.cpp index 8fab1f08b..c66e630da 100644 --- a/src/wallet.cpp +++ b/src/wallet.cpp @@ -947,14 +947,19 @@ int CWallet::ScanForWalletTransactions(CBlockIndex* pindexStart, bool fUpdate) CBlockIndex* pindex = pindexStart; { LOCK(cs_wallet); + + // no need to read and scan block, if block was created before + // our wallet birthday (as adjusted for block time variability) + while (pindex && nTimeFirstKey && (pindex->nTime < (nTimeFirstKey - 7200))) + pindex = chainActive.Next(pindex); + + ShowProgress(_("Rescanning..."), 0); // show rescan progress in GUI as dialog or on splashscreen, if -rescan on startup + double dProgressStart = Checkpoints::GuessVerificationProgress(pindex, false); + double dProgressTip = Checkpoints::GuessVerificationProgress(chainActive.Tip(), false); while (pindex) { - // no need to read and scan block, if block was created before - // our wallet birthday (as adjusted for block time variability) - if (nTimeFirstKey && (pindex->nTime < (nTimeFirstKey - 7200))) { - pindex = chainActive.Next(pindex); - continue; - } + if (pindex->nHeight % 100 == 0 && dProgressTip - dProgressStart > 0.0) + ShowProgress(_("Rescanning..."), std::max(1, std::min(99, (int)((Checkpoints::GuessVerificationProgress(pindex, false) - dProgressStart) / (dProgressTip - dProgressStart) * 100)))); CBlock block; ReadBlockFromDisk(block, pindex); @@ -969,6 +974,7 @@ int CWallet::ScanForWalletTransactions(CBlockIndex* pindexStart, bool fUpdate) LogPrintf("Still rescanning. At block %d. Progress=%f\n", pindex->nHeight, Checkpoints::GuessVerificationProgress(pindex)); } } + ShowProgress(_("Rescanning..."), 100); // hide progress dialog in GUI } return ret; } @@ -1617,6 +1623,8 @@ DBErrors CWallet::LoadWallet(bool& fFirstRunRet) return nLoadWalletRet; fFirstRunRet = !vchDefaultKey.IsValid(); + uiInterface.LoadWallet(this); + return DB_LOAD_OK; } diff --git a/src/wallet.h b/src/wallet.h index a9fa811e3..7814a9ba2 100644 --- a/src/wallet.h +++ b/src/wallet.h @@ -28,6 +28,9 @@ extern int64_t nTransactionFee; extern bool bSpendZeroConfChange; +// -paytxfee will warn if called with a higher fee than this amount (in satoshis) per KB +static const int nHighTransactionFeeWarning = 25 * COIN; + class CAccountingEntry; class CCoinControl; class COutput; @@ -575,6 +578,9 @@ public: */ boost::signals2::signal NotifyTransactionChanged; + + /** Show progress e.g. for rescan */ + boost::signals2::signal ShowProgress; }; /** A key allocated from the key pool. */